feat: add rocksdb integration and hybrid search implementation#67
Open
ScissorJack-ever wants to merge 6 commits intoAlayaDB-AI:v1.0.0from
Open
feat: add rocksdb integration and hybrid search implementation#67ScissorJack-ever wants to merge 6 commits intoAlayaDB-AI:v1.0.0from
ScissorJack-ever wants to merge 6 commits intoAlayaDB-AI:v1.0.0from
Conversation
- Implement RocksDBStorage template class with Storage concept - Configure LZ4 for hot data, ZSTD for cold data compression - Add comprehensive test suite with 17 test cases covering basic operations, persistence, error handling, and compression - Improve error handling: throw on data corruption, sync metadata writes - Update dependencies: add RocksDB, compression libraries, and liburing support
…pace - Integrate RocksDBStorage into space classes for metadata persistence - Improve RocksDBStorage destructor for enhanced robustness - Extract RocksDBConfig as a dedicated struct to enable consistent configuration sharing - Add comprehensive tests to validate RocksDBStorage functionality across all supported spaces - Add enable-compression option in RocksDBConfig
- Add error checks for batch metadata insertion - Support optional metadata in insert/remove for SQ4Space and SQ8Space - Simplify RocksDBStorage batch_insert to return bool instead of vector - Remove unused snappy dependency
…lign with intended functionality. - Remove useless k parameter from search methods, now return ef candidates - Add ef >= k validation in RaBitQ search methods - Add explicit rerank step in Python bindings for quantized spaces - Update all tests to extract topk from ef candidates - Fix graph_update_job to use sufficient search space size
refactor: relocate reranking logic from index.hpp to graph_search_job.hpp feat: introduce metadata filtering to integrate with hybrid search feat: implement scalar data serialization/deserialization for RocksDB storage feat: expose hybrid search API in collection.py test: validate hybrid search with diverse filters and quantization types
- Link liburing to resolve RocksDB io_uring undefined references - Add exception handling for RaBitQ tests when AVX512 is unavailable - Display RocksDB and liburing versions in build summary
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Type of Change
Changes Made
Testing
Describe how you tested your changes:
Checklist
make lintand fixed any issuesmake test)