[S02E07] Проектирование генератора уникальных ИД в распределённых системах | BookClub DOTNET

BookClub DotNet Season 2 #7
Каждый из нас по своему уникален... Ровно до той поры, пока не начинает спорить в комментах! В этот момент все мы становимся экспертами по экспертизе всего экспертного. Чтобы оставаться уникальным даже среди таких серьёзных людей, следуй за нами!
Ведущие:
- Роман Гашков
- Григорий Кузьмин
- Роман Щербаков
Дизайн и иллюстрации:
- Серафима Лебедева
Выпуск на KZread: • [S02E07] Проектировани...
Выпуск на других платформах: bookclub-dotnet.mave.digital/...
Канал книжного клуба: t.me/bookclubdotnet
Сайт книжного клуба: bookclub.dotnet.ru
Книга
System Design. Подготовка к сложному интервью (www.piter.com/product/system-...)
Доклад Романа Букина по UUID: • Роман Букин «Uuid - бо...
Статья Вадима Мартынова: habr.com/ru/articles/665024/
The following music was used for this media project:
Music: Ambient Corporate by WinnieTheMoog
Free download: filmmusic.io/song/6188-ambien...
License (CC BY 4.0): filmmusic.io/standard-license
Ключевые слова: архитектура, системный дизайн, алгоритмы, паттерны, программирование, собеседование, книга, книжный клуб, architecture, system design, algorithms, patterns, programming, interview, book, bookclub

Пікірлер: 17

  • @WildComparator
    @WildComparator3 ай бұрын

    Необязательно же делать уникальные айдишки в пределах всей системы. Можно же сделать отдельно для твитов, отдельно для юзеров и т.п.

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    а зачем? нужно опять и снова указать "только лишь бит" твита/юзера итд это группа битов [из всего лонга], отвечающая за принадлежность ид к тому что вы хотите понятное дело что так и нужно делать, потому что опять и снова по маске можно сразу найти то что вам нужно, т.е. резко сократить время поиска вы по маске проверяете юзер это или твит или что-то ещё да хоть что пихайте в лонг, и ничего вам за это не будет ахаха!

  • @daredever

    @daredever

    3 ай бұрын

    это хороший поинт, мне кажется действительно часто нет смысла делать абсолютно уникальный ид внутри системы. так что стоит заранее выяснять а нужно ли это нам)

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    не верный поинт, причём в любом случае система идентификаторов предполагает какое либо размещение в памяти этих самых идентификаторов, и когда вы дёргаете идэшычьку - вы мгновенно теряете локальность, т.е. вероятность того что вы попадёте в кеш-мис = 100% [причём без погрешностей] а вы значит идешычки расплодить хотите ага? ну что бы так сказать по полной кеш-мисов наловить ахаха! нет ну а чего, если падать на дно - так падать по полной! шутки шутками, но идэшычьку лучше дёрнуть один раз, а затем локально на стеке её распотрошить, ибо совершенно бессмысленно бегать по куче выгребая идэшечки откуда то с разных мест кучи

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    до тех пор, пока куча для вас [или не для вас] существует как абстракция, и вы не можете сказать где что лежит и в какой последовательности в куче - любое программирование кучи - __бессмысленно__ потому что вы [или не вы] на самом деле никаким программированием не занимаетесь, потому что на самом деле - вы __программируете__ __рантайм__ однако же вы __не__ программируете рантайм, вы даже к этому ещё не подошли, и это понимание наступит, примерно лет через пять, при хорошем стечении обстоятельств

  • @daredever

    @daredever

    3 ай бұрын

    @@AEF23C20 уважаемый слушатель, я думаю наступило время первого предупреждения. не надо хамить участникам сообщества

  • @AEF23C20
    @AEF23C203 ай бұрын

    опять не понял, написано было несколько серий назад этого сериала возьмите "втупую" этот ваш лонг, и к нему примотайте как либо номер сервера, и по маске вы всегда: можете прилепить номер сервера к лонгу выгребсти номер сервера от лонга при этом, диапазон ид конечно же сократится на некоторое число бит для четырёх серверов нужны два бита, ид в данном случае это 62 бита

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    09:43 деление некоего лонга на группы битов - это оно и есть в лонг при желании можно всех слонов упихать

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    а на самом деле - айдишник - это временная метка и есть [плюс ид сервера] абсолютная временная метка запросто влезает в лонг, с точностью до наносекунд а большая точность - не нужна, потому что невозможно загрузить на сервер более чем 1к мисаг за 1мс время с точностью до наносекунд - это и есть идентификатор, и более для этого ничего не нужно

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    и ага, таких временных меток хватит не то что на всю жизнь, а на ближайшие хз тысячи лет итд

  • @AEF23C20
    @AEF23C203 ай бұрын

    ююид значит гуид ага?)))) япадстол укатился ахаха! извините

  • @daredever

    @daredever

    3 ай бұрын

    есть возражения по этому поводу?

  • @AEF23C20

    @AEF23C20

    3 ай бұрын

    да какие тут могут быть возражения? задачка "требует" задания уникальных сквозных идентификаторов, и причём тут тогда вообще гуид/ююид? от вас хотят груши/яблоки, а вы вместо этого решили попользовать гвозди и гайки это примерно так и выглядит

Келесі