Skip to content

Conversation

@dlmarion
Copy link
Contributor

When Manager.StatusThread.updateStatus has not run yet, then the set of current tablet server information will be empty.

When Manager.StatusThread.updateStatus has not run yet, then
the set of current tablet server information will be empty.
@dlmarion dlmarion self-assigned this Oct 27, 2023
@dlmarion
Copy link
Contributor Author

I think this should supercede #3898

Fixes two bugs that could cause the set of tservers and map of group
tservers to have an inconsistent set of tservers.

Modified LiveTserverSet so that the set of tablet servers and the tablet
servers resource groups can be acquired atomically.  The code was
acquiring this information at two different times with two different lock
acquisitions, which could have led to race condtions resulting
differences in set and the map.

Also modified TGW.TabletLists to filter out shutting down servers from
the grouped tservers in addition to filtering from the tserver set.
Copy link
Contributor

@keith-turner keith-turner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dlmarion I was looking into this and opened a PR against this dlmarion#44

keith-turner and others added 10 commits October 27, 2023 19:24
LiveTseverSet is modified to keep a snapshot that is only recomputed on
changes.  It used to recompute for each request and it also used to keep
multiple indexes up to date.  The indexes are no longer kept up to date
but instead are recomputed on demand which simplified the code in
addition to making it more efficient.
…ssignmentParamsImpl.java

Co-authored-by: Keith Turner <kturner@apache.org>
Acquires tablet servers and their groups atomically
@dlmarion dlmarion merged commit 128a8d0 into apache:elasticity Oct 30, 2023
@dlmarion dlmarion deleted the fix-bug-with-balancing branch October 30, 2023 17:55
@ctubbsii ctubbsii added this to the 4.0.0 milestone Jul 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants