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

Duong updated RATIS-2094:
-------------------------
    Description: 
stateMachineLogEntry and stateMachineContext are parsed/created from 
RaftClientRequest or LogEntryProto and attached to TransactionContext in the 
StateMachine.startTransaction methods.

There are 2 variant of StateMachine.startTransactions;

1. startTransactions(RaftClientRequest): This is called only on the leader 
side. The result of this method is not cached and is passed temporarily 
alongside RaftClientRequest for further processing, for example. This is 
probably safe.

2. startTransactions(LogEntryProto, RaftPeerRole): this is called on both 
server and leader side. The result of this call is cached on the node.

 - On server side

 

  was:
stateMachineLogEntry and stateMachineContext are parsed/created from 
RaftClientRequest or LogEntryProto and attached to TransactionContext in the 
StateMachine.startTransaction methods.

There are 2 variant of StateMachine.startTransactions;

startTransactions(RaftClientRequest): This happens on the leader side. The 
result of this method is not cached and is passed temprarily alongside with 
RaftClientRequest for further processing.

 


> TransactionContext's stateMachineLogEntry and stateMachineContext may cause 
> corruption
> --------------------------------------------------------------------------------------
>
>                 Key: RATIS-2094
>                 URL: https://issues.apache.org/jira/browse/RATIS-2094
>             Project: Ratis
>          Issue Type: Sub-task
>            Reporter: Duong
>            Assignee: Duong
>            Priority: Major
>
> stateMachineLogEntry and stateMachineContext are parsed/created from 
> RaftClientRequest or LogEntryProto and attached to TransactionContext in the 
> StateMachine.startTransaction methods.
> There are 2 variant of StateMachine.startTransactions;
> 1. startTransactions(RaftClientRequest): This is called only on the leader 
> side. The result of this method is not cached and is passed temporarily 
> alongside RaftClientRequest for further processing, for example. This is 
> probably safe.
> 2. startTransactions(LogEntryProto, RaftPeerRole): this is called on both 
> server and leader side. The result of this call is cached on the node.
>  - On server side
>  



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

Reply via email to