bobhan1 opened a new pull request, #69266:
URL: https://github.com/apache/doris/pull/69266

   ### What problem does this PR solve?
   
   Related PR: #67989, #67813, #68104
   
   This follow-up checks commit inputs before publication and checks partition 
version information before returning a successful response. The two checks have 
different outcomes:
   
   - **Tablet input completeness:** FE sends the number of persisted temporary 
rowsets expected in each partition. MS checks these counts before the first 
commit, separately for each sub-transaction when applicable. A mismatch returns 
the existing `INVALID_ARGUMENT` status before any publication writes. Already 
`COMMITTED` transactions skip the full input check because concurrent lazy 
publication may have removed part of the input.
   - **Partition response completeness:** a retry can scan only the partitions 
still awaiting lazy publication and later return success with an incomplete 
version map. FE sends the expected partition count; MS clears the version 
results and related table statistics when the count differs, allowing FE to 
invalidate its version caches.
   
   BE reports whether a tablet actually persisted rowset metadata. This 
distinguishes skipped empty rowsets from persisted zero-row rowsets and 
preserves field presence through the Protobuf/Thrift reporting chain. Unknown 
counts from older BE reporting paths omit the tablet check. Ordinary loads, 
per-sub-transaction counts, and row-binlog tablet reports use the same presence 
semantics; optional fields support MS → FE → BE rolling upgrades and a shared 
MS serving older FE/BE versions.
   
   #### Relationship to #67989
   
   This branch preserves all three existing commits unchanged. The first two 
commits are the reproducer and stale temporary-key fix in #67989. The third 
adds **both** partition response validation and tablet input validation. #67989 
is limited to its original two commits so its MS-only fix can be merged 
independently. The incremental change in this PR is the third commit, 
`6f4fef750b4ecdb23d7e96ca5137af36c8e3c387`.
   
   #### Validation
   
   The branch preserves the exact previously validated source tree. Existing 
results for this revision:
   
   - Real FDB, ASAN: 13 focused MS tests passed, including successful 
concurrent lazy/immediate retries, empty-rowset cases, and three rejection 
tests that compare all KV metadata before and after failure.
   - FE: all 59 `CloudGlobalTransactionMgrTest` tests passed.
   - BE: four metadata-reporting/presence tests passed in the preceding 
validation; those BE sources are unchanged.
   - Protobuf C++/Java generation and absent, present-empty, multi-partition, 
and sub-transaction count round trips passed.
   
   The preceding full MS test run passed 40 active tests with one existing 
disabled test. It preceded the final field-number/error-code cleanup. No SQL 
end-to-end test or clang-tidy run is claimed. These are prior runs, not reruns 
for the branch split.
   
   ### Release note
   
   Detect incomplete tablet commit inputs before publication when counts are 
available, and invalidate FE version caches when successful commit responses 
contain incomplete partition information.
   
   ### Check List (For Author)
   
   - Test
       - [x] Unit Test
   - Behavior changed:
       - [x] Yes. Reject incomplete first-commit inputs and invalidate 
incomplete response caches when optional counts are present.
   - Does this need documentation?
       - [x] No. No new user-facing setting or syntax.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


-- 
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]

Reply via email to