apache / apache/hudi

Processing time is increased with hudi metadata enable

Open
#6,881 24 comments 0 reactions 0 assignees View on GitHub
area:metadata-table priority:high
Dominant language
Java
Stars
6.2k
Forks
2.5k
Avg merge
2d 8h
Merged PRs (30d)
111

Description

We run spark streaming application, where we upsert data in hudi,
We have around 2000 partitions in our hudi dataset, we enabled metadata in our hudi tables, after that we could see drastic change in processing time. current processing time is 15 minutes. earlier processing time is 1 min or 1 min 30 sec.
We use inline compaction
with metadata enable which compaction would you prefer? Async or inline?
Wts the difference between Async and inline compaction.
Please suggest
Hudi props :
DataSourceWriteOptions.TABLE_TYPE.key() -> DataSourceWriteOptions.MOR_TABLE_TYPE_OPT_VAL,
DataSourceWriteOptions.RECORDKEY_FIELD.key() -> "id",
DataSourceWriteOptions.PARTITIONPATH_FIELD.key() -> "col",
DataSourceWriteOptions.PRECOMBINE_FIELD.key() -> "optime",
DataSourceWriteOptions.HIVE_SYNC_ENABLED.key() -> "true",
DataSourceWriteOptions.HIVE_PARTITION_FIELDS.key() -> "col",
DataSourceWriteOptions.HIVE_PARTITION_EXTRACTOR_CLASS.key() -> classOf[MultiPartKeysValueExtractor].getName,
DataSourceWriteOptions.HIVE_SYNC_MODE.key() -> "hms",
DataSourceWriteOptions.HIVE_USE_JDBC.key() -> "false",
HoodieCompactionConfig.INLINE_COMPACT_TRIGGER_STRATEGY.key() -> CompactionTriggerStrategy.TIME_ELAPSED.name,
HoodieCompactionConfig.INLINE_COMPACT_TIME_DELTA_SECONDS.key() -> String.valueOf(60 * 60),
HoodieCompactionConfig.CLEANER_COMMITS_RETAINED.key() -> "800",
HoodieCompactionConfig.ASYNC_CLEAN.key() -> "false",
HoodieCompactionConfig.INLINE_COMPACT.key() -> "true",
HoodieCompactionConfig.MIN_COMMITS_TO_KEEP.key() -> "801",
HoodieCompactionConfig.MAX_COMMITS_TO_KEEP.key() -> "825",
HoodieMetricsConfig.TURN_METRICS_ON.key() -> "true",
HoodieMetricsConfig.METRICS_REPORTER_TYPE_VALUE.key() -> MetricsReporterType.DATADOG.name(),
HoodieMetricsDatadogConfig.API_SITE_VALUE.key() -> "US",
HoodieMetricsDatadogConfig.METRIC_PREFIX_VALUE.key() -> "tacticalnovusingest.qa.hudi",
HoodieMetricsDatadogConfig.API_KEY_SUPPLIER.key() -> "com.tr.indigo.tacticalnovusingest.utils.DatadogKeySupplier",
HoodieMetadataConfig.ENABLE.key() -> "false",
HoodieMetadataConfig.CLEANER_COMMITS_RETAINED.key() -> "800",
HoodieMetadataConfig.MIN_COMMITS_TO_KEEP.key() -> "801",
HoodieMetadataConfig.MAX_COMMITS_TO_KEEP.key() -> "825",
HoodieWriteConfig.ROLLBACK_USING_MARKERS_ENABLE.key() -> "false"

Contributor guide

No contributing guide indexed for this repository

Research direction

Use the listed Spark streaming upsert configuration as the reproduction entry point, especially metadata enablement and the inline compaction settings. Compare inline and async compaction with about 2,000 partitions, recording processing time and compaction behavior. The issue names no source file or test, and a useful result would need to document the cause and recommended configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spark
Domain
data-engineering, performance, stream-processing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.