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/

Reply via email to