Skip to content

Remove meta fate specialization#6227

Draft
keith-turner wants to merge 5 commits intoapache:mainfrom
keith-turner:remove-system-fate-specialization
Draft

Remove meta fate specialization#6227
keith-turner wants to merge 5 commits intoapache:mainfrom
keith-turner:remove-system-fate-specialization

Conversation

@keith-turner
Copy link
Contributor

Opened this as a draft PR, its a follow on to #6224 and currently includes commits from that PR as it builds on it.

This is part of a sequence of changes needed for #6217

The set of shutting down tservers was causing system fate operations to
have to run on the primary manager because this was an in memory set.
This caused fate to have different code paths to user vs system fate,
this in turn caused problems when trying to distribute compaction
coordination.

To fix this problem moved the set from an in memory set to a set in
zookeeper.  The set is managed by fate operations which simplifies the
existing code. Only fate operations add and remove from the set and fate
keys are used to ensure only one fate operation runs at a time for a
tserver instance.  The previous in memory set had a lot of code to try to keep
it in sync with reality, that is all gone now.  There were many bugs with
this code in the past.

After this change is made fate can be simplified in a follow on commit
to remove all specialization for the primary manager.  Also the monitor
can now directly access this set instead of making an RPC to the
manager, will open a follow on issue for this.
After this change meta fate and user fate are both treated mostly the
same in the managers.  One difference is in assignment, the entire meta
fate range is assigned to a single manager.  User fate is spread across
all managers.  But both are assigned out by the primary manager using
the same RPCs now.  The primary manager used to directly start a meta
fate instance.

Was able to remove the extension of FateEnv from the manager class in
this change, that caused a ripple of test changes.  But now there are no
longer two different implementations of FateEnv
@keith-turner keith-turner marked this pull request as draft March 19, 2026 23:58
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.

1 participant