-
Enhancement
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
DataGrid Sprint #29, DataGrid Sprint #30, DataGrid Sprint #33, DataGrid Sprint #34, DataGrid Sprint #35, DataGrid Sprint #36, DataGrid Sprint #37, DataGrid Sprint #38, DataGrid Sprint #39
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.
- is related to
-
ISPN-11833 ScriptingManagerImpl uses a cache that blocks
- New
-
ISPN-11834 Rest ResponseWrite CHUNKED_FILE response is blocking
- New
-
ISPN-11835 Clustered Lock creation is blocking
- New
-
ISPN-12569 SearchWorkspaceImpl is blocking
- To Do
-
ISPN-11836 MassIndexLock should be non blocking
- Resolved
-
ISPN-10364 Persistence (Blocking) thread pool should have a queue
- Closed
-
ISPN-11398 Change XSiteStateTransferProviderImpl to be non blocking
- Closed
-
ISPN-11726 BlockingLocalTopologyManager is blocking - ignore in BlockHound
- Closed
-
ISPN-11832 ProtobufMetadataManagerInterceptor is blocking
- Closed
-
ISPN-11272 RecoveryManagerImpl should use Caffeine map
- New
-
ISPN-8955 ClusterTopologyManagerImpl should only use non-blocking RPCs
- Closed
-
ISPN-11830 Provide invocation based non blocking detection to test suite
- Closed
-
ISPN-9729 Continuous Query needs to be converted to non blocking
- New
-
ISPN-11550 Add way to detect if calling context is blocking or not
- New
-
ISPN-11563 Ensure we can use a non blocking thread pool for a blocking one with Loom
- New
-
ISPN-11741 Evaulate if Stream#peek and Stream#forEach should be ran in blocking thread
- New
-
ISPN-11743 CacheCollection#localPublisher default is blocking
- New
-
ISPN-12180 Add BlockHound to hotrod client module
- New
-
ISPN-11727 Async Cache Writer is blocking
- Resolved
-
ISPN-11831 Add blockhound to server rest module
- Resolved
-
ISPN-8833 Non-blocking indexing
- Closed
-
ISPN-9614 Convert listeners to work with async interceptor stack
- Closed
-
ISPN-9723 Passivation and Activation needs to be non blocking
- Closed
-
ISPN-10192 Non-blocking cross-site requests
- Closed
-
ISPN-10210 The REST endpoint should be non-blocking
- Closed
-
ISPN-10373 Store/Loader Non blocking SPI
- Closed
-
ISPN-10457 Convert bulk blocking stream operations to publisher
- Closed
-
ISPN-11542 Make Multimap transactions non blocking
- Closed
-
ISPN-11731 Add blockhound to query module
- Closed
-
ISPN-11736 Add blockhound to counter module
- Closed
-
ISPN-11738 Add blockhound to task modules
- Closed
-
ISPN-11740 Add blockhound to lock module
- Closed
-
ISPN-11755 Stats should be collected in a non blocking way
- Closed
-
ISPN-11784 Combine netty and non blocking thread pools
- Closed
-
ISPN-11992 Convert RemoteStore to use new SPI
- Closed
-
ISPN-12029 Replace Blocking Executor with an EnhancedQueueExecutor
- Closed
- relates to
-
ISPN-9852 Invocations waiting for a new topology should resume in parallel
- Closed
-
ISPN-10073 Nested async operations with HotRod client hang
- Closed
-
ISPN-10360 Expiration with stores should be non blocking
- Resolved