Re: Slow Ignite Cache with multi-nodes

2018-05-03 Thread Pavel Vinokurov
Hi Rick,

I have tried your test on my local machine and haven't seen
for single node = "Put 10 KV data: spend 3864 milliseconds"
for three nodes= "Put 10 KV data: spend 10311 milliseconds".
It is not clear results due to all server nodes have been run on the same
physical vm, but running on different vms should show much better results.

I would highlight a few points:
1. Using an ignite client to populate data and perform warm-up before
checking performance.
2. Check network latency between ignite nodes.
3. All server and client nodes should be run of different physical vm.
4. It makes sense to look at ignite benchmark framework  and existing
performance results.

[1] https://apacheignite.readme.io/docs/perfomance-benchmarking

Thanks,
Pavel





2018-04-13 10:44 GMT+03:00 <linr...@itri.org.tw>:

> Dear Sam and Nikolai,
>
>
>
> My case is similar to this one (Performance with increase in node) .
>
>
>
> So, could you tell me how to deal with this problem about decreasing
> performances of cache with multi nodes?
>
>
>
> If any idea could be shared with me, I highly appreciate it.
>
>
>
> Rick
>
>
>
> *From:* linr...@itri.org.tw [mailto:linr...@itri.org.tw]
> *Sent:* Friday, April 13, 2018 3:23 PM
> *To:* user@ignite.apache.org
> *Subject:* RE: Slow Ignite Cache with multi-nodes
>
>
>
> 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 1 KV data: spend 6,431 milliseconds
>
> 2-th experiment, Put 1 KV data: spend 3,603 milliseconds
>
> 3-th experiment, Put 1 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 =1;
>
> 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-

RE: Slow Ignite Cache with multi-nodes

2018-04-13 Thread linrick
Dear Sam and Nikolai,

My case is similar to this one (Performance with increase in node) .

So, could you tell me how to deal with this problem about decreasing 
performances of cache with multi nodes?

If any idea could be shared with me, I highly appreciate it.

Rick

From: linr...@itri.org.tw [mailto:linr...@itri.org.tw]
Sent: Friday, April 13, 2018 3:23 PM
To: user@ignite.apache.org
Subject: RE: Slow Ignite Cache with multi-nodes


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 1 KV data: spend 6,431 milliseconds

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

3-th experiment, Put 1 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 =1;

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<mailto: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.


--
本信件可能包含工研院機密資訊,非指定之收件者,請勿使用或揭露本信件內容,並請銷毀此信件。 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.


RE: Slow Ignite Cache with multi-nodes

2018-04-13 Thread linrick
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 1 KV data: spend 6,431 milliseconds

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

3-th experiment, Put 1 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 =1;

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.


Re: Slow Ignite Cache with multi-nodes

2018-04-09 Thread Roman Guseinov
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/