Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
- DDLSemanticAnalyzer.alterTableOutput is unused
- DDLTask.generateAddMmTasks(Table) - stmtId should probably come from TransactionManager
- DDLTask.createTable(Hive db, CreateTableDesc crtTbl) has Long mmWriteId = crtTbl.getInitialMmWriteId(); logic is unclear.. this ID is only set in one place..
- FileSinkOperator has multiple places that look like conf.getWriteType() == AcidUtils.Operation.NOT_ACID || conf.isMmTable() - what is the writeType for MM tables? Seems that Wei opted for "work.getLoadTableWork().getWriteType() != AcidUtils.Operation.NOT_ACID && !tbd.isMmTable()" to mean MM, e.g. MoveTask.handleStaticParts() call to Hive.loadPartition()
- HiveConf.HIVE_TXN_OPERATIONAL_PROPERTIES - the doc/explanation there is obsolete
- Compactor Initiator likely doesn't work for MM tables. It's triggered by into in TXN_COMPONENTS/COMPLETED_TXN_COMPONENTS. MM tables don't write to either because DbTxnManager.acquireLocks() does compBuilder.setIsAcid(AcidUtils.isFullAcidTable(t)); i.e. it treats MM as non-acid tables
- In general integration with full Acid seems confused wrt to MM and seems to treat MM as special table type rather than subtype of Acid table. (mostly, but not always).
- e.g. SemanticAnalyzer.genBucketingSortingDest(String dest, Operator input, QB qb, TableDesc table_desc, Table dest_tab, SortBucketRSCtx ctx)
- SemanticAnalyzer.validate() has if (tbl != null && (AcidUtils.isFullAcidTable(tbl) || MetaStoreUtils.isInsertOnlyTable(tbl.getParameters()))) {
- LoadSemanticAnalyzer.analyzeInternal(ASTNode) sets statementId to 0 rather than from TM
- ImportCommitTask - doesn't currently do anything. It used to commit mmID. Need to verify we properly commit the txn in the Driver
- As far as I can tell all the mm_*.q tests run on TestCliDriver which means MR. This doesn't exercise some code specifically for dealing with writes from Union All queries (CTAS, Insert into). On MR this requires "hive.optimize.union.remove=true" (false by default)
- Remove MoveWork().setNoop(boolean) and usages per todo in GenMapRedUtils.createMRWorkForMergingFiles (FileSinkOperator fsInput, Path finalName, DependencyCollectionTask dependencyTask, List<Task<MoveWork>> mvTasks, HiveConf conf, Task<? extends Serializable> currTask)
- PartialScanWork.tblDesc - unused
- Partition.getBucketPath(int bucketNum) has "// Note: this makes assumptions that won't work with MM tables, unions, etc.". File Jira?
- PartitionDesc.LOG is unused
- Insert Overwrite for MM is incomplete - see comments in
HIVE-15212regarding IOW and multi IOW - mm_bucket_convert.q - doesn't install DbTxnManager, doesn't write any data - not sure what it tests in practice
- There no concurrency tests that check locking
- no tests with aborted txns
- tests don't run on Tez/LLap - affects some optimization like Union All writes
Attachments
Issue Links
- is related to
-
HIVE-17780 MM table followup list
- Open