Refactor cluster manager on client#95
Merged
lzxddz merged 4 commits intoremove-mutexfrom Sep 30, 2025
Merged
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests
Comment |
lzxddz
added a commit
that referenced
this pull request
Oct 13, 2025
* Update cluster config in client * fix datastore migration error
lzxddz
added a commit
that referenced
this pull request
Oct 14, 2025
* Remove lock serv_mux_ Change DataStoreService: only contain one data shard in one DataStoreService. Create DataStore in DataStoreService instead in eloqsql or eloqkv server. Remove ongoing_write_requests_ from RocksDBDataStoreCommon and let DataStoreService manage ongoing_write_requests_. * Refactor cluster manager on client (#95) Use a non-lock struct to manage data shards info.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Use these data structures to store the cluster info at DataStoreServiceClient :
dss_nodes_caches node info that used bydss_shards_.When update the owner of data shard or update the channel of node, we firstly update the expired_ts_ of old node.
Then, find a free node index in
dss_nodes_(the expiration time exceeds 10 seconds or expired_ts_ is 1 ).After updated the info at free node index, change the value of shard in
dss_shards_.To avoid using mutex lock, we must promise the
dss_nodes_should not be resized. If we can not find a free node index, we should wait and retry.