master-master?
2. Используете ли триггер для конфликтов? Если да, то поделитесь плиз примером.
Я использую в проде несколько m-m реплик. Триггер для конфликтов не использую и вообще в первый раз слышу про это. Можно ссылку на доку? tnt 1.10
1. есть. конфликты разрешены на уровне логики приложения - одновременно запись только в разные спэйсы может быть. 2. использую без м-м. в приложении есть особенность, что могут приходить запросы на добавлние одинаковых данных данных и дубли надо игнорировать. триггер решает проблему при переключении мастера -- перед бокс.кфг box.ctl.on_schema_init(function() box.space._space:on_replace(function(old_space, new_space) if not old_space and new_space and new_space.name == 'response' then box.on_commit(function() Response.init_triggers() end) end end) end) ... function Response.init_triggers() Response.space():before_replace(function(old, new) if old and new and utils.tuples_equal(old, new) then return old end return new end) end
1. Используем m-m репликацию с memtx 2. Используем before_replace тригер. Но только для проверки бизнес-логики, конфликты у нас не случаются.
Обсуждают сегодня