Hi!

Sorry for the long question in advance...

I'm doing some performance measurements on Ignite to see if it would work
for a new project. So far, I love Ignite, but I would like some help
resolving an issue with latency.

Here's my setup:
3 RHEL machines running Ignite in "server" mode, with a single partitioned
cache
1 RHEL machine running Ignite in "client" mode.

>From my Ignite client I use affinityCall() to co-locate with a specific
cache key on one of the 3 servers.
I first insert 100,000 unique keys into the cache using affinityCall().
Then, I asynchronously affinityCall() to do 10 get/modify/put on each key in
parallel (with transactions), for all 100,000 keys.

For the transactional workload, I see ok throughput (around 22k
transactions/sec).
However, my average latency for the affinityCall() is unbearably high (at
67.9 ms). I am measuring this latency in my Ignite client from right before
affinityCall() to when the future's listener runs. 
In the server nodes, I see the average time taken by my call() function to
be around 1.5 ms. That means that my own code that is executing on the
server within call() is not the issue. All machines are in the same data
center, and ping is around 0.25 ms between each of the 4 machines, so I
don't believe network latency is the issue either. I also see the min
latency is great, at around 240 microseconds. There's a big spread. What
would cause such variation in latency and such a high average?

Latency: Avg=67.921748 Min=0.240000 Max=1259.326000 StdDev=83.476537

Any help or suggestions would be greatly appreciated!

Here is my ignite config and cache config:

IgniteConfiguration [gridName=null, pubPoolSize=48, sysPoolSize=48,
mgmtPoolSize=4, igfsPoolSize=24, utilityCachePoolSize=48,
utilityCacheKeepAliveTime=10000, marshCachePoolSize=48,
marshCacheKeepAliveTime=10000, p2pPoolSize=2, ggHome=null, ggWork=null,
mbeanSrv=null, nodeId=null, marsh=null, marshLocJobs=false, daemon=false,
p2pEnabled=false, netTimeout=5000, sndRetryDelay=1000, sndRetryCnt=3,
clockSyncSamples=8, clockSyncFreq=120000, metricsHistSize=10000,
metricsUpdateFreq=2000, metricsExpTime=9223372036854775807,
discoSpi=TcpDiscoverySpi [addrRslvr=null, sockTimeout=0, ackTimeout=0,
reconCnt=10, maxAckTimeout=600000, forceSrvMode=false,
clientReconnectDisabled=false], segPlc=STOP, segResolveAttempts=2,
waitForSegOnStart=true, allResolversPassReq=true, segChkFreq=10000,
commSpi=null, evtSpi=null, colSpi=null, deploySpi=null, swapSpaceSpi=null,
indexingSpi=null, addrRslvr=null, clientMode=false,
rebalanceThreadPoolSize=1,
txCfg=org.apache.ignite.configuration.TransactionConfiguration@39a054a5,
cacheSanityCheckEnabled=false, discoStartupDelay=60000, deployMode=PRIVATE,
p2pMissedCacheSize=100, locHost=null, timeSrvPortBase=31100,
timeSrvPortRange=100, failureDetectionTimeout=10000, metricsLogFreq=60000,
hadoopCfg=null,
connectorCfg=org.apache.ignite.configuration.ConnectorConfiguration@71bc1ae4,
warmupClos=null, atomicCfg=AtomicConfiguration [seqReserveSize=1000,
cacheMode=PARTITIONED, backups=0], classLdr=null, sslCtxFactory=null,
platformCfg=null, binaryCfg=null]

CacheConfiguration [name=Orders, storeConcurrentLoadAllThreshold=5,
rebalancePoolSize=2, rebalanceTimeout=10000, evictPlc=null, evictSync=false,
evictKeyBufSize=1024, evictSyncConcurrencyLvl=4, evictSyncTimeout=10000,
evictFilter=null, evictMaxOverflowRatio=10.0, eagerTtl=true,
dfltLockTimeout=0, startSize=100000, nearCfg=null, writeSync=PRIMARY_SYNC,
storeFactory=null, keepBinaryInStore=false, loadPrevVal=false, aff=null,
cacheMode=PARTITIONED, atomicityMode=TRANSACTIONAL,
atomicWriteOrderMode=CLOCK, backups=0, invalidate=false,
tmLookupClsName=null, rebalanceMode=NONE, rebalanceOrder=0,
rebalanceBatchSize=524288, rebalanceBatchesPrefetchCount=2,
offHeapMaxMem=-1, swapEnabled=false, maxConcurrentAsyncOps=1000000,
writeBehindEnabled=false, writeBehindFlushSize=10240,
writeBehindFlushFreq=5000, writeBehindFlushThreadCnt=1,
writeBehindBatchSize=512, memMode=OFFHEAP_VALUES, affMapper=null,
rebalanceDelay=0, rebalanceThrottle=0, interceptor=null,
longQryWarnTimeout=3000, readFromBackup=true, nodeFilter=null,
sqlEscapeAll=false, sqlOnheapRowCacheSize=10240, snapshotableIdx=false,
cpOnRead=true, topValidator=null]




--
View this message in context: 
http://apache-ignite-users.70518.x6.nabble.com/High-latency-using-affinityCall-from-client-tp2931.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Reply via email to