Bug 1576: Handle remote failures for write Tx async
TransactionProxy
- Modified TransactionContextImpl to cache Futures from put/merge/delete
ask operations.
- On ready, combine all previous cached Futures and the
ReadyTransactionReply Future and transform to one Future that
extracts the cohort actor path from the ReadyTransactionReply. Any
Future failure results in a failed cohort actor path Future with
the cause propagated.
- The cohort actor path Future gets passed to the ThreePhaseCommitCohortProxy.
- Modified read and exists methods to also wait and verify async any
previous cached put/merge/delete Futures.
ThreePhaseCommitCohortProxy
- On canCommit, it first asynchronously builds the list of cohort actor
paths from the Futures passed from the TransactionProxy. If any
cohort path FUture fails, canCommit fails and propgates the failure
cause.
Added extensive unit tests for both classes to cover all cases.
Change-Id: Ib9794797a654a92c305fd8cc3db2c1147a363b5c
Signed-off-by: tpantelis <tpanteli@brocade.com>