ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eduard Shangareev <eduard.shangar...@gmail.com>
Subject IGNITE-3621 Implementation details
Date Wed, 03 Aug 2016 10:46:31 GMT
Now every cache has own TTL manager, which creates CleanupWorker = new
extra thread. This can cause to extra hundreds of threads (redundant
context switches = performance penalty).

Also, under IGNITE-3513
<https://issues.apache.org/jira/browse/IGNITE-3513> every
put can enter critical section to notify worker. Obviously, it is not good
from performance point of view.

So, my proposal is next:
1. Expiration should be done on every cache action (on exit thread which
updates cache should invoke expire).
2. TtlManager will exist only in one instance.
3. CleanupWorker will be the only backup if there is no cache activity. It
will wake up with some period to check for work (500 ms, for example).

Moreover, now we keep on-heap pending entries even if a cache is kept
off-head. At least, this issue needs discussion.

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message