но переделать практически не реально
local last_user = box.space.user.index.primary:max()
local uid = 1
if last_user then
uid = last_user[F.user.uid] + 1
end
Проблема начинается при master-master, когда одновременно идет запись в в оба мастера, бахает duplicate key
Возникла идея как починить эту историю, не переделывая на uuid и т.п.
1. Запрашиваем box.space.user.index.primary:max()
2. Ищем ближайшую чиселку, которая делится на кол-во мастеров
3. Прибавляем (кол-во мастеров) % (номер мастера) + 1
Вроде должно работать, можете покритиковать?
Можно каждому мастеру резервировать диапазон
Обсуждают сегодня