前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 Elasticsearch 新篇章 - 存算分离+读写分离+查询/IO并行化, 助力日志/搜索领域降本增效

腾讯云 Elasticsearch 新篇章 - 存算分离+读写分离+查询/IO并行化, 助力日志/搜索领域降本增效

作者头像
腾讯QQ大数据
发布2023-10-28 12:39:22
5140
发布2023-10-28 12:39:22
举报

在海量数据的背景下,数据的写入、存储、分析、搜索都会遇到不小的挑战(存储成本大,写入查询慢等),Elasticsearch技术栈一直是日志、安全、搜索的首选。随着数据规模的海量增长,降本增效的诉求也越来越高。本次分享将解析腾讯云全新技术栈下的系统架构,基于腾讯云ES自研存算分离、读写分离、查询/IO并行化等一套完整的降本增效解决方案。主要内容包括:

1. 存算分离:自研低频存储架构优化,存储成本节约50%-80%

2. 读写分离:无共享、自闭环,读写资源隔离的同时提升1-3倍写入吞吐

3. 查询/IO并行化:自研多线程并行查询框架,查询性能提升3~5倍

痛点与挑战

1、 存储的痛点:

1.1:副本冗余存储:主分片和副本的数据量是完全一样的,主分片已经存储了一份数据之后,副本再存储一份同样的数据便是冗余。对于云上的产品来讲,云盘会有3份备份、ES通过副本再备份一次,所以相当于有六份存储。

1.2:计算与存储耦合:CPU和IO相互影响。比如如果IO打满CPU使用率确很低,CPU资源没有充分利用。CPU打满IO使用率却很低,IO没有充分利用。

2、 写入的痛点:

2.1:副本冗余写入:当一个写入请求发送到ES集群时,主分片会进行分词、解析、写入到Lucene,主分片写入完成后会转发给副本,这时副本会重复做同样的事情,那如果把主分片refresh成的segment直接拷贝给副本就可以减少一半的计算量。

2.2:分片长尾效应:ES的写入会把一批数据分发到所有分片上,当一个分片所在节点出现了问题(GC、网络抖动、负载太高等),那么会影响整体的写入响应。

3、 查询的痛点:

3.1:Segment串行处理:默认情况下ES在查询的时候是串行执行的,比如有10个Segment,ES是1个1个Segment的去查询Lucene,然后打分、合并倒排表,收集文档等,直至最后一个segment,最后返回给协调节点。

3.2:大数据量查询性能慢:在使用ES的过程中应该都会发现,在数据量小的时候一切都还好,当数据量一旦变大,会出现各种问题。

全新技术栈

存算分离+读写分离+查询/IO并行化是腾讯云ES全新一代技术架构,是腾讯云ES最近非常重磅的功能,存算分离主要是解决存储成本的痛点,读写分离主要是解决读写资源隔离和写入的痛点,查询/IO并行化主要是解决查询的痛点。

接下来是解决方案的具体实现,请参考下面的视频

未来规划

1.存算分离

分布式缓存:当数据存储在COS上时,我们在本地会缓存一部分经常查询的数据来提高查询的性能。主分片和副本的缓存都在各自的机器上,存在一定的冗余。为了进一步降低存储成本,我们会实现分布式缓存,让主副分片共享一份缓存。

2.读写分离

读写分离还有进一步优化的空间,一方面Segment发送太快,merge可能跟不上会导致写入限流,另一方面写入速度大幅提升导致IO打的很满时数据可能会有延迟。未来我们会进一步优化提升merge、parse document、分词、flush等层面性能,理论上写入性能可以提升5-10倍。

3.聚合下推

ES的聚合分析性能相对于专门做分析场景的olap框架还是有一定的差距的,ES聚合的实现是通过docId查找列存,当匹配的文档非常多,性能就会非常慢。所以我们后面将大力提升聚合分析的性能,将聚合算子下推到Lucene,优化Lucene的文件格式和数据结构,预计聚合性能提升5~10倍。

4.查询并行化

fetch并行化:目前我们只在query阶段做了并行化,未来会在fetch阶段比较重的查询场景将fetch并行化,进一步提升查询的性能。

算法优化:现在segment、docs切分还是按照顺序切分,segment有大有小,这样大的segment就会成为长尾,未来会进一步优化切分的算法,优化Segment的分配,比如我们切割Segment的时候,是不是可以将大的Segment配一些小的Segment,这样组合起来,让每一个线程处理差不多的文档,这样就不会出现长尾的子请求。

推荐阅读

关注腾讯云大数据公众号

邀您探索数据的无限可能

点击阅读原文,即可抵达ES双11特惠现场

↓↓↓

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档