加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

05-doc-values-es控制聚合内存使用-elasticsearch权威指南翻译

发布时间:2020-12-13 22:13:17 所属栏目:百科 来源:网络整理
导读:在内存中的doc values是被heap限制的,横向进行扩展可以一定情况下解决这个问题,但你会发现你即使扩充节点后,重重的agg会在其他节点没有充分利用的时候花光你的HEAP空间。 默认fielddata会写入内存中,但这不是唯一的选择,也可以写入到硬盘中,同时能达到

在内存中的doc values是被heap限制的,横向进行扩展可以一定情况下解决这个问题,但你会发现你即使扩充节点后,重重的agg会在其他节点没有充分利用的时候花光你的HEAP空间。

默认fielddata会写入内存中,但这不是唯一的选择,也可以写入到硬盘中,同时能达到同样的功能,但不是内存中的fielddata而是硬盘上的docvalue了。

doc value在1.0被加入进去,直到最近,doc value变的很慢,从多个方面,es和lucene已经把瓶颈问题解决了。

现在doc value比fielddata慢10%-25%,主要来自两个因素:

doc value存在于硬盘,但这个允许执行足够大的数据,同时可以使得ES_HEAP_SIZE设小,来提高垃圾回收以及系统稳定性。

doc values是在index的时候建立,而不是在search的时候建立,fielddata是在query倒排索引的时候建立,这样可以提高doc values的效率。

在内存和硬盘间的数据交换也会轻微的减慢fielddata,而doc value是异常的高效,所以对于很多的查询,你甚至感觉不到轻微的减慢,同时加快垃圾回收,提高初始时间可能是赚了。

这样充分利用了filesystem cache,如果这些数据常驻filesystem cache,等同于RAM了


enabling doc values

doc values除了不能用在analyzed字段上都能用,而且设置是field级别的,这样你可以fielddata和doc value结合使用。

PUT /music/_mapping/song

{

"properties" : {

"tag": {

"type": "string",

"index" : "not_analyzed",

"doc_values": true

}

}

}



将来可能doc value会成为默认值。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读