You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Andrew Purtell (JIRA)" <ji...@apache.org> on 2014/12/10 01:47:12 UTC
[jira] [Commented] (PHOENIX-1422) Stateless Sequences
[ https://issues.apache.org/jira/browse/PHOENIX-1422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14240420#comment-14240420 ]
Andrew Purtell commented on PHOENIX-1422:
-----------------------------------------
Hybrid Logical Clock (http://muratbuffalo.blogspot.com/2014/07/hybrid-logical-clocks.html) might be a good approach for generating stateless sequences. It looks like a HLC logical timestamps monotonic and fit in 64 bits:
{quote}
We can have a compact representation of HLC timestamps using l and c. NTP uses 64-bit timestamps which consist of a 32-bit part for seconds and a 32-bit part for fractional second. We restrict l to track only the most significant 48 bits of pt. Rounding up pt values to 48 bits l values still gives us microsecond granularity tracking of pt. 16 bits remain for c and allows it room to grow up to 65536. (In our experiments c mostly stayed in single digits.)
{quote}
> Stateless Sequences
> -------------------
>
> Key: PHOENIX-1422
> URL: https://issues.apache.org/jira/browse/PHOENIX-1422
> Project: Phoenix
> Issue Type: Improvement
> Reporter: Lars Hofhansl
>
> [~apurtell] and I were chatting yesterday.
> It would be good if Phoenix had stateless sequences, i.e. sequences that give out unique ids with (very) high probability.
> We can do that by starting with a timestamp, shifting it left 16 or 24 bits left and fill in the new bits with a random number.
> So we're guaranteed to get a new id for each millisecond and within a millisecond we break the tie with a random number. If we can make the likelihood of duplicate numbers lower than (say) a data center failure, we're OK. I would test this with a upsert into x ... select from x ... type query inserting 100's of millions of rows.
> Need to think of a syntax too.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)