[INFRAUTILS-2] Ability to control how much processing in given to a plugin Created: 12/Jan/15  Updated: 03/Apr/18  Resolved: 03/Apr/18

Status: Resolved
Project: infrautils
Component/s: General
Affects Version/s: Nitrogen
Fix Version/s: None

Type: Improvement
Reporter: Steve Dean Assignee: Michael Vorburger
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All



 Description   

Today the controller does not have a mechanism that prevents a plugin from consuming all CPU resources thus starving other plugins, controller services, and applications. A Plugin could implement a service to throttle processing to ensure it don’t consume all CPU resources. However, this type of service is something that many plugins would utilize, and it may make sense for the Controller to provide this service.



 Comments   
Comment by Robert Varga [ 13/Jan/15 ]

Would this be a resource-capping thing akin to cgroups?

Comment by David Bainbridge [ 13/Jan/15 ]

Assuming you are referring to the linux control group concept, yes, i would agree there are some similarities. What we are attempting to protect against is a situation where on server restart the controller attempts to synchronize the data from all devices specified in the /config store. This could be a large set of devices. What we want to prevent is all threads in the controller being utilized for this synchronization as they call out to plugins. Instead, we would like to have a policy to the effect, never allocate more than 2 threads to any given plugin at any given time. So that in these situations there would always be threads available to processing other traffic through the controller.

Comment by Carol Sanders [ 04/May/15 ]

This bug is part of the project to Move all ADSAL associated component bugs to ADSAL

Comment by Robert Varga [ 24/Aug/17 ]

Infrautils seems like the best place for this.

Comment by Michael Vorburger [ 25/Sep/17 ]

I'm struggling to how one could build something like Linux Kernel cgroups to limit an OSGi bundle's available CPU time in a Karaf JVM by a Java library such as the code in infrautils, and personally would be inclined to close this bug as RESOLVED INVALID...

... but I don't want to close the door to anyone having any smart ideas, and time to make such a contribution - so let's leave it open, but close it in 3 months if there are no further updates with at least rough high level possible imaginable implementation ideas - hope that seems fair.

Generated at Wed Feb 07 20:02:00 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.