You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Ertio Lew <er...@gmail.com> on 2011/03/01 03:54:30 UTC

Re: Using a synchronized counter that keeps track of no of users on the application & using it to allot UserIds/ keys to the new users after sign up

On Tue, Mar 1, 2011 at 1:26 AM, Aaron Morton <aa...@thelastpickle.com> wrote:
> This is mostly from memory. But the last 12 ? (4096 decimal) bits are a counter for the number of id's generated in a particular millisecond for that server. You could use the high 4 bits in that range for your data type flags and the low 8 for the counter.

So then I would be able to generate a maximum of upto 256 Ids per
millisecond (or 256000 per second) on one machine!? Seems like a very
good limit for my use case. I dont think I would ever need beyond that
since my write volumes are quite below as compared to that limit..
Should I go for it or still are there any other things to consider ?

>
> Aaron
>
> On 1/03/2011, at 4:41 AM, Ertio Lew <er...@gmail.com> wrote:
>
>> Hi Ryan,
>>
>> I am considering snowflake as an option for my usage with Cassandra
>> for a distributed application.
>> As I came to know snowflake uses 64 bits IDs. I am looking for a
>> solution that could help me generate 64 bits Ids
>> but in those 64 bits I would like at least 4 free bits so that I could
>> manipulate with those free bits to distinguish the two rows for a same
>> entity(split by kind of data) in same column family.
>>
>> If I could keep the snowflake's Id size to around 60 bits, that would
>> be great for my use case. Is it possible to manipulate the bits safely
>> to around 60 bits? Perhaps the microsecond precision is not required
>> to that much depth for my use case.
>>
>> Any kind of suggestions would be appreciated.
>>
>> Best Regards
>> Ertio Lew
>>
>>
>>
>>
>>
>>
>>
>> On Fri, Feb 4, 2011 at 1:09 AM, Ryan King <ry...@twitter.com> wrote:
>>> You could also consider snowflake:
>>>
>>> http://github.com/twitter/snowflake
>>>
>>> which gives you ids that roughly sort by time (but aren't sequential).
>>>
>>> -ryan
>>>
>>> On Thu, Feb 3, 2011 at 11:13 AM, Matthew E. Kennedy
>>> <ma...@spadac.com> wrote:
>>>> Unless you need your user identifiers to be sequential for some reason, I would save yourself the headache of this kind of complexity and just use UUIDs if you have to generate an identifier.
>>>>
>>>> On Feb 3, 2011, at 2:03 PM, Aklin_81 wrote:
>>>>
>>>>> Hi all,
>>>>> To generate new keys/ UserIds for new users on my application, I am
>>>>> thinking of using a simple synchronized counter that can keep track of
>>>>> the no. of users registered on my application and when a new user
>>>>> signs up, he can be allotted the next available id.
>>>>>
>>>>> Since Cassandra is eventually consistent, Is this advisable to
>>>>> implement with Cassandra, but then I could also use stronger
>>>>> consistency level like quorum or all for this purpose.
>>>>>
>>>>>
>>>>> Please let me know your thoughts and suggesttions..
>>>>>
>>>>> Regards
>>>>> Asil
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> @rk
>>>
>