-
Notifications
You must be signed in to change notification settings - Fork 399
Open
Labels
Description
LogOperation
and its co-types are poorly designed:
- They are meant to be stateless, but in reality there are caches in various places like
SequencerManager
(see the list below). We should rather make an explicit per-tree cache that can be extended (e.g. with compact ranges cached between sequencing runs as in sequencer: Cache compact.Tree between sequencing runs #1598). - Interfaces and method signatures are redundant. For example,
log.NewSequencer
takes aSigner
created from aTree
, but then the sameTree
is passed intosequencer.IntegrateBatch
when in fact there is only oneTree
that can be accepted. -
log_operation_manager.go
is meant to be agnostic of sequencing, but it contains a bunch of sequencing-related metrics. It is likely thatLogOperation
abstraction is YAGNI. - TODO: Keep listing changes.
The list of things we cache:
- Log names (in
OperationManager
). - Signers (in
SequencerManager
). - Masterships (in
OperationManager
). - Compact ranges (not yet).
gdbelvin