hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Amit Patel <amit.pa...@cloudera.com>
Subject Plan for Hybrid Logical Clocks
Date Fri, 23 Jun 2017 00:34:21 GMT
Hi everyone,



I'm Amit and I've been picking up on the past work on Hybrid Logical Clocks
(HBASE-14070 <https://issues.apache.org/jira/browse/HBASE-14070>) that was
done by Sai Teja Ranuva last summer. The most recent status of HLC on HBase
can be found here
<https://docs.google.com/document/d/1n32DUKoL3LSoKQ1_NuF8TbQkZiZCwFhbHZ7JXRjg3oA/edit#>
and a prior document by Enis Soztutar with discussion can be found here
<https://docs.google.com/document/d/1LL2GAodiYi0waBz5ODGL4LDT4e_bXy8P9h6kWC05Bhw/edit#>.
I think the effort is at a point where it makes sense to create a public
branch.



Currently the plan is to create a public branch and incrementally add on
functionality and tests. Initially, core HLC would be introduced as a
commit. From there, HLC would then be enabled for just the meta table
(updating the clock on events like region open/close, recovery,
replication, etc). Once we are fully confident that HLC at least works on
the meta table then I anticipate it would be appropriate to merge with the
master branch.



Follow up commits would extend the effort by:



   -

   Addition of a protobuf message called NodeTime that holds timestamp
   corresponding to a send event between nodes.
   -

   Addition of NodeTime as a field to messages sent between nodes for
   messages like requests and responses for region open/close.
   -

   Addition of integration tests that verify HLC works correctly with
   recovery, replication, region open, and region close.
   -

   Later enabling HLC on user tables (main barrier are tests that rely on
   client-side setting of timestamps for table mutations which would no longer
   be allowed on an HLC table).



Work that I have implemented under the outstanding work
<https://docs.google.com/document/d/1n32DUKoL3LSoKQ1_NuF8TbQkZiZCwFhbHZ7JXRjg3oA/edit#heading=h.8x5d8iakmo8b>
as a part of getting HLC working for user tables includes:



   -

   Mapping of time ranges from client GETs
   -

   Disallowing clients to set timestamps for HLC and System Monotonic tables



Feel free to chime in with any comments, suggestions, or other input.

-- 
Amit

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message