Description
This is a simplified version of what was proposed in HBASE-6573. Instead of claiming to be a 2pc or 3pc implementation (which implies logging at each actor, and recovery operations) this is just provides a best effort global barrier mechanism called a Procedure.
Users need only to implement a methods to acquireBarrier, to act when insideBarrier, and to releaseBarrier that use the ExternalException cooperative error checking mechanism.
Globally consistent snapshots require the ability to quiesce writes to a set of region servers before a the snapshot operation is executed. Also if any node fails, it needs to be able to notify them so that they abort.
The first cut of other online snapshots don't need the fully barrier but may still use this for its error propagation mechanisms.
This version removes the extra layer incurred in the previous implementation due to the use of generics, separates the coordinator and members, and reduces the amount of inheritance used in favor of composition.
Attachments
Attachments
Issue Links
- depends upon
-
HBASE-7206 Foreign Exception framework v2 (simplifies and replaces HBASE-6571)
- Closed
- is depended upon by
-
HBASE-6866 Timestamp consistent snapshots
- Closed
- is related to
-
HBASE-7254 Refactor AccessController ZK-mediated permissions cache into a generic mechanism
- Closed