Maybe there is a misunderstanding, what i wanted to say is “that is if on a node i can know if all the transaction committed has been applied” on that node
> On 20 Jan 2021, at 20:11, Pietro Tollot <[email protected]> wrote: > > Yes, i have a component that has 2 passive replicas. The component process > data, update the state and at certain intervals commit the new state, when > the active replica fails a leader election mechanism elect one of the passive > that start to process data. The problem is when the active replica commit the > state and then fail and the elected replica start processing data without > having applied the last transaction that has been committed, when this last > transaction will be applied i will lose the data processes in between. > I saw that there is in BaseStateMachine a method getLastAppliedTermIndex() > that should return the last applied term, that is half of the work, the other > half would be to know the last commit term index, > > Thanks > >> On 20 Jan 2021, at 19:58, Rui Wang <[email protected] >> <mailto:[email protected]>> wrote: >> >> I think Right now in Ratis you cannot know that on a node: applying >> transactions are asynchronous on each node. It's hard to estimate and it is >> also very costly to sync such information among nodes. >> >> BTW, is there a use case in your mind that you need to know this information? >> >> -Rui >> >> On Wed, Jan 20, 2021 at 10:51 AM Pietro Tollot <[email protected] >> <mailto:[email protected]>> wrote: >> Thanks for answering, what i meant was all the transactions of a commit on >> Ratis nodes, that is if on a node i can know if all the transaction >> committed has been applied, >> >> thanks >> >>> On 20 Jan 2021, at 19:36, Rui Wang <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>> > all the transactions has been applied >>> >>> Can you clarify what you mean by "all" the transaction? Is it mean all >>> transactions of a commit on Ratis nodes or all transactions in the raft log >>> in a single Ratis node? >>> >>> >>> -Rui >>> >>> On Wed, Jan 20, 2021 at 9:51 AM Pietro Tollot <[email protected] >>> <mailto:[email protected]>> wrote: >>> Thanks very much for the answer, is there a method to know if all the >>> transactions has been applied? >>> >>> Thanks >>> >>>> On 20 Jan 2021, at 17:47, Tsz Wo Sze <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> Hi Pietro, >>>> >>>> The applyTransaction method is called once the transaction has been >>>> committed. >>>> A transaction is committed once it has been replicated (not applied) to a >>>> majority of nodes. >>>> >>>> Hope it helps. >>>> Tsz-Wo >>>> >>>> >>>> On Thu, Jan 21, 2021 at 12:04 AM Pietro Tollot <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> Hi all, i have a doubt about the use of the applyTransaction method of a >>>> BaseStateMachine, my doubt regards when the methods is called, it is done >>>> once the cluster has committed a message or before to commit a message? >>>> That is a message is committed once applyTransaction has been performed in >>>> the majority of nodes? >>>> >>>> Thanks, >>>> Pietro >>> >> >
