Package org.apache.lucene.index
Interface TwoPhaseCommit
-
- All Known Implementing Classes:
IndexWriter
public interface TwoPhaseCommit
An interface for implementations that support 2-phase commit. You can useTwoPhaseCommitTool
to execute a 2-phase commit algorithm over severalTwoPhaseCommit
s.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
commit()
The second phase of a 2-phase commit.void
prepareCommit()
The first stage of a 2-phase commit.void
rollback()
Discards any changes that have occurred since the last commit.
-
-
-
Method Detail
-
prepareCommit
void prepareCommit() throws IOException
The first stage of a 2-phase commit. Implementations should do as much work as possible in this method, but avoid actual committing changes. If the 2-phase commit fails,rollback()
is called to discard all changes since last successful commit.- Throws:
IOException
-
commit
void commit() throws IOException
The second phase of a 2-phase commit. Implementations should ideally do very little work in this method (followingprepareCommit()
, and after it returns, the caller can assume that the changes were successfully committed to the underlying storage.- Throws:
IOException
-
rollback
void rollback() throws IOException
Discards any changes that have occurred since the last commit. In a 2-phase commit algorithm, where one of the objects failed tocommit()
orprepareCommit()
, this method is used to roll all other objects back to their previous state.- Throws:
IOException
-
-