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

Prevent high request load after notify_push notification #5072

Closed
marcotrevisan opened this issue Oct 19, 2022 · 3 comments
Closed

Prevent high request load after notify_push notification #5072

marcotrevisan opened this issue Oct 19, 2022 · 3 comments
Labels
enhancement enhancement of a already implemented feature/code

Comments

@marcotrevisan
Copy link

How to use GitHub

  • Please use the 👍 reaction to show that you want to have the same feature implemented.
  • Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
  • Subscribe to receive notifications on status change and new comments.

Feature description

This is the client side counterpart of issue nextcloud/notify_push#192 .

I'd like to focus on a particularly nasty side-effect of the reaction to a notification, when there are many clients (>20) and big folders in sync:

  1. A client updates a file / folder;
  2. A push notification is sent to all connected NC clients;
  3. Immediately after, all clients issue a number of PROPFIND requests to get more info and decide what to do;
  4. The server load easily spikes to 80-95% of all available cores;
  5. Just a few seconds after the first push, another user changes a different file/folder;
  6. go to number 2.

The above is going to pile up easily and use up all the available cores when many users are working on a big share.
As a result of that, on a user perspective the clients tend to stay in "synchronizing" state for most of the time and appear very slowly responsive, even if only few small changes really happened in the shares.

A solution to highly mitigate the above side effects would be to:

  • Add more information to the push notification message so that the clients don't always need to ask back additional info (Prevent high request load after notification notify_push#192)
  • Change the NC client push notification code to make use of the additional info and avoid issuing a bunch of requests (this issue)

Hope this helps, thanks!

@marcotrevisan marcotrevisan added the enhancement enhancement of a already implemented feature/code label Oct 19, 2022
@jospoortvliet
Copy link
Member

We added some batching to the notify-push feature. Is this resolved now or still relevant?

@roberix
Copy link

roberix commented Oct 18, 2023

Hi.

Maybe a bit off topic but is the HPB in NC25+ still a thing? Since NC21 there is not much information about this. Is there still major performance gains.

@jospoortvliet would u know this maybe?

thanks

rob

@jospoortvliet
Copy link
Member

Hi Roberix, absolutely - nothing has much changed in this regard. I don't think a ton more features have moved in, but it's still used and, for example, our All-in-one Docker image uses it.

I'll now close it, as I guess this is resolved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement enhancement of a already implemented feature/code
Projects
None yet
Development

No branches or pull requests

3 participants