We are working on integrating the JEE web application with Apache Ignite and
caching around 900 millions records from Oracle database to off heap cache. The
client was started from WebLogic using the servlet listener. When users are
trying to access the application, the application queries their data from
cache. We see the below issue when there are more than 2 users performing the
similar operation on their own data. This was not the performance we expected
from the documentation.
WARN [org.apache.ignite.internal.util.typedef.G] - >>> Possible starvation in
striped pool.
Thread name: sys-stripe-14-#15%AppCluster%
Queue: []
Deadlock: false
Completed: 4
Thread [name="sys-stripe-14-#15% AppCluster%", id=107, state=WAITING,
blockCnt=0, waitCnt=6]
Lock
[object=java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@5a7be62,
ownerName=exchange-worker-#57% AppCluster%, ownerId=171]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283)
at
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727)
at
o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:317)
at
o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
at
o.a.i.i.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
at
o.a.i.i.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
at
o.a.i.i.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
at
o.a.i.i.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
at
o.a.i.i.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
at
o.a.i.i.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
at o.a.i.i.util.StripedExecutor$Stripe.run(StripedExecutor.java:505)
at java.lang.Thread.run(Thread.java:748)