
Alexander
08.06.2018
16:51:22

Александр
08.06.2018
16:51:43
ну я слышал легенды что у один совпали там звезды
на логах ?
был забавный плавающий баг

Google

Dmitry
08.06.2018
16:52:13
"Можно с уверенностью сказать, что первый квадриллион ключей (10^15) будут уникальными."

Александр
08.06.2018
16:53:03
30 000 в секунду, 108 000 000 в час...
2 592 000 000 сутки

Dmitry
08.06.2018
16:53:30
а в го uint64 : 0 to 18446744073709551615

Александр
08.06.2018
16:53:44
месяц - 80 352 000 000

Dmitry
08.06.2018
16:53:53
да вы быстрее в лимит идентифкатора упретесь чем колизию в uuid словите

Александр
08.06.2018
16:54:26
но вероятность есть
и как всегда она выпловет прямо в проде
может быть сразу на демонстрации проекте руководству ?

Alexander
08.06.2018
16:56:16
> Общее количество уникальных ключей UUID составляет 2^128 = 256^16 или около 3,4 × 10^38. Это означает, что генерируя 1 триллион ключей каждую наносекунду, перебрать все возможные значения удастся лишь за 10 миллиардов лет.

Slava
08.06.2018
16:56:31

Dmitry
08.06.2018
16:56:53

Slava
08.06.2018
16:57:24
В чем смысл чего?

Google

Dmitry
08.06.2018
16:57:46
ну ладно. как правильно решать то - горутина, каналы или синхро примитивы ?

Slava
08.06.2018
16:57:46
Это же не философия

Александр
08.06.2018
16:57:56
вы забываете одну умную вещь

Dmitry
08.06.2018
16:58:03

Александр
08.06.2018
16:58:22
для генерации uuid используется псевдослучайный генератор случайных чисел, посоленный текущим временим
как правило
вероятность резко перестает быть такой призрачной
ибо для "кашерного" распределения нам нужна железка

Dmitry
08.06.2018
16:59:41
да? а разве текущее время для каждого вызова не будет разное?

Alexander
08.06.2018
16:59:50
Соль можно очень по разному замешивать

Александр
08.06.2018
17:00:18
с большими нагрузками

Alexander
08.06.2018
17:00:29
Например, можно замешивать наносекунды и отбрасывать всё, что сверху

Александр
08.06.2018
17:00:50
вероятность отгрести есть вообщем

Slava
08.06.2018
17:01:19
Сразу бы всех не взял

Dmitry
08.06.2018
17:01:34
слишком умные? :)

Slava
08.06.2018
17:01:38
Дают одну задачу, а рассуждают о чем то отвлеченном

Dmitry
08.06.2018
17:02:05
а, так вы роботов ищете ?

Alexander
08.06.2018
17:02:08

Slava
08.06.2018
17:02:10
Таких много на собеседованиях :)

Google

Slava
08.06.2018
17:02:42
Спрашиваешь дважды два, а тебе про перелетных птиц

Dmitry
08.06.2018
17:03:36
а на кого собеседуете ?

Александр
08.06.2018
17:03:36
ну так не учитывать эти вероятности это стремно

Alexander
08.06.2018
17:03:40

Slava
08.06.2018
17:04:10
Задачи не должны иметь смысл, они абстракция
Сферические кони

Александр
08.06.2018
17:05:05
Сферические кони
вы понимаете что если мы ответим что 2+2=4, вы скажите "хаха - лохи, в только не в системе исчисления с основанием N" ?
поэтому столько уточнений

Alexander
08.06.2018
17:05:21

Dmitry
08.06.2018
17:06:09
им гребцы на галеру нужны видимо
гребсти от сих до сих

Dmitry
08.06.2018
17:06:43
и никаких обсуждений!

Slava
08.06.2018
17:11:18

Dmitry
08.06.2018
17:11:48
гребцов на галеру

Slava
08.06.2018
17:12:01

Александр
08.06.2018
17:12:16
мы и немного уточнили ?

Dmitry
08.06.2018
17:13:51
ты мог уточнить только тип идентфикатора! спросил что то другое - не программист!

Александр
08.06.2018
17:13:51
2 + 2 = 11 если что
если основание 3 ?

Google

Slava
08.06.2018
17:14:33

Alexander
08.06.2018
17:15:14

Slava
08.06.2018
17:15:35
Пассивно агрессивные люди тоже не проходят, к счастью

Dmitry
08.06.2018
17:15:48

Slava
08.06.2018
17:16:43

Dmitry
08.06.2018
17:16:47

Slava
08.06.2018
17:17:39

Admin
ERROR: S client not available

Dmitry
08.06.2018
17:18:43
хорошо, я постараюсь

Aleksandr
08.06.2018
17:21:02

Александр
08.06.2018
17:22:46
*Коллизия
но мы уже дошли до предметного спора? ?

Alexander
08.06.2018
17:23:38
Вообще многое зависит от того, сколько всего идентификаторов в пуле и сколько из них будет в среднем занято.
Опять же, если это 128 битный int, то смело можно просто рандомно выдать и не хранить у себя что там занято, а что нет.

Slava
08.06.2018
17:27:54
Это тоже кандидат должен рассказать
Какие плюсы и минусы

Александр
08.06.2018
17:32:49

Google

Александр
08.06.2018
17:32:57
забранные считаются занятыми
изи катка!

Slava
08.06.2018
17:33:19
Канал ))
Может хоть queue?

Александр
08.06.2018
17:33:51
а что есть какие то скрытые условия? ?
вы же сами сказали сделать решение в ваакуме

Alexander
08.06.2018
17:36:44

Александр
08.06.2018
17:37:49
поясните вашу мысль более развернуто

Alexander
08.06.2018
17:38:52
Не раз уже в этом чате встречал сообщения, где предлагалось вместо нормальных структур данных и алгоритмов использовать горутины/каналы

Александр
08.06.2018
17:39:18
давайте вы сделаете "как правильно", а потом померим? ?

Oleg
08.06.2018
17:39:41
народ, а кто как функциональные тесты на го пишет?

Dmitry
08.06.2018
17:40:10
короче самое простое решение (без тредсейва) - выдавать идешники увеличеные на единицу(последний ид хранить), при возврате идешника помещать в лист. при выдаче вначале брать из листа по порядку.

Александр
08.06.2018
17:40:30
но я специально довел до абсурда реализацию
мы можем завести переменную типа int и увеличивать ее ?

Alexander
08.06.2018
17:42:33

Александр
08.06.2018
17:42:52
мутекс тормоз!
только атомик

Dmitry
08.06.2018
17:43:01
ну тут уэе вариации, поэтому и не стал писать тредсейв

Alexander
08.06.2018
17:43:29