Bug 1810588 - Load and cache cluster status proactively to prevent putting extra load on a cluster
Summary: Load and cache cluster status proactively to prevent putting extra load on a ...
Keywords:
Status: NEW
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: pcs
Version: 8.2
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Tomas Jelinek
QA Contact: cluster-qe
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-03-05 14:42 UTC by Tomas Jelinek
Modified: 2023-08-10 15:41 UTC (History)
8 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 4655611 0 None None None 2020-07-18 06:33:02 UTC

Description Tomas Jelinek 2020-03-05 14:42:50 UTC
Description of problem:
JS part of the pcsd web UI refreshes cluster status every 30ish seconds. Upon receiving the refresh request, pcsd backend gathers the status by running several cluster tools. If several users are viewing the same cluster or have the web UI opened in multiple tabs, each of them is asking for the cluster status individually and all such requests are handled independently. This can cause a significant load in the cluster even if load related to a single status refresh is reasonable.

The idea is:
* whenever a user starts viewing a cluster in web UI, start a loop for loading its status in the backend
* the loop automatically loads cluster status every 30ish seconds (this may be configurable) and caches it
* when web UI asks for cluster status, it gets response immediately from the cache
* if the loop detects nobody asked for cluster status for a while, it stops to prevent unnecessary load
* we may want to have a way to force loading the status / override the cache

In a similar way, we need to deal with the clusters overview view.



Version-Release number of selected component (if applicable):
pcs-0.10.4-5.el8


How reproducible:
always, easily


Steps to Reproduce:
1. display a cluster in web ui
2. run top on cluster machines, observe refreshing the status periodically causes load
3. display the same cluster in more browsers or tabs
4. run top on cluster machines, observe refreshing the status periodically causes bigger load


Actual results:
each web UI instance loads the cluster status individually causing extra load


Expected results:
the cluster status is refreshed once in while no matter how many clients are connected keeping the load at reasonable levels


Note You need to log in before you can comment on or make changes to this bug.