github-actions[bot] commented on code in PR #69896:
URL: https://github.com/apache/doris/pull/69896#discussion_r4462665542
##########
be/src/storage/task/engine_publish_version_task.cpp:
##########
@@ -317,6 +335,10 @@ Status EnginePublishVersionTask::execute() {
}
}
}
+ for (const RowsetSharedPtr& changelog_rowset : attached_changelog_rowsets)
{
+ const RowsetMetaSharedPtr& rowset_meta =
changelog_rowset->rowset_meta();
+ tablet_id_to_num_delta_rows.insert({rowset_meta->tablet_id(),
rowset_meta->num_rows()});
Review Comment:
[P2] Negotiate changelog deltas before extending the base-only report
The [supported rolling-upgrade
order](https://doris.apache.org/docs/4.x/admin-manual/cluster-management/upgrade/)
upgrades BE before FE. During that window, a pre-PR FE's
`AnalysisManager.replayUpdateRowsRecord` sums every entry in this existing map
into base `updatedRows`, without classifying the new changelog tablet IDs. An
insert producing 10 base rows and 10 changelog rows on each of three replicas
therefore records `60 / 3 = 20` base delta rows instead of 10, inflating the
base statistics counter and any row-preserving estimate that uses its delta.
The new FE classifier cannot protect the old master, and
`PublishVersionTask.toThrift()` sends no capability indicating that the
receiver understands companion rows. Gate this reporting on a negotiated
capability, or carry changelog deltas in a separate optional field that old FEs
ignore, and cover the old-reader/new-writer case.
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]