Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Conversation

jonvex
Copy link
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
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 marked this pull request as ready for review November 23, 2022 00:29
@nsivabalan
Copy link
Contributor

can you fix the PR desc w/ right config key

@codope codope added priority:critical production down; pipelines stalled; Need help asap. hudistreamer issues related to Hudi streamer (Formely deltastreamer) labels Nov 28, 2022
@codope
Copy link
Member

codope commented Nov 28, 2022

@jonvex Can you please check the test failures?

@jonvex
Copy link
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
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

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 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hudistreamer issues related to Hudi streamer (Formely deltastreamer) priority:critical production down; pipelines stalled; Need help asap.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants