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

CompactionTxnHandler.createValidCompactTxnList() can use much less memory

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 1.1.0
    • None
    • Metastore, Transactions
    • None

    Description

      This method only needs HWM and list of txn IDs in 'a' state and smallest 'o' txn id.

      It's currently implemented to get the list from TxnHandler.getOpenTxnsInfo(),
      which returns (txn id, state, host, user) for each txn and includes Aborted txns.

      This can easily be 120 bytes or more per txn overhead (over 1 Java long) which not an issue in general but when the system is misconfigured, the number of opened/aborted txns can get into the millions. This creates unnecessary memory pressure on metastore.

      Should consider fixing this.
      This should be easy to fix since the result of getOpenTxnsInfo() doesn't go over the wire.

      Also, ValidCompactorTxnList doesn't actually need to store the 'o' txn ids, just the 'a' ones.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated: