• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 37915311274
88%

Build:
DEFAULT BRANCH: master
Ran 09 Oct 2026 10:20AM UTC
Jobs 1
Files 528
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Oct 2026 10:04AM UTC coverage: 87.907% (-0.04%) from 87.948%
37915311274

push

github

sergepetrenko
box: throttle non-system read view creation

Now that read view versions are always assigned honestly (the previous
commit dropped the reusing mechanism), the read_view_version counter
consumption rate is only bounded by how often users create read views.
At 1000 opens per second the 32-bit counter would wrap around in 49 days,
which would break the block visibility tracking completely.

Bound the rate by throttling non-system read view creation: a new read view
may be opened only if at least 100 ms have passed since the previous one.
Introduced two helpers to deal with it:

 - read_view_is_throttled() tells whether the limit currently forbids
   opening a read view;
 - read_view_throttle() yields until it doesn't.

box.read_view.open() calls read_view_throttle() right before
read_view_new(), so it waits out the interval. Callers that can't afford
a fiber yield, for example Tarantool EE's C API for raw read views, call
read_view_is_throttled() and fail with the new ER_READ_VIEW_THROTTLED
error instead.

System read views (checkpoints, join) are not throttled - they are rare
by nature. Existing tests, which open read views in tight loops, use the
internal tweak to disable throttling.

Closes #13332

@TarantoolBot document
Title: Describe read view creation throttling
Since: 3.9.0, 3.8.2, 3.7.2

https://www.tarantool.io/en/doc/latest/platform/ddl_dml/read_views/#limitations

Read view creation is rate-limited: a new read view can be opened no more
often than once every 100 milliseconds. If
:ref:`box.read_view.open() <box-read_view-open>` is called before this
interval has elapsed since the previous read view was opened, it blocks
the calling fiber until the interval has elapsed. System read views
created, for example, to make a
:ref:`checkpoint <book_cfg_checkpoint_daemon>` or join a new
:ref:`replica <replication-architecture>` are not affected.

--

https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_read_view/open/

Read view creation ... (continued)

72374 of 121314 branches covered (59.66%)

20 of 21 new or added lines in 3 files covered. (95.24%)

68 existing lines in 21 files now uncovered.

108760 of 123721 relevant lines covered (87.91%)

1394428.43 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
99.01
-0.99% src/box/memtx_allocator.h

Coverage Regressions

Lines Coverage ∆ File
16
90.77
-0.36% src/box/box.cc
8
94.8
-1.66% src/box/vy_read_iterator.c
8
60.42
-5.56% src/lib/core/fio.c
5
93.81
-1.0% src/box/xrow_update_field.c
4
93.62
-2.13% src/box/vy_range.c
4
93.31
-1.27% src/lib/swim/swim_io.c
3
87.93
-0.14% src/box/vy_run.c
3
94.09
-0.01% src/lib/core/fiber.c
2
95.22
-0.21% src/box/replication.cc
2
87.88
-0.36% src/box/vy_stmt.c
2
81.38
-0.6% src/lib/core/coio.c
2
96.15
-3.85% src/lib/core/iostream.h
1
90.09
-0.07% src/box/applier.cc
1
97.91
-0.4% src/box/lua/read_view.c
1
94.64
-0.12% src/box/tuple_format.c
1
96.0
-4.0% src/box/user_def.c
1
92.75
0.2% src/box/vy_scheduler.c
1
85.93
0.01% src/box/xlog.c
1
89.82
0.06% src/box/xrow.c
1
90.38
-1.92% src/lib/core/trigger.cc
1
98.08
-0.32% src/lib/json/json.c
Jobs
ID Job ID Ran Files Coverage
1 37915311274.1 09 Oct 2026 10:20AM UTC 528
87.91
GitHub Action Run
Source Files on build 37915311274
  • Tree
  • List 528
  • Changed 32
  • Source Changed 0
  • Coverage Changed 32
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • c1823345 on github
  • Prev Build on master (#37902554309)
  • Next Build on master (#37949096675)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc