You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Ping Hao <pi...@gmail.com> on 2021/02/03 20:23:13 UTC
putAll() performance big difference, 2.7.5 vs 2.9.1
Hi All,
Here it's a sample scala application,
https://gist.github.com/PingHao/0369a6d14c1de7072de57041a3fec0f7
I had compiled it with both Ignite 2.7.5 and 2.9.1 libraries, and got result by run on a 3 server nodes + 1 client node cluster. all nodes have 56 cpu cores and 100G+ free memory. same nodes, same client code, same Java 11 env, but performance result show 2.9.1 is much slower.
Thread number set to 40, and batch size 2000.
Ignite 2.7.5: putAllEntries rate > 2M / sec , latency avg 13 ms, latency is measure time cost on putAll() call
Ignite 2.9.1: putAllEntries rate ~ 0.4M / sec, latency avg 120 ms
Note that cache key, value is <Int, String> , all strings are size 10.
I did ran yardstick test case, it didn't give so much difference. so here wander what's going on?
Cheers
Ping
Re: putAll() performance big difference, 2.7.5 vs 2.9.1
Posted by Pavel Tupitsyn <pt...@apache.org>.
There is a known performance drop of around 7% in 2.9 vs 2.8: [1]
However, it is nowhere near the difference you are getting.
Please make sure that no other apps affect the comparison.
Check our performance tuning documentation [2].
[1] https://issues.apache.org/jira/browse/IGNITE-13337
[2]
https://ignite.apache.org/docs/latest/perf-and-troubleshooting/general-perf-tips
On Thu, Feb 4, 2021 at 11:10 PM Ping Hao <pi...@gmail.com> wrote:
> Thanks for heads up. Although for my case, the cache configuration is all
> by default, partition/atomic/zero backup. I guess some general logic was
> changed in 2.9.1 impact all type of atomicity modes.
>
> On 2021/02/04 09:27:31, jjimeno <jj...@omp.com> wrote:
> > Hi,
> >
> > Maybe it has to do with this:
> >
> > Performance of Ignite as key-value datastore. C++ Thin Client
> > <
> http://apache-ignite-users.70518.x6.nabble.com/Performance-of-Ignite-as-key-value-datastore-C-Thin-Client-tt35274.html>
>
> >
> >
> >
> > --
> > Sent from: http://apache-ignite-users.70518.x6.nabble.com/
> >
>
Re: putAll() performance big difference, 2.7.5 vs 2.9.1
Posted by Ping Hao <pi...@gmail.com>.
Thanks for heads up. Although for my case, the cache configuration is all by default, partition/atomic/zero backup. I guess some general logic was changed in 2.9.1 impact all type of atomicity modes.
On 2021/02/04 09:27:31, jjimeno <jj...@omp.com> wrote:
> Hi,
>
> Maybe it has to do with this:
>
> Performance of Ignite as key-value datastore. C++ Thin Client
> <http://apache-ignite-users.70518.x6.nabble.com/Performance-of-Ignite-as-key-value-datastore-C-Thin-Client-tt35274.html>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>
Re: putAll() performance big difference, 2.7.5 vs 2.9.1
Posted by haoping <pi...@gmail.com>.
Update with DataStreamer, Ignite 2.7.5 still much better than 2.9.1 on
throughput. However, my OP with putAll() in fact deliver highest throughput.
gist
https://gist.github.com/PingHao/f104c02e86bfbea9c0bd8d1abcfdb912
10 working threads, shared same DataStreamer instance, 40 thread pool size
of datastreamer in all ignite configuration. server nodes 4, driver nodes 1.
2.7.5: 1.8M/s
2.9.1: 0.46M/s
On Thu, Feb 4, 2021 at 8:43 AM haoping <pi...@gmail.com> wrote:
> I don't know data-streaming, but will check it out later.
> Here it is ignite config on one server node, same as other nodes.
>
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd">
>
> <bean id="grid.cfg"
> class="org.apache.ignite.configuration.IgniteConfiguration">
> <property name="clientMode" value="false"/>
> <property name="peerClassLoadingEnabled" value="false"/>
> <property name="failureDetectionTimeout" value="30000"/>
> <property name="clientFailureDetectionTimeout" value="30000"/>
> <property name="workDirectory" value="/data"/>
>
> <property name="gridLogger">
> <bean class="org.apache.ignite.logger.slf4j.Slf4jLogger"/>
> </property>
>
> <property name="failureHandler">
> <bean
> class="org.apache.ignite.failure.StopNodeOrHaltFailureHandler">
> <constructor-arg value="true"/>
> <constructor-arg value="30000"/>
> <property
> name="ignoredFailureTypes"><list></list></property>
> </bean>
> </property>
>
> <property name="communicationSpi">
> <bean
> class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
> <property name="localAddress" value="172.20.132.126"/>
> <property name="localPort" value="37200"/>
> </bean>
> </property>
>
> <property name="discoverySpi">
> <bean
> class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
> <property name="localPort" value="37205"/>
> <property name="ipFinder">
> <bean
> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
> <property name="addresses">
> <list>
> <value>2s1b:37205</value>
> <value>2s1c:37205</value>
> <value>2s1d:37205</value>
> <value>exp1:37205</value>
> </list>
> </property>
> </bean>
> </property>
> </bean>
> </property>
> <property name="dataStorageConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataStorageConfiguration">
> <property name="defaultDataRegionConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="Default_Region"/>
> <property name="maxSize" value="#{80L * 1024 *
> 1024 * 1024}"/>
> </bean>
> </property>
> </bean>
> </property>
> </bean>
> </beans>
>
> On Thu, Feb 4, 2021 at 7:27 AM Pavel Tupitsyn <pt...@apache.org>
> wrote:
>
>> Hi,
>>
>> 1. Can you please attach the CacheConfiguration as well?
>> 2. Have you tried DataStreamer
>> https://ignite.apache.org/docs/latest/data-streaming?
>>
>> On Thu, Feb 4, 2021 at 12:27 PM jjimeno <jj...@omp.com> wrote:
>>
>>> Hi,
>>>
>>> Maybe it has to do with this:
>>>
>>> Performance of Ignite as key-value datastore. C++ Thin Client
>>> <
>>> http://apache-ignite-users.70518.x6.nabble.com/Performance-of-Ignite-as-key-value-datastore-C-Thin-Client-tt35274.html>
>>>
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>>
>>
Re: putAll() performance big difference, 2.7.5 vs 2.9.1
Posted by haoping <pi...@gmail.com>.
I don't know data-streaming, but will check it out later.
Here it is ignite config on one server node, same as other nodes.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="grid.cfg"
class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="false"/>
<property name="peerClassLoadingEnabled" value="false"/>
<property name="failureDetectionTimeout" value="30000"/>
<property name="clientFailureDetectionTimeout" value="30000"/>
<property name="workDirectory" value="/data"/>
<property name="gridLogger">
<bean class="org.apache.ignite.logger.slf4j.Slf4jLogger"/>
</property>
<property name="failureHandler">
<bean
class="org.apache.ignite.failure.StopNodeOrHaltFailureHandler">
<constructor-arg value="true"/>
<constructor-arg value="30000"/>
<property
name="ignoredFailureTypes"><list></list></property>
</bean>
</property>
<property name="communicationSpi">
<bean
class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
<property name="localAddress" value="172.20.132.126"/>
<property name="localPort" value="37200"/>
</bean>
</property>
<property name="discoverySpi">
<bean
class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="localPort" value="37205"/>
<property name="ipFinder">
<bean
class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses">
<list>
<value>2s1b:37205</value>
<value>2s1c:37205</value>
<value>2s1d:37205</value>
<value>exp1:37205</value>
</list>
</property>
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean
class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="defaultDataRegionConfiguration">
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="maxSize" value="#{80L * 1024 * 1024
* 1024}"/>
</bean>
</property>
</bean>
</property>
</bean>
</beans>
On Thu, Feb 4, 2021 at 7:27 AM Pavel Tupitsyn <pt...@apache.org> wrote:
> Hi,
>
> 1. Can you please attach the CacheConfiguration as well?
> 2. Have you tried DataStreamer
> https://ignite.apache.org/docs/latest/data-streaming?
>
> On Thu, Feb 4, 2021 at 12:27 PM jjimeno <jj...@omp.com> wrote:
>
>> Hi,
>>
>> Maybe it has to do with this:
>>
>> Performance of Ignite as key-value datastore. C++ Thin Client
>> <
>> http://apache-ignite-users.70518.x6.nabble.com/Performance-of-Ignite-as-key-value-datastore-C-Thin-Client-tt35274.html>
>>
>>
>>
>>
>> --
>> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>>
>
Re: putAll() performance big difference, 2.7.5 vs 2.9.1
Posted by Pavel Tupitsyn <pt...@apache.org>.
Hi,
1. Can you please attach the CacheConfiguration as well?
2. Have you tried DataStreamer
https://ignite.apache.org/docs/latest/data-streaming?
On Thu, Feb 4, 2021 at 12:27 PM jjimeno <jj...@omp.com> wrote:
> Hi,
>
> Maybe it has to do with this:
>
> Performance of Ignite as key-value datastore. C++ Thin Client
> <
> http://apache-ignite-users.70518.x6.nabble.com/Performance-of-Ignite-as-key-value-datastore-C-Thin-Client-tt35274.html>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>
Re: putAll() performance big difference, 2.7.5 vs 2.9.1
Posted by jjimeno <jj...@omp.com>.
Hi,
Maybe it has to do with this:
Performance of Ignite as key-value datastore. C++ Thin Client
<http://apache-ignite-users.70518.x6.nabble.com/Performance-of-Ignite-as-key-value-datastore-C-Thin-Client-tt35274.html>
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/