Implement LogManager for TransactionManager
Implement the LogManager
interface for TransactionManager
, allowing
it to notify LogConsumer
s of new log entries and prune entries when
all consumers have processed them. The manager stores the last
acknowledged LSN for each consumer, but does not retain this state
across restarts. On restart, the oldest LSN present will be treated as
the low water mark for consumers. If a consumer has already processed
that LSN, its next acknowledgement will inform the manager of its actual
position.
To avoid injecting acknowledgements into the entire
TransactionManager
test suite, we only add a LogConsumer
to the
new consumer-related tests.
Edited by Will Chandler (ex-GitLab)