Skip to content
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

[docdb] Tablet Splitting: Wait for all peers to finish compacting during throttling #9782

Closed
hulien22 opened this issue Aug 19, 2021 · 2 comments
Assignees
Labels
area/docdb YugabyteDB core features
Milestone

Comments

@hulien22
Copy link
Contributor

hulien22 commented Aug 19, 2021

Tablet splitting throttling was added in #6667, however we currently consider a tablet split done once any peer from each child tablet has marked itself compacted. This should be changed to wait until all peers are fully compacted.

Will likely need to change the processing_tablets_to_split_children_ map to keep track of all the peers, or have some new check that all peers are done compacting.

Just to clarify, the goal is:

  1. Don’t split the (child) tablet until all its replicas are fully compacted.
  2. Treat the parent tablet as still being split until all its children's tablets replicas are fully compacted for throttling purposes.
@hulien22 hulien22 added the area/docdb YugabyteDB core features label Aug 19, 2021
@hulien22 hulien22 self-assigned this Aug 19, 2021
@ttyusupov ttyusupov added this to the 2.8.x milestone Sep 10, 2021
@ttyusupov
Copy link
Contributor

ttyusupov commented Sep 10, 2021

That means we will not split the tablet if one replica is offline until it comes back online and got split and fully compacted?

IMO, yes, but we should also enhance the split scheduling logic
this feels similar to the constraints we have on the LB already, where if a TS is down, but was serving some tablets, then during the 0-15m unavaiability window, we’ll have to wait.

@robertsami robertsami assigned nimwijetunga and unassigned hulien22 Sep 14, 2021
nimwijetunga added a commit that referenced this issue Sep 29, 2021
…ing during throttling

Summary:
Goals of this diff:

  # Don’t split the (child) tablet until all its replicas are fully compacted.

  # Treat the parent tablet as still being split until all its children's tablets replicas are fully compacted for throttling purposes.

Test Plan:
Integration Test:

  - Creates a table with a single tablet and splits it

  - For both child tablets we compact each peer and ensure that the tablet is split only when all peers have been compacted

Run the integration test as follows:

```
./yb_build.sh -n 50 --cxx-test integration-tests_tablet-split-itest --gtest_filter AutomaticTabletSplitITest.AutomaticTabletSplittingWaitsForAllPeersCompacted
```

Reviewers: rsami

Reviewed By: rsami

Subscribers: bogdan

Differential Revision: https://phabricator.dev.yugabyte.com/D13047
@nimwijetunga
Copy link
Contributor

Closed by commit: fdd50e9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/docdb YugabyteDB core features
Projects
None yet
Development

No branches or pull requests

3 participants