Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-8394

Add flag in RPC requests indicating when a call is a retry

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 2.0.0-alpha
    • Fix Version/s: None
    • Component/s: ipc
    • Labels:
      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

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                tlipcon Todd Lipcon
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated: