tarantool / tarantool/doc

Enforcement of synchronous replication for system spaces

Open
#4,452 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
CSS
Stars
15
Forks
49
Avg merge
1d 13h
Merged PRs (30d)
3

Description

Product: Tarantool
Since: 3.2
Root documents: https://tarantool.io/compat/box_consider_system_spaces_synchronous
and https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_space/
and https://www.tarantool.io/en/doc/latest/concepts/replication/repl_sync/
and https://www.tarantool.io/ru/doc/latest/reference/reference_lua/box_info/synchro/
and https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_schema/space_create/#space-opts-is-sync

Synchronous replication is now enabled for most systems spaces when the
synchronous queue is claimed (i.e., box.info.synchro.queue.owner ~= 0),
regardless of the user-provided is_sync space option. We do not enable
synchronous replication for the following system spaces:

  • vinyl_defer_delete - it's a local space, doesn't need replication;
  • sequence_data - it's synchronized by synchronous user spaces
    operations.

A box_consider_system_spaces_synchronous backward compatibility option
was added to control this behaviour - please add a new
https://tarantool.io/compat/box_consider_system_spaces_synchronous page for
it.

A new read-only state subtable for the Lua space object returned from the
box.space registry with an is_sync field is added to reflect the
effective state of replication for system spaces. For user spaces, this
field will always mirror the is_sync option set for the space.
Requested by @CuriousGeorgiy in https://github.com/tarantool/tarantool/commit/371fa0dc0f49a00bcc839b6a1976884a5d12fd80.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Create the compatibility page for box_consider_system_spaces_synchronous, using the linked compatibility and replication references as the starting point. Document when synchronous replication is enforced, the exceptions for vinyl_defer_delete and sequence_data, and how the read-only box.space state.is_sync field reflects effective behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.