diff options
| author | nick evans <nicholas.evans@gmail.com> | 2023-06-29 18:39:29 -0400 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2023-09-19 01:55:27 +0000 |
| commit | dfb2b4cbc9aa5edc315e210bf6bfd92fcf6e45de (patch) | |
| tree | 239d6eb81409e7d3e3fecfd979570ef2fa44fd05 /test/ruby/test_thread_queue.rb | |
| parent | e77c766b7ab17e801c5cfa881754c392f8c13f0b (diff) | |
[ruby/securerandom] Add support for UUID version 7
Although the specification for UUIDv7 is still in draft, the UUIDv7
algorithm has been relatively stable as it progresses to completion.
Version 7 UUIDs can be very useful, because they are lexographically
sortable, which can improve e.g: database index locality. See section
6.10 of the draft specification for further explanation:
https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/
The specification allows up to 12 bits of extra timestamp precision, to
make UUID generation closer to monotonically increasing. This provides
between 1ms and ~240ns of timestamp precision. At the cost of some code
complexity and a small performance penalty, a kwarg may specify any
arbitrary precision between 0 and 12 extra bits. Any stronger
guarantees of monotonicity have considerably larger tradeoffs, so
nothing more is implemented. This limitation is documented.
Ruby issue: https://bugs.ruby-lang.org/issues/19735
https://github.com/ruby/securerandom/commit/34ed1a2ec3
Diffstat (limited to 'test/ruby/test_thread_queue.rb')
0 files changed, 0 insertions, 0 deletions
