Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
In the present HBase architecture, it is hard, probably impossible, to satisfy constraints like 99th percentile of the reads will be served under 10 ms. One of the major factors that affects this is the MTTR for regions. There are three phases in the MTTR process - detection, assignment, and recovery. Of these, the detection is usually the longest and is presently in the order of 20-30 seconds. During this time, the clients would not be able to read the region data.
However, some clients will be better served if regions will be available for reads during recovery for doing eventually consistent reads. This will help with satisfying low latency guarantees for some class of applications which can work with stale reads.
For improving read availability, we propose a replicated read-only region serving design, also referred as secondary regions, or region shadows. Extending current model of a region being opened for reads and writes in a single region server, the region will be also opened for reading in region servers. The region server which hosts the region for reads and writes (as in current case) will be declared as PRIMARY, while 0 or more region servers might be hosting the region as SECONDARY. There may be more than one secondary (replica count > 2).
Will attach a design doc shortly which contains most of the details and some thoughts about development approaches. Reviews are more than welcome.
We also have a proof of concept patch, which includes the master and regions server side of changes. Client side changes will be coming soon as well.
Attachments
Attachments
Issue Links
- incorporates
-
HBASE-13063 Allow to turn off memstore replication for region replicas
- Closed
- is related to
-
HBASE-10703 TestAsyncProcess does not pass on HBASE-10070
- Closed
-
HBASE-10791 Add integration test to demonstrate performance improvement
- Closed
-
HBASE-10817 Add some tests on a real cluster for replica: multi master, replication
- Closed
-
HBASE-18070 Enable memstore replication for meta replica
- Closed
-
HBASE-13063 Allow to turn off memstore replication for region replicas
- Closed
-
HBASE-10605 Manage the call timeout in the server
- Closed
- relates to
-
HBASE-11367 Pluggable replication endpoint
- Closed
-
HBASE-2357 Coprocessors: Add read-only region replicas (slaves) for availability and fast region recovery
- Closed
-
HBASE-10785 Metas own location should be cached
- Closed
- requires
-
HBASE-10957 HBASE-10070: HMaster can abort with NPE in #rebuildUserRegions
- Closed
-
HBASE-10525 Allow the client to use a different thread for writing to ease interrupt
- Closed
- links to