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

在内存中的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会成为默认值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值