歡迎讀者在評論區共享讀過的 ES(ElasticSearch)工程實踐的文章
性能優化
美團外賣LBS場景下,採用 LongObjectHashMap hash 查詢方式優化了倒排鏈的查詢、採用 RLE 編碼將 posting list 極致壓縮,優化了倒排鏈的合併。
滴滴日誌ES集羣採用新的索引文件壓縮算法 ZSTD,提升 ES 索引的 indexing(寫入)性能。
騰訊雲 Elasticsearch 新篇章 - 存算分離+讀寫分離+查詢/IO並行化
騰訊雲ES,提到了優化 ES 的段查詢方式(query then fetch),將串行查詢改成並行查詢。
目前我們只在query階段做了並行化,未來會在fetch階段比較重的查詢場景將fetch並行化,進一步提升查詢的性能
騰訊萬億級 Elasticsearch 內存效率提升技術解密
講了堆內存到堆外內存的優化。對 FST 的作用講解得比較詳細,並提出了堆外內存的優化思路。
實踐,有示例。其實也可以看 ES 的官方查詢調優文檔(ES search tuning guide)
高可用
通過跨集羣複製,將數據從一個 ES 集羣複製到另一個 ES 集羣,確保集羣服務的高可用。
文中提到ES所在節點的CPU出現了抖動,其原因是:OS 在 swaping page。文中還提到 mmp 方式很難在堆內被JVM GC 回收,可採用 NIO 方式讀取加載到 page cache 內,由 kernel 而不是 user space 維護這部分內存從而能確保機器內存的高效利用。
ES 向量檢索
百度ES的向量檢索實現,通過自研 ES 插件,通過 JNI 調用 增強 ES 的向量檢索能力。
Elasticsearch向量檢索的演進與變革:從基礎到應用