Тест: UUIDv7 в Python монотонен только внутри одного процесса
Разбор на DEV Community проверил uuid.uuid7() в CPython 3.15.1: миллион ID дал ноль инверсий в одном процессе, но между процессами 46,6% пар с причинной связью отсортировались в обратном порядке. При откате часов на час встроенная метка времени уходит вперёд на 1 мс за каждый сгенерированный ID.
- 1 млн UUIDv7 в одном процессе: 0 инверсий, 384 288 ID/с
- Между процессами 46,6% причинно упорядоченных пар инвертированы
- Наивная схема без счётчика даёт 49,9% инверсий внутри миллисекунды
- Откат часов на час: метка уходит вперёд на ~100 с за 100 тыс. ID
Читать дальше
Софт