ignite - 间歇性 SQL 查询需要时间来点燃
问题描述
工具:Apache Ignite v2.6 客户端:Ignite JDBC Thin Driver
案例:有一个包含多个条目的缓存,并且可以通过 SQL 查询访问。尝试简单查询时,在 18 毫秒内获得结果集。但是如果多次执行相同的查询。第 4 次或第 7 次查询执行时间甚至会达到 1.5 到 2 秒。任何人都可以建议任何优化
编辑:添加缓存配置。虽然提到缓存模式是 REPLICATE,但我们只提出了一个节点。我们只是尝试运行简单的选择查询,例如 select * from CACHENAME;并快速返回(20 毫秒)。但是如果我们多次重复查询..可能是第 4 次左右的命中将需要几秒钟。
<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>
解决方案
我们把cacheMode改成了PARTITIONED而不是REPLICATED,发现查询性能是一致的。我猜这种行为是由于 REPLICATED 只启动了一个节点。
推荐阅读
- angular - ionic 5 - ngFor 不显示数据
- c - 信号量未在初始化行初始化
- python - 带有文本输入的 Kivi 黑屏
- r - 无法在 R 3.6.3 中安装包“Liszt”(不在 CRAN 中)
- c - 使用节点地址在链表中进行循环检测
- python-3.x - 如果列数据相同,如何合并行并在 pandas 中有效地更改合并列上另一个特定列的值?
- python - 为什么对谷歌语音到文本 api 的异步 long_running_recognize 调用的 Progress_percent 仅返回 0 和 100(完成后)?
- c# - 使用 Entity Framework 计算列通过存储过程获取多个结果集
- java - 在 android 中使用 Blogger api 回复评论
- javascript - 如何在反应js中访问axios请求响应的嵌套对象值