Description
RATIS-872 introduces a new retry cache invalidation based on the replied call IDs on top of the existing time-based retry cache invalidation.
This has already been used in Raft client created for Ratis write pipeline. A RaftClientImpl is created for a single pipeline and the repliedCallIds are automatically added to the RaftClientRequest for every WriteChunk / PutBlock.
However, for OM and SCM since the Ratis request (RaftClientRequest) is submitted directly to the server. Even for SCM call with InvocationType Client and RaftClient created in CreatePipelineCommandHandler, the replied call IDs mechanism does not really work since the RaftClient is only created to send one request and then closed immediately.
OM and SCM may benefit by integrating with the new retry cache invalidation mechanism to reduce memory footprint. However, the implementation might be quite involved since it might require OM and SCM client implementation to keep track to its repliedCallids state (similar to how it's implemented in RaftClientImpl).