[ https://issues.apache.org/jira/browse/HIVE-26793?focusedWorklogId=836578&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-836578 ]
ASF GitHub Bot logged work on HIVE-26793: ----------------------------------------- Author: ASF GitHub Bot Created on: 03/Jan/23 10:09 Start Date: 03/Jan/23 10:09 Worklog Time Spent: 10m Work Description: deniskuzZ commented on code in PR #3822: URL: https://github.com/apache/hive/pull/3822#discussion_r1060434675 ########## standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSMetricsListener.java: ########## @@ -99,15 +103,21 @@ public void onAddPartition(AddPartitionEvent partitionEvent) throws MetaExceptio public void onAllocWriteId(AllocWriteIdEvent allocWriteIdEvent, Connection dbConn, SQLGenerator sqlGenerator) throws MetaException { if (MetastoreConf.getBoolVar(getConf(), MetastoreConf.ConfVars.METASTORE_ACIDMETRICS_EXT_ON)) { Table table = getTable(allocWriteIdEvent); - // In the case of CTAS, the table is created after write ids are allocated, so we'll skip metrics collection. - if (table != null && MetaStoreUtils.isNoAutoCompactSet(table.getParameters())) { - int noAutoCompactSet = - Metrics.getOrCreateGauge(MetricsConstants.WRITES_TO_DISABLED_COMPACTION_TABLE).incrementAndGet(); - if (noAutoCompactSet >= - MetastoreConf.getIntVar(getConf(), - MetastoreConf.ConfVars.COMPACTOR_NUMBER_OF_DISABLED_COMPACTION_TABLES_THRESHOLD)) { - LOGGER.warn("There has been a write to table " + table.getDbName() + "." + table.getTableName() + - " where auto-compaction is disabled (tblproperties (\"no_auto_compact\"=\"true\"))."); + if (table != null) { + Database db; + try { + db = HMSHandler.getMSForConf(getConf()).getDatabase(table.getCatName(), table.getDbName()); Review Comment: should be done similarly to getTable to reuse the HMSHandler if available. Maybe even reactor getTable to isNoAutoCompactSet as it's the only place this method is used Issue Time Tracking ------------------- Worklog Id: (was: 836578) Time Spent: 2.5h (was: 2h 20m) > Create a new configuration to override "no compaction" for tables > ----------------------------------------------------------------- > > Key: HIVE-26793 > URL: https://issues.apache.org/jira/browse/HIVE-26793 > Project: Hive > Issue Type: Improvement > Reporter: Kokila N > Assignee: Kokila N > Priority: Major > Labels: pull-request-available > Time Spent: 2.5h > Remaining Estimate: 0h > > Currently a simple user can create a table with > {color:#6a8759}no_auto_compaction=true{color} table property and create an > aborted write transaction writing to this table. This way a malicious user > can prevent cleaning up data for the aborted transaction, creating > performance degradation. > This configuration should be allowed to overridden on a database level: > adding {color:#6a8759}no_auto_compaction=false{color} should override the > table level setting forcing the initiator to schedule compaction for all > tables. -- This message was sent by Atlassian Jira (v8.20.10#820010)