mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-15 12:30:38 +00:00
* feat/inverted-index-cache: Update dependencies and add caching for inverted index reader - Updated `atomic` to 0.6.0 and `uuid` to 1.9.1 in `Cargo.lock`. - Added `moka` and `uuid` dependencies in `Cargo.toml`. - Introduced `seek_read` method in `InvertedIndexBlobReader` for common seek and read operations. - Added `cache.rs` module to implement caching for inverted index reader using `moka`. - Updated `async-compression` to 0.4.11 in `puffin/Cargo.toml`. * feat/inverted-index-cache: Refactor InvertedIndexReader and Add Index Cache Support - Refactored `InvertedIndexReader` to include `seek_read` method and default implementations for `fst` and `bitmap`. - Implemented `seek_read` in `InvertedIndexBlobReader` and `CachedInvertedIndexBlobReader`. - Introduced `InvertedIndexCache` in `CacheManager` and `SstIndexApplier`. - Updated `SstIndexApplierBuilder` to accept and utilize `InvertedIndexCache`. - Added `From<FileId> for Uuid` implementation. * feat/inverted-index-cache: Update Cargo.toml and refactor SstIndexApplier - Moved `uuid.workspace` entry in Cargo.toml for better organization. * feat/inverted-index-cache: Refactor InvertedIndexCache to use type alias for Arc - Replaced `Arc<InvertedIndexCache>` with `InvertedIndexCacheRef` type alias. * feat/inverted-index-cache: Add Prometheus metrics and caching improvements for inverted index - Introduced `prometheus` and `puffin` dependencies for metrics. * feat/inverted-index-cache: Refactor InvertedIndexReader and Cache handling - Simplified `InvertedIndexReader` trait by removing seek-related comments. * feat/inverted-index-cache: Add configurable cache sizes for inverted index metadata and content - Introduced `index_metadata_size` and `index_content_size` in `CacheManagerBuilder`. * feat/inverted-index-cache: Refactor and optimize inverted index caching - Removed `metrics.rs` and integrated cache metrics into `index.rs`. * feat/inverted-index-cache: Remove unused dependencies from Cargo.lock and Cargo.toml - Removed `moka`, `prometheus`, and `puffin` dependencies from both Cargo.lock and Cargo.toml. * feat/inverted-index-cache: Replace Uuid with FileId in CachedInvertedIndexBlobReader - Updated `file_id` type from `Uuid` to `FileId` in `CachedInvertedIndexBlobReader` and related methods. * feat/inverted-index-cache: Refactor cache configuration for inverted index - Moved `inverted_index_metadata_cache_size` and `inverted_index_cache_size` from `MitoConfig` to `InvertedIndexConfig`. * feat/inverted-index-cache: Remove unnecessary conversion of `file_id` in `SstIndexApplier` - Simplified the initialization of `CachedInvertedIndexBlobReader` by removing the redundant `into()` conversion for `file_id`.
Setup tests for multiple storage backend
To run the integration test, please copy .env.example to .env in the project root folder and change the values on need.
Take s3 for example. You need to set your S3 bucket, access key id and secret key:
# Settings for s3 test
GT_S3_BUCKET=S3 bucket
GT_S3_REGION=S3 region
GT_S3_ACCESS_KEY_ID=S3 access key id
GT_S3_ACCESS_KEY=S3 secret access key
Run
Execute the following command in the project root folder:
cargo test integration
Test s3 storage:
cargo test s3
Test oss storage:
cargo test oss
Test azblob storage:
cargo test azblob
Setup tests with Kafka wal
To run the integration test, please copy .env.example to .env in the project root folder and change the values on need.
GT_KAFKA_ENDPOINTS = localhost:9092
Setup kafka standalone
cd tests-integration/fixtures/kafka
docker compose -f docker-compose-standalone.yml up