Skip to content

Make multiple settings dynamic for Merge on Flush #17495

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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

kkewwei
Copy link
Collaborator

@kkewwei kkewwei commented Mar 3, 2025

Description

  • Make those settings dynamic:
  • index.merge_on_flush.enabled
  • index.merge_on_flush.max_full_flush_merge_wait_time
  • index.merge_on_flush.policy
  • index.check_pending_flush.enabled.

Related Issues

Resolves #10048

Check List

  • Functionality includes testing.
  • API changes companion pull request created, if applicable.
  • Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@github-actions github-actions bot added bug Something isn't working discuss Issues intended to help drive brainstorming and decision making Indexing Indexing, Bulk Indexing and anything related to indexing labels Mar 3, 2025
@kkewwei kkewwei force-pushed the dynamic_settings branch from 6adb78d to bbb906f Compare March 3, 2025 12:05
Copy link
Contributor

github-actions bot commented Mar 3, 2025

❌ Gradle check result for bbb906f: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Copy link
Contributor

❕ Gradle check result for cf7e975: UNSTABLE

Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure.

Copy link
Contributor

❌ Gradle check result for c77e86d: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@kkewwei
Copy link
Collaborator Author

kkewwei commented Apr 23, 2025

❌ Gradle check result for c77e86d: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

IndexActionIT.testAutoGenerateIdNoDuplicates #16576

Copy link
Contributor

❌ Gradle check result for cb4b0f1: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@andrross andrross mentioned this pull request May 7, 2025
3 tasks
@kkewwei kkewwei requested a review from a team as a code owner May 15, 2025 13:20
Copy link
Contributor

❌ Gradle check result for 11587de: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@kkewwei kkewwei closed this May 15, 2025
@kkewwei kkewwei reopened this May 15, 2025
Copy link
Contributor

✅ Gradle check result for 11587de: SUCCESS

Copy link
Contributor

✅ Gradle check result for d5922a9: SUCCESS

@kkewwei
Copy link
Collaborator Author

kkewwei commented May 16, 2025

@msfroh Could you please continue to review in your spare time? Thank you very much.

Comment on lines 298 to 299
this.indexWriterConfig = getIndexWriterConfig();
writer = createWriter(indexWriterConfig);
Copy link
Contributor

Choose a reason for hiding this comment

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

Just to confirm -- this change will only be "semi-dynamic".

That is, you need to restart the Engine to recreate the IndexWriterConfig and recreate the IndexWriter, right? Is that intentional?

If you call the getIndexWriterConfig() method on InternalEngine, you get a copy of the LiveIndexWriterConfig which affects the current IndexWriter.

I think it might be better to call getIndexWriterConfig() from the onSettingsChanged method to update the LiveIndexWriterConfig. What do you think, @kkewwei?

Copy link
Collaborator Author

@kkewwei kkewwei May 20, 2025

Choose a reason for hiding this comment

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

By the change, we can dynamic change the settings without restarting the Engine.

@kkewwei kkewwei force-pushed the dynamic_settings branch from d5922a9 to a20e0ee Compare May 20, 2025 00:50
Copy link
Contributor

✅ Gradle check result for a20e0ee: SUCCESS

…lush_merge_wait_time`, `index.merge_on_flush.policy`, `index.check_pending_flush.enabled` dynamic

Signed-off-by: kkewwei <kewei.11@bytedance.com>
Signed-off-by: kkewwei <kkewwei@163.com>
@kkewwei kkewwei force-pushed the dynamic_settings branch from a20e0ee to 23d6e8c Compare May 20, 2025 04:47
Copy link
Contributor

✅ Gradle check result for 23d6e8c: SUCCESS

Signed-off-by: kkewwei <kewei.11@bytedance.com>
Copy link
Contributor

❌ Gradle check result for ab353dc: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@kkewwei kkewwei closed this May 28, 2025
@kkewwei kkewwei reopened this May 28, 2025
Copy link
Contributor

✅ Gradle check result for ab353dc: SUCCESS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working discuss Issues intended to help drive brainstorming and decision making Indexing Indexing, Bulk Indexing and anything related to indexing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BUG] Dynamic Merge on Flush Settings don't seem to apply when updated on the open indices.
3 participants