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

IGNITE-23466 Rework DZM internals #5092

Open
wants to merge 45 commits into
base: main
Choose a base branch
from

Conversation

denis-chudov
Copy link
Contributor

@denis-chudov denis-chudov commented Jan 21, 2025

https://issues.apache.org/jira/browse/IGNITE-23466

Removed causality data nodes engine and distribution zone manager logic based on topology augmentation map. Basics of causality data nodes contract is preserved, according to tests.
Added DataNodesManager as a part of distribution zone manager and all logic related on data nodes calculation for distribution zones is now there. Short summary:

  • data nodes manager stores data nodes history (map of timestamps to data nodes collection) and scale up/scale down timers in meta storage;
  • it retrieves the data nodes from data node s history when needed;
  • data nodes history is appended and timers are modified on three types of events: topology changes, distribution zone filter changes and scale up/scale down auto adjust timeout changes.

For details, see DataNodesManager class and its javadocs.

Copy link
Contributor

@alievmirza alievmirza left a comment

Choose a reason for hiding this comment

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

It seems to me that current implementation breaks contract of dataNodes method. Most part of basic tests from DistributionZoneCausalityDataNodesTest do not pass.

I would start review when at least DistributionZoneCausalityDataNodesTest is green on TC, but better to have all tests from distributionzones module become green

@denis-chudov denis-chudov changed the title IGNITE-23466 IGNITE-23466 Rework DZM internals Feb 12, 2025
* @param <T> First object.
* @param <V> Second object.
*/
public class Pair<T, V> {
Copy link
Contributor

Choose a reason for hiding this comment

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

This the 4th Pair class in our codebase, while we have IgniteBiTuple

Copy link
Contributor Author

Choose a reason for hiding this comment

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

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.

2 participants