tarantool / tarantool/doc

Document recovery point API

Open Beginner friendly
#5,697 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

Product: Tarantool
Since: 3.8

box.backup.recovery_point.create() is introduced to create
recovery point. Recovery point is point in xlog to which one can
truncate it to produce committed state at the time of point creation. The
recovery point has replica_id, lsn pair which unambiguously specify
a statement in xlog. The statement itself should be included on
truncation.

The result is table:

tarantool> box.backup.recovery_point.create()
---
- lsn: 46
  timestamp: 1782208661.7946
  replica_id: 1
...

Result fields are:

  • timestamp - Unix-time of recovery point in seconds. It is less than
    or equal to commit time of recovery point entry and larger than or
    equal to time of recovery point creation API call.
  • replica_id - replica_id of recovery point statement in xlog.
  • lsn - lsn of recovery point statement in xlog.

Create can also take a label as options parameter:

tarantool> box.backup.recovery_point.create({label = 'label-1'})
- lsn: 46
  timestamp: 1782208661.7946
  replica_id: 1
  label: label-1

Recovery points are persistent and replicated.

New box.backup.info().recovery_points field shows all created recovery
points that resides in xlogs of backup in progress.

tarantool> box.backup.recovery_point.create()
tarantool> box.backup.recovery_point.create({label = 'label-1'})
tarantool> box.backup.start()
tarantool> box.backup.info().recovery_points
---
- - lsn: 1
    timestamp: 1782208906.2023
    replica_id: 1
  - lsn: 3
    timestamp: 1782208908.4776
    replica_id: 1
    label: label-1
...

Requested by @nshy in https://github.com/tarantool/tarantool/commit/73b2b4bff1629c21288258536b5607b02a680994.

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

Start by finding the existing documentation for box.backup and its info() API, then add the box.backup.recovery_point.create() entry point and the recovery_points field. Document the result fields, optional label, persistence and replication behavior, and the backup-in-progress example shown in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.