Hi, Do you use persistence? Do you have more data on disk than RAM size? If yes, it’s almost definitely https://issues.apache.org/jira/browse/IGNITE-9519. If no, it still can be the same issue. Try running on 2.7, it should be released soon.
Stan From: ApacheUser Sent: 5 ноября 2018 г. 20:10 To: user@ignite.apache.org Subject: Slow Data Insertion On Large Cache : Spark Streaming Hi Team, We have 6 node Ignite cluster with 72CPU, 256GB RAM and 5TB Storage . Data ingested using Spark Streaming into Ignite Cluster for SQL and Tableau Usage. I have couple of Large tables with 200ml rows with (200GB) and 800ml rows with (500GB) . The insertion is taking more than 40secs if there is already existing Composite key, if new row its around 10ms. We have Entry, Main and Details tables, "Entry" cache has single field "id" primary key, second cache "Main" is with composite Primary key "id" and "mainid" third Cache "Details" with composite primary key "id","mainrid" and "detailid". "id" is the affinity key for all and some other small tables. 1. Is there any performance of insertion/updation diffeence for single field primary key vs multi field primary key? will it make any differenc if I convert composite primary key as singe field primary Key? like concatanate all composite fields and make sigle filed primary key? 2.what are ignite.sh and Config parameters needs tuning? My Spark Dataframe save options (Save to Ignite) .option(OPTION_STREAMER_ALLOW_OVERWRITE, true) .mode(SaveMode.Append) .save() My Ignite.sh JVM_OPTS="-server -Xms10g -Xmx10g -XX:+AggressiveOpts -XX:MaxMetaspaceSize=512m" JVM_OPTS="${JVM_OPTS} -XX:+AlwaysPreTouch" JVM_OPTS="${JVM_OPTS} -XX:+UseG1GC" JVM_OPTS="${JVM_OPTS} -XX:+ScavengeBeforeFullGC" JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC" JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError " JVM_OPTS="${JVM_OPTS} -XX:HeapDumpPath=${IGNITE_HOME}/work" JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails" JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps" JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDateStamps" JVM_OPTS="${JVM_OPTS} -XX:+UseGCLogFileRotation" JVM_OPTS="${JVM_OPTS} -XX:NumberOfGCLogFiles=10" JVM_OPTS="${JVM_OPTS} -XX:GCLogFileSize=100M" JVM_OPTS="${JVM_OPTS} -Xloggc:${IGNITE_HOME}/work/gc.log" JVM_OPTS="${JVM_OPTS} -XX:+PrintAdaptiveSizePolicy" JVM_OPTS="${JVM_OPTS} -XX:MaxGCPauseMillis=100" export IGNITE_SQL_FORCE_LAZY_RESULT_SET=true default-Config.xml <?xml version="1.0" encoding="UTF-8"?> <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="segmentationPolicy" value="RESTART_JVM"/> <property name="segmentCheckFrequency" value="10000"/> <property name="segmentationResolveAttempts" value="5"/> <property name="rebalanceThreadPoolSize" value="4" /> <property name="longQueryWarningTimeout" value="3000"/> <property name="dataStorageConfiguration"> <bean class="org.apache.ignite.configuration.DataStorageConfiguration"> <property name="metricsEnabled" value="true" /> <property name="storagePath" value="/mnt/ignite/data" /> <property name="walArchivePath" value="/mnt/ignite/data/wal/archive" /> <property name="writeThrottlingEnabled" value="true"/> <property name="defaultDataRegionConfiguration"> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="name" value="default_mem_region"/> <property name="persistenceEnabled" value="true"/> <property name="checkpointPageBufferSize" value="#{1024L * 1024 * 1024}"/> <property name="maxSize" value="#{40L * 1024 * 1024 * 1024}"/> <property name="metricsEnabled" value="true" /> </bean> </property> <property name="DataRegionConfigurations"> <list> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="name" value="q_major"/> <property name="initialSize" value="#{10L * 1024 * 1024 * 1024}"/> <property name="maxSize" value="#{50L * 1024 * 1024 * 1024}"/> <property name="persistenceEnabled" value="true"/> </bean> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="name" value="q_minor"/> <property name="initialSize" value="#{10L * 1024 * 1024 * 1024}"/> <property name="maxSize" value="#{60L * 1024 * 1024 * 1024}"/> <property name="persistenceEnabled" value="true"/> </bean> </list> </property> </bean> </property> <property name="transactionConfiguration"> <bean class="org.apache.ignite.configuration.TransactionConfiguration"> <property name="txManagerLookupClassName" value="my.package.MyCacheTmLookup"/> </bean> </property> <property name="authenticationEnabled" value="true"/> <property name="clientConnectorConfiguration"> <bean class="org.apache.ignite.configuration.ClientConnectorConfiguration"> </bean> </property> <property name="communicationSpi"> <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi"> <property name="slowClientQueueLimit" value="1000"/> <property name="messageQueueLimit" value="1024"/> </bean> </property> <property name="discoverySpi"> <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi"> <property name="ipFinder"> <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder"> <property name="multicastGroup" value="x.x.x.x"/> <property name="addresses"> <list> <value>64.x.x.x:47500..47509</value> <value>64.x.x.x:47500..47509</value> <value>64.x.x.x:47500..47509</value> <value>64.x.x.x:47500..47509</value> <value>64.x.x.x:47500..47509</value> <value>64.x.x.x:47500..47509</value> </list> </property> </bean> </property> </bean> </property> </bean> </beans> Thanks -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/