Thanks for the reply.

But I've two doubts here.

1. If you check the code, I used ignite semaphore and if i remove that
sempahore checking, then I'm getting JDBC connection issues as multiple
threads access that particular code.

We run 100s of threads. Is there any way where we can run in parallel.
Because most of threads are waiting and frequently throwing these warnings

```
"" "172.21.197.110" "test" "" "" "" "1205"
"org.apache.ignite.logger.java.JavaLogger" "warning" "WARNING" "19-05-2020
08:51:41:554" "294" "Dumping the near node thread that started transaction
[xidVer=GridCacheVersion [topVer=201264296, order=1589828678516,
nodeOrder=36], nodeId=82edf746-ccaf-4757-8d23-921c1c4d3ef6]
Stack trace of the transaction owner thread:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
o.a.i.i.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:177)
o.a.i.i.util.future.GridFutureAdapter.get(GridFutureAdapter.java:140)
o.a.i.i.processors.cache.GridCacheAdapter.get0(GridCacheAdapter.java:4267)
o.a.i.i.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4242)
o.a.i.i.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1406)
o.a.i.i.processors.cache.GridCacheProxyImpl.get(GridCacheProxyImpl.java:373)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1.call(GridCacheSemaphoreImpl.java:276)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync$1.call(GridCacheSemaphoreImpl.java:270)
o.a.i.i.processors.cache.GridCacheUtils.retryTopologySafe(GridCacheUtils.java:1425)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync.compareAndSetGlobalState(GridCacheSemaphoreImpl.java:270)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync.nonfairTryAcquireShared(GridCacheSemaphoreImpl.java:204)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl$Sync.tryAcquireShared(GridCacheSemaphoreImpl.java:211)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:988)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl.acquire(GridCacheSemaphoreImpl.java:609)
o.a.i.i.processors.datastructures.GridCacheSemaphoreImpl.acquire(GridCacheSemaphoreImpl.java:597)
com.zoho.scrapy.common.ignite.IgniteQuery$URLS_OBJECT.sqlBulkInsert(IgniteQuery.java:246)
com.zoho.scrapy.common.ignite.IgniteQuery.executeFieldsQuery(IgniteQuery.java:63)
com.zoho.scrapy.common.ignite.IgniteConnectionHandler$CacheHolder.sqlPipelinedSet(IgniteConnectionHandler.java:380)
com.zoho.scrapy.common.ignite.IgniteUtil.zaddPipeline(IgniteUtil.java:343)
edu.uci.ics.crawler4j.frontier.WorkQueues.putAll(WorkQueues.java:156)
edu.uci.ics.crawler4j.frontier.Frontier.scheduleAll(Frontier.java:122)
edu.uci.ics.crawler4j.crawler.WebCrawler.processPage(WebCrawler.java:560)
edu.uci.ics.crawler4j.crawler.WebCrawler.run(WebCrawler.java:288)
java.lang.Thread.run(Thread.java:748)
```


2. I was under impression that once the JDBC connection terminates, all the
rows will be flushed to insertion in the database. Is it not? Because if
that's the case, we won't have any multi-threaded data consistency issues.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to