This class is used for handling the duplicate
non-idempotenty Rpc calls. A non-idempotent request is processed as follows:
- If the request is being processed for the first time, its state is in-progress in cache.
- If the request is retransimitted and is in-progress state, it is ignored.
- If the request is retransimitted and is completed, the previous response from the cache is sent back to the client.
A request is identified by the client ID (address of the client) and transaction ID (xid) from the Rpc call.