но переделать практически не реально
                  
                  
                  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
                  
                  
                  
                  
                  
                  Вроде должно работать, можете покритиковать?
                  
                  
                
Можно каждому мастеру резервировать диапазон
Обсуждают сегодня