@gogolang

Страница 1140 из 1630
Alexander
08.06.2018
16:51:22
генерить без оглядки на коллюзии?
Сколько триллионов там надо нагенерить, чтобы шанс коллизии был хотя бы 10 в -20 степени?

Александр
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
Эмм... UUID?
Нет, из диапазона чисел

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
Это же не философия
я о проблеме xyz

Александр
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
вы понимаете что если мы ответим что 2+2=4, вы скажите "хаха - лохи, в только не в системе исчисления с основанием N" ?
Моя задача не завалить или поднять своё самомнение, а отобрать нормальных программистов

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
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
Ну вот я уточняю - какую проблему вы хотите этим решить
Есть диапазон цифровых идентификаторов, из них надо выдавать эти самые идентификаторы и возвращать их же обратно в пул

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
Есть диапазон цифровых идентификаторов, из них надо выдавать эти самые идентификаторы и возвращать их же обратно в пул
RBTree для занятых идентификаторов, незанятый выбирается рандомно и проверяется на вхождение в дереве. Все это обернуть мьютексом. Самый простой вариант. Если нужно что-то более сложное и эффективное, то стоит покурить то, как устроены современные аллокаторы памяти, тот же jemalloc, например.

Вообще многое зависит от того, сколько всего идентификаторов в пуле и сколько из них будет в среднем занято.

Опять же, если это 128 битный int, то смело можно просто рандомно выдать и не хранить у себя что там занято, а что нет.

Slava
08.06.2018
17:27:54
Это тоже кандидат должен рассказать

Какие плюсы и минусы

Александр
08.06.2018
17:32:49
Нет, к сожалению нужно трекать, так как диапазон настраиваемый
генерим случайные id и кладем их в небуфиризированный канал ?

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
генерим случайные id и кладем их в небуфиризированный канал ?
> гочат > канал > вместо очереди/btree/heap'а Почему я не удивлён?

Александр
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
Может хоть queue?
и да я вкурсе что это приведет к блокировкам ?

но я специально довел до абсурда реализацию

мы можем завести переменную типа int и увеличивать ее ?

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

только атомик

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

Страница 1140 из 1630