@@ -6,6 +6,8 @@ use crate::{
6
6
types:: CleanupMode ,
7
7
} ;
8
8
use async_trait:: async_trait;
9
+ use chroma_blockstore:: RootManager ;
10
+ use chroma_cache:: nop:: NopCache ;
9
11
use chroma_config:: {
10
12
assignment:: assignment_policy:: AssignmentPolicy , registry:: Registry , Configurable ,
11
13
} ;
@@ -38,6 +40,7 @@ pub(crate) struct GarbageCollector {
38
40
disabled_collections : HashSet < CollectionUuid > ,
39
41
sysdb_client : SysDb ,
40
42
storage : Storage ,
43
+ root_manager : RootManager ,
41
44
dispatcher : Option < ComponentHandle < Dispatcher > > ,
42
45
system : Option < chroma_system:: System > ,
43
46
assignment_policy : Box < dyn AssignmentPolicy > ,
@@ -74,6 +77,7 @@ impl GarbageCollector {
74
77
disabled_collections : HashSet < CollectionUuid > ,
75
78
sysdb_client : SysDb ,
76
79
storage : Storage ,
80
+ root_manager : RootManager ,
77
81
default_cleanup_mode : CleanupMode ,
78
82
tenant_mode_overrides : Option < HashMap < String , CleanupMode > > ,
79
83
assignment_policy : Box < dyn AssignmentPolicy > ,
@@ -88,6 +92,7 @@ impl GarbageCollector {
88
92
disabled_collections,
89
93
sysdb_client,
90
94
storage,
95
+ root_manager,
91
96
dispatcher : None ,
92
97
system : None ,
93
98
default_cleanup_mode,
@@ -134,10 +139,12 @@ impl GarbageCollector {
134
139
let orchestrator = GarbageCollectorOrchestrator :: new (
135
140
collection. id ,
136
141
collection. version_file_path ,
142
+ None , // todo
137
143
absolute_cutoff_time,
138
144
self . sysdb_client . clone ( ) ,
139
145
dispatcher. clone ( ) ,
140
146
self . storage . clone ( ) ,
147
+ self . root_manager . clone ( ) ,
141
148
cleanup_mode,
142
149
) ;
143
150
@@ -368,6 +375,7 @@ impl Configurable<GarbageCollectorConfig> for GarbageCollector {
368
375
let sysdb_config = SysDbConfig :: Grpc ( config. sysdb_config . clone ( ) ) ;
369
376
let sysdb_client = SysDb :: try_from_config ( & sysdb_config, registry) . await ?;
370
377
let storage = Storage :: try_from_config ( & config. storage_config , registry) . await ?;
378
+ let root_manager = RootManager :: new ( storage. clone ( ) , Box :: new ( NopCache ) ) ; // todo
371
379
372
380
let mut disabled_collections = HashSet :: new ( ) ;
373
381
for collection_id_str in config. disallow_collections . iter ( ) {
@@ -393,6 +401,7 @@ impl Configurable<GarbageCollectorConfig> for GarbageCollector {
393
401
disabled_collections,
394
402
sysdb_client,
395
403
storage,
404
+ root_manager,
396
405
config. default_mode ,
397
406
config. tenant_mode_overrides . clone ( ) ,
398
407
assignment_policy,
0 commit comments