From 6c3abe0d019772fec4d6432e1030646ad5f63fdd Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Mon, 24 Feb 2025 17:27:05 +0000 Subject: [PATCH] Update docs for ACM-r message handling architecture Issue-ID: POLICY-5292 Change-Id: I27fb3966f19a762b4e3bc7415812f099e4b1d63a Signed-off-by: FrancescoFioraEst --- docs/clamp/acm/design-impl/clamp-runtime-acm.rst | 54 ++++++++-- .../clamp/acm/draw.io/acm-consumer-producer.drawio | 76 ++++++++++++++ docs/clamp/acm/draw.io/acm-scheduling-job.drawio | 114 +++++++++++++++++++++ .../acm/images/acm-consumer-producer-messages.png | Bin 0 -> 24814 bytes docs/clamp/acm/images/acm-scheduling-job.png | Bin 0 -> 42845 bytes 5 files changed, 235 insertions(+), 9 deletions(-) create mode 100644 docs/clamp/acm/draw.io/acm-consumer-producer.drawio create mode 100644 docs/clamp/acm/draw.io/acm-scheduling-job.drawio create mode 100644 docs/clamp/acm/images/acm-consumer-producer-messages.png create mode 100644 docs/clamp/acm/images/acm-scheduling-job.png diff --git a/docs/clamp/acm/design-impl/clamp-runtime-acm.rst b/docs/clamp/acm/design-impl/clamp-runtime-acm.rst index a3c22e69..802e9a0e 100644 --- a/docs/clamp/acm/design-impl/clamp-runtime-acm.rst +++ b/docs/clamp/acm/design-impl/clamp-runtime-acm.rst @@ -349,46 +349,61 @@ PARTICIPANT_REGISTER - A participant replica starts and send a PARTICIPANT_REGISTER message with participantId, replicaId and supported Element Types - ACM-runtime collects the message from Message Broker by ParticipantRegisterListener - if not present, it saves participant replica reference with status ON_LINE to DB +- it sends PARTICIPANT_REGISTER_ACK to participant replica PARTICIPANT_PRIME_ACK ++++++++++++++++++++++ - A participant sends PARTICIPANT_PRIME_ACK message in response to a PARTICIPANT_PRIME message - ParticipantPrimeAckListener collects the message from Message Broker -- It updates AC Definition to DB with PRIMED/DEPRIMED as status -- If AC Definition is fully PRIMED, ACM-runtime sends sync message to all participants replica +- It stores the message into the DB +- MessageIntercept intercepts that event and adds a task to handle a monitoring execution in SupervisionScanner +- Monitoring updates AC Definition to DB with PRIMED/DEPRIMED as status +- If AC Definition is fully PRIMED, Monitoring sends sync message to all participants replica PARTICIPANT_STATUS ++++++++++++++++++ -- A participant sends a scheduled PARTICIPANT_STATUS message with participantId, replicaId and supported Element Types +- A participant sends a scheduled PARTICIPANT_STATUS message with participantId, replicaId and supported Element Types. Same message could be used by participant to update OutProperties of an AC instance/AC definition. - ACM-runtime collects the message from Message Broker by ParticipantStatusListener -- if not present, it saves participant replica reference with status ON_LINE to DB +- If not present, it saves participant replica reference with status ON_LINE to DB +- If the message contains OutProperties of an AC instance/AC definition it stores the message into the DB +- MessageIntercept intercepts that event and adds a task to handle a monitoring execution in SupervisionScanner +- Monitoring updates the AC instance/AC definition +- Monitoring sends a sync message to all participants replica AUTOMATION_COMPOSITION_DEPLOY_ACK +++++++++++++++++++++++++++++++++ - A participant sends AUTOMATION_COMPOSITION_DEPLOY_ACK message in response to a AUTOMATION_COMPOSITION_DEPLOY message. It will send a AUTOMATION_COMPOSITION_DEPLOY_ACK - for each AC elements moved to the DEPLOYED state - AutomationCompositionUpdateAckListener collects the message from Message Broker -- It checks the status of all Automation Composition elements and checks if the Automation Composition is fully DEPLOYED -- It updates the AC to DB +- It store the message into the DB - MessageIntercept intercepts that event and adds a task to handle a monitoring execution in SupervisionScanner +- Monitoring checks the status of all Automation Composition elements and checks if the Automation Composition is fully DEPLOYED +- Monitoring updates the AC instance to DB +- If the Automation Composition is fully DEPLOYED Monitoring sends a sync message to all participants replica AUTOMATION_COMPOSITION_STATECHANGE_ACK ++++++++++++++++++++++++++++++++++++++ - A participant sends AUTOMATION_COMPOSITION_STATECHANGE_ACK message in response to a AUTOMATION_COMPOSITION_STATECHANGE message. It will send a AUTOMATION_COMPOSITION_DEPLOY_ACK - for each AC elements moved to the ordered state - AutomationCompositionStateChangeAckListener collects the message from Message Broker -- It checks the status of all Automation Composition elements and checks if the transition process of the Automation Composition is terminated -- It updates the AC to DB +- It store the message into the DB - MessageIntercept intercepts that event and adds a task to handle a monitoring execution in SupervisionScanner +- Monitoring checks the status of all Automation Composition elements and checks if the transition process of the Automation Composition is terminated +- Monitoring updates the AC instance to DB +- If the transition process is terminated, Monitoring sends a sync message to all participants replica Design of monitoring execution in SupervisionScanner **************************************************** Monitoring is designed to process the follow operations: +- to elaborate the messages from participants - to determine the next startPhase in a AUTOMATION_COMPOSITION_DEPLOY message +- to determine the next stage in a AUTOMATION_COMPOSITION_MIGRATION message - to update AC deployState: in a scenario that "AutomationComposition.deployState" is in a kind of transitional state (example DEPLOYING), if all - AC elements are moved properly to the specific state, the "AutomationComposition.deployState" will be updated to that and saved to DB - to update AC lockState: in a scenario that "AutomationComposition.lockState" is in a kind of transitional state (example LOCKING), if all - AC elements are moved properly to the specific state, the "AutomationComposition.lockState" will be updated to that and saved to DB +- to update AC subState: in a scenario that "AutomationComposition.subState" is in a kind of transitional state (example PREPARING), if all - AC elements are moved properly to NONE state, the "AutomationComposition.subState" will be updated to NONE and saved to DB - to delete AC Instance: in a scenario that "AutomationComposition.deployState" is in DELETING, if all - AC elements are moved properly to DELETED, the AC Instance will be deleted from DB - to retry AUTOMATION_COMPOSITION_DEPLOY/AUTOMATION_COMPOSITION_STATE_CHANGE messages. if there is an AC instance with startPhase completed, it will be moved to the next startPhase and retry a broadcast message with the new startPhase -- to send sync message to all participants replica: in scenario where AC instance transition is fully completed +- to retry AUTOMATION_COMPOSITION_MIGRATION messages. if there is an AC instance with stage completed, it will be moved to the next stage and retry a broadcast message with the new stage +- to send sync message to all participants replica: in scenario where AC instance transition is fully completed or OutProperties has been changed The solution Design timeout and reporting for all Participant message dialogues are implemented into the monitoring execution. @@ -396,6 +411,27 @@ The solution Design timeout and reporting for all Participant message dialogues - ThreadPoolExecutor executes the task - set AC instance stateChangeResult in timeout, if ACM-runtime do no receive Act message before MaxWaitMs milliseconds +Producer and Consumer and Scheduling job mechanisms ++++++++++++++++++++++++++++++++++++++++++++++++++++ +To avoid conflicts, for example when an ACM-r pod is receiving a messages to change outProperties of an AC instance and other ACM-r pod is receiving a messages to change the status of an element of the same instance, +Producer and Consumer and Scheduling job mechanisms has been implemented. +With the Producer and Consumer mechanism, any ACM-r replica monitoring could elaborate a message independently from what ACM-r replica has fetched the message. +Listeners of ACM-r will fetch messages from kafka and store to a message FIFO queue stored in DB. + +.. image:: ../images/acm-consumer-producer-messages.png + +Monitoring of a ACM-r replica will fetch messages from that queue. +All Monitoring from different ACM-r pods are synchronized with Scheduling job to avoid to fetch messages related to same AC instance or AC definition at same time. +InstanceIds and a compositionIds are generated with UUID as unique key and could be used as identificationId for messages. + +.. image:: ../images/acm-scheduling-job.png + +Edge case scenario: ACM-r pod has been terminated from Kubernetes +----------------------------------------------------------------- +Full elaboration of a monitoring for an AC instance or for a AC definition is protected by a transaction. +If an ACM-r pod has been terminated from Kubernetes, the monitoring not full completed will be rollback from database. +The monitoring job not completed wil be deleted after 200 seconds. All message of that AC definition or AC instance will processed by other monitoring. + Design of Exception handling **************************** GlobalControllerExceptionHandler diff --git a/docs/clamp/acm/draw.io/acm-consumer-producer.drawio b/docs/clamp/acm/draw.io/acm-consumer-producer.drawio new file mode 100644 index 00000000..50022556 --- /dev/null +++ b/docs/clamp/acm/draw.io/acm-consumer-producer.drawio @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/clamp/acm/draw.io/acm-scheduling-job.drawio b/docs/clamp/acm/draw.io/acm-scheduling-job.drawio new file mode 100644 index 00000000..9591ada6 --- /dev/null +++ b/docs/clamp/acm/draw.io/acm-scheduling-job.drawio @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/clamp/acm/images/acm-consumer-producer-messages.png b/docs/clamp/acm/images/acm-consumer-producer-messages.png new file mode 100644 index 0000000000000000000000000000000000000000..0076b16bce161ffc25e5fb33dc2f2770cc70462d GIT binary patch literal 24814 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 literal 0 HcmV?d00001 -- 2.16.6