Skip to content

[3pt] feedback: Решение конфликтов репликации | Tarantool #2478

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Tracked by #2802
TarantoolBot opened this issue Dec 2, 2021 · 0 comments
Labels
add details [nature] More details needed, some info missing. Documentation is incomplete. replication [area] Related to Replication

Comments

@TarantoolBot
Copy link
Collaborator

TarantoolBot commented Dec 2, 2021

Product: Tarantool
Root document: https://www.tarantool.io/en/doc/latest/book/replication/repl_problem_solving/#replacing-the-same-primary-key
SME: @ alyapunov

Details

Feedback from a user:

<…>ы получить доступ к создаваемому спейсу. В результате код будет |выглядеть следующим образом|:

https://www.tarantool.io/en/doc/latest/book/replication/repl_problem_solving/#replacing-the-same-primary-key

Добрый день, в документации приведен пример установки треггера для резолва master-master. Если я не ошибаюсь, тригер в таком случае будет выпонятся для загружаемых из WAL записей.
Я отслеживал box.info.status чтобы этого избежать.

local function loading_before_replace(old, new)
    if box.info.status == "loading" then
        return
    end
    box.space.my_space_name:before_replace(before_replace, loading_before_replace)
    return before_replace(old,new)
end

Возможно будет полезно кому-то.


** Questions to and comments from @ alyapunov **

  • Триггер выполняется для загружаемых из WAL записей?
    Это зависит от того, что в "my_trigger", могу предположить.
    Когда загружается WAL (речь ведь идет про recovery, когда Тарантул перезапущен), memtx находится в частично рабочем состоянии. Это неизбежно - без полностью загруженных данных нет полной картины состояния БД. В частности все selectы для определенности возвращают пустоту. Судя по всем такой хитрый триггер просто не будет работать как ожидается.
    Собственно, это всегда надо иметь ввиду при использовании on_schema_init.

  • Почему выполнять триггер для записей из WAL может быть плохо?

Это скорее всего просто бессмысленно - если данные есть в WAL, то триггер по ним уже отработал в тот момент, когда эти данные попадали в WAL. Второй раз не нужно.

ToDo

@veod32 veod32 added server [area] Task relates to Tarantool's server (core) functionality user_guide [location] Tarantool manual, User's Guide part add details [nature] More details needed, some info missing. Documentation is incomplete. labels Jan 13, 2022
@veod32 veod32 changed the title feedback: Решение конфликтов репликации | Tarantool [3pt] feedback: Решение конфликтов репликации | Tarantool Jan 13, 2022
@veod32 veod32 mentioned this issue Jun 20, 2022
19 tasks
@veod32 veod32 removed this from the Estimate [@veod32] milestone Jun 20, 2022
@TarantoolBot TarantoolBot removed the 3sp label Jun 7, 2023
@veod32 veod32 added replication [area] Related to Replication and removed user_guide [location] Tarantool manual, User's Guide part server [area] Task relates to Tarantool's server (core) functionality labels Jun 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
add details [nature] More details needed, some info missing. Documentation is incomplete. replication [area] Related to Replication
Projects
None yet
Development

No branches or pull requests

3 participants