Details
-
New Feature
-
Status: Reopened
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
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
Attachments
Issue Links
- incorporates
-
HBASE-16148 Hybrid Logical Clocks(placeholder for running tests)
- Open
- is related to
-
PHOENIX-2124 Hybrid Logical Clocks for Phoenix
- Open
-
HBASE-9879 Can't undelete a KeyValue
- Closed
-
HBASE-14054 Acknowledged writes may get lost if regionserver clock is set backwards
- Closed
-
HBASE-9905 Enable using seqId as timestamp
- Closed
- relates to
-
HBASE-6833 [WINDOWS] Java Milisecond precision on Windows
- Closed
-
HBASE-8927 Use nano time instead of mili time everywhere
- Closed
-
HBASE-10247 Client promises about timestamps
- Closed
- links to