Igniters,
I've got following situation: 1) Start Ignite node. 2) Start load from store via cache.loadCache(null) 3) From java client (org.apache.ignite.internal.client.GridClient) start SCAN query on this cache. 4) SCAN query blocked until load is not finished. Is this expected behavior? I expected that SCAN query will immediately return with some data already loaded into cache. -- Alexey Kuznetsov GridGain Systems www.gridgain.com |
I take thread dump and found the following:
"ignite-#80%rest-jdbc.CacheJdbcPortableStoreSelfTest%" prio=6 tid=0x000000000e6bd800 nid=0x21e4 in Object.wait() [0x000000001662d000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000007ddf3ebf0> (a java.lang.Object) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.internalIterator(GridCacheQueryFutureAdapter.java:314) - locked <0x00000007ddf3ebf0> (a java.lang.Object) at org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:171) at org.apache.ignite.internal.processors.cache.IgniteCacheProxy$5.onHasNext(IgniteCacheProxy.java:518) at org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) at org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) at org.apache.ignite.internal.visor.query.VisorQueryCursor.hasNext(VisorQueryCursor.java:51) at org.apache.ignite.internal.visor.query.VisorQueryUtils.fetchScanQueryRows(VisorQueryUtils.java:127) at org.apache.ignite.internal.visor.query.VisorQueryJob.run(VisorQueryJob.java:94) at org.apache.ignite.internal.visor.query.VisorQueryJob.run(VisorQueryJob.java:49) at org.apache.ignite.internal.visor.VisorJob.execute(VisorJob.java:69) at org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:509) at org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6371) at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:503) at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:456) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1100) at org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1231) at org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:609) at org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:501) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:678) at org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:447) at org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:227) at org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsync(GridTaskCommandHandler.java:163) at org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:261) at org.apache.ignite.internal.processors.rest.GridRestProcessor.access$100(GridRestProcessor.java:84) at org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:150) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) On Tue, Oct 27, 2015 at 3:12 PM, Alexey Kuznetsov <[hidden email]> wrote: > Igniters, > > I've got following situation: > 1) Start Ignite node. > 2) Start load from store via cache.loadCache(null) > 3) From java client (org.apache.ignite.internal.client.GridClient) start > SCAN query on this cache. > 4) SCAN query blocked until load is not finished. > > Is this expected behavior? > > I expected that SCAN query will immediately return with some data already > loaded into cache. > > -- > Alexey Kuznetsov > GridGain Systems > www.gridgain.com > -- Alexey Kuznetsov GridGain Systems www.gridgain.com |
Alexey,
The thread that you've captured waits for the next page to be received; I agree that the behavior looks wrong, but this thread does not explain why it happens. Can you check if you see any other suspicious threads or perhaps attach a full thread dump? 2015-10-27 11:17 GMT+03:00 Alexey Kuznetsov <[hidden email]>: > I take thread dump and found the following: > "ignite-#80%rest-jdbc.CacheJdbcPortableStoreSelfTest%" prio=6 > tid=0x000000000e6bd800 nid=0x21e4 in Object.wait() [0x000000001662d000] > java.lang.Thread.State: TIMED_WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00000007ddf3ebf0> (a java.lang.Object) > at > > org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.internalIterator(GridCacheQueryFutureAdapter.java:314) > - locked <0x00000007ddf3ebf0> (a java.lang.Object) > at > > org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:171) > at > > org.apache.ignite.internal.processors.cache.IgniteCacheProxy$5.onHasNext(IgniteCacheProxy.java:518) > at > > org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53) > at > > org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45) > at > > org.apache.ignite.internal.visor.query.VisorQueryCursor.hasNext(VisorQueryCursor.java:51) > at > > org.apache.ignite.internal.visor.query.VisorQueryUtils.fetchScanQueryRows(VisorQueryUtils.java:127) > at > > org.apache.ignite.internal.visor.query.VisorQueryJob.run(VisorQueryJob.java:94) > at > > org.apache.ignite.internal.visor.query.VisorQueryJob.run(VisorQueryJob.java:49) > at org.apache.ignite.internal.visor.VisorJob.execute(VisorJob.java:69) > at > > org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:509) > at > > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6371) > at > > org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:503) > at > > org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:456) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at > > org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1100) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1231) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:609) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:501) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at > > org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:678) > at > > org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:447) > at > > org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:227) > at > > org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsync(GridTaskCommandHandler.java:163) > at > > org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:261) > at > > org.apache.ignite.internal.processors.rest.GridRestProcessor.access$100(GridRestProcessor.java:84) > at > > org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:150) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > > On Tue, Oct 27, 2015 at 3:12 PM, Alexey Kuznetsov <[hidden email] > > > wrote: > > > Igniters, > > > > I've got following situation: > > 1) Start Ignite node. > > 2) Start load from store via cache.loadCache(null) > > 3) From java client (org.apache.ignite.internal.client.GridClient) start > > SCAN query on this cache. > > 4) SCAN query blocked until load is not finished. > > > > Is this expected behavior? > > > > I expected that SCAN query will immediately return with some data already > > loaded into cache. > > > > -- > > Alexey Kuznetsov > > GridGain Systems > > www.gridgain.com > > > > > > -- > Alexey Kuznetsov > GridGain Systems > www.gridgain.com > |
Free forum by Nabble | Edit this page |