Skip to content

benches,benchmark: refactor for testing search and delete - #541

Merged
QuerthDP merged 7 commits into
scylladb:masterfrom
ewienik:vector-781-refactor-benches
Aug 6, 2026
Merged

benches,benchmark: refactor for testing search and delete#541
QuerthDP merged 7 commits into
scylladb:masterfrom
ewienik:vector-781-refactor-benches

Conversation

@ewienik

@ewienik ewienik commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

We need performance tests for benchmarking parallel search and delete operations.

This PR refactors benches and introduces new tests: cdc-delete and search-while-deleting.

Additionally this PR adds new benchmark command delete-rows to be able to simulate massive deletion from table.

For faster benchmark testing this PR refactors loading data from parquet file by running reading from disk parallel to the uploading data to scylladb.

Fixes: VECTOR-781

@ewienik
ewienik force-pushed the vector-781-refactor-benches branch from 1d41ee9 to 01cab0c Compare July 31, 2026 16:26
@ewienik
ewienik marked this pull request as ready for review July 31, 2026 16:29
ewienik added 7 commits August 3, 2026 13:10
This commit setup usearch simulator with 1us waiting time as a configuration
for pipeline benches (it will test the pipeline only).
Module table uses Timestamp(0) value as an initial value for tombstone, so to
be able to update value each timestamp must be higher. This commit fixes this.
It renames fullscan-add into fullscan-insert and cdc-add into cdc-insert to better
follow cql syntax.
All *-while-* tests use two background traffic - the first described with the
test name (we test search against this traffic on the same index). The second
is for filling Worker tasks with traffic from other index (simulates busy
vector-store). This commit refactors the second one - it makes it a search with
high concurrency. It simplifies background traffic management.
This commit adds new tests for benchmarking pipeline for deleting during cdc
and for testing searches while deleting.
To measure performance of search during handling massive deletion we need to
have ability to remove rows one by one. This commit adds command for this.
This commit refactors parquet data reading to be more performant.  It adds
concurrent reading rows groups from parquet file and adds buffering of the
first bucket from the parquet file. The first bucket seems to be most
expensive. The change lets reading from file in parallel to sending rows to the
db.
@ewienik

ewienik commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator Author

Changelog for 7602460

  • rebase to master
range diff
1:  3c0b2affd = 1:  a31cb4dcf benches: setup usearch simulator with 1us time
2:  ae1d96cfe = 2:  27d66c4de benches: increase timestamp as 0 is the initial timestamp in table mod
3:  855352762 = 3:  7115554ee benches: rename add into insert
4:  3791f4e4a = 4:  ccda0ec44 benches: refactor benches background task
5:  50ecb437d = 5:  48073ba1b benches: add cdc-delete and search-while-deleting tests
6:  c8820f34e = 6:  5bfd75734 benchmark: add delete-rows command
7:  01cab0c8a = 7:  760246027 benchmark: refactor reading parquet dataset

@QuerthDP

QuerthDP commented Aug 6, 2026

Copy link
Copy Markdown
Member

beches,benchmark: refactor for testing search and delete

typo: beches -> benches

@QuerthDP QuerthDP left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving some concerns. Although the patch looks quite fine.

Comment thread crates/vector-store/benches/pipeline.rs
Comment thread crates/vector-store/benches/pipeline.rs
Comment thread crates/benchmark/src/db.rs
Comment thread crates/benchmark/src/data/parquet.rs
@ewienik ewienik changed the title beches,benchmark: refactor for testing search and delete benches,benchmark: refactor for testing search and delete Aug 6, 2026
@ewienik
ewienik requested a review from QuerthDP August 6, 2026 12:07
Comment thread crates/benchmark/src/data/fbin.rs
@ewienik
ewienik requested a review from QuerthDP August 6, 2026 13:10
@QuerthDP
QuerthDP added this pull request to the merge queue Aug 6, 2026
Merged via the queue into scylladb:master with commit 20e86c9 Aug 6, 2026
45 checks passed
@ewienik
ewienik deleted the vector-781-refactor-benches branch August 7, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants