Упс, я почему-то был уверен, что ObjectId генерируется на сервере и гарантированно уникальным за счёт того, что монга как-то назначает всем machine_id во время инициализации шард/реплик. А оно, оказывается, даже не гарантирует уникальность _id и вообще на клиенте создаёт ObjectId.
"Жестокий мир с его riak'ами и uuid4'ами :(" продолжается.
> ObjectId is a 12-byte BSON type, constructed using: > a 4-byte timestamp, > a 3-byte machine identifier, > a 2-byte process id, and > a 3-byte counter, starting with a random value.
Ну теперь ничего не мешает, просто я хочу ГАРАНТИЙ УНИКАЛЬНОСТИ, а тут говно получается (хотя, конечно, если hostname настроить аккуратно, то всё норм).
норм
всё равно говнари, хочу чтоб сделали "задать функцию для вычисления _id". иначе какой скэйлэбилити.
НАЧНИ С СЕБЯ!
и чо
все это было в sql еще в восьмидесятые
Зачем?
зачем ты спрашиваешь? тебе все равно никто не ответит потому что ты пидорас
Упс, я почему-то был уверен, что ObjectId генерируется на сервере и гарантированно уникальным за счёт того, что монга как-то назначает всем machine_id во время инициализации шард/реплик. А оно, оказывается, даже не гарантирует уникальность _id и вообще на клиенте создаёт ObjectId.
"Жестокий мир с его riak'ами и uuid4'ами :(" продолжается.
> ObjectId is a 12-byte BSON type, constructed using:
> a 4-byte timestamp,
> a 3-byte machine identifier,
> a 2-byte process id, and
> a 3-byte counter, starting with a random value.
Вот этот "machine identifier" я не знал что это, по сути, socket.gethostname(). Я бы на его уникальность никогда не рассчитывал (хотя, может зря?).
>с его riak'ами и uuid4'ами
жс-блядь детектед.
не понимаю, что мешает написать самому-то?
ну а что просходит при переполнении каунтера?
Новый таймштамп.
оно блокирутся штоле? le lel
Но ведь за 16777216 операций хоть секунда, да пройдет!
К тому же это монга, здесь блокировки на каждый чих.
да ну нахуй, я слышал что global cluster lock починили таки! (на днях буквально)
Да ничего не происходит, просто в ноль и заново. Собственно, здесь проблемы никакой, т.к. timestamp.
ответ достойный жс-бляди
Ну теперь ничего не мешает, просто я хочу ГАРАНТИЙ УНИКАЛЬНОСТИ, а тут говно получается (хотя, конечно, если hostname настроить аккуратно, то всё норм).
Почему жс-блядь? Совсем нет.
в моём риак-клиенте нету никаких uuid'ов
Что ты несёшь? Какой жс-бляди?
На самом деле у меня питон был, когда смотрел (и да, там был uuid4).