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

tarantool / tarantool / 23045651624

13 Mar 2026 09:58AM UTC coverage: 87.666% (-0.02%) from 87.684%
23045651624

push

github

locker
vinyl: move write iterator construction to writer threads

Currently, a write iterator, which is used for executing dump and
compaction tasks, is created by the main thread. It works just fine now,
when the write iterator may use tuple formats created in the main
thread, but once we make the tuple format registry thread-local, it
won't be possible: a writer thread will have to create its own copies of
tuple formats for a write iterator. Since tuple formats are passed to
a write iterator at construction, we have to move write iterator
construction from the main thread to writer threads.

To achieve that, we add lists of dumped in-memory indexes and compacted
run slices to the task structure so that a writer thread can add them to
a write iterator. This should make the code a bit clearer anyway because
currently we use some non-straightforward logic to figure out which
mems/slices are included into a task. Also, we have to store the read
view LSNs in a task because the read view list may be modified in the
main thread while a task is in progress.

Needed for #12210

NO_DOC=internal
NO_TEST=already covered
NO_CHANGELOG=internal

70462 of 118575 branches covered (59.42%)

66 of 73 new or added lines in 2 files covered. (90.41%)

124 existing lines in 20 files now uncovered.

105957 of 120864 relevant lines covered (87.67%)

1356617.7 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

94.07
/src/box/vy_write_iterator.c


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc