[SERVER-81909] AutoMerger's `_maxHistoryTimeCurrentRound` never updated due to variable shadowing Created: 05/Oct/23  Updated: 08/Nov/23

Status: Backlog
Project: Core Server
Component/s: None
Affects Version/s: 7.2.0-rc0, 7.0.2, 7.1.0
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Pierlauro Sciarelli Assignee: Backlog - Catalog and Routing
Resolution: Unresolved Votes: 0
Labels: car-qw
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Catalog and Routing
Operating System: ALL
Sprint: Sharding EMEA 2023-10-30
Participants:
Story Points: 2

 Description   

The _maxHistoryTimeCurrentRound variable supposed to drive auto-merging scanning is never updated due to a variable shadowing that was committed involuntarily.

This is not a correctness bug since it results in "simply" forcing the auto-merger to unnecessarily scan through chunks already inspected in previous rounds.

Purpose of this ticket is to understand whether it makes sense to fix this bug or just get rid of the variable: fixing this performance bug would mean introducing a correctness bug since the auto-merger would skip scanning chunks that were split without being migrated. The side effect would be produced by this query that only returns chunks result of a migration (splits don't change onCurrentShardSince).

Other options would be:

  • Force a reset of _maxHistoryTimePreviousRound when a split happens
  • Or - more fine grained - keep a _maxHistoryTimePreviousRound per collection and just reset it for collections that undergo some split

Generated at Thu Feb 08 06:47:43 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.