You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@iotdb.apache.org by "Xiangdong Huang (Jira)" <ji...@apache.org> on 2020/01/31 17:18:00 UTC

[jira] [Created] (IOTDB-439) Incorrect Snapshot implementation and LogManager

Xiangdong Huang created IOTDB-439:
-------------------------------------

             Summary: Incorrect Snapshot implementation and LogManager
                 Key: IOTDB-439
                 URL: https://issues.apache.org/jira/browse/IOTDB-439
             Project: Apache IoTDB
          Issue Type: Sub-task
            Reporter: Xiangdong Huang


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.

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)