1. 程式人生 > >53.doc value機制內核級原理深入探秘

53.doc value機制內核級原理深入探秘

fse 壓縮 bsp map 標識 offset mono 一定的 pro

主要知識點:

doc value的原理

doc value性能優化

一、doc value原理

1 生成時間:index-time生成

PUT/POST的時候,就會生成doc value數據,也就是正排索引

2 核心原理與倒排索引類似

正排索引,也會寫入磁盤文件中,然後呢,os cache先進行緩存,以提升訪問doc value正排索引的性能

如果os cache內存大小不足夠放得下整個正排索引,doc value,就會將doc value的數據寫入磁盤文件中

二、doc value性能優化

1、、性能問題:給jvm更少內存,64g服務器,給jvm最多16g

es官方是建議,es大量是基於os cache來進行緩存和提升性能的,不建議用jvm內存來進行緩存,那樣會導致一定的gc開銷和oom問題。所以給jvm更少的內存,給os cache更大的內存。比如一臺服務器有64g內存,es建議給jvm最多16g,余下的內存給os cacheos cache可以提升doc value和倒排索引的緩存和查詢效率

2column壓縮

1)所有值相同,直接保留單值,對於相同的值只保留一份單值的標識即可。

2)少於256個值,使用table encoding

模式:一種壓縮方式

3)大於256個值,看有沒有最大公約數,有就除以最大公約數,然後保留這個最大公約數

4)如果沒有最大公約數,采取offset結合壓縮的方式:

3disable doc value

如果的確不需要doc value,比如聚合等操作,那麽可以禁用,減少磁盤空間占用

PUT my_index

{

"mappings": {

"my_type": {

"properties": {

"my_field": {

"type": "keyword"

"doc_values": false

}

}

}

}

}

53.doc value機制內核級原理深入探秘