Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-12768

Set iceberg.engine.hive.lock-enabled To false By Default

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • be
    • ghx-label-13

    Description

      Iceberg tables are currently prone to leaving a permanent lock in HMS if Impala shuts down while the lock is held. This was observed intermittently during sys.impala_query_log testing and noted in https://github.com/apache/iceberg/issues/2301. It's a short lock, so it's fairly rare, but could happen and the only recourse is to delete rows from HIVE_LOCKS in HMS's database.

      https://github.com/apache/iceberg/pull/6570 introduced an alternative update mechanism in Iceberg 1.3 that depends on HIVE-26682. Iceberg documentation says to set the property "iceberg.engine.hive.lock-enabled

      Warn: Setting iceberg.engine.hive.lock-enabled=false will cause HiveCatalog to commit to tables without using Hive locks. This should only be set to false if all following conditions are met:
      
      * HIVE-26882 is available on the Hive Metastore server
      * All other HiveCatalogs committing to tables that this HiveCatalog commits to are also on Iceberg 1.3 or later
      * All other HiveCatalogs committing to tables that this HiveCatalog commits to have also disabled Hive locks on commit.
      
      Failing to ensure these conditions risks corrupting the table.
      

      Setting this property to false uses a new Hive atomic operation and avoids taking a lock, so it can't get stuck if Impala shuts down at the wrong time.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jasonmfehr Jason Fehr
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: