-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/71589/
-----------------------------------------------------------
(Updated Oct. 31, 2019, 3:20 p.m.)
Review request for hive, Laszlo Pinter and Peter Vary.
Bugs: HIVE-21114
https://issues.apache.org/jira/browse/HIVE-21114
Repository: hive-git
Description
-------
With HIVE-21036 we have a way to indicate that a txn is read only.
We should (at least in auto-commit mode) determine if the single stmt is a read
and mark the txn accordingly.
Then we can optimize TxnHandler.commitTxn() so that it doesn't do any checks in
write_set etc.
TxnHandler.commitTxn() already starts with lockTransactionRecord(stmt, txnid,
TXN_OPEN) so it can read the txn type in the same SQL stmt.
HiveOperation only has QUERY, which includes Insert and Select, so this
requires figuring out how to determine if a query is a SELECT. By the time
Driver.openTransaction(); is called, we have already parsed the query so there
should be a way to know if the statement only reads.
For multi-stmt txns (once these are supported) we should allow user to indicate
that a txn is read-only and then not allow any statements that can make
modifications in this txn. This should be a different jira.
Diffs
-----
ql/src/java/org/apache/hadoop/hive/ql/Driver.java 91910d1c0c
ql/src/java/org/apache/hadoop/hive/ql/io/AcidUtils.java fcf499d53a
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java 943aa383bb
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DummyTxnManager.java ac813c8288
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java 1c53426966
ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager.java
cc86afedbf
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/txn/TxnHandler.java
355c4f5374
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/TestHiveMetaStoreTxns.java
b5f22092a9
Diff: https://reviews.apache.org/r/71589/diff/6/
Testing
-------
Unit + manual test
File Attachments (updated)
----------------
HIVE-21114.1.patch
https://reviews.apache.org/media/uploaded/files/2019/10/10/0929ed4a-17be-4098-8c61-0819a30613fd__HIVE-21114.1.patch
HIVE-21114.5.patch
https://reviews.apache.org/media/uploaded/files/2019/10/17/80cbb092-97d6-48d2-b603-24213141cb5e__HIVE-21114.5.patch
HIVE-21114.8.patch
https://reviews.apache.org/media/uploaded/files/2019/10/22/b14eedb4-a2f1-4f77-9676-c258b6804b98__HIVE-21114.8.patch
HIVE-21114.8.patch
https://reviews.apache.org/media/uploaded/files/2019/10/22/9096f402-3d2e-4cd2-9f85-df1dfeb25863__HIVE-21114.8.patch
HIVE-21114.8.patch
https://reviews.apache.org/media/uploaded/files/2019/10/28/a001316c-bcf4-43a2-83fa-7d49183b2a7f__HIVE-21114.8.patch
HIVE-21114.10.patch
https://reviews.apache.org/media/uploaded/files/2019/10/31/93854078-7b63-46ec-95a0-62ab783ee54c__HIVE-21114.10.patch
Thanks,
Denys Kuzmenko