Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-13014

RetryingMetaStoreClient is retrying acid related calls too aggressievley

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.0.0
    • 2.2.0
    • Metastore, Transactions
    • None

    Description

      Not all metastore operations are idempotent. For example, commit_txn() consists of
      1. request from client to server
      2. server action
      3. ack to client

      If network connection is broken after (or during) 2 but before 3 happens, RetryingMetastoreClient will retry the operation thus causing an attempt to commit the same txn twice (sometimes in concurrently)

      The 2nd attempt is guaranteed to fail and thus return an error to the caller (which doesn't know the operation is being retried), while the first attempt has actually succeeded. Thus the caller thinks commit failed and will likely attempt to redo the transactions - not what we want in most cases.

      Attachments

        1. HIVE-13014.01.patch
          29 kB
          Eugene Koifman
        2. HIVE-13014.02.patch
          45 kB
          Eugene Koifman
        3. HIVE-13014.03.patch
          45 kB
          Eugene Koifman
        4. HIVE-13014.04.patch
          45 kB
          Eugene Koifman
        5. HIVE-13014.05.patch
          50 kB
          Eugene Koifman
        6. HIVE-13014.06.patch
          52 kB
          Eugene Koifman
        7. HIVE-13014.07.patch
          52 kB
          Eugene Koifman

        Issue Links

          Activity

            People

              ekoifman Eugene Koifman
              ekoifman Eugene Koifman
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: