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

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

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

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

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

9a9e5bcf31637b4be2f2ef9a269e3bf7.png

痛点与挑战

5406ee00d5747757fc974b7b464b7095.png

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,这样组合起来,让每一个线程处理差不多的文档,这样就不会出现长尾的子请求。

推荐阅读

a61319569628338c15d11fb2c14d6660.jpeg

c2a55786f14b31cc03680cded8769b05.jpeg

b256f229e501c5a99e1bacb2a0cedea5.jpeg

关注腾讯云大数据公众号

邀您探索数据的无限可能

b035ce22815ba3af1f179c1007a90f95.png

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

↓↓↓

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值