[
https://issues.apache.org/jira/browse/HIVE-26793?focusedWorklogId=841364&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-841364
]
ASF GitHub Bot logged work on HIVE-26793:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 24/Jan/23 12:01
Start Date: 24/Jan/23 12:01
Worklog Time Spent: 10m
Work Description: deniskuzZ commented on code in PR #3822:
URL: https://github.com/apache/hive/pull/3822#discussion_r1085202881
##########
ql/src/java/org/apache/hadoop/hive/ql/txn/compactor/Initiator.java:
##########
@@ -613,13 +614,22 @@ private boolean isEligibleForCompaction(CompactionInfo ci,
return false;
}
- if (isNoAutoCompactSet(t.getParameters())) {
- LOG.info("Table " + tableName(t) + " marked " +
hive_metastoreConstants.TABLE_NO_AUTO_COMPACT +
- "=true so we will not compact it.");
+ Map<String, String> dbParams = computeIfAbsent(ci.dbname, () ->
resolveDatabase(ci)).getParameters();
+ if (isNoAutoCompactSet(dbParams, t.getParameters())) {
+ if (MetaStoreUtils.IS_DB_LEVEL_CONFIG) {
Review Comment:
idea is good , but not the impl. There could be multiple dbs, sharing
through static filed in multiple threads is not a good idea. What if you simple
use
````
if (getNoAutoCompact(dbParameters)){
skipDBs.add(ci.dbname);
} else {
skipTables.add(ci.getFullTableName());
}
````
Issue Time Tracking
-------------------
Worklog Id: (was: 841364)
Time Spent: 4h 10m (was: 4h)
> 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: 4h 10m
> 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)