Skip to content

Commit f11fb40

Browse files
zhongzcevenyag
authored andcommitted
feat(index-cache): abstract IndexCache to be shared by multi types of indexes (GreptimeTeam#5219)
* feat(index-cache): abstract `IndexCache` to be shared by multi types of indexes Signed-off-by: Zhenchi <[email protected]> * fix typo Signed-off-by: Zhenchi <[email protected]> * fix: remove added label Signed-off-by: Zhenchi <[email protected]> * refactor: simplify cached reader impl Signed-off-by: Zhenchi <[email protected]> * rename func Signed-off-by: Zhenchi <[email protected]> --------- Signed-off-by: Zhenchi <[email protected]>
1 parent 2720f92 commit f11fb40

File tree

10 files changed

+467
-415
lines changed

10 files changed

+467
-415
lines changed

src/index/src/inverted_index/format/reader.rs

+11-2
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,21 @@ mod footer;
3131
/// InvertedIndexReader defines an asynchronous reader of inverted index data
3232
#[mockall::automock]
3333
#[async_trait]
34-
pub trait InvertedIndexReader: Send {
34+
pub trait InvertedIndexReader: Send + Sync {
3535
/// Seeks to given offset and reads data with exact size as provided.
3636
async fn range_read(&mut self, offset: u64, size: u32) -> Result<Vec<u8>>;
3737

3838
/// Reads the bytes in the given ranges.
39-
async fn read_vec(&mut self, ranges: &[Range<u64>]) -> Result<Vec<Bytes>>;
39+
async fn read_vec(&mut self, ranges: &[Range<u64>]) -> Result<Vec<Bytes>> {
40+
let mut result = Vec::with_capacity(ranges.len());
41+
for range in ranges {
42+
let data = self
43+
.range_read(range.start, (range.end - range.start) as u32)
44+
.await?;
45+
result.push(Bytes::from(data));
46+
}
47+
Ok(result)
48+
}
4049

4150
/// Retrieves metadata of all inverted indices stored within the blob.
4251
async fn metadata(&mut self) -> Result<Arc<InvertedIndexMetas>>;

src/index/src/inverted_index/format/reader/blob.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl<R> InvertedIndexBlobReader<R> {
5151
}
5252

5353
#[async_trait]
54-
impl<R: RangeReader> InvertedIndexReader for InvertedIndexBlobReader<R> {
54+
impl<R: RangeReader + Sync> InvertedIndexReader for InvertedIndexBlobReader<R> {
5555
async fn range_read(&mut self, offset: u64, size: u32) -> Result<Vec<u8>> {
5656
let buf = self
5757
.source

src/mito2/src/cache.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use store_api::storage::{ConcreteDataType, RegionId, TimeSeriesRowSelector};
3737

3838
use crate::cache::cache_size::parquet_meta_size;
3939
use crate::cache::file_cache::{FileType, IndexKey};
40-
use crate::cache::index::{InvertedIndexCache, InvertedIndexCacheRef};
40+
use crate::cache::index::inverted_index::{InvertedIndexCache, InvertedIndexCacheRef};
4141
use crate::cache::write_cache::WriteCacheRef;
4242
use crate::metrics::{CACHE_BYTES, CACHE_EVICTION, CACHE_HIT, CACHE_MISS};
4343
use crate::read::Batch;

0 commit comments

Comments
 (0)