@@ -65,9 +65,6 @@ type streamReaders struct {
6565 columnsHeaderReader readerWithStats
6666 timestampsReader readerWithStats
6767
68- // Marker reader for tracking bytes read during streaming
69- markerDatReader readerWithStats
70-
7168 messageBloomValuesReader bloomValuesReader
7269 oldBloomValuesReader bloomValuesReader
7370 bloomValuesShards []bloomValuesReader
@@ -119,8 +116,6 @@ func (sr *streamReaders) reset() {
119116 sr .columnsHeaderReader .reset ()
120117 sr .timestampsReader .reset ()
121118
122- sr .markerDatReader .reset ()
123-
124119 sr .messageBloomValuesReader .reset ()
125120 sr .oldBloomValuesReader .reset ()
126121 for i := range sr .bloomValuesShards {
@@ -133,9 +128,7 @@ func (sr *streamReaders) reset() {
133128}
134129
135130func (sr * streamReaders ) init (partFormatVersion uint , columnNamesReader , columnIdxsReader , metaindexReader , indexReader ,
136- columnsHeaderIndexReader , columnsHeaderReader , timestampsReader filestream.ReadCloser ,
137- markerDatReader filestream.ReadCloser ,
138- messageBloomValuesReader , oldBloomValuesReader bloomValuesStreamReader , bloomValuesShards []bloomValuesStreamReader ,
131+ columnsHeaderIndexReader , columnsHeaderReader , timestampsReader filestream.ReadCloser , messageBloomValuesReader , oldBloomValuesReader bloomValuesStreamReader , bloomValuesShards []bloomValuesStreamReader ,
139132) {
140133 sr .partFormatVersion = partFormatVersion
141134
@@ -147,8 +140,6 @@ func (sr *streamReaders) init(partFormatVersion uint, columnNamesReader, columnI
147140 sr .columnsHeaderReader .init (columnsHeaderReader )
148141 sr .timestampsReader .init (timestampsReader )
149142
150- sr .markerDatReader .init (markerDatReader )
151-
152143 sr .messageBloomValuesReader .init (messageBloomValuesReader )
153144 sr .oldBloomValuesReader .init (oldBloomValuesReader )
154145 sr .bloomValuesShards = slicesutil .SetLength (sr .bloomValuesShards , len (bloomValuesShards ))
@@ -195,7 +186,6 @@ func (sr *streamReaders) MustClose() {
195186 sr .columnsHeaderIndexReader .MustClose ()
196187 sr .columnsHeaderReader .MustClose ()
197188 sr .timestampsReader .MustClose ()
198- sr .markerDatReader .MustClose ()
199189 sr .messageBloomValuesReader .MustClose ()
200190 sr .oldBloomValuesReader .MustClose ()
201191 for i := range sr .bloomValuesShards {
@@ -238,8 +228,8 @@ type blockStreamReader struct {
238228 // ph is the header for the part
239229 ph partHeader
240230
241- // marker aggregates marker data for the source part (delete, ttl, etc.) .
242- marker * marker
231+ // deleteMarker holds delete marker data for the given part.
232+ deleteMarker deleteMarker
243233
244234 // streamReaders contains data readers in stream mode
245235 streamReaders streamReaders
@@ -301,7 +291,7 @@ func (bsr *blockStreamReader) reset() {
301291 bsr .globalRowsCount = 0
302292 bsr .globalBlocksCount = 0
303293
304- bsr .marker = nil
294+ bsr .deleteMarker = deleteMarker {}
305295
306296 bsr .sidLast .reset ()
307297 bsr .minTimestampLast = 0
@@ -320,7 +310,7 @@ func (bsr *blockStreamReader) MustInitFromInmemoryPart(mp *inmemoryPart) {
320310 bsr .ph = mp .ph
321311
322312 // propagate delete-marker data
323- bsr .marker = nil
313+ bsr .deleteMarker = deleteMarker {}
324314
325315 // Initialize streamReaders
326316 columnNamesReader := mp .columnNames .NewReader ()
@@ -351,11 +341,15 @@ func (bsr *blockStreamReader) MustInitFromInmemoryPart(mp *inmemoryPart) {
351341
352342 bsr .streamReaders .init (bsr .ph .FormatVersion , columnNamesReader , columnIdxsReader , metaindexReader , indexReader ,
353343 columnsHeaderIndexReader , columnsHeaderReader , timestampsReader ,
354- nil , // no marker data reader for in-memory parts
355344 messageBloomValuesReader , oldBloomValuesReader , bloomValuesShards )
356345
357346 // Read metaindex data
358347 bsr .indexBlockHeaders = mustReadIndexBlockHeaders (bsr .indexBlockHeaders [:0 ], & bsr .streamReaders .metaindexReader )
348+
349+ // Link deleteMarker directly from in-memory part
350+ if len (mp .deleteMarker .blockIDs ) > 0 {
351+ bsr .deleteMarker = mp .deleteMarker
352+ }
359353}
360354
361355// MustInitFromFilePart initializes bsr from file part at the given path.
@@ -432,15 +426,14 @@ func (bsr *blockStreamReader) MustInitFromFilePart(path string) {
432426 // Initialize streamReaders
433427 bsr .streamReaders .init (bsr .ph .FormatVersion , columnNamesReader , columnIdxsReader , metaindexReader , indexReader ,
434428 columnsHeaderIndexReader , columnsHeaderReader , timestampsReader ,
435- markerDatReader ,
436429 messageBloomValuesReader , oldBloomValuesReader , bloomValuesShards )
437430
438431 // Read metaindex data
439432 bsr .indexBlockHeaders = mustReadIndexBlockHeaders (bsr .indexBlockHeaders [:0 ], & bsr .streamReaders .metaindexReader )
440433
441434 // Read marker index if available
442435 if markerDatReader != nil {
443- bsr .marker = mustReadMarkerData ( & bsr . streamReaders . markerDatReader , bsr . ph . BlocksCount )
436+ bsr .deleteMarker = mustReadDeleteMarkerData ( markerDatReader )
444437 }
445438}
446439
0 commit comments