Size: a a a

2020 June 22

MM

Max Melentiev in Tarantool
с триггером вам проще - не нужно делать его строго до бокс.кфг, его можете как раз в ините и повесить одинаково для лидера и реплики
источник

GS

Guram Savinov in Tarantool
Max Melentiev
с триггером вам проще - не нужно делать его строго до бокс.кфг, его можете как раз в ините и повесить одинаково для лидера и реплики
в реплике в ините будет выполняться код еще до того как спейсы среплицированы
источник

MM

Max Melentiev in Tarantool
function callback() if box.space.my then do_stuff end end
источник

GS

Guram Savinov in Tarantool
что это даст? код не выполнится никогда на репликах
источник

MM

Max Melentiev in Tarantool
потом когда спэйс создасться, он выполнится
источник

GS

Guram Savinov in Tarantool
if будет висеть и ждать репликации спейса?
источник

MM

Max Melentiev in Tarantool
нет. вы этот колбэк и  в ините и в триггере вызывайте
источник

MM

Max Melentiev in Tarantool
вам же его в триггере все равно звать, чтобы изменения формата подхватыватть
источник

GS

Guram Savinov in Tarantool
local log = require('log')
   box.ctl.on_schema_init(function()
       log.info('on schema init')
       box.space._space:on_replace(function(old_space, new_space)
           log.info('on _space replace')
           log.info(old_space)
           log.info(new_space)
       end)
   end)
источник

GS

Guram Savinov in Tarantool
вот такое в init указал, ничего не выводится при старте кластера
источник

R

R-omk in Tarantool
источник

GS

Guram Savinov in Tarantool
т.е. такой триггер не работает в принципе?
источник

DS

Dmitry Sharonov in Tarantool
а спейсы то где создаются?
источник

MM

Max Melentiev in Tarantool
Guram Savinov
local log = require('log')
   box.ctl.on_schema_init(function()
       log.info('on schema init')
       box.space._space:on_replace(function(old_space, new_space)
           log.info('on _space replace')
           log.info(old_space)
           log.info(new_space)
       end)
   end)
вам не надо ctl_on_schema_init, т.к. у вас случай проще
источник

DS

Dmitry Sharonov in Tarantool
Guram Savinov
т.е. такой триггер не работает в принципе?
должен работать
источник

MM

Max Melentiev in Tarantool
он нужен, только если надо до/во времемя репликации что-то сделать. вам достаточно просто box.space._space:on_replace в ините вызвать
источник

R

R-omk in Tarantool
Dmitry Sharonov
должен работать
работать то должен,  просто его нужно запустить в нужное время в нужном месте, а api ролей картриджа это не предусматривают
источник

GS

Guram Savinov in Tarantool
Dmitry Sharonov
а спейсы то где создаются?
было до создания триггера, поменял на после, но не помогло
источник

DS

Dmitry Sharonov in Tarantool
да, понял. on_schema_init надо вызывать до бокс.цфг, это нельзя сделать из роли.
источник

DS

Dmitry Sharonov in Tarantool
впрочем вы, вероятно, можете обойтись без него - достаточно box.space._space:on_replace
источник