[ 
https://issues.apache.org/jira/browse/RATIS-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16538867#comment-16538867
 ] 

Tsz Wo Nicholas Sze commented on RATIS-252:
-------------------------------------------

> ... Then we can check for the replies in different servers.

Only leader replies to client.  How to check the different replies?

I can see that we can create a new state machine to update an external service 
(which could be just a static list).   Then make sure that only leader update 
the list and the followers won't.  However, it seems too much for testing the 
code (which adds the final serverRole field to TransactionContextImpl) in this 
patch.

> Add an API for state machine to determining server role
> -------------------------------------------------------
>
>                 Key: RATIS-252
>                 URL: https://issues.apache.org/jira/browse/RATIS-252
>             Project: Ratis
>          Issue Type: New Feature
>            Reporter: Tsz Wo Nicholas Sze
>            Assignee: Tsz Wo Nicholas Sze
>            Priority: Major
>         Attachments: r252_20180710.patch
>
>
> In some applications, the state machine may update external database/systems 
> while applying a transaction.  When there are multiple servers in a raft 
> group, all servers will submit the same update to the external systems.  It 
> unnecessarily overloads the external system.  Ideally, only the leader should 
> send the update and the followers should not.
> In this JIRA, we provide an API so that the state machine can query its 
> server role in order to determine if it should send the update.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to