@@ -31,7 +31,7 @@ use crate::{
3131 key:: { StoreKey , hash_key} ,
3232 lookup_entry:: { LookupEntry , LookupValue } ,
3333 merge_iter:: MergeIter ,
34- meta_file:: { AmqfCache , MetaFile , MetaLookupResult , StaticSortedFileRange } ,
34+ meta_file:: { AmqfCache , MetaEntryFlags , MetaFile , MetaLookupResult , StaticSortedFileRange } ,
3535 meta_file_builder:: MetaFileBuilder ,
3636 parallel_scheduler:: ParallelScheduler ,
3737 sst_filter:: SstFilter ,
@@ -549,8 +549,8 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
549549 let seq = entry. sequence_number ( ) ;
550550 let range = entry. range ( ) ;
551551 let size = entry. size ( ) ;
552- let cold = entry. cold ( ) ;
553- ( seq, range. min_hash , range. max_hash , size, cold )
552+ let flags = entry. flags ( ) ;
553+ ( seq, range. min_hash , range. max_hash , size, flags )
554554 } )
555555 . collect :: < Vec < _ > > ( ) ;
556556 (
@@ -642,12 +642,12 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
642642 writeln ! ( log, "Commit {seq:08} {keys_written} keys in {span:#}" ) ?;
643643 for ( seq, family, ssts, obsolete) in new_meta_info {
644644 writeln ! ( log, "{seq:08} META family:{family}" , ) ?;
645- for ( seq, min, max, size, cold ) in ssts {
645+ for ( seq, min, max, size, flags ) in ssts {
646646 writeln ! (
647647 log,
648648 " {seq:08} SST {min:016x}-{max:016x} {} MiB ({})" ,
649649 size / 1024 / 1024 ,
650- if cold { "cold" } else { "warm" }
650+ flags
651651 ) ?;
652652 }
653653 for seq in obsolete {
@@ -930,7 +930,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
930930 . key_compression_dictionary_length ( ) ,
931931 block_count : entry. block_count ( ) ,
932932 size : entry. size ( ) ,
933- cold : entry. cold ( ) ,
933+ flags : entry. flags ( ) ,
934934 entries : 0 ,
935935 } ;
936936 return Ok ( PartialMergeResult :: Move {
@@ -945,7 +945,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
945945 total_key_size : usize ,
946946 path : & Path ,
947947 seq : u32 ,
948- cold : bool ,
948+ flags : MetaEntryFlags ,
949949 ) -> Result < ( u32 , File , StaticSortedFileBuilderMeta < ' static > ) >
950950 {
951951 let _span = tracing:: trace_span!( "write merged sst file" ) . entered ( ) ;
@@ -954,7 +954,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
954954 entries,
955955 total_key_size,
956956 & path. join ( format ! ( "{seq:08}.sst" ) ) ,
957- cold ,
957+ flags ,
958958 )
959959 } ) ?;
960960 Ok ( ( seq, file, meta) )
@@ -1036,13 +1036,16 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
10361036 + 1 ;
10371037
10381038 keys_written += collector. entries . len ( ) as u64 ;
1039+ let mut flags = MetaEntryFlags :: default ( ) ;
1040+ flags. set_cold ( !is_used) ;
1041+
10391042 new_sst_files. push ( create_sst_file (
10401043 & self . parallel_scheduler ,
10411044 & collector. entries ,
10421045 selected_total_key_size,
10431046 path,
10441047 seq,
1045- !is_used ,
1048+ flags ,
10461049 ) ?) ;
10471050
10481051 collector. entries . clear ( ) ;
@@ -1073,9 +1076,10 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
10731076 }
10741077
10751078 // If we have one set of entries left, write them to a new SST file
1076- for ( collector, cold) in
1077- [ ( & mut used_collector, false ) , ( & mut unused_collector, true ) ]
1078- {
1079+ for ( collector, flags) in [
1080+ ( & mut used_collector, MetaEntryFlags :: WARM ) ,
1081+ ( & mut unused_collector, MetaEntryFlags :: COLD ) ,
1082+ ] {
10791083 if collector. last_entries . is_empty ( )
10801084 && !collector. entries . is_empty ( )
10811085 {
@@ -1088,7 +1092,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
10881092 collector. total_key_size ,
10891093 path,
10901094 seq,
1091- cold ,
1095+ flags ,
10921096 ) ?) ;
10931097 } else
10941098 // If we have two sets of entries left, merge them and
@@ -1115,7 +1119,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
11151119 collector. last_entries_total_key_size / 2 ,
11161120 path,
11171121 seq1,
1118- cold ,
1122+ flags ,
11191123 ) ?) ;
11201124
11211125 keys_written += part2. len ( ) as u64 ;
@@ -1125,7 +1129,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
11251129 collector. last_entries_total_key_size / 2 ,
11261130 path,
11271131 seq2,
1128- cold ,
1132+ flags ,
11291133 ) ?) ;
11301134 }
11311135 }
@@ -1323,7 +1327,7 @@ impl<S: ParallelScheduler, const FAMILIES: usize> TurboPersistence<S, FAMILIES>
13231327 min_hash : entry. min_hash ( ) ,
13241328 max_hash : entry. max_hash ( ) ,
13251329 sst_size : entry. size ( ) ,
1326- cold : entry. cold ( ) ,
1330+ flags : entry. flags ( ) ,
13271331 amqf_size : entry. amqf_size ( ) ,
13281332 amqf_entries : amqf. len ( ) ,
13291333 key_compression_dictionary_size : entry
@@ -1364,7 +1368,7 @@ pub struct MetaFileEntryInfo {
13641368 pub amqf_size : u32 ,
13651369 pub amqf_entries : usize ,
13661370 pub sst_size : u64 ,
1367- pub cold : bool ,
1371+ pub flags : MetaEntryFlags ,
13681372 pub key_compression_dictionary_size : u16 ,
13691373 pub block_count : u16 ,
13701374}
0 commit comments