Ivan Bessonov created IGNITE-20754:
--------------------------------------

             Summary: Fix log prefix truncation in logit storage
                 Key: IGNITE-20754
                 URL: https://issues.apache.org/jira/browse/IGNITE-20754
             Project: Ignite
          Issue Type: Improvement
            Reporter: Ivan Bessonov


{code:java}
Utils.runInThread(executor, () -> {
    this.indexDB.truncatePrefix(firstIndexKept);
    this.segmentLogDB.truncatePrefix(firstIndexKept);
    this.confDB.truncatePrefix(firstIndexKept);
}); {code}
Currently, this code doesn't work if we truncate log after loading raft 
snapshot from the leader. The problem is in the gap in index file, that 
prevents new log entries to be written.

Possible solution - differentiate between "safe" log truncation and "unsafe". 
Here I mean that if index N is present in the log, then we can truncate log to 
it.

Otherwise, truncation is equivalent to entire log invalidation, and it should 
be performed differently. Either synchronously, or somehow guaranteeing that 
same files won't be used for writes.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to