点燃loadCache性能问题

时间:2018-01-16 13:15:51

标签: caching ignite

我有一个第三方Mysql表,将由Ignite集群部分缓存。所以在点燃之后,我做了这个conf:

<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
    <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="228.10.10.157" />
                </bean>
            </property>
        </bean>
    </property>
    <property name="clientMode" value="true" />
    <property name="cacheConfiguration">
        <list>
            <bean class="org.apache.ignite.configuration.CacheConfiguration">
                <property name="name" value="crmdbcache" />
                <property name="onheapCacheEnabled" value="true" />
                <property name="readThrough" value="true" />
                <property name="readFromBackup" value="false" />
                <property name="evictionPolicy">
                    <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                        <property name="maxSize" value="100" />
                    </bean>
                </property>
                <property name="indexedTypes">
                    <list>
                        <value>java.lang.Long</value>
                        <value>com.example.demo.UserSegment</value>
                    </list>
                </property>
                <property name="cacheStoreFactory">
                    <bean class="org.apache.ignite.cache.store.jdbc.CacheJdbcPojoStoreFactory">
                        <property name="dataSource" ref="datasource" />
                        <property name="dialect">
                            <bean class="org.apache.ignite.cache.store.jdbc.dialect.MySQLDialect"></bean>
                        </property>
                        <property name="parallelLoadCacheMinimumThreshold" value="20"/>
                        <property name="types">
                            <list>
                                <bean class="org.apache.ignite.cache.store.jdbc.JdbcType">
                                    <property name="databaseSchema" value="crm" />
                                    <property name="databaseTable" value="CRM_SEGMENT" />
                                    <property name="cacheName" value="crmdbcache" />
                                    <property name="keyType" value="java.lang.Long" />
                                    <property name="valueType" value="com.example.demo.UserSegment" />
                                    <property name="keyFields">
                                        <list>
                                            <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
                                                <constructor-arg index="0" value="-5" />
                                                <constructor-arg index="1" value="USER_ID" />
                                                <constructor-arg index="2" value="java.lang.Long" />
                                                <constructor-arg index="3" value="userId" />
                                            </bean>
                                        </list>
                                    </property>
                                    <property name="valueFields">
                                        <list>
                                            <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
                                                <constructor-arg index="0" value="-5" />
                                                <constructor-arg index="1" value="ID" />
                                                <constructor-arg index="2" value="java.lang.Long" />
                                                <constructor-arg index="3" value="id" />
                                            </bean>
                                            <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
                                                <constructor-arg index="0" value="-5" />
                                                <constructor-arg index="1" value="USER_ID" />
                                                <constructor-arg index="2" value="java.lang.Long" />
                                                <constructor-arg index="3" value="userId" />
                                            </bean>
                                            <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
                                                <constructor-arg index="0" value="-5" />
                                                <constructor-arg index="1" value="TYPE_ID" />
                                                <constructor-arg index="2" value="java.lang.Long" />
                                                <constructor-arg index="3" value="type" />
                                            </bean>
                                            <bean class="org.apache.ignite.cache.store.jdbc.JdbcTypeField">
                                                <constructor-arg index="0" value="12" />
                                                <constructor-arg index="1" value="TAG" />
                                                <constructor-arg index="2" value="java.lang.String" />
                                                <constructor-arg index="3" value="tag" />
                                            </bean>
                                        </list>
                                    </property>
                                </bean>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </list>
    </property>
</bean>

所以,我也在检查点火器上的负载。但看起来,它很慢。我也运行了ignite.sh vith -v选项,但似乎没有问题。

所以我的问题是:我错过了什么或者我应该在哪里开始寻找问题?

编辑:它在1分钟内只写了640个项目。增加线程数根本不会影响性能。数据库有320万条记录,我想基于LRU在缓存中添加100K。但是凭借这种表现,它似乎会永远地继续下去

0 个答案:

没有答案