工具:Apache Ignite v2.6 客户端:点燃JDBC Thin驱动程序
案例:具有多个条目的缓存,可以通过SQL查询进行访问。尝试简单查询时,结果集将在18毫秒内获得。但是,如果多次执行同一查询,则查询执行时间的第4或第7次甚至会达到1.5到2秒。谁能建议任何优化
编辑:添加缓存配置。尽管其中提到的缓存模式已被替换,但我们仅提出了一个节点。我们只是尝试运行简单的选择查询,例如从CACHENAME选择*;并迅速返回(20毫秒)。但是,如果我们多次重复查询,..可能是第四次,那么点击将需要几秒钟。
<property name="clientConnectorConfiguration">
<bean class="org.apache.ignite.configuration.ClientConnectorConfiguration">
<property name="maxOpenCursorsPerConnection" value="512" />
<property name="socketSendBufferSize" value="65536"/>
<property name="socketReceiveBufferSize" value="131072"/>
<property name="threadPoolSize" value="4"/>
</bean>
</property>
<property name="cacheConfiguration">
<list>
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="CACHENAME" />
<property name="cacheMode" value="REPLICATED" />
<property name="sqlSchema" value="XYZ" />
<property name="indexedTypes">
<list>
<value>com.entitlement.service.ignite.pojo.KeyPOJO</value>
<value>com.entitlement.service.ignite.pojo.ValuePOJO</value>
</list>
</property>
<property name="readThrough" value="true" />
<property name="writeThrough" value="true" />
<property name="writeBehindEnabled" value="true" />
<property name="WriteBehindFlushFrequency" value="1000"/>
<property name="cacheStoreFactory">
<bean
class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
<property name="dataSourceBean" value="cassandraAdminDataSource" />
<property name="persistenceSettingsBean" value="myPersistanceBean" />
</bean>
</property>
</bean>
</list>
</property>
答案 0 :(得分:0)
我们将cacheMode更改为PARTITIONED而不是REPLICATED,发现查询性能是一致的。我猜这是由于REPLICATED导致的,只有一个节点。