eBay/HomeStore

Disable automatic timer flush in logdev and simplify sync flushes

Closed this issue · 2 comments

2 parts on this request

  1. As we stand with current design for replication, we need to disable automatic timer flush in logdev. This would mean we split the logdev into 3 flush modes, (inline, timer, explicit). A logdev could be flushed in any combinations or all of them. For HomeObject use case, as it stands now, it will enable only explicit flush.

  2. We have written logdev flush when there was no coroutines and everything is done async. As a result, there are lots of deadlock possibility when we tried to integrate with raft log store as they need sync code. It is time to use coroutines and significantly simplify and completely get rid of async flush.

  3. We need to also take care of situation where raft can call compact/truncate on lsns which were not written yet.

we can not close it for now. 1 and 2 are implemented. but 3 seems not.
need @raakella1 to confirm it.

we do sync flush for log store now