mrproliu commented on PR #1133:
URL: 
https://github.com/apache/skywalking-banyandb/pull/1133#issuecomment-4465122830

   Quick clarification on the trade-off before I pick a direction:
   
     Just restoring pre-walk and reverting Mark*++Counts doesn't fully bring 
the planned semantic back — for series and element_index, the visitor sets
   
     Counts = len(segmentFiles)
   
     at the top of VisitSeries / VisitElementIndex, but Mark* runs inside for 
targetSegments × shardIDs. When fan-out > 1 (typical hot → warm), Mark calls 
exceed source files and the report ends up with e.g. series.completion_rate = 
266.67%,
     while element_index flips the other way to single-digit % with errors = 0. 
Operators in the original SRE report flagged exactly those numbers.
   
     So "Counts = pre-walk source" and "rate stays in [0,100]" cannot both hold 
for series / element_index under the current visitor shape. To avoid the 266% 
regression there are three options:
   
     1. Document & accept: keep pre-walk semantic, treat rate > 100% as 
"fan-out write count exceeded source count" and document it.
     2. Bump report_version to 2.1: add planned_* fields from pre-walk 
alongside existing fields; old fields stay [0,100], planned_completion_rate 
gives the mid-flight progress signal.
     3. Refactor the visitor: collapse per-source Mark* to one call (lose 
per-target granularity for retries, but Counts = source = mark calls becomes 
consistent).
   
     Which one do you prefer?
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to