[
https://issues.jboss.org/browse/ISPN-10309?page=com.atlassian.jira.plugin...
]
Tristan Tarrant updated ISPN-10309:
-----------------------------------
Sprint: DataGrid Sprint #29, DataGrid Sprint #30, DataGrid Sprint #33, DataGrid Sprint
#34, DataGrid Sprint #35, DataGrid Sprint #36, DataGrid Sprint #37 (was: DataGrid Sprint
#29, DataGrid Sprint #30, DataGrid Sprint #33, DataGrid Sprint #34, DataGrid Sprint #35,
DataGrid Sprint #36)
Convert Remaining Parts to Non Blocking & Reduce Thread Pools
-------------------------------------------------------------
Key: ISPN-10309
URL:
https://issues.jboss.org/browse/ISPN-10309
Project: Infinispan
Issue Type: Enhancement
Components: Core
Reporter: Will Burns
Assignee: Will Burns
Priority: Major
Fix For: 10.1.0.Final
We would love to get our thread pools down to a single CPU thread pool (size = numCores)
and a blocking thread pool (arbitrarily large). We may also require a scheduler pool for
various options as well (limited size 1-2?).
To do this we need to remove remnants of our blocking code as possible. Possible issues
for blocking are mostly around locks and io operations.
The persistence layer was completed with ISPN-9722 so that is not an issue.
The requirement around locking can be relaxed if the locks are guaranteed to be small in
scope and do not wrap other blocking operations. An example would be a lock such as ones
in CHM as long as we don't have large blocks for functional argument types.
If code cannot be made non blocking we must offload the operation to the blocking thread
pool. Care must be taken to ensure that once the blocking portion of code is completed
that we switch back the to CPU thread pool as soon as possible. The listener API for
example is violating this and will run code in Infinispan from any thread that completes
the listener that could be done from a user.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)