Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Over at the HBase land, we have a proposal to use HLC for HBase updates. I think that we can also use them in Phoenix, so that we have a strictly monotonic clock and timestamps become reliable. I believe that HL clocks have the potential to eliminate clock-skew problems that Phoenix is susceptible for.
I have to spend some more time to fill up the Phoenix part of the proposal to see what exactly needs to be changed. But please feel free to suggest and comment on whether this makes sense for Phoenix.
Below is the proposal for HBASE-14070:
HBase and Phoenix uses systems physical clock (PT) to give timestamps to events (read and writes). This works mostly when the system clock is strictly monotonically increasing and there is no cross-dependency between servers clocks. However we know that leap seconds, general clock skew and clock drift are in fact real.
This jira proposes using Hybrid Logical Clocks (HLC) as an implementation of hybrid physical clock + a logical clock. HLC is best of both worlds where it keeps causality relationship similar to logical clocks, but still is compatible with NTP based physical system clock. HLC can be represented in 64bits.
A design document is attached and also can be found here:
https://docs.google.com/document/d/1LL2GAodiYi0waBz5ODGL4LDT4e_bXy8P9h6kWC05Bhw/edit#
Attachments
Issue Links
- relates to
-
HBASE-14070 Hybrid Logical Clocks for HBase
- Reopened