You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by "pertsev.ilia" <pe...@gmail.com> on 2017/05/24 17:10:03 UTC

Ignite 2.0.0 read performance

Hi there!

Out first problem is that we don't understand the performance of Ignite
cache with client-server approach (client and server are on separate JVMs).
We run a simple app that checks keys in the cache and puts data if key not
found. Here is a read performance that we got (entries per second):

client-server approach (separate JVMs):
cacheMode=PARTITIONED,  performance=10000
cacheMode=REPLICATED,   performance=10000
cacheMode=LOCAL,        performance=69000

server approach (single JVMs):
cacheMode=PARTITIONED,  performance=333000
cacheMode=REPLICATED,   performance=349000
cacheMode=LOCAL,        performance=62000

That experiments have been run on the following hardware:
2.2 GHz Core i7, 16 GB 1600 MHz DDR3, OS X El Capitan 10.11.6 
For Ignite configuration and the code, please, see attachments.

And here are the questions:
1) Is it fine that separate JVMs approach is 33-35 times slower than on
single JVM?
2) Why does the LOCAL mode work slower on single JVM?
3) What does LOCAL mode mean when client and server run in separate JVMs?

Running similar application (but with 9 caches instead 1, REPLICATED mode,
other configuration is the same as in the attachments) on the following
hardware:
Intel Xeon CPU E5-4669 v3 @ 2.10GHz, 128 GB, RHEL Server release 7.2 (Maipo)
gave us even slower performance, about 4000 entries per second.

Is it possible to achieve the better performance? Appreciate for any help.
ignite-node-context.xml
<http://apache-ignite-users.70518.x6.nabble.com/file/n13117/ignite-node-context.xml>  
IgniteClientNode.java
<http://apache-ignite-users.70518.x6.nabble.com/file/n13117/IgniteClientNode.java>  
IgniteServerNode.java
<http://apache-ignite-users.70518.x6.nabble.com/file/n13117/IgniteServerNode.java>  



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Ignite-2-0-0-read-performance-tp13117.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: Ignite 2.0.0 read performance

Posted by "pertsev.ilia" <pe...@gmail.com>.
Sorry, I forgot to attach thread dumps of client and server processes.
IgniteServerNode.java
<http://apache-ignite-users.70518.x6.nabble.com/file/n13124/IgniteServerNode.java>  
IgniteClientNode.java
<http://apache-ignite-users.70518.x6.nabble.com/file/n13124/IgniteClientNode.java>  



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Ignite-2-0-0-read-performance-tp13117p13124.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.

Re: Ignite 2.0.0 read performance

Posted by Andrey Mashenkov <an...@gmail.com>.
Your test runs in single thread, it is have nothing with real-live. Try to
measure throughput with utilizing multiple threads and add more server
nodes.

Also you can use DataStreamer to fill the cache in effective way [1]. It
has an option that allow\disallow overwriting existing entries.

[1] https://apacheignite.readme.io/docs/data-streamers##ignitedatastreamer

On Thu, May 25, 2017 at 10:39 PM, Andrey Mashenkov <
andrey.mashenkov@gmail.com> wrote:

> 1. It is ok. As in multi-JVM environment you have to make network
> round-trip bw client and server.
> 2. Local cache can be slower due to contention as it has only single
> partition. However, difference in results of Single-JVM and multi-JVM looks
> weird to me.
> 3. LOCAL means that cache is local for node created it. Unlike other
> caches, LOCAL cache can be created on client.
>
>
> On Thu, May 25, 2017 at 12:14 AM, pertsev.ilia <pe...@gmail.com>
> wrote:
>
>> Sorry, I forgot to attach thread dumps of client and server processes.
>> server-thread-dump.txt
>> <http://apache-ignite-users.70518.x6.nabble.com/file/n13125/
>> server-thread-dump.txt>
>> client-thread-dump.txt
>> <http://apache-ignite-users.70518.x6.nabble.com/file/n13125/
>> client-thread-dump.txt>
>>
>>
>>
>> --
>> View this message in context: http://apache-ignite-users.705
>> 18.x6.nabble.com/Ignite-2-0-0-read-performance-tp13117p13125.html
>> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>>
>
>
>
> --
> Best regards,
> Andrey V. Mashenkov
>



-- 
Best regards,
Andrey V. Mashenkov

Re: Ignite 2.0.0 read performance

Posted by Andrey Mashenkov <an...@gmail.com>.
1. It is ok. As in multi-JVM environment you have to make network
round-trip bw client and server.
2. Local cache can be slower due to contention as it has only single
partition. However, difference in results of Single-JVM and multi-JVM looks
weird to me.
3. LOCAL means that cache is local for node created it. Unlike other
caches, LOCAL cache can be created on client.


On Thu, May 25, 2017 at 12:14 AM, pertsev.ilia <pe...@gmail.com>
wrote:

> Sorry, I forgot to attach thread dumps of client and server processes.
> server-thread-dump.txt
> <http://apache-ignite-users.70518.x6.nabble.com/file/
> n13125/server-thread-dump.txt>
> client-thread-dump.txt
> <http://apache-ignite-users.70518.x6.nabble.com/file/
> n13125/client-thread-dump.txt>
>
>
>
> --
> View this message in context: http://apache-ignite-users.
> 70518.x6.nabble.com/Ignite-2-0-0-read-performance-tp13117p13125.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>



-- 
Best regards,
Andrey V. Mashenkov

Re: Ignite 2.0.0 read performance

Posted by "pertsev.ilia" <pe...@gmail.com>.
Sorry, I forgot to attach thread dumps of client and server processes.
server-thread-dump.txt
<http://apache-ignite-users.70518.x6.nabble.com/file/n13125/server-thread-dump.txt>  
client-thread-dump.txt
<http://apache-ignite-users.70518.x6.nabble.com/file/n13125/client-thread-dump.txt>  



--
View this message in context: http://apache-ignite-users.70518.x6.nabble.com/Ignite-2-0-0-read-performance-tp13117p13125.html
Sent from the Apache Ignite Users mailing list archive at Nabble.com.