Uploaded image for project: 'Apache IoTDB'
  1. Apache IoTDB
  2. IOTDB-68 IoTDB supports distributed version
  3. IOTDB-439

[Distributed] Incorrect Snapshot implementation and LogManager

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • None
    • None

    Description

      I read the log/snapshot and manage packages in current cluster_new branch, and have some questions:

      1. PartitionedSnapshotLogManager and FilePartitionedSnapshotLogManager are incorrect as

         a. they still store log into memory while the JavaDoc says they do not store data in memory.

         b. When doing snapshot, do they need to consider the part of the log in memory?

       

      2. Current LogManager is not thread-safety. The caller (i.e., RaftMember) uses sync keyword to guarantee that for each call. 

        a. a better design?

        b. is there any performance problem? as all operations are serialization.

       

      3. Consider the Raft Protocol, don't we need APIs like `removeLogFrom(startIndex)` in LogManager?  see the case of Figure 7 in Raft paper [1] 

       

      [1] https://raft.github.io/raft.pdf

       

      jt2594838 may know clearly about current implementation.

       

       

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            hxd Xiangdong Huang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: