在apache ignite 2.7.0和2.3.0上进行测试,如果没有写入缓存数据,则sql查询速度很快,但是当我写入数据时,sql查询变慢了,为什么?
当将数据写入apache点燃缓存时,如何使sql查询快速? 还是如何分开对apache ignite进行缓存读取和写入?
如下定义缓存实体ABData,并用Streamer.add方法加载10次3000个ABData。 每次加载完所有ABData之后(假设10分钟后,这意味着3000个ABData已添加到点火缓存中),运行SqlFieldQuery('select * from ABData'),所有ABData都会在5毫秒内返回。 但是每次仍然有3000个ABData加载时(例如,每次加载ABData之前,我们都会启动另一个线程以SqlFieldQuery查询ABData),运行SqlFieldQuery('select * from ABData'),所有ABData都会在100后返回毫秒。
公共类ABData {
@QuerySqlField(index = true)
private String code;
@QuerySqlField(index = false)
private String configData;
@QuerySqlField(index = false)
private Integer categoryID;
}
答案 0 :(得分:0)
很难说这里会发生什么。我建议您以例如堆栈跟踪,并尝试找出花费时间/在何处进行锁定。
然后,这可能是您的方案中的一些问题,例如创建寿命短的服务器节点来进行数据流传输。他们进出时都会触发重新平衡。