tarantool / tarantool/doc

New `box.commit` and `box.atomic` option `wait`

Open
#4,748 0 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

Target: 3.2.0.

It can be passed like this: box.commit({wait = ...}) or
box.atomic({wait = ...}, ...). The possible values:

  • 'complete' - default behaviour, block the current fiber until
    the txn is fully finished.
  • 'submit' - send the txn to the journal, release the fiber.
    Completion happens asynchronously. Can block the fiber if the
    journal queue is full, until the txn can fit into the queue.
  • 'none' - send the txn to the journal if the journal queue has
    space, otherwise fail right away. Commit with this option
    never yields.

In case of a Lua error being thrown the txn is rolled back, like
with the default behaviour, regardless of its wait mode.

The journal max size can be found and changed in
box.cfg.wal_queue_max_size. It affects when the wait modes
submit blocks and none fails.

TarantoolBot has missed the doc request somehow, so I've manually created the issue.
Source: https://github.com/tarantool/tarantool/pull/10225

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

The request concerns the box.commit({wait = ...}) and box.atomic({wait = ...}, ...) entry points; start by locating their existing API documentation. Document the complete, submit, and none modes, including wal_queue_max_size effects and rollback behavior, then verify the text matches the stated semantics.

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
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.