Hi Roman,


I think that my case is similar to this one: 
http://apache-ignite-users.70518.x6.nabble.com/Performance-with-increase-in-node-td9378.html

(Performance with increase in node)



From those discussions, I found the two tips to properly use cache in ignite 
node.

1. Cache has to be warmed up. When the cache is used for the second or third 
time, the speed of write is faster, as shown:

        1-th experiment, Put 10000 KV data: spend 6,431 milliseconds

        2-th experiment, Put 10000 KV data: spend 3,603 milliseconds

        3-th experiment, Put 10000 KV data: spend 3,961 milliseconds

2. With increasing server nodes, it is better to increase the number of client 
nodes.



Here, I do not know reasons about the above tips to accelerate cache.

In addition, if the increased number of client nodes can improve performance of 
cache, how to set the configures between client nodes?

Because I do not know to set these, experiment results about the tip 2 are not 
shown in here.



In order to reproduce my situation, I provided my code to all.



The configure in server node is:

IgniteConfiguration cfg  = new IgniteConfiguration();

cfg.setClientMode(false);  //server

TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();

ipFinder.setMulticastGroup("224.1.2.4");

TcpDiscoverySpi spi = new TcpDiscoverySpi();

spi.setIpFinder(ipFinder);

cfg.setDiscoverySpi(spi);



The configures in two client nodes are:

One client:

TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();

ipFinder.setMulticastGroup("224.1.2.4");

ipFinder.setAddresses(Arrays.asList("ubuntu7","ubuntu9"));

TcpDiscoverySpi spi = new TcpDiscoverySpi();

spi.setIpFinder(ipFinder);

cfg.setDiscoverySpi(spi);



the other client to write data into cache[igniteCachePut]):

TcpDiscoveryMulticastIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();

ipFinder.setMulticastGroup("224.1.2.4");

ipFinder.setAddresses(Arrays.asList("ubuntu7","ubuntu9"));

TcpDiscoverySpi spi = new TcpDiscoverySpi();

spi.setIpFinder(ipFinder);

cfg.setDiscoverySpi(spi);



IgniteCache cacheKeyvalue = igniteNode.cache("igniteCachePut");

Int datasize =10000;

int expertime = 3;

for (int j = 1; j <= expertime; j++) {

        long starttime, endtime;

        starttime = System.currentTimeMillis();

        for (int i = 1; i <= datasize; i++) {

                cacheKeyvalue.put(Integer.toString(i), Integer.toString(i));

        }

        endtime = System.currentTimeMillis();

        System.out.println(j+"-th experiment");

        System.out.println("Put " + datasize + " KV data: spend " + (endtime - 
starttime)  + " milliseconds");

}



If you have any idea about this problem, I am looking forward to hearing from 
you.



Thanks



Rick



-----Original Message-----
From: Roman Guseinov [mailto:ro...@gromtech.ru]
Sent: Tuesday, April 10, 2018 1:56 PM
To: user@ignite.apache.org
Subject: Re: Slow Ignite Cache with multi-nodes



Hi Rick,



It seems that you need to increase clients number to achieve better performance 
when you increase server nodes number. You can try to put data from different 
threads as well.



Also, you can set

CacheConfiguration.setWriteSynchronizationMode(CacheWriteSynchronizationMode.PRIMARY_SYNC).

The default value is FULL_SYNC which means that client node will wait for write 
or commit to complete on all participating remote nodes (primary and

backup) [1].



Performance Tips can be found here [2].



Best Regards,

Roman



[1]

https://apacheignite.readme.io/v1.1/docs/primary-and-backup-copies#section-synchronous-and-asynchronous-backups

[2] https://apacheignite.readme.io/docs/performance-tips







--

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


--
本信件可能包含工研院機密資訊,非指定之收件者,請勿使用或揭露本信件內容,並請銷毀此信件。 This email may contain 
confidential information. Please do not use or disclose it in any way and 
delete it if you are not the intended recipient.

Reply via email to