Hello! Striped pool works like traditional thread pool but it is faster, a job can only go to one stripe always.
putAll will not be broken down but executed in one stripe (first key from the batch, I guess). I guess so. -- Ilya Kasnacheev вт, 13 нояб. 2018 г. в 16:31, Prasad Bhalerao <prasadbhalerao1...@gmail.com >: > How does striped pool work exactly? I read the doc > <https://apacheignite.readme.io/docs/thread-pools#section-striped-pool> but > still have some confusion. > > Does ignite break putAll cache operation into small chunks/tasks and then > submit it to threads in striped pool to do it concurrently? > Is this the only purpose of striped pool? > > Does ignite use IgniteStripedThreadPoolExecutor for this purpose? > > Thanks, > Prasad > > On Tue, Nov 13, 2018 at 6:49 PM Ilya Kasnacheev <ilya.kasnach...@gmail.com> > wrote: > >> Hello! >> >> As you can see from this thread dump, Oracle driver is waiting on a >> socket, probably for a query response. >> You should probably take a look at hanging queries from Oracle side. >> >> Regards, >> -- >> Ilya Kasnacheev >> >> >> вт, 13 нояб. 2018 г. в 9:21, Akash Shinde <akashshi...@gmail.com>: >> >>> Hi, >>> I have started four ignite nodes and configured cache in distributed >>> mode. When I initiated thousands of requests to write the data on this >>> cache(write through enabled) , facing below error. >>> From logs we can see this error is occurring while witting to oracle >>> database.(using cache write-through). >>> This error is not consistent.Node does stop for while after this error >>> and continues to pick up the next ignite tasks. >>> Please someone advise what does following log means. >>> >>> >>> 2018-11-13 05:52:05,577 2377545 [core-1] INFO >>> c.q.a.a.s.AssetManagementService - Add asset request processing started, >>> requestId ADD_Ip_483, subscriptionId =262604, userId=547159 >>> 2018-11-13 05:52:06,647 2378615 >>> [grid-timeout-worker-#39%springDataNode%] WARN >>> o.a.ignite.internal.util.typedef.G - >>> Possible starvation in striped >>> pool. >>> Thread name: sys-stripe-11-#12%springDataNode% >>> Queue: [Message closure [msg=GridIoMessage [plc=2, >>> topic=TOPIC_CACHE, topicOrd=8, ordered=false, timeout=0, >>> skipOnTimeout=false, msg=GridNearSingleGetResponse [futId=1542085977929, >>> res=BinaryObjectImpl [arr= true, ctx=false, start=0], topVer=null, >>> err=null, flags=0]]], Message closure [msg=GridIoMessage [plc=2, >>> topic=TOPIC_CACHE, topicOrd=8, ordered=false, timeout=0, >>> skipOnTimeout=false, msg=GridDhtTxPrepareResponse [nearEvicted=null, >>> futId=b67ac7b0761-93ebea72-bf4e-40d8-8a19-d3258be94ce9, miniId=1, >>> super=GridDistributedTxPrepareResponse [txState=null, part=-1, err=null, >>> super=GridDistributedBaseMessage [ver=GridCacheVersion [topVer=153565953, >>> order=1542089536997, nodeOrder=3], committedVers=null, rolledbackVers=null, >>> cnt=0, super=GridCacheIdMessage [cacheId=0]]]]]], Message closure >>> [msg=GridIoMessage [plc=2, topic=TOPIC_CACHE, topicOrd=8, ordered=false, >>> timeout=0, skipOnTimeout=false, msg=GridNearSingleGetRequest >>> [futId=1542085976178, key=BinaryObjectImpl [arr= true, ctx=false, start=0], >>> flags=1, topVer=AffinityTopologyVersion [topVer=7, minorTopVer=0], >>> subjId=9e8db7e7-48ba-4161-881b-ad4fcfc175a0, taskNameHash=0, createTtl=-1, >>> accessTtl=-1]]]] >>> Deadlock: false >>> Completed: 703 >>> Thread [name="sys-stripe-11-#12%springDataNode%", id=41, state=RUNNABLE, >>> blockCnt=37, waitCnt=729] >>> at java.net.SocketInputStream.socketRead0(Native Method) >>> at >>> java.net.SocketInputStream.socketRead(SocketInputStream.java:116) >>> at java.net.SocketInputStream.read(SocketInputStream.java:171) >>> at java.net.SocketInputStream.read(SocketInputStream.java:141) >>> at oracle.net.ns.Packet.receive(Packet.java:311) >>> at oracle.net.ns.DataPacket.receive(DataPacket.java:105) >>> at >>> oracle.net.ns.NetInputStream.getNextPacket(NetInputStream.java:305) >>> at oracle.net.ns.NetInputStream.read(NetInputStream.java:249) >>> at oracle.net.ns.NetInputStream.read(NetInputStream.java:171) >>> at oracle.net.ns.NetInputStream.read(NetInputStream.java:89) >>> at >>> oracle.jdbc.driver.T4CSocketInputStreamWrapper.readNextPacket(T4CSocketInputStreamWrapper.java:123) >>> at >>> oracle.jdbc.driver.T4CSocketInputStreamWrapper.read(T4CSocketInputStreamWrapper.java:79) >>> at >>> oracle.jdbc.driver.T4CMAREngineStream.unmarshalUB1(T4CMAREngineStream.java:429) >>> at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:397) >>> at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257) >>> at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587) >>> at >>> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225) >>> at >>> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53) >>> at >>> oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:943) >>> at >>> oracle.jdbc.driver.OraclePreparedStatement.executeForRowsWithTimeout(OraclePreparedStatement.java:12029) >>> at >>> oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:12140) >>> at >>> oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:246) >>> at >>> com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:128) >>> at >>> com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java) >>> at >>> com.qualys.agms.grid.cache.loader.AbstractDefaultCacheStore.writeAll(AbstractDefaultCacheStore.java:126) >>> at >>> o.a.i.i.processors.cache.store.GridCacheStoreManagerAdapter.putAll(GridCacheStoreManagerAdapter.java:641) >>> at >>> o.a.i.i.processors.cache.transactions.IgniteTxAdapter.batchStoreCommit(IgniteTxAdapter.java:1422) >>> at >>> o.a.i.i.processors.cache.transactions.IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:502) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearTxLocal.localFinish(GridNearTxLocal.java:3185) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearTxFinishFuture.doFinish(GridNearTxFinishFuture.java:467) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:417) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$19.apply(GridNearTxLocal.java:3341) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$19.apply(GridNearTxLocal.java:3335) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495) >>> at >>> o.a.i.i.processors.cache.GridCacheCompoundFuture.onDone(GridCacheCompoundFuture.java:56) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearOptimisticSerializableTxPrepareFuture.onComplete(GridNearOptimisticSerializableTxPrepareFuture.java:275) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearOptimisticSerializableTxPrepareFuture.onDone(GridNearOptimisticSerializableTxPrepareFuture.java:220) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearOptimisticSerializableTxPrepareFuture.onDone(GridNearOptimisticSerializableTxPrepareFuture.java:69) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451) >>> at >>> o.a.i.i.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) >>> at >>> o.a.i.i.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) >>> at >>> o.a.i.i.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearOptimisticSerializableTxPrepareFuture$MiniFuture.onResult(GridNearOptimisticSerializableTxPrepareFuture.java:963) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearOptimisticSerializableTxPrepareFuture$1.apply(GridNearOptimisticSerializableTxPrepareFuture.java:583) >>> at >>> o.a.i.i.processors.cache.distributed.near.GridNearOptimisticSerializableTxPrepareFuture$1.apply(GridNearOptimisticSerializableTxPrepareFuture.java:580) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451) >>> at >>> o.a.i.i.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) >>> at >>> o.a.i.i.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) >>> at >>> o.a.i.i.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495) >>> at >>> o.a.i.i.processors.cache.GridCacheCompoundFuture.onDone(GridCacheCompoundFuture.java:56) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474) >>> at >>> o.a.i.i.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onComplete(GridDhtTxPrepareFuture.java:984) >>> at >>> o.a.i.i.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onDone(GridDhtTxPrepareFuture.java:787) >>> at >>> o.a.i.i.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onDone(GridDhtTxPrepareFuture.java:104) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451) >>> at >>> o.a.i.i.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285) >>> at >>> o.a.i.i.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144) >>> at >>> o.a.i.i.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474) >>> at >>> o.a.i.i.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451) >>> at >>> o.a.i.i.processors.cache.distributed.dht.GridDhtTxPrepareFuture$MiniFuture.onResult(GridDhtTxPrepareFuture.java:1870) >>> at >>> o.a.i.i.processors.cache.distributed.dht.GridDhtTxPrepareFuture.onResult(GridDhtTxPrepareFuture.java:549) >>> at >>> o.a.i.i.processors.cache.transactions.IgniteTxHandler.processDhtTxPrepareResponse(IgniteTxHandler.java:708) >>> at >>> o.a.i.i.processors.cache.transactions.IgniteTxHandler.access$500(IgniteTxHandler.java:97) >>> at >>> o.a.i.i.processors.cache.transactions.IgniteTxHandler$6.apply(IgniteTxHandler.java:207) >>> at >>> o.a.i.i.processors.cache.transactions.IgniteTxHandler$6.apply(IgniteTxHandler.java:205) >>> at >>> o.a.i.i.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1054) >>> at >>> o.a.i.i.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579) >>> at >>> o.a.i.i.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378) >>> 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:1556) >>> at >>> o.a.i.i.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184) >>> at >>> o.a.i.i.managers.communication.GridIoManager.access$4200(GridIoManager.java:125) >>> at >>> o.a.i.i.managers.communication.GridIoManager$9.run(GridIoManager.java:1091) >>> at >>> o.a.i.i.util.StripedExecutor$Stripe.run(StripedExecutor.java:511) >>> at java.lang.Thread.run(Thread.java:748) >>> >>> >>> Thanks, >>> Akash >>> >>> >>