Skip to content

CASSANDRA-21644 Fix concurrent SAI vector inserts failing once jvector's per-graph pool limit is exceeded - #5101

Open
JeremiahDJordan wants to merge 4 commits into
apache:trunkfrom
JeremiahDJordan:CASSANDRA-21644-vectormemoryindex-jvector-cap
Open

CASSANDRA-21644 Fix concurrent SAI vector inserts failing once jvector's per-graph pool limit is exceeded#5101
JeremiahDJordan wants to merge 4 commits into
apache:trunkfrom
JeremiahDJordan:CASSANDRA-21644-vectormemoryindex-jvector-cap

Conversation

@JeremiahDJordan

Copy link
Copy Markdown
Contributor

Fix concurrent SAI vector inserts failing once jvector's per-graph pool limit is exceeded.

…aph pool limit

patch by Jeremiah Jordan; reviewed by XXX for CASSANDRA-21644
…ol limit is exceeded

patch by Jeremiah Jordan; reviewed by XXX for CASSANDRA-21644
…urrent writers

Review update: TrieMemtable and the locking ShardedSkipListMemtable serialize updates per shard, so when they have no
more shards than jvector's per-builder limit there is nothing for the semaphore to bound. Add
Memtable.limitsConcurrentWritesTo(int), false by default, and let OnHeapGraph leave the semaphore out when it is true.

patch by Jeremiah Jordan; reviewed by XXX for CASSANDRA-21644
Review update: the mocked memtable always answered false to limitsConcurrentWritesTo(), so the tests never took the
path where OnHeapGraph relies on the memtable and creates no semaphore. Have the mock answer according to the number
of writer threads each test actually uses, so the tests within jvector's limit skip the semaphore and the test beyond
it exercises it. The memtable implementations themselves are covered by MemtableConcurrentWriteLimitTest. Also the
doc nit.

patch by Jeremiah Jordan; reviewed by XXX for CASSANDRA-21644
@JeremiahDJordan
JeremiahDJordan force-pushed the CASSANDRA-21644-vectormemoryindex-jvector-cap branch from 14ae442 to 018fc95 Compare September 4, 2026 23:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant