[ 
https://issues.apache.org/jira/browse/RATIS-2196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Andika updated RATIS-2196:
-------------------------------
    Description: 
Some of the StateMachine notification APIs are run sequentially in very 
important parts of the code (e.g. StateMachineUpdater). This carries a few 
risks:
 * If the notification API implementation takes very long, it might cause the 
StateMachine performance to suffer
 * Exception thrown in this notification APIs might cause the whole 
StateMachine to be

One idea is to make this notification API asynchronous. For example, by having 
a specific ExecutorService to run the notifications, or just do a "fire and 
forget" method.

One downside is that if the StateMachine implementation relies on the 
sequential nature of the StateMachine notification API, it might not be wise to 
make this asynchoronous.

We can discuss whether making the notification API asynchronous make sense.

  was:
Some of the StateMachine notification APIs are run sequentially in very 
important parts of the code (e.g. StateMachineUpdater). This carries a few 
risks:
 * If the notification API implementation takes very long, it might cause the 
StateMachine performance to suffer
 * Exception thrown in this notification APIs might cause the whole 
StateMachine to be

One idea is to make this notification API asynchronous. For example, by having 
a specific ExecutorService to run the notifications, or just do a "fire and 
forget" method.

However, if the StateMachine implementation relies on the sequential nature of 
the StateMachine notification API, it might not be wise to make this 
asynchoronous.

We can discuss whether making the notification API asynchronous make sense.


> Make StateMachine notification API asynchronous
> -----------------------------------------------
>
>                 Key: RATIS-2196
>                 URL: https://issues.apache.org/jira/browse/RATIS-2196
>             Project: Ratis
>          Issue Type: Improvement
>            Reporter: Ivan Andika
>            Priority: Major
>
> Some of the StateMachine notification APIs are run sequentially in very 
> important parts of the code (e.g. StateMachineUpdater). This carries a few 
> risks:
>  * If the notification API implementation takes very long, it might cause the 
> StateMachine performance to suffer
>  * Exception thrown in this notification APIs might cause the whole 
> StateMachine to be
> One idea is to make this notification API asynchronous. For example, by 
> having a specific ExecutorService to run the notifications, or just do a 
> "fire and forget" method.
> One downside is that if the StateMachine implementation relies on the 
> sequential nature of the StateMachine notification API, it might not be wise 
> to make this asynchoronous.
> We can discuss whether making the notification API asynchronous make sense.



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

Reply via email to