[ 
https://issues.apache.org/jira/browse/IOTDB-439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17029502#comment-17029502
 ] 

Tian Jiang commented on IOTDB-439:
----------------------------------

1.a. It is saying the committed logs do not have to be stored in the memory 
while storing them may bring some benefit for catching up, but it is not 
necessary. Please compare it with PartitionedSnapshotLogManager carefully for a 
better understanding.

1.b. Committed logs are covered by snapshots and non-committed logs do not 
concern snapshot. They are already considered.

So I do not know why you call it "incorrect".
 

> [Distributed] 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
>            Priority: Major
>
> 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)

Reply via email to