On Fri, Nov 8, 2024 at 1:25 PM Sergey Prokhorenko
<sergeyprokhore...@yahoo.com.au> wrote:
>
> On Thursday 7 November 2024 at 11:34:31 am GMT+3, Andrey M. Borodin 
> <x4...@yandex-team.ru> wrote:
>
>
> > 12 bits does not differ much. We can have much longer counters. Before 
> > switching to Method 3 I used 18 bits counter. See version 
> > v24-0001-Implement-UUID-v7.patch
> > This version is more resilent to generating a lot of UUIDs on one backend 
> > while still not accumulating time shift.
> > Yet, UUIDs generated on parallel workers will loose some sortability.
>
> > Personally, I think both methods are good. I’d even combine them both. But 
> > RFC seems to be not allowing this. BTW if we just continue to use 
> > nanoseconds patch, zero bits will act exactly as counters.
>
>
> > Best regards, Andrey Borodin.
> ------------------------------------------------------------------------
>
>
> In fact, the RFC does allow combining methods 3 and 1:
> https://datatracker.ietf.org/doc/html/rfc9562#name-uuid-version-7
> 5.7. UUID Version 7
>
>
>
>
> "Alternatively, implementations MAY fill the 74 bits, jointly, with a 
> combination of the following subfields, in this order from the most 
> significant bits to the least, to guarantee additional monotonicity within a 
> millisecond:
>
> 1. An OPTIONAL sub-millisecond timestamp fraction (12 bits at maximum) as per 
> Section 6.2 (Method 3).
> 2. An OPTIONAL carefully seeded counter as per Section 6.2 (Method 1 or 2).
> 3. Random data for each new UUIDv7 generated for any remaining space."
>
>
> This clearly refers to a "combination of the following subfields". 
> COMBINATION!!!
>
>
> However, with the current performance of computers, method 3 is quite 
> sufficient without the addition of method 1.

Do you think method 3 is sufficient even with microsecond precision
(i.e. storing only 10 bits microseconds in rand_a space)?

Regards,

-- 
Masahiko Sawada
Amazon Web Services: https://aws.amazon.com


Reply via email to