File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -637,6 +637,7 @@ impl SegmentEntry for Segment {
637637 ( _, _) => { }
638638 }
639639
640+ // Capture all flushers first to improve data consistency
640641 let vector_storage_flushers: Vec < _ > = self
641642 . vector_data
642643 . values ( )
Original file line number Diff line number Diff line change @@ -74,16 +74,17 @@ impl SegmentHolder {
7474 // as it is exclusive
7575 let mut background_flush_lock = self . lock_flushing ( ) ?;
7676
77+ // Capture all flushers first to improve data consistency
78+ let flushers: Vec < _ > = segment_reads
79+ . iter ( )
80+ . filter_map ( |read_segment| read_segment. flusher ( force) )
81+ . collect ( ) ;
82+
7783 if sync {
78- for read_segment in segment_reads . iter ( ) {
79- read_segment . flush ( force ) ?;
84+ for flusher in flushers {
85+ flusher ( ) ?;
8086 }
8187 } else {
82- let flushers: Vec < _ > = segment_reads
83- . iter ( )
84- . filter_map ( |read_segment| read_segment. flusher ( force) )
85- . collect ( ) ;
86-
8788 * background_flush_lock = Some (
8889 std:: thread:: Builder :: new ( )
8990 . name ( "background_flush" . to_string ( ) )
You can’t perform that action at this time.
0 commit comments