Skip to content

Comments

GigaMap concurrency handling improvements and eventual indexing#564

Open
fh-ms wants to merge 15 commits intomainfrom
gigamap-jvector-update
Open

GigaMap concurrency handling improvements and eventual indexing#564
fh-ms wants to merge 15 commits intomainfrom
gigamap-jvector-update

Conversation

@fh-ms
Copy link
Contributor

@fh-ms fh-ms commented Feb 20, 2026

  • Consolidated various background managers into BackgroundTaskManager for simplified task handling.
  • Improved thread safety, synchronization, and handling for builder operations in VectorIndex.
  • Updated conditional statements in VectorEntry for consistency and removed redundant checks in VectorIndex.
  • Updated default behavior for parallel on-disk writes to disabled.
  • Added eventual indexing feature to reduce latency of mutation operations.
  • Added stress tests, performance tests.
  • Incremented jvector dependency to 4.0.0-rc.8.

fh-ms added 15 commits February 17, 2026 12:10
…rIndex

- Added `BackgroundIndexingManager` interface to manage background graph indexing.
- Implemented a default asynchronous queue-based manager for deferred HNSW operations.
- Added unit tests to validate eventual indexing behavior across add, update, remove, and bulk operations.
- Introduced stress test cases to validate VectorIndex under heavy concurrent operations.
- Tests cover various configurations, including in-memory and on-disk setups with/without PQ compression and background tasks.
- Ensured thread safety via assertions for no exceptions or deadlocks.
- Included targeted eventual indexing and heavy load scenarios for robustness.
…ndex

- Introduced test cases to evaluate insertion performance (single and batch adds) between synchronous and eventual indexing modes.
- Verified search quality to ensure correctness of deferred graph indexing.
- Included detailed metrics on caller-visible speedup and indexing throughput.
… execute()

- Replaced the applyOperation method with per-operation execute() implementations in IndexingOperation types.
- Simplified indexing logic by encapsulating operation-specific behavior within each record.
- Improved maintainability and reduced duplication in BackgroundIndexingManager.
- Replaced `persistenceLock` with `builderLock` for unified read/write access control over builder operations.
- Introduced deferred operation handling for sync-mode mutations during cleanup phases.
- Improved thread-safety for concurrent graph updates by coordinating via builder read/write locks.
- Added `cleanupInProgress` flag and `deferredBuilderOps` queue to manage in-flight operations during cleanup and persistence tasks.
- Removed redundant `synchronized(parentMap)` calls to avoid lock-ordering issues.
…ectorIndexConfiguration with examples and configuration details.
…xamples and configuration guidance in VectorIndex JavaDoc.
… and BackgroundPersistenceManager into unified BackgroundTaskManager.
@fh-ms fh-ms requested a review from zdenek-jonas February 20, 2026 09:56
@fh-ms fh-ms added enhancement New feature or request GigaMap labels Feb 20, 2026
@fh-ms fh-ms added this to the 4.0.0 milestone Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request GigaMap

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant