Craig Condit created HIVE-21917:
-----------------------------------

             Summary: COMPLETED_TXN_COMPONENTS table is never cleaned up unless 
Compator runs
                 Key: HIVE-21917
                 URL: https://issues.apache.org/jira/browse/HIVE-21917
             Project: Hive
          Issue Type: Bug
          Components: Transactions
    Affects Versions: 3.1.1, 3.1.0
            Reporter: Craig Condit


The Initiator thread in the metastore repeatedly loops over entries in the 
COMPLETED_TXN_COMPONENTS table to determine which partitions / tables might 
need to be compacted. However, entries are never removed from this table except 
by a completed Compactor run.

In a cluster where most tables / partitions are write-once read-many, this 
results in stale entries in this table never being cleaned up. In a small test 
cluster, we have observed approximately 45k entries in this table (virtually 
equal to the number of partitions in the cluster) while < 100 of these tables 
have delta files at all. Since most of the tables will never get enough writes 
to trigger a compaction (and in fact have only ever been written to once), the 
initiator thread keeps trying to evaluate them on every loop.

On this test cluster, it takes approximately 10 minutes to loop through all the 
entries and results in severe performance degradation on metastore operations. 
With the default run timing of 5 minutes, the initiator basically never stops 
running.

On a production cluster with 2M partitions, this would be a non-starter.

The initiator thread should proactively remove entries from 
COMPLETED_TXN_COMPONENTS when it determines that a compaction is not needed, so 
that they are not evaluated again on the next loop.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to