[
https://issues.apache.org/jira/browse/IGNITE-18087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-18087:
-------------------------------------
Description:
h3. Motivation
In order to calculate dataNodes for each distribution zone it's required to
have proper actor that will listen to:
* Logical topology events.
* Distribution zone reconfiguration events (adding, updating, removing).
* Distribution zone processing enabling/disabling.
and properly react to such events. Generally speaking aforementioned reaction
assumes following logic:
* onTopologyEvent:
#
## Locally increment logical topology projection.
## Locally check whether distribution zone processing enabled, skip further
steps if not.
## Iterate over all locally known distribution zones.
## Schedule corresponding scaleUp/Down/Autoadjust times (immediate for now)
along with memorizing in volatile state scheduler start time.
* onDistributionZone reconfiguration events
** onAdd
### Locally check whether distribution zone processing enabled, skip further
steps if not.
### Immediately calculate dataNodes for given zone and call ms.invoke that
will try to set it up.
** onRemove
#
##
### Locally check whether distribution zone processing enabled, skip further
steps if not.
### Discard active timers for given zone
### Cleanup corresponding zone specific state in meta store.
* onEnable
## Set local enabled flag to true.
## Iterate over all locally known distribution zones.
## Schedule corresponding scaleUp/Down/Autoadjust times (immediate for now)
along with memorizing in volatile state scheduler start time based logical
topology projection.
* onDisable
** Set local enabled flag to false.
On timer scheduled perform ms invoke, that will prevent concurrent and stale
updates.
h3. Definition of Done
* Distribution zones state (data nodes) is written in ms in a thread-safe
manner due to corresponding logical topology and distribution zones
configuration events.
was:
h3. Motivation
In order to calculate dataNodes for each distribution zone it's required to
have proper actor that will listen to:
* Logical topology events.
* Distribution zone reconfiguration events (adding, updating, removing).
* Distribution zone processing enabling/disabling.
and properly react to such events. Generally speaking aforementioned reaction
assumes following logic:
* onTopologyEvent:
## Locally increment logical topology projection.
## Locally check whether distribution zone processing enabled, skip further
steps if not.
## Iterate over all locally known distribution zones.
## Schedule corresponding scaleUp/Down/Autoadjust times (immediate for now)
along with memorizing in volatile state scheduler start time.
* onDistributionZone reconfiguration events
** onAdd
### Locally check whether distribution zone processing enabled, skip further
steps if not.
### Immediately calculate dataNodes for given zone and call ms.invoke that
will try to set it up.
** onRemove
### Locally check whether distribution zone processing enabled, skip further
steps if not.
### Discard active timers for given zone
### Cleanup corresponding zone specific state in meta store.
** onAlter
### Locally check whether distribution zone processing enabled, skip further
steps if not.
### Re-schedule active timers if any basd on timers start-time.
* onEnable
## Set local enabled flag to true.
## Iterate over all locally known distribution zones.
## Schedule corresponding scaleUp/Down/Autoadjust times (immediate for now)
along with memorizing in volatile state scheduler start time based logical
topology projection.
* onDisable
** Set local enabled flag to false.
On timer scheduled perform ms invoke, that will prevent concurrent and stale
updates.
h3. Definition of Done
* Distribution zones state (data nodes) is written in ms in a thread-safe
manner due to corresponding logical topology and distribution zones
configuration events.
> Implement distribution zone manager
> -----------------------------------
>
> Key: IGNITE-18087
> URL: https://issues.apache.org/jira/browse/IGNITE-18087
> Project: Ignite
> Issue Type: Improvement
> Reporter: Alexander Lapin
> Priority: Major
>
> h3. Motivation
> In order to calculate dataNodes for each distribution zone it's required to
> have proper actor that will listen to:
> * Logical topology events.
> * Distribution zone reconfiguration events (adding, updating, removing).
> * Distribution zone processing enabling/disabling.
> and properly react to such events. Generally speaking aforementioned reaction
> assumes following logic:
> * onTopologyEvent:
> #
> ## Locally increment logical topology projection.
> ## Locally check whether distribution zone processing enabled, skip further
> steps if not.
> ## Iterate over all locally known distribution zones.
> ## Schedule corresponding scaleUp/Down/Autoadjust times (immediate for now)
> along with memorizing in volatile state scheduler start time.
> * onDistributionZone reconfiguration events
> ** onAdd
> ### Locally check whether distribution zone processing enabled, skip further
> steps if not.
> ### Immediately calculate dataNodes for given zone and call ms.invoke that
> will try to set it up.
> ** onRemove
> #
> ##
> ### Locally check whether distribution zone processing enabled, skip further
> steps if not.
> ### Discard active timers for given zone
> ### Cleanup corresponding zone specific state in meta store.
> * onEnable
> ## Set local enabled flag to true.
> ## Iterate over all locally known distribution zones.
> ## Schedule corresponding scaleUp/Down/Autoadjust times (immediate for now)
> along with memorizing in volatile state scheduler start time based logical
> topology projection.
> * onDisable
> ** Set local enabled flag to false.
> On timer scheduled perform ms invoke, that will prevent concurrent and stale
> updates.
> h3. Definition of Done
> * Distribution zones state (data nodes) is written in ms in a thread-safe
> manner due to corresponding logical topology and distribution zones
> configuration events.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)