You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Bharat Viswanadham (Jira)" <ji...@apache.org> on 2020/12/06 18:07:00 UTC

[jira] [Updated] (RATIS-1210) Expose RatisRetryCache

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

Bharat Viswanadham updated RATIS-1210:
--------------------------------------
        Parent: RATIS-1181
    Issue Type: Sub-task  (was: Bug)

> Expose RatisRetryCache
> ----------------------
>
>                 Key: RATIS-1210
>                 URL: https://issues.apache.org/jira/browse/RATIS-1210
>             Project: Ratis
>          Issue Type: Sub-task
>            Reporter: Bharat Viswanadham
>            Priority: Major
>
> In OM HA to support upgrades with out any additional steps like prepareUpgrade for express upgrade, there is a change in the way request is processed. In previous approach request logic is executed by leader/follower OMs.
> In the new approach, only leader OM process the request and submits only the information which needs to be persisted to DB to ratis. So, with this approach after isLeaderReady() check, we first need to check retrycache to see if this is a retry request before processing the request in OM for idempotency/correctness.
> This Jira is to propose to expose retry cache and also expose a method to just query retry cache. As current queryCacheResult, if not exists, adds a new entry to cache.
> Scenario:
> Leader processed the request and submitted to OM, leader adds to it log, and send to followers, just before applyTransaction leader change happened. In ratis all pending requests are responded with NotLeaderException. So, when the new OM before becoming ready, it should process all the requests, as the previous transaction is in majority this transaction will be appllied by new leader OM and then becomes ready. So, when the client retries on new OM with same clientID and callID OM leader before processing it should detect is retry request for that it needs to check ratis retry cache. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)