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

Improve child performances #1314

Merged
merged 20 commits into from
Sep 23, 2020
Merged

Improve child performances #1314

merged 20 commits into from
Sep 23, 2020

Conversation

delvedor
Copy link
Member

@delvedor delvedor commented Sep 22, 2020

The client code has been refactored to speed up the performances of the child method.
Before this pr, creating many children per second would have caused a high memory consumption and a spike in CPU usage.
This pr changes the way the client is created by refactoring the code generation, now the clients methods are no longer added to the instance with a for loop but via prototypal inheritance. Thus, the overall performances are way better, now creating a child is ~5 times faster, and it consumes ~70% less memory.

This change should not cause any breaking change unless you were mocking the client methods. In such case you should refactor it, or use elasticsearch-js-mock.

Finally, this change should also fix once and of all the bundlers support.

cc @kobelb @roncohen @nchaulet
Closes: #1232 #1290

@delvedor delvedor linked an issue Sep 22, 2020 that may be closed by this pull request
@delvedor delvedor merged commit a064f0f into master Sep 23, 2020
@delvedor delvedor deleted the child-optimization branch September 23, 2020 09:31
@github-actions
Copy link
Contributor

The backport to 7.x failed:

The process '/usr/bin/git' failed with exit code 1

To backport manually, run these commands in your terminal:

# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add .worktrees/backport-7.x 7.x
# Navigate to the new working tree
cd .worktrees/backport-7.x
# Create a new branch
git switch --create backport-1314-to-7.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick ---mainline 1 a064f0f357ea5797cb8a784671b85a6b0c88626d
# Push it to GitHub
git push --set-upstream origin backport-1314-to-7.x
# Go back to the original working tree
cd ../..
# Delete the working tree
git worktree remove .worktrees/backport-7.x

Then, create a pull request where the base branch is 7.x and the compare/head branch is backport-1314-to-7.x.

delvedor added a commit that referenced this pull request Sep 23, 2020
delvedor added a commit that referenced this pull request Sep 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Performance of Client#child Improve support for bundlers
1 participant