Skip to content

[HUDI-5242] Do not fail Meta sync in Deltastreamer when inline table service fails#7243

Merged
nsivabalan merged 4 commits intoapache:masterfrom
jonvex:dont_fail_metasync_when_tableservice_fail_deltastreamer
Nov 29, 2022
Merged

[HUDI-5242] Do not fail Meta sync in Deltastreamer when inline table service fails#7243
nsivabalan merged 4 commits intoapache:masterfrom
jonvex:dont_fail_metasync_when_tableservice_fail_deltastreamer

Conversation

@jonvex
Copy link
Copy Markdown
Contributor

@jonvex jonvex commented Nov 18, 2022

Change Logs

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This pr adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

How I tested:

First, in inlineClustering:BaseHoodieWriteClient.java, add the following code before the return

if (true) {
      throw new HoodieException("CLUSTER FAILURE");
}

Test not setting the config:

  1. Run the test testInlineClustering:TestHoodieDeltaStreamer.java
  2. Verify the tests pass and search the logs for "CLUSTER FAILURE"

Test setting the config:

  1. in writeCommonPropsToFile:HoodieDeltaStreamerTestBase.java add the line props.setProperty("hoodie.fail.writes.on.inline.table.service.exception","true");
  2. Run the test testInlineClustering:TestHoodieDeltaStreamer.java
  3. Verify the test failed with the hoodie exception "CLUSTER FAILURE"

Impact

For users that retry delta sync on failure, they will continue adding one commit each retry. New partitions will not show up in the metaserver.

Risk level (write none, low medium or high below)

low

Documentation Update

Describe any necessary documentation update if there is any new feature, config, or user-facing change

A new configuration was created and an appropriate description was added

Contributor's checklist

  • Read through contributor's guide
  • Change Logs and Impact were stated clearly
  • Adequate tests were added if applicable
  • CI passed

@jonvex jonvex force-pushed the dont_fail_metasync_when_tableservice_fail_deltastreamer branch 2 times, most recently from a989efc to d3e3855 Compare November 18, 2022 18:18
@jonvex jonvex changed the title think I made the change Do not fail Meta sync in Deltastreamer when inline table service fails Nov 18, 2022
@jonvex jonvex force-pushed the dont_fail_metasync_when_tableservice_fail_deltastreamer branch from d3e3855 to afb5f8f Compare November 18, 2022 18:29
Copy link
Copy Markdown
Contributor

@nsivabalan nsivabalan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good you were able to test it out.
can we write a functional test for this as well.

@jonvex jonvex changed the title Do not fail Meta sync in Deltastreamer when inline table service fails [HUDI-5242] Do not fail Meta sync in Deltastreamer when inline table service fails Nov 18, 2022
@jonvex jonvex force-pushed the dont_fail_metasync_when_tableservice_fail_deltastreamer branch from 79e84bb to 59308d4 Compare November 22, 2022 20:11
@jonvex jonvex requested a review from nsivabalan November 22, 2022 21:35
@jonvex jonvex marked this pull request as ready for review November 23, 2022 00:29
@nsivabalan
Copy link
Copy Markdown
Contributor

can you fix the PR desc w/ right config key

@codope codope added priority:critical Production degraded; pipelines stalled area:ingest Ingestion into Hudi labels Nov 28, 2022
@codope
Copy link
Copy Markdown
Member

codope commented Nov 28, 2022

@jonvex Can you please check the test failures?

@jonvex
Copy link
Copy Markdown
Contributor Author

jonvex commented Nov 28, 2022

All tests should pass now. I thought we wanted the new behavior on by default but it was a miscommunication.

Copy link
Copy Markdown
Contributor

@nsivabalan nsivabalan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can land once the CI succeeds.

@hudi-bot
Copy link
Copy Markdown
Collaborator

CI report:

Bot commands @hudi-bot supports the following commands:
  • @hudi-bot run azure re-run the last Azure build

@nsivabalan nsivabalan merged commit 1cdbf68 into apache:master Nov 29, 2022
satishkotha pushed a commit that referenced this pull request Dec 13, 2022
…service fails (#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
satishkotha pushed a commit that referenced this pull request Dec 13, 2022
…service fails (#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
alexeykudinkin pushed a commit to onehouseinc/hudi that referenced this pull request Dec 14, 2022
…service fails (apache#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
alexeykudinkin pushed a commit to onehouseinc/hudi that referenced this pull request Dec 14, 2022
…service fails (apache#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
alexeykudinkin pushed a commit to onehouseinc/hudi that referenced this pull request Dec 14, 2022
…service fails (apache#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
alexeykudinkin pushed a commit to onehouseinc/hudi that referenced this pull request Dec 14, 2022
…service fails (apache#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
alexeykudinkin pushed a commit to onehouseinc/hudi that referenced this pull request Dec 14, 2022
…service fails (apache#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
fengjian428 pushed a commit to fengjian428/hudi that referenced this pull request Apr 5, 2023
…service fails (apache#7243)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>
vinishjail97 pushed a commit to vinishjail97/hudi that referenced this pull request Dec 15, 2023
…service fails (apache#7243) (apache#163)

After the files are written, table services like clustering and compaction can fail. This causes the sync to the metaserver to not happen. This patch adds a config that when set to false, the deltastreamer will not fail and the sync to the metaserver will occur. A warning will be logged with the exception that occurred. To use this new behavior, set hoodie.fail.writes.on.inline.table.service.exception to false.

Co-authored-by: Jonathan Vexler <=>

Co-authored-by: Jon Vexler <jbvexler@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ingest Ingestion into Hudi priority:critical Production degraded; pipelines stalled

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants