я должен использовать Instagram генератор идентификаторов postgressql для моего проекта - PullRequest
0 голосов
/ 18 октября 2019

Если у меня время эпохи 2019-11-11. Сколько лет я могу генерировать уникальные, я использую технику Instagram. Может кто-нибудь объяснить, как работает этот алгоритм. https://instagram -engineering.com / шардинг Идентификаторы-на-Instagram-1cf5a71e5a5c? Г = a23b1b9c6107

1 Ответ

0 голосов
/ 20 октября 2019

Эта информация в статье, которая вам понравилась:

Каждый из наших идентификаторов состоит из:

  • 41 бит для времени в миллисекундах (дает нам 41 год идентификаторовс пользовательской эпохой)

Поэтому:

  • 41 бит дает 2 ^ 41 = 2199023255552 возможностей,
  • каждый день имеет 1000 * 60* 60 * 24 = 86400000 миллисекунд,
  • они могут генерировать их за 2199023255552 / 86400000≈25451 дней,
  • , что означает 25451 / 365.25≈69 лет.

Если вам нужен точный ответ - алгоритм с эпохой «2019-11-11 00:00 UTC» работает до 17 июля 2089 года, днем:

=> select '2019-11-11 00:00 UTC'::timestamptz+2^41*'1ms'::interval;
2089-07-17 15:47:35.552+00
...