System Design Глава 7: Проектирование генерации уникального идентификатора / Владимир Перепелица, Артем Бояршинов - podcast episode cover

System Design Глава 7: Проектирование генерации уникального идентификатора / Владимир Перепелица, Артем Бояршинов

Apr 01, 20232 hr 49 minSeason 3Ep. 21
--:--
--:--
Listen in podcast apps:

Episode description

Генерация уникального идентификатора в распределенной системе кажется тривиальной задачей - уже давно есть UUID, который генерируется на основе MAC адреса и локальных часов. Но не все так просто, вместе разобрались какие еще есть варианты - Артем сделал презентацию где мы обсудим альтернативные варианты. 


Помогать в обсуждении будут

📍Артем Бояршинов - разрабатываю в Мир Plat.Form онлайн систему межбанковских переводов. Немного менторю, иногда коммичу в популярные java-библиотеки вроде hibernate-validator, xmlunit, assertj. Даже вхожу в 20ку самых активных контрибьюторов в репозиторий с 40к звездочек. Изредка выступаю и пишу технические статьи. Обожаю изящные fluent API


📍Владимир Перепелица - архитектор и PM в Tarantool & VK Cloud. Хорошо разбирается в архитектуре и топологии баз данных. Особенно любимые — In-Memory. Курировал разработку синхронной кворумной репликации и механизма фейловера на базе Raft в Tarantool.


📍Николай Голов - Head of data engineering at ManyChat, знает все о том как построить OLAP и OLTP систему, в деталях разбирается в построении аналитических систем.


Ламповый чат https://t.me/backend_megdu_skobkah

Канал с анонсами https://t.me/megdu_skobok

YouTube https://youtu.be/3LBFnLGo1hQ


Полезные ссылки 👇

1. K-sorted (roughly sorted) последовательности: https://www.researchgate.net/publication/262154069_Roughly_sorting_sequential_and_parallel_approach

2. RFC-4122 на UUID: https://www.rfc-editor.org/rfc/rfc4122.html 

3. Подход к генерации идентификаторов в Planetscale: https://planetscale.com/blog/why-we-chose-nanoids-for-planetscales-api 

4. Java UUID Generator - библиотека для генерации UUID различных версий: https://github.com/cowtowncoder/java-uuid-generator 

5. Калькулятор для подсчета вероятности коллизий при рандомной генерации: https://zelark.github.io/nano-id-cc/ 

6. ULID https://github.com/ulid/spec 

7. NanoId https://github.com/ai/nanoid 

8. Анонс Snowflake Id: https://blog.twitter.com/engineering/en_us/a/2010/announcing-snowflake 

9. Исходники Snowflake Id: https://github.com/twitter-archive/snowflake/tree/scala_28 

10. Hazelcast flake id generator: https://docs.hazelcast.com/imdg/4.2/data-structures/flake-id-generator 

System Design Глава 7: Проектирование генерации уникального идентификатора / Владимир Перепелица, Артем Бояршинов | { между скобок } podcast - Listen or read transcript on Metacast