Re: UUID v7

Поиск
Список
Период
Сортировка
Искать
От
Andrey M. Borodin
Тема
Re: UUID v7
Дата
Msg-id
F9F94BF3-CEE2-4673-A965-607F2141F7A7@yandex-team.ru
Ответ на
Re: UUID v7 (Aleksander Alekseev)
Список
Дерево обсуждения
UUID v7 Andrey Borodin <amborodin86@gmail.com>
Re: UUID v7 Andres Freund <andres@anarazel.de>
Re: UUID v7 Tom Lane <tgl@sss.pgh.pa.us>
Re: UUID v7 Andrey Borodin <amborodin86@gmail.com>
Re: UUID v7 Peter Eisentraut <peter.eisentraut@enterprisedb.com>
RE: UUID v7 "Kyzer Davis (kydavis)" <kydavis@cisco.com>
Re: UUID v7 Nikolay Samokhvalov <samokhvalov@gmail.com>
Re: UUID v7 Daniel Gustafsson <daniel@yesql.se>
Re: UUID v7 Matthias van de Meent <boekewurm+postgres@gmail.com>
Re: UUID v7 Daniel Gustafsson <daniel@yesql.se>
Re: UUID v7 Tom Lane <tgl@sss.pgh.pa.us>
Re: UUID v7 Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Mat Arye <mat@timescaledb.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Chris Travers <chris.travers@gmail.com>
Re: UUID v7 Nick Babadzhanian <pgnickb@gmail.com>
Re: UUID v7 Jelte Fennema <postgres@jeltef.nl>
Re: UUID v7 Brad Peabody <brad@peabody.io>
Re: UUID v7 Andrey Borodin <amborodin86@gmail.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Lukas Fittl <lukas@fittl.com>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 "David G. Johnston" <david.g.johnston@gmail.com>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Nikolay Samokhvalov <nik@postgres.ai>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Nikolay Samokhvalov <nik@postgres.ai>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Junwang Zhao <zhjwpku@gmail.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter@eisentraut.org>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Michael Paquier <michael@paquier.xyz>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Michael Paquier <michael@paquier.xyz>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Michael Paquier <michael@paquier.xyz>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Masahiko Sawada <sawada.mshk@gmail.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter@eisentraut.org>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter@eisentraut.org>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter@eisentraut.org>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter@eisentraut.org>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Peter Eisentraut <peter@eisentraut.org>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Junwang Zhao <zhjwpku@gmail.com>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Nikolay Samokhvalov <nik@postgres.ai>
Re: UUID v7 Nikolay Samokhvalov <nikolay@samokhvalov.com>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 "Andrey M. Borodin" <x4mmm@yandex-team.ru>
Re: UUID v7 Marcos Pegoraro <marcos@f10.com.br>
Re: UUID v7 Andrey Borodin <x4mmm@yandex-team.ru>
Re: UUID v7 Marcos Pegoraro <marcos@f10.com.br>
Re: UUID v7 Jelte Fennema-Nio <postgres@jeltef.nl>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
Re: UUID v7 Sergey Prokhorenko <sergeyprokhorenko@yahoo.com.au>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Przemysław Sztoch <przemyslaw@sztoch.pl>
Re: UUID v7 Aleksander Alekseev <aleksander@timescale.com>
RE: UUID v7 "Kyzer Davis (kydavis)" <kydavis@cisco.com>


> On 24 Jan 2024, at 18:02, Aleksander Alekseev  wrote:
> 
> Hi,
> 
>> UUIDv7 range does not correspond to timestamp range. But it’s purpose is not in storing timestamp, but in being unique identifier. So I don’t think it worth throwing an error when overflowing value is given. BTW if you will subtract some nanoseconds - you will not get back timestamp you put into UUID too.
>> UUID does not store timpestamp, it only uses it to generate an identifier. Some value can be extracted back, but with limited precision, limited range and only if UUID was generated precisely by the specification in standard (and standard allows deviation! Most of implementation try to tradeoff something).
> 
> I don't claim that UUIDv7 purpose is storing timestamps, but I think
> the invariant:
> 
> ```
> uuid_extract_time(uidv7(X)) == X
> ```
> 
> and (!) even more importantly:
> 
> ```
> if X > Y then uuidv7(X) > uuidv7(Y)
> ```
> 
> ... should hold.
Function to extract timestamp does not provide any guarantees at all. Standard states this, see Kyzer answers upthread.
Moreover, standard urges against relying on that if uuidX was generated before uuidY, then uuidX Otherwise you can calculate crc64(X) or sha256(X)
> internally in order to generate an unique ID and claim that it's fine.
> 
> Values that violate named invariants should be rejected with an error.

Think about the value that you pass to uuid generation function as an entropy. It’s there to ensure uniqueness and promote ordering (but not guarantee).


Best regards, Andrey Borodin.

В списке pgsql-hackers по дате отправления
От: Amit Langote
Дата:
Сообщение: Re: remaining sql/json patches
От: Aleksander Alekseev
Дата:
Сообщение: Re: UUID v7
FAQ