You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2015/07/16 00:03:04 UTC

[jira] [Created] (PHOENIX-2124) Hybrid Logical Clocks for Phoenix

Enis Soztutar created PHOENIX-2124:
--------------------------------------

             Summary: Hybrid Logical Clocks for Phoenix
                 Key: PHOENIX-2124
                 URL: https://issues.apache.org/jira/browse/PHOENIX-2124
             Project: Phoenix
          Issue Type: Bug
            Reporter: Enis Soztutar
            Assignee: Enis Soztutar


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#




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)