Почему вы добавляете идентификацию осколка к сгенерированному идентификатору? - PullRequest
1 голос
/ 27 апреля 2019

Я читаю это: https://instagram -engineering.com / шардинге Идентификаторы-на-Instagram-1cf5a71e5a5c

В последнем разделе «Решение», где они генерируют глобально уникальный идентификатор на основе функции автоинкремента БД + миллисекунды с начала эпохи + идентификатор шарда.

Зачем нам нужно добавлять к нему ID шарда?

В частности, это говорит

Далее мы берем ID осколка для этого конкретного фрагмента данных, который мы пытаюсь вставить. Допустим, мы шардируем по идентификатору пользователя, и есть 2000 логических осколков; если наш идентификатор пользователя 31341, то идентификатор шарда 31341% 2000 -> 1341. Мы заполняем следующие 13 битов этим значением

Это не имеет смысла: если вы уже изменяете идентификатор пользователя по количеству шардов (31341% 2000), это означает: 1) У вас уже есть идентификатор пользователя! 2) Вы уже знаете шард, которому он принадлежит, с помощью функции мода!

Что я тут недопонимаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...