Skip to content

Commit 92db85d

Browse files
committed
[ENH]: bump foyer to v0.17.0
Signed-off-by: MrCroxx <[email protected]>
1 parent ec1f94c commit 92db85d

File tree

4 files changed

+54
-26
lines changed

4 files changed

+54
-26
lines changed

Cargo.lock

+12-11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/blockstore/src/arrow/block/types.rs

+27
Original file line numberDiff line numberDiff line change
@@ -863,3 +863,30 @@ where
863863

864864
Ok(())
865865
}
866+
867+
#[cfg(test)]
868+
mod tests {
869+
870+
use std::sync::Arc;
871+
872+
use arrow::{
873+
array::Int32Array,
874+
datatypes::{DataType, Field, Schema},
875+
};
876+
877+
use super::*;
878+
879+
#[test]
880+
fn test_block_serde() {
881+
let batch = RecordBatch::try_new(
882+
Arc::new(Schema::new(vec![Field::new("id", DataType::Int32, false)])),
883+
vec![Arc::new(Int32Array::from(vec![1, 2, 3, 4, 5]))],
884+
)
885+
.unwrap();
886+
let b1 = Block::from_record_batch(Uuid::new_v4(), batch.clone());
887+
let bytes = bincode::serialize(&b1).unwrap();
888+
let b2 = bincode::deserialize::<Block>(&bytes).unwrap();
889+
assert_eq!(b1.id, b2.id);
890+
assert_eq!(b1.data.0, b2.data.0);
891+
}
892+
}

rust/cache/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ path = "src/lib.rs"
88

99
[dependencies]
1010
clap = { workspace = true }
11-
foyer = { version = "0.15.3", features = ["tracing"] }
12-
mixtrics = { version = "0.0.4", features = ["opentelemetry_0_27"] }
11+
foyer = { version = "0.17.0", features = ["tracing", "serde"] }
12+
mixtrics = { version = "0.1.0", features = ["opentelemetry_0_27"] }
1313
anyhow = "1.0"
1414
opentelemetry = { version = "0.27.0", default-features = false, features = ["trace", "metrics"] }
1515

rust/cache/src/foyer.rs

+13-13
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use chroma_error::ChromaError;
44
use clap::Parser;
55
use foyer::{
66
CacheBuilder, DirectFsDeviceOptions, Engine, FifoConfig, FifoPicker, HybridCacheBuilder,
7-
InvalidRatioPicker, LargeEngineOptions, LfuConfig, LruConfig, RateLimitPicker, S3FifoConfig,
8-
StorageKey, StorageValue, TracingOptions,
7+
InvalidRatioPicker, LargeEngineOptions, LfuConfig, LruConfig, S3FifoConfig, StorageKey,
8+
StorageValue, Throttle, TracingOptions,
99
};
1010
use opentelemetry::global;
1111
use serde::{Deserialize, Serialize};
@@ -391,14 +391,19 @@ where
391391
)));
392392
};
393393

394-
let mut builder = builder
394+
let mut device_options = DirectFsDeviceOptions::new(dir)
395+
.with_capacity(config.disk * MIB)
396+
.with_file_size(config.file_size * MIB);
397+
if config.admission_rate_limit > 0 {
398+
device_options = device_options.with_throttle(
399+
Throttle::new().with_write_throughput(config.admission_rate_limit * MIB),
400+
);
401+
}
402+
403+
let builder = builder
395404
.with_weighter(|_, v| v.weight())
396405
.storage(Engine::Large)
397-
.with_device_options(
398-
DirectFsDeviceOptions::new(dir)
399-
.with_capacity(config.disk * MIB)
400-
.with_file_size(config.file_size * MIB),
401-
)
406+
.with_device_options(device_options)
402407
.with_flush(config.flush)
403408
.with_recover_mode(foyer::RecoverMode::Strict)
404409
.with_large_object_disk_cache_options(
@@ -414,11 +419,6 @@ where
414419
]),
415420
);
416421

417-
if config.admission_rate_limit > 0 {
418-
builder = builder.with_admission_picker(Arc::new(RateLimitPicker::new(
419-
config.admission_rate_limit * MIB,
420-
)));
421-
}
422422
let cache = builder.build().await.map_err(|e| {
423423
CacheError::InvalidCacheConfig(format!("builder failed: {:?}", e)).boxed()
424424
})?;

0 commit comments

Comments
 (0)