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.
Sergey Prokhorenko sergeyprokhore...@yahoo.com.au

Reply via email to