Hi,
At the moment we always use the TransactionLog within the TxInterceptor
to log stuff which *might* be needed by the in-memory state transfer
process.
This takes place even when 'fetchInMemoryState' is turned off - and this
is redundant (or isn't it?). If so, what abut moving the code that
manages TransactionLog from TxInterceptor into another interceptor
(StateTransferInterceptor perhaps) that would only be present in the
chain if the 'fetchInMemoryState' is set to true.
Ah, at a second thought even if fetchInMemoryState is set to false, this
node might still act as an state supplier for somebody else, so we
cannot decide based on 'fetchInMemoryState'. Do you reckon it's worthed
having an canSupplyState attribute for a node - when this canSupplyState
is false, we don't include the StateTransferInterceptor in the chain and
give a performance boost by not recording and unrecording 2PC prepares
all the time...
Cheers,
Mircea
Show replies by date