Interface RecoveryManager

  • All Known Implementing Classes:

    public interface RecoveryManager
    RecoveryManager is the component responsible with managing recovery related information and the functionality associated with it. Refer to this document for details on the design of recovery.
    • Method Detail

      • getPreparedTransactionsFromCluster

        RecoveryManager.RecoveryIterator getPreparedTransactionsFromCluster()
        Returns the list of transactions in prepared state from both local and remote cluster nodes. Implementation can take advantage of several optimisations:
        • in order to get all tx from the cluster a broadcast is performed. This can be performed only once (assuming the call is successful), the first time this method is called. After that a local, cached list of tx prepared on this node is returned.
        • during the broadcast just return the list of prepared transactions that are not originated on other active nodes of the cluster.
      • getInDoubtTransactionInfoFromCluster

        Set<InDoubtTxInfo> getInDoubtTransactionInfoFromCluster()
        Returns a Set containing all the in-doubt transactions from the cluster, including the local node. This does not include transactions that are prepared successfully and for which the originator is still in the cluster.
        See Also:
      • removeRecoveryInformation

        CompletionStage<Void> removeRecoveryInformation​(Collection<Address> where,
                                                        XidImpl xid,
                                                        GlobalTransaction gtx,
                                                        boolean fromCluster)
        Removes from the specified nodes (or all nodes if the value of 'where' is null) the recovery information associated with these Xids.
        where - on which nodes should this be executed.
        xid - the list of xids to be removed.
        gtx - the global transaction
        fromCluster - true to remove the recovery information from all cluster.
      • getInDoubtTransactions

        List<XidImpl> getInDoubtTransactions()
        Local call that returns a list containing:
         - all the remote transactions prepared on this node for which the originator(i.e. the node where the tx
         stared) is no longer part of the cluster.
         - all the locally originated transactions which are prepared and for which the commit failed
        See Also:
      • getPreparedTransaction

        RecoveryAwareTransaction getPreparedTransaction​(XidImpl xid)
        Local call returning the remote transaction identified by the supplied xid or null.
      • forceTransactionCompletion

        CompletionStage<String> forceTransactionCompletion​(XidImpl xid,
                                                           boolean commit)
        Replays the given transaction by re-running the prepare and commit. This call expects the transaction to exist on this node either as a local or remote transaction.
        xid - tx to commit or rollback
        commit - if true tx is committed, if false it is rolled back
      • isTransactionPrepared

        boolean isTransactionPrepared​(GlobalTransaction globalTx)
        Checks both internal state and transaction table's state for the given tx. If it finds it, returns true if tx is prepared.