[ https://issues.apache.org/jira/browse/HIVE-23107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17071246#comment-17071246 ]
Peter Vary commented on HIVE-23107: ----------------------------------- Thanks for the patch [~lpinter]! Some suggestions for squashing jdbc queries: * Maybe using this query for setting the next transaction id in markCompacted: {code} UPDATE "COMPACTION_QUEUE" SET "CQ_STATE" = 'r', "CQ_WORKER_ID" = NULL, "CQ_NEXT_TXN_ID" = (SELECT "NTXN_NEXT" FROM "NEXT_TXN_ID") WHERE "CQ_ID" = 11; {code} * Maybe pushing all of the queries to the db in one go in cleanTxnToWriteIdTable, like: {code} SELECT MIN("RES"."ID") AS "ID" FROM ( SELECT MIN("NTXN_NEXT") AS "ID" FROM "NEXT_TXN_ID" UNION SELECT MIN("WS_COMMIT_ID") AS "ID" FROM "WRITE_SET" UNION SELECT MIN("TXN_ID") AS "ID" FROM "TXNS" WHERE "TXN_STATE" = 'a' ) "RES" {code} * Maybe pushing all of the queries to the db in one go in findMinOpenTxnIdForCleaner, like: {code} SELECT MIN("RES"."ID") AS "ID" FROM ( SELECT MIN("TXN_ID") AS "ID" FROM "TXNS" WHERE "TXN_STATE" = 'o' UNION SELECT MIN("CQ_NEXT_TXN_ID") AS "ID" FROM "COMPACTION_QUEUE" WHERE "CQ_STATE" = 'r' UNION SELECT NTXN_NEXT AS "ID" FROM "NEXT_TXN_ID" ) "RES" {code} One more suggestion: Maybe we should drop the MIN_HISTORY_LEVEL table in upgrade queries? Do we have test coverage for the changed methods? I have seen that you made plenty of tests during previous patches, just asking to make sure :D Thanks for the patch! This will help trendemously! Peter > Remove MIN_HISTORY_LEVEL table > ------------------------------ > > Key: HIVE-23107 > URL: https://issues.apache.org/jira/browse/HIVE-23107 > Project: Hive > Issue Type: Improvement > Components: Hive > Reporter: László Pintér > Assignee: László Pintér > Priority: Major > Attachments: HIVE-23107.01.patch > > > MIN_HISTORY_LEVEL table is used in two places: > * Cleaner uses it to decide if the files can be removed - this could be > replaced by adding a new column to compaction_queue storing the next_txn_id > when the change was committed, and before cleaning checking the minimum open > transaction id in the TXNS table > * Initiator uses it to decide if some items from TXN_TO_WRITE_ID table can > be removed. This could be replaced by using the WRITE_SET.WS_COMMIT_ID. -- This message was sent by Atlassian Jira (v8.3.4#803005)