Skip to content

24-3: schemeshard: preserialize Table.SplitBoundary for describe result #6847

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

ijon
Copy link
Collaborator

@ijon ijon commented Jul 18, 2024

merged 83a86c2 from main

Preserialize table's split boundaries the same way table partitions are. The size of both depend on the same variable: number of shards in the table, but TablePartitions was preserialized (and cached) while Table.SplitBoundaries wasn't. Preserializing all potentially huge parts of DescribeSchemeResult message before it gets to the interconnect saves interconnect actors additional serialization costs. And when partitioning of the huge tables goes through the period of a rapid change that additional serialization causes interconnect to overload.

Single shortcoming though: preserialized SplitBoundary is not used (cannot be used) when boundaries of the index tables are requested through describe request on table index.

KIKIMR-21686

Changelog category

  • Not for changelog

…b-platform#6648)

merged 83a86c2 from main

Preserialize table's split boundaries the same way table partitions are. The size of both depend on the same variable: number of shards in the table, but TablePartitions was preserialized (and cached) while Table.SplitBoundaries wasn't. Preserializing all potentially huge parts of DescribeSchemeResult message before it gets to the interconnect saves interconnect actors additional serialization costs. And when partitioning of the huge tables goes through the period of a rapid change that additional serialization causes interconnect to overload.

Single shortcoming though: preserialized SplitBoundary is not used (cannot be used) when boundaries of the index tables are requested through describe request on table index.

KIKIMR-21686
@ijon ijon requested a review from a team as a code owner July 18, 2024 19:52
@ijon ijon linked an issue Jul 18, 2024 that may be closed by this pull request
@ijon ijon changed the title schemeshard: preserialize Table.SplitBoundary for describe result 24-3: schemeshard: preserialize Table.SplitBoundary for describe result Jul 18, 2024
Copy link

github-actions bot commented Jul 18, 2024

2024-07-18 19:55:48 UTC Pre-commit check for b90f021 has started.
2024-07-18 19:58:26 UTC Build linux-x86_64-release-clang14 is running...
🟢 2024-07-18 20:08:21 UTC Build successful.

Copy link

github-actions bot commented Jul 18, 2024

2024-07-18 19:56:16 UTC Pre-commit check for b90f021 has started.
2024-07-18 19:58:57 UTC Build linux-x86_64-release-asan is running...
🟢 2024-07-18 20:25:49 UTC Build successful.
2024-07-18 20:26:04 UTC Tests are running...
🔴 2024-07-18 22:34:38 UTC Some tests failed, follow the links below.

Test history | Test log

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
9912 9314 0 92 334 172

🟢 2024-07-18 22:35:28 UTC ydbd size 5.2 GiB changed* by +86.1 KiB, which is < 100.0 KiB vs stable-24-3: OK

ydbd size dash stable-24-3: df15684 merge: b90f021 diff diff %
ydbd size 5 616 613 272 Bytes 5 616 701 488 Bytes +86.1 KiB +0.002%
ydbd stripped size 1 211 263 016 Bytes 1 211 266 664 Bytes +3.6 KiB +0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

Copy link

github-actions bot commented Jul 18, 2024

2024-07-18 19:56:16 UTC Pre-commit check for b90f021 has started.
2024-07-18 19:58:52 UTC Build linux-x86_64-relwithdebinfo is running...
🟢 2024-07-18 20:40:25 UTC Build successful.
2024-07-18 20:40:41 UTC Tests are running...
🟢 2024-07-18 22:26:20 UTC Tests successful.

Test history | Test log

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
38407 33176 0 0 5219 12

🟢 2024-07-18 22:27:10 UTC ydbd size 8.1 GiB changed* by +37.5 KiB, which is < 100.0 KiB vs stable-24-3: OK

ydbd size dash stable-24-3: df15684 merge: b90f021 diff diff %
ydbd size 8 727 367 992 Bytes 8 727 406 352 Bytes +37.5 KiB +0.000%
ydbd stripped size 477 191 944 Bytes 477 193 608 Bytes +1.6 KiB +0.000%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

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.

preserialize DescribeSchemeResult.PathDescription.Table.SplitBoundary
2 participants