Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
2.0.0-alpha
-
None
-
None
Description
For idempotent operations, the IPC client transparently retries calls. For operations which aren't inherently idempotent, we often have to use some tricky logic to make them idempotent – see HDFS-3031 for example. It would be nice if the RPC request had a flag indicating that the client was making a retry. Then, in the server side logic, we can add sanity checks that, when the logic indicates a call is an idempotent retry, the RPC call agrees.
One example where this is useful is the close() RPC. We can make it idempotent by saying that close() on an already-closed file should succeed. But, it's really an error to call close() twice outside the context of retries. Having this property set on the call would allow us to enable the "double close is OK" semantics only for retries.
Attachments
Issue Links
- relates to
-
HBASE-3787 Increment is non-idempotent but client retries RPC
- Closed