You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Lapin (Jira)" <ji...@apache.org> on 2022/11/04 08:57:00 UTC

[jira] [Created] (IGNITE-18087) Implement distribution zone manager

Alexander Lapin created IGNITE-18087:
----------------------------------------

             Summary: Implement distribution zone manager
                 Key: IGNITE-18087
                 URL: https://issues.apache.org/jira/browse/IGNITE-18087
             Project: Ignite
          Issue Type: Improvement
            Reporter: Alexander Lapin


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.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)