It'd be great to see this land. You only mention the master branch as a merge target; is the assumption that this would only be a HBase 3.0+ addition?
On Thu, Jun 22, 2017 at 7:34 PM, Amit Patel <amit.pa...@cloudera.com> wrote: > 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