[ 
https://issues.apache.org/jira/browse/PHOENIX-1422?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14202359#comment-14202359
 ] 

Andrew Purtell commented on PHOENIX-1422:
-----------------------------------------

I suppose we'd keep the current sequence semantics, but provide a stateless 
alternative for cross-DC use cases (and of course other use cases where 
stateless sequences would work well). Then we won't have to consider the 
inevitable corner cases of asynchronous replication of SYSTEM.SEQUENCES, or if 
we can't tolerate them then implementing synchronous replication of 
SYSTEM.SEQUENCES, and/or relying on an external sequence generation service a 
la Twitter's Snowflake. We can sidestep all of that. 

> 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)

Reply via email to