From 642b1b671de8c6a35ae7858c9b03d3dff70889dd Mon Sep 17 00:00:00 2001 From: Sivabalan Narayanan Date: Fri, 13 Aug 2021 19:29:22 -0400 Subject: [PATCH] [HUDI-2151] Flipping defaults (#3452) --- .../java/org/apache/hudi/config/HoodieIndexConfig.java | 8 ++++---- .../java/org/apache/hudi/config/HoodieWriteConfig.java | 2 +- .../functional/TestHoodieClientOnCopyOnWriteStorage.java | 2 ++ .../hudi/index/bloom/TestHoodieGlobalBloomIndex.java | 3 ++- .../org/apache/hudi/common/fs/ConsistencyGuardConfig.java | 2 +- .../main/scala/org/apache/hudi/DataSourceOptions.scala | 2 +- 6 files changed, 11 insertions(+), 8 deletions(-) diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieIndexConfig.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieIndexConfig.java index 7f74fbd5a..ca3e58e33 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieIndexConfig.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieIndexConfig.java @@ -141,8 +141,8 @@ public class HoodieIndexConfig extends HoodieConfig { public static final ConfigProperty BLOOM_INDEX_FILTER_TYPE = ConfigProperty .key("hoodie.bloom.index.filter.type") - .defaultValue(BloomFilterTypeCode.SIMPLE.name()) - .withDocumentation("Filter type used. Default is BloomFilterTypeCode.SIMPLE. " + .defaultValue(BloomFilterTypeCode.DYNAMIC_V0.name()) + .withDocumentation("Filter type used. Default is BloomFilterTypeCode.DYNAMIC_V0. " + "Available values are [BloomFilterTypeCode.SIMPLE , BloomFilterTypeCode.DYNAMIC_V0]. " + "Dynamic bloom filters auto size themselves based on number of keys."); @@ -211,7 +211,7 @@ public class HoodieIndexConfig extends HoodieConfig { */ public static final ConfigProperty BLOOM_INDEX_UPDATE_PARTITION_PATH = ConfigProperty .key("hoodie.bloom.index.update.partition.path") - .defaultValue("false") + .defaultValue("true") .withDocumentation("Only applies if index type is GLOBAL_BLOOM. " + "When set to true, an update including the partition path of a record that already exists will result in " + "inserting the incoming record into the new partition and deleting the original record in the old partition. " @@ -219,7 +219,7 @@ public class HoodieIndexConfig extends HoodieConfig { public static final ConfigProperty SIMPLE_INDEX_UPDATE_PARTITION_PATH = ConfigProperty .key("hoodie.simple.index.update.partition.path") - .defaultValue("false") + .defaultValue("true") .withDocumentation("Similar to " + BLOOM_INDEX_UPDATE_PARTITION_PATH + ", but for simple index."); /** diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java index 4cbbbbc95..9ba4fab47 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieWriteConfig.java @@ -119,7 +119,7 @@ public class HoodieWriteConfig extends HoodieConfig { public static final ConfigProperty TIMELINE_LAYOUT_VERSION = ConfigProperty .key("hoodie.timeline.layout.version") - .noDefaultValue() + .defaultValue(Integer.toString(TimelineLayoutVersion.VERSION_1)) .sinceVersion("0.5.1") .withDocumentation("Controls the layout of the timeline. Version 0 relied on renames, Version 1 (default) models " + "the timeline as an immutable log relying only on atomic writes for object storage."); diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java index a1f8180ac..45dedd6ec 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/client/functional/TestHoodieClientOnCopyOnWriteStorage.java @@ -1973,6 +1973,7 @@ public class TestHoodieClientOnCopyOnWriteStorage extends HoodieClientTestBase { getConfigBuilder().withRollbackUsingMarkers(rollbackUsingMarkers).withAutoCommit(false) .withConsistencyGuardConfig(ConsistencyGuardConfig.newBuilder() .withConsistencyCheckEnabled(true) + .withEnableOptimisticConsistencyGuard(enableOptimisticConsistencyGuard) .withOptimisticConsistencyGuardSleepTimeMs(1).build()) .withProperties(properties).build(); SparkRDDWriteClient client = getHoodieWriteClient(cfg); @@ -2204,6 +2205,7 @@ public class TestHoodieClientOnCopyOnWriteStorage extends HoodieClientTestBase { .withMaxConsistencyCheckIntervalMs(1).withInitialConsistencyCheckIntervalMs(1).withEnableOptimisticConsistencyGuard(enableOptimisticConsistencyGuard).build()) .build()) : (getConfigBuilder().withAutoCommit(false) .withConsistencyGuardConfig(ConsistencyGuardConfig.newBuilder().withConsistencyCheckEnabled(true) + .withEnableOptimisticConsistencyGuard(enableOptimisticConsistencyGuard) .withOptimisticConsistencyGuardSleepTimeMs(1).build()) .build()); SparkRDDWriteClient client = getHoodieWriteClient(cfg); diff --git a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java index ff87f967a..3970ab250 100644 --- a/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java +++ b/hudi-client/hudi-spark-client/src/test/java/org/apache/hudi/index/bloom/TestHoodieGlobalBloomIndex.java @@ -177,7 +177,8 @@ public class TestHoodieGlobalBloomIndex extends HoodieClientTestHarness { @Test public void testTagLocation() throws Exception { - HoodieWriteConfig config = HoodieWriteConfig.newBuilder().withPath(basePath).build(); + HoodieWriteConfig config = HoodieWriteConfig.newBuilder().withPath(basePath) + .withIndexConfig(HoodieIndexConfig.newBuilder().withBloomIndexUpdatePartitionPath(false).build()).build(); SparkHoodieGlobalBloomIndex index = new SparkHoodieGlobalBloomIndex(config); HoodieTable hoodieTable = HoodieSparkTable.create(config, context, metaClient); HoodieSparkWriteableTestTable testTable = HoodieSparkWriteableTestTable.of(hoodieTable, SCHEMA); diff --git a/hudi-common/src/main/java/org/apache/hudi/common/fs/ConsistencyGuardConfig.java b/hudi-common/src/main/java/org/apache/hudi/common/fs/ConsistencyGuardConfig.java index 9b12f89c7..74830a4b2 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/fs/ConsistencyGuardConfig.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/fs/ConsistencyGuardConfig.java @@ -77,7 +77,7 @@ public class ConsistencyGuardConfig extends HoodieConfig { // config to enable OptimisticConsistencyGuard in finalizeWrite instead of FailSafeConsistencyGuard public static final ConfigProperty ENABLE_OPTIMISTIC_CONSISTENCY_GUARD_PROP = ConfigProperty .key("_hoodie.optimistic.consistency.guard.enable") - .defaultValue(true) + .defaultValue(false) .sinceVersion("0.6.0") .withDocumentation("Enable consistency guard, which optimistically assumes consistency is achieved after a certain time period."); diff --git a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DataSourceOptions.scala b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DataSourceOptions.scala index f04b1f74e..a534ac569 100644 --- a/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DataSourceOptions.scala +++ b/hudi-spark-datasource/hudi-spark-common/src/main/scala/org/apache/hudi/DataSourceOptions.scala @@ -288,7 +288,7 @@ object DataSourceWriteOptions { */ val ENABLE_ROW_WRITER: ConfigProperty[String] = ConfigProperty .key("hoodie.datasource.write.row.writer.enable") - .defaultValue("false") + .defaultValue("true") .withDocumentation("When set to true, will perform write operations directly using the spark native " + "`Row` representation, avoiding any additional conversion costs.") @Deprecated