feat(tvix/store): add redb PathInfoService

This provides a PathInfoService implementation using redb
(https://github.com/cberner/redb) as the underlying storage engine.

Both an in-memory variant, as well as a filesystem one is provided,
similar how it's done with the sled implementation.

Supersedes: https://cl.tvl.fyi/c/depot/+/11692
Change-Id: I744619c51bf2efd0fb63659b12a27cbe0b2fd6fc
Signed-off-by: Ilan Joselevich <personal@ilanjoselevich.com>
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11995
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Ilan Joselevich 2024-07-21 00:36:19 +02:00 committed by clbot
parent dbe698042d
commit 9f10a71ec5
10 changed files with 318 additions and 0 deletions

11
tvix/Cargo.lock generated
View file

@ -3209,6 +3209,15 @@ dependencies = [
"crossbeam-utils",
]
[[package]]
name = "redb"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6dd20d3cdeb9c7d2366a0b16b93b35b75aec15309fbeb7ce477138c9f68c8c0"
dependencies = [
"libc",
]
[[package]]
name = "redox_syscall"
version = "0.2.16"
@ -4808,6 +4817,7 @@ dependencies = [
"pin-project-lite",
"prost 0.13.1",
"prost-build 0.13.1",
"redb",
"rstest",
"rstest_reuse",
"serde",
@ -4994,6 +5004,7 @@ dependencies = [
"pin-project-lite",
"prost 0.13.1",
"prost-build 0.13.1",
"redb",
"reqwest",
"reqwest-middleware",
"rstest",