[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 |
||
| 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. |