Scanning the list of entries present on a bookie
during implementation of BP-14 I am facing a problem so I am asking for
My need is to be able to know the list of all entries stored on a
LedgerStorage given a ledgerId.
Scanning from 0 to LedgerStorage#getLastAddConfirmed() does not seem to
work because we have to deal with WriteAdvHandle, so there can be temporary
"gaps" in the sequence of entries.
I can have a writer which writes entries 0,1,5,6,7. Its LAC will be at most
1 as entries 2,3,4 are not written yet.
I need on the bookie to able to know that entries 0, 1, 5, 6, 7 are stored
I cannot issue a scan from 0 to Long.MAX_VALUE, my current 'solution' it to
make the client (writer) send the 'maximum entry id' and perform a scan
from 0 to maxEntryId.
In the example the writer will send a forceLedger RPC with maxEntryId = 7.
This is need only for recoveries are bookie restart because I have to
reconstruct the knowledge about which entries have been persisted durably
on the Bookie.
I am not very expert about LedgerStorage implementations, and I don't know
if it would be feasible to have such 'scan all entries' method.
This is the code I am talking about
Any help is really appreciated