Skip to content

[fix](cloud) Keep delete rowset schemas rowset-local - #67246

Draft
Yukang-Lian wants to merge 1 commit into
apache:masterfrom
Yukang-Lian:codex/fix-delete-rowset-schema-kv
Draft

Yukang-Lian wants to merge 1 commit into
apache:masterfrom
Yukang-Lian:codex/fix-delete-rowset-schema-kv

Conversation

@Yukang-Lian

Copy link
Copy Markdown
Collaborator

What problem does this PR solve?

Issue Number: None

Related PR: #62867

Problem Summary: Delete rowsets can carry only the columns needed by their predicates and omit indexes after a light schema change. MetaService treated those inline schemas as authoritative: commit and restore paths could write them to shared schema KV, while get-rowset and retry collision paths could reuse them for normal rowsets with the same schema version. This could produce schema mismatches and fail later normal rowset commits. Keep delete rowset schemas inline and rowset-local, and exclude them from shared schema writes and reuse in both legacy and versioned metadata modes.

Release note

Prevent Cloud MetaService delete rowsets from corrupting or being reused as shared tablet schemas.

Check List (For Author)

  • Test: Unit Test
    • ./run-cloud-ut.sh --run --filter=meta_service_test:MetaServiceTest.DeleteRowsetSchemaStaysRowsetLocal -j 32
    • ./build.sh --cloud -j 32
  • Behavior changed: Yes (delete rowset inline schemas are no longer shared across rowsets)
  • Does this need documentation: No

Co-authored-by: Siyang Tang tangsiyang@selectdb.com

### What problem does this PR solve?

Issue Number: None

Related PR: apache#62867

Problem Summary: Delete rowsets can carry only the columns needed by their predicates and omit indexes after a light schema change. MetaService treated those inline schemas as authoritative: commit and restore paths could write them to shared schema KV, while get-rowset and retry collision paths could reuse them for normal rowsets with the same schema version. This could produce schema mismatches and fail later normal rowset commits. Keep delete rowset schemas inline and rowset-local, and exclude them from shared schema writes and reuse in both legacy and versioned metadata modes.

### Release note

Prevent Cloud MetaService delete rowsets from corrupting or being reused as shared tablet schemas.

### Check List (For Author)

- Test: Unit Test
    - `./run-cloud-ut.sh --run --filter=meta_service_test:MetaServiceTest.DeleteRowsetSchemaStaysRowsetLocal -j 32`
    - `./build.sh --cloud -j 32`
- Behavior changed: Yes (delete rowset inline schemas are no longer shared across rowsets)
- Does this need documentation: No

Co-authored-by: Siyang Tang <tangsiyang@selectdb.com>
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@Yukang-Lian

Copy link
Copy Markdown
Collaborator Author

run buildall

@Yukang-Lian
Yukang-Lian marked this pull request as draft September 10, 2026 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants