<?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 class="org.apache.ignite.configuration.IgniteConfiguration">
        <!--
        IgniteConfiguration [
            igniteInstanceName=null, 
            pubPoolSize=8, 
            svcPoolSize=8, 
            callbackPoolSize=8, 
            stripedPoolSize=8, 
            sysPoolSize=8, 
            mgmtPoolSize=4, 
            igfsPoolSize=8, 
            dataStreamerPoolSize=8, 
            utilityCachePoolSize=8, 
            utilityCacheKeepAliveTime=60000, 
            p2pPoolSize=2, 
            qryPoolSize=8, 
            igniteHome=D:\tg\helpers\output\ignite, 
            igniteWorkDir=D:\tg\helpers\output\ignite\work, 
            mbeanSrv=com.sun.jmx.mbeanserver.JmxMBeanServer@5a1c0542, 
            nodeId=3fdd58c1-ccc7-4962-8f0d-416cdc28e678, 
            marsh=BinaryMarshaller [], 
            marshLocJobs=false, 
            daemon=false, 
            p2pEnabled=true, 
            netTimeout=5000, 
            sndRetryDelay=1000, 
            sndRetryCnt=3, 
            metricsHistSize=10000, 
            metricsUpdateFreq=2000, 
            metricsExpTime=9223372036854775807, 
            discoSpi=TcpDiscoverySpi [
                addrRslvr=null, 
                sockTimeout=0, 
                ackTimeout=0, 
                marsh=null, 
                reconCnt=10, 
                reconDelay=2000, 
                maxAckTimeout=600000, 
                forceSrvMode=false, 
                clientReconnectDisabled=false, 
                internalLsnr=null
            ], 
            segPlc=STOP, 
            segResolveAttempts=2, 
            waitForSegOnStart=true, 
            allResolversPassReq=true, 
            segChkFreq=10000, 
            commSpi=TcpCommunicationSpi [
                connectGate=null, 
                connPlc=org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi$FirstConnectionPolicy@153d4abb, 
                enableForcibleNodeKill=false, 
                enableTroubleshootingLog=false, 
                locAddr=null, 
                locHost=null, 
                locPort=47100, 
                locPortRange=100, 
                shmemPort=-1, 
                directBuf=true, 
                directSndBuf=false, 
                idleConnTimeout=600000, 
                connTimeout=5000, 
                maxConnTimeout=600000, 
                reconCnt=10, 
                sockSndBuf=32768, 
                sockRcvBuf=32768, 
                msgQueueLimit=0, 
                slowClientQueueLimit=0, 
                nioSrvr=null, 
                shmemSrv=null, 
                usePairedConnections=false, 
                connectionsPerNode=1, 
                tcpNoDelay=true, 
                filterReachableAddresses=false, 
                ackSndThreshold=32, 
                unackedMsgsBufSize=0, 
                sockWriteTimeout=2000, 
                boundTcpPort=-1, 
                boundTcpShmemPort=-1, 
                selectorsCnt=4, 
                selectorSpins=0, 
                addrRslvr=null, 
                ctxInitLatch=java.util.concurrent.CountDownLatch@6d4c273c[Count = 1], 
                stopping=false
            ], 
            evtSpi=org.apache.ignite.spi.eventstorage.NoopEventStorageSpi@5a67e962, 
            colSpi=NoopCollisionSpi [], 
            deploySpi=LocalDeploymentSpi [], 
            indexingSpi=org.apache.ignite.spi.indexing.noop.NoopIndexingSpi@545e57d7, 
            addrRslvr=null, 
            encryptionSpi=org.apache.ignite.spi.encryption.noop.NoopEncryptionSpi@2bc9a775, 
            clientMode=false, 
            rebalanceThreadPoolSize=1, 
            txCfg=TransactionConfiguration [
                txSerEnabled=false, 
                dfltIsolation=REPEATABLE_READ, 
                dfltConcurrency=PESSIMISTIC, 
                dfltTxTimeout=0, 
                txTimeoutOnPartitionMapExchange=0, 
                pessimisticTxLogSize=0, 
                pessimisticTxLogLinger=10000, 
                tmLookupClsName=null, 
                txManagerFactory=null, 
                useJtaSync=false
            ], 
            cacheSanityCheckEnabled=true, 
            discoStartupDelay=60000, 
            deployMode=SHARED, 
            p2pMissedCacheSize=100, 
            locHost=null, 
            timeSrvPortBase=31100, 
            timeSrvPortRange=100, 
            failureDetectionTimeout=10000, 
            sysWorkerBlockedTimeout=null, 
            clientFailureDetectionTimeout=30000, 
            metricsLogFreq=60000, 
            hadoopCfg=null, 
            connectorCfg=ConnectorConfiguration [
                jettyPath=null, 
                host=null, 
                port=11211, 
                noDelay=true, 
                directBuf=false, 
                sndBufSize=32768, 
                rcvBufSize=32768, 
                idleQryCurTimeout=600000, 
                idleQryCurCheckFreq=60000, 
                sndQueueLimit=0, 
                selectorCnt=4, 
                idleTimeout=7000, 
                sslEnabled=false, 
                sslClientAuth=false, 
                sslCtxFactory=null, 
                sslFactory=null, 
                portRange=100, 
                threadPoolSize=8, 
                msgInterceptor=null
            ], 
            odbcCfg=null, 
            warmupClos=null, 
            atomicCfg=AtomicConfiguration [
                seqReserveSize=1000, 
                cacheMode=PARTITIONED, 
                backups=1, 
                aff=null, 
                grpName=null
            ], 
            classLdr=sun.misc.Launcher$AppClassLoader@5c647e05, 
            sslCtxFactory=null, 
            platformCfg=null, 
            binaryCfg=null, 
            memCfg=null, 
            pstCfg=null, 
            dsCfg=DataStorageConfiguration [
                sysRegionInitSize=41943040, 
                sysRegionMaxSize=104857600, 
                pageSize=16384, 
                concLvl=0, 
                dfltDataRegConf=DataRegionConfiguration [
                    name=default, 
                    maxSize=4294967296, 
                    initSize=1073741824, 
                    swapPath=null, 
                    pageEvictionMode=DISABLED, 
                    evictionThreshold=0.9, 
                    emptyPagesPoolSize=100, 
                    metricsEnabled=false, 
                    metricsSubIntervalCount=5, 
                    metricsRateTimeInterval=60000, 
                    persistenceEnabled=true, 
                    checkpointPageBufSize=0
                ], 
                dataRegions=[
                    DataRegionConfiguration [name=.ShardDetectorStorage, maxSize=419430400, initSize=104857600, swapPath=null, pageEvictionMode=DISABLED, evictionThreshold=0.9, emptyPagesPoolSize=100, metricsEnabled=false, metricsSubIntervalCount=5, metricsRateTimeInterval=60000, persistenceEnabled=true, checkpointPageBufSize=0], 
                    DataRegionConfiguration [name=.ChildrenStore, maxSize=419430400, initSize=104857600, swapPath=null, pageEvictionMode=DISABLED, evictionThreshold=0.9, emptyPagesPoolSize=100, metricsEnabled=false, metricsSubIntervalCount=5, metricsRateTimeInterval=60000, persistenceEnabled=true, checkpointPageBufSize=0], 
                    DataRegionConfiguration [name=.ChildrenStore.listsize, maxSize=419430400, initSize=104857600, swapPath=null, pageEvictionMode=DISABLED, evictionThreshold=0.9, emptyPagesPoolSize=100, metricsEnabled=false, metricsSubIntervalCount=5, metricsRateTimeInterval=60000, persistenceEnabled=true, checkpointPageBufSize=0], 
                    DataRegionConfiguration [name=.RootStorage, maxSize=419430400, initSize=104857600, swapPath=null, pageEvictionMode=DISABLED, evictionThreshold=0.9, emptyPagesPoolSize=100, metricsEnabled=false, metricsSubIntervalCount=5, metricsRateTimeInterval=60000, persistenceEnabled=true, checkpointPageBufSize=0], 
                    DataRegionConfiguration [name=.QualifierStorage, maxSize=419430400, initSize=104857600, swapPath=null, pageEvictionMode=DISABLED, 
                                             evictionThreshold=0.9, emptyPagesPoolSize=100, metricsEnabled=false, metricsSubIntervalCount=5, 
                                             metricsRateTimeInterval=60000, persistenceEnabled=true, checkpointPageBufSize=0]
                ], 
                storagePath=persistence, 
                checkpointFreq=180000, 
                lockWaitTime=10000, 
                checkpointThreads=4, 
                checkpointWriteOrder=SEQUENTIAL, 
                walHistSize=20, 
                maxWalArchiveSize=1073741824, 
                walSegments=10, 
                walSegmentSize=67108864, 
                walPath=wal, 
                walArchivePath=wal/archive, 
                metricsEnabled=false, 
                walMode=NONE, 
                walTlbSize=131072, 
                walBuffSize=0, 
                walFlushFreq=2000, 
                walFsyncDelay=1000, 
                walRecordIterBuffSize=67108864, 
                alwaysWriteFullPages=false, 
                fileIOFactory=org.apache.ignite.internal.processors.cache.persistence.file.AsyncFileIOFactory@27b000f7, 
                metricsSubIntervalCnt=5, 
                metricsRateTimeInterval=60000, 
                walAutoArchiveAfterInactivity=-1, 
                writeThrottlingEnabled=false, 
                walCompactionEnabled=false, 
                walCompactionLevel=1, 
                checkpointReadLockTimeout=null
            ], 
            activeOnStart=true, 
            autoActivation=true, 
            longQryWarnTimeout=3000, 
            sqlConnCfg=null, 
            cliConnCfg=ClientConnectorConfiguration [
                host=null, 
                port=10800, 
                portRange=100, 
                sockSndBufSize=0, 
                sockRcvBufSize=0, 
                tcpNoDelay=true, 
                maxOpenCursorsPerConn=128, 
                threadPoolSize=8, 
                idleTimeout=0, 
                jdbcEnabled=true, 
                odbcEnabled=true, 
                thinCliEnabled=true, 
                sslEnabled=false, 
                useIgniteSslCtxFactory=true, 
                sslClientAuth=false, 
                sslCtxFactory=null
            ], 
            mvccVacuumThreadCnt=2, 
            mvccVacuumFreq=5000, 
            authEnabled=false, 
            failureHnd=null, 
            commFailureRslvr=null
        ]
        -->
        <property name="gridLogger">
            <bean class="org.apache.ignite.logger.log4j2.Log4J2Logger">
                <constructor-arg type="java.lang.String" value="log4j2.xml"/>
            </bean>
        </property>

        <property name="communicationSpi">
            <bean class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
              <!-- Override local port. -->
              <property name="localPort" value="47400"/>
            </bean>
        </property>

        <!-- Configure internal thread pool. 64-->
        <property name="publicThreadPoolSize" value="16"/>
    
        <!-- Configure system thread pool. 32-->
        <property name="systemThreadPoolSize" value="8"/>
        
        <property name="systemWorkerBlockedTimeout" value="#{5 * 60 * 1000}"/>
    
        <property name="failureHandler">
            <bean class="org.apache.ignite.failure.StopNodeFailureHandler">
          
                <!-- uncomment to enable this handler to 
                process critical workers' hung-ups -->
                <property name="ignoredFailureTypes">
                    <list>
                    </list>
                </property>
         
            </bean>
        </property>
        <!-- Set to true to enable distributed class loading for examples, default is false. -->
        <property name="peerClassLoadingEnabled" value="false"/>

        <!--property name="workDirectory" value="${SQOOP_HOME}"/-->

        <property name="dataStorageConfiguration">
            <bean class="org.apache.ignite.configuration.DataStorageConfiguration">

                <!--
                     Sets a path to the root directory where data and indexes are
                     to be persisted. It's assumed the directory is on a separated SSD.
                -->
                <property name="storagePath" value="persistence"/>

                <!--
                     Sets a path to the directory where WAL is stored.
                     It's assumed the directory is on a separated HDD.
                -->
                <property name="walPath" value="wal"/>

                <!--
                    Sets a path to the directory where WAL archive is stored.
                    The directory is on the same HDD as the WAL.
                -->
                <property name="walArchivePath" value="wal/archive"/>

                <!-- Changing WAL Mode. --> 
                <property name="walMode" value="NONE"/>

                <!-- Set the page size to 4 KB, default -->
                <!-- limit 1 KB - 16 KB -->
                <property name="pageSize" value="#{4 * 1024}"/>

                <!--property name="concurrencyLevel" value="1"/-->
                
                <!-- Enable write throttling. -->
                <property name="writeThrottlingEnabled" value="true"/>
                
                <property name="checkpointFrequency" value="15000"/>
                <!--property name="lockWaitTime" value="2000"/>
                <property name="checkpointThreads" value="1"/>
                <property name="checkpointWriteOrder" value="RANDOM"/-->
                <!--property name="checkpointWriteOrder" value="SEQUENTIAL"/-->

                <!--
                    Default memory region that grows endlessly. A cache is bound to this memory region
                    unless it sets another one in its CacheConfiguration.
                -->
                <property name="defaultDataRegionConfiguration">
                    <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                        <!--property name="name" value="Default_Region"/-->
                        <property name="name" value="default"/>
                        <!-- 100 MB memory region with disabled eviction -->
                        <property name="initialSize" value="#{100L * 1024 * 1024}"/>
                        <!-- maxSize 20 MB is too little -->
                        <!-- sum of all maxSize values has to be less than total memory of the system -->
                        <!-- limits size in memory, not on disk -->
                        <!-- default value 1.2GB -->
                        <property name="maxSize"     value="#{4L * 1024 * 1024 * 1024}"/>
                        <property name="persistenceEnabled" value="true"/>
                        <!-- Increasing the buffer size to 1 GB. -->
                        <property name="checkpointPageBufferSize" value="#{1L * 1024 * 1024 * 1024}"/>
                    </bean>
                </property>

                <!-- Defining several data regions for different memory regions -->
                <property name="dataRegionConfigurations">
                    <list>

                        <!--bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                            <property name="name" value=".ShardDetectorStorage"/>
                            <property name="initialSize" value="#{10L * 1024 * 1024}"/>
                            <property name="maxSize"     value="#{400L * 1024 * 1024}"/>
                            <property name="persistenceEnabled" value="true"/>
                            <property name="checkpointPageBufferSize" value="#{1024L * 1024 * 1024}"/>
                        </bean>

                        <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                            <property name="name" value=".ChildrenStore"/>
                            <property name="initialSize" value="#{10L * 1024 * 1024}"/>
                            <property name="maxSize"     value="#{400L * 1024 * 1024}"/>
                            <property name="persistenceEnabled" value="true"/>
                            <property name="checkpointPageBufferSize" value="#{1024L * 1024 * 1024}"/>
                        </bean>

                        <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                            <property name="name" value=".ChildrenStore.listsize"/>
                            <property name="initialSize" value="#{10L * 1024 * 1024}"/>
                            <property name="maxSize"     value="#{400L * 1024 * 1024}"/>
                            <property name="persistenceEnabled" value="true"/>
                            <property name="checkpointPageBufferSize" value="#{1024L * 1024 * 1024}"/>
                        </bean>

                        <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                            <property name="name" value=".RootStorage"/>
                            <property name="initialSize" value="#{10L * 1024 * 1024}"/>
                            <property name="maxSize"     value="#{400L * 1024 * 1024}"/>
                            <property name="persistenceEnabled" value="true"/>
                            <property name="checkpointPageBufferSize" value="#{1024L * 1024 * 1024}"/>
                        </bean>

                        <bean class="org.apache.ignite.configuration.DataRegionConfiguration">
                            <property name="name" value=".QualifierStorage"/>
                            <property name="initialSize" value="#{10L * 1024 * 1024}"/>
                            <property name="maxSize"     value="#{400L * 1024 * 1024}"/>
                            <property name="persistenceEnabled" value="true"/>
                            <property name="checkpointPageBufferSize" value="#{1024L * 1024 * 1024}"/>
                        </bean-->

                    </list>
                </property>
            </bean>
        </property>

        <property name="cacheConfiguration">
            <list>
                <!--bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="dataRegionName" value="default"/>
                    <property name="name" value=".ShardDetectorStorage"/>
                    <property name="onheapCacheEnabled" value="true"/>
                </bean>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="dataRegionName" value="default"/>
                    <property name="name" value=".ChildrenStore"/>
                    <property name="onheapCacheEnabled" value="true"/>
                </bean>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="dataRegionName" value="default"/>
                    <property name="name" value=".ChildrenStore.listsize"/>
                    <property name="onheapCacheEnabled" value="true"/>
                </bean>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="dataRegionName" value="default"/>
                    <property name="name" value=".RootStorage"/>
                    <property name="onheapCacheEnabled" value="true"/>
                </bean>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="dataRegionName" value="default"/>
                    <property name="name" value=".QualifierStorage"/>
                    <property name="onheapCacheEnabled" value="true"/>
                </bean-->
            </list>
        </property>

        <!-- Explicitly configure TCP discovery SPI to provide a list of initial nodes. -->
        <!--property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <! - - Uncomment static IP finder to enable static-based discovery of initial nodes. - - >
                    <! - -<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">- - >
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                        <property name="addresses">
                            <list>
                                <! - - In distributed environment, replace with actual host IP address. - - >
                                <value>127.0.0.1:47500..47502</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property-->  

        <!-- The rest of the parameters. -->
    </bean>

</beans>
