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

James Taylor commented on PHOENIX-1422:
---------------------------------------

I like this idea, but I'm skeptical that sequences with all it's options 
(http://phoenix.apache.org/language/index.html#create_sequence) such as START 
WITH and INCREMENT BY could be supported. My proposal would be to surface this 
with a new built-in function like GENERATE_ID() and use cases that only require 
uniqueness could use this in a stateless manner. I'll let [~lhofhansl] answer 
the question of "What happens if a collision occurs, however unlikely?" :-) 

> 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