]
Vittorio Rigamonti updated ISPN-5642:
-------------------------------------
Fix Version/s: 9.0.0.Alpha2
(was: 9.0.0.Alpha1)
Reduce contention in the RPC timeout handling
---------------------------------------------
Key: ISPN-5642
URL:
https://issues.jboss.org/browse/ISPN-5642
Project: Infinispan
Issue Type: Task
Components: Core
Affects Versions: 8.0.0.Beta2
Reporter: Dan Berindei
Assignee: Dan Berindei
Priority: Minor
Labels: help_wanted
Fix For: 9.0.0.Alpha2
Most of the RPC timeout tasks are cancelled way before their timeout expires. This means
the scheduler spends a lot of time reordering the elements of its DelayQueue.
It should be possible to store the tasks with a long timeout (e.g. 1s) in a queue and
only move them to the scheduler's priority queue when they have less than 1s to
expiration (e.g. by a worker thread that runs every 0.5s)
Storing all the tasks in a single queue may be impractical because the worker thread
would have more and work to do as load increases and the RPCs take longer to finish, so a
[hashed timing
wheel|http://www.cse.wustl.edu/~cdgill/courses/cs6874/TimingWheels.ppt] may
be needed.