Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
Reviewed
-
0.96notable
Description
Thanks to Lars' local transactions patch (HBASE-5229), we can entertain the possibility of doing local transactions within META regions.
We need this mainly for region splits and merges. Clients scan the META concurrent to the split/merge operations, and to prevent the clients from seeing overlapping region boundaries or holes in META, we just through hoops. For more backgroun, see BlockingMetaScannerVisitor, HBASE-5986, and my comments at https://reviews.apache.org/r/8716/.
Now, for the actual implementation options:
1. As outlined in http://hadoop-hbase.blogspot.com/2012_02_01_archive.html,
- We have to implement a Custom RegionSplitPolicy for the META regions to ensure that a table's regions are always co-located in the same META region. Then we can add MultiRowMutationEndpoint as a system level coprocessor, and use it for META operations.
2. Do smt likeHBASE-7716, and expose local atomic multi-row operations as a native API.
3. Move META to zookeeper. Use zookeeper.multi.
Then we can change region split / merge logic to make use of atomic META operations.
Thoughts, suggestions?
Attachments
Attachments
Issue Links
- is related to
-
HBASE-7716 Row Groups / Row Family / Entity Groups in HBase
- Closed
- relates to
-
HBASE-7777 HBCK check for lingering split parents should check for child regions
- Closed
-
HBASE-7748 Add DelimitedKeyPrefixRegionSplitPolicy
- Closed