I am thinking adding a new flag to bookkeeper#addEntry(..., Boolean sync). So the application can control whether to sync or not for individual entries.
- On the write protocol, adding a flag to indicate whether this write should sync to disk or not.
- On the bookie side, if the addEntry request is sync, going through original pipeline. If the addEntry disables sync, complete the add callbacks after writing to the journal file and before flushing journal.
- Those add entries (disabled syncs) will be flushed to disks with subsequent sync add entries.
There is already a discussion in mail thread, here this ticket could gather ideas, and provide the discussion materials