[
https://issues.apache.org/jira/browse/HIVE-25346?focusedWorklogId=666281&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-666281
]
ASF GitHub Bot logged work on HIVE-25346:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 18/Oct/21 13:07
Start Date: 18/Oct/21 13:07
Worklog Time Spent: 10m
Work Description: deniskuzZ commented on a change in pull request #2716:
URL: https://github.com/apache/hive/pull/2716#discussion_r730902109
##########
File path:
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
##########
@@ -1617,42 +1625,52 @@ private boolean isUpdateOrDelete(Statement stmt, String
conflictSQLSuffix) throw
* @return max Id for the conflicting transaction, if any, otherwise -1
* @throws MetaException
*/
+ @RetrySemantics.ReadOnly
public long getLatestTxnIdInConflict(long txnid) throws MetaException {
- Connection dbConn = null;
- Statement stmt = null;
-
try {
- dbConn = getDbConn(Connection.TRANSACTION_READ_COMMITTED);
- stmt = dbConn.createStatement();
+ Connection dbConn = null;
+ Statement stmt = null;
- String writeConflictQuery = "SELECT MAX(\"COMMITTED\".\"WS_TXNID\")" +
- " FROM \"WRITE_SET\" \"COMMITTED\" " +
- " INNER JOIN (" +
- "SELECT DISTINCT \"TC_DATABASE\", \"TC_TABLE\", \"TC_PARTITION\",
\"TC_TXNID\" " +
- " FROM \"TXN_COMPONENTS\" " +
- " WHERE \"TC_TXNID\" = " + txnid +
- " AND \"TC_OPERATION_TYPE\" IN (" + OperationType.UPDATE + "," +
OperationType.DELETE + ")) \"CUR\" " +
- " ON \"COMMITTED\".\"WS_DATABASE\" = \"CUR\".\"TC_DATABASE\" " +
- " AND \"COMMITTED\".\"WS_TABLE\" = \"CUR\".\"TC_TABLE\" " +
- //For partitioned table we always track writes at partition level
(never at table)
- //and for non partitioned - always at table level, thus the same table
should never
- //have entries with partition key and w/o
- " AND (\"COMMITTED\".\"WS_PARTITION\" = \"CUR\".\"TC_PARTITION\"
OR " +
- " \"CUR\".\"TC_PARTITION\" IS NULL) " +
- " WHERE \"CUR\".\"TC_TXNID\" <= \"COMMITTED\".\"WS_COMMIT_ID\"";
//txns overlap
-
- LOG.debug("Going to execute query: <" + writeConflictQuery + ">");
- ResultSet rs = stmt.executeQuery(writeConflictQuery);
- return rs.next() ? rs.getLong(1) : -1;
-
- } catch (Exception e) {
- throw new MetaException(StringUtils.stringifyException(e));
+ try {
+ dbConn = getDbConn(Connection.TRANSACTION_READ_COMMITTED);
+ stmt = dbConn.createStatement();
- } finally {
- closeStmt(stmt);
- closeDbConn(dbConn);
+ String writeConflictQuery = "SELECT MAX(\"COMMITTED\".\"WS_TXNID\")" +
Review comment:
````
(useMinHistoryLevel ? "" :
" AND \"COMMITTED\".\"WS_OPERATION_TYPE\" != " +
OperationType.INSERT) +
````
in a case when MIN_HISTORY is not available, we will add entries for INSERTs
into the WRITE_SET table (required for snapshot) - those shouldn't participate
in conflict check
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 666281)
Time Spent: 9h 40m (was: 9.5h)
> cleanTxnToWriteIdTable breaks SNAPSHOT isolation
> ------------------------------------------------
>
> Key: HIVE-25346
> URL: https://issues.apache.org/jira/browse/HIVE-25346
> Project: Hive
> Issue Type: Bug
> Reporter: Zoltan Chovan
> Assignee: Zoltan Chovan
> Priority: Major
> Labels: pull-request-available
> Time Spent: 9h 40m
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)