数据库TSDB零距离接触阿里云时序时空

最近,Amazon新推出了完全托管的时间序列数据库Timestream,可见,各大厂商对未来时间序列数据库的重视与日俱增。

阿里云TSDB是阿里巴巴集团数据库事业部研发的一款高性能分布式时序时空数据库,在即将过去的2018年,我们对TSDB进行了多次的系统架构改进,引入了倒排索引、无限时间线支持、时序数据高压缩比算法、内存缓存、数据预处理、分布式并行聚合、GPU加速等多项核心技术,并且引入了新的计算引擎层和分布式SQL层,使得引擎核心能力有了质的提升,也基本上统一了集团内部的监控存储业务。2018年双11当天,TSDB稳定运行,0故障,支撑双十一核心业务系统,毫秒级采集能力,具备双十一峰值写入不降级,创造了集群TPS 4000万、QPS 2万的新纪录。同时,面向IOT赛道,推出了时空数据库和边缘计算版本,还会引入面向时序时空场景的智能引擎,未来我们的目标是把TSDB打造成一款业内领先的“智联网数据库”。

2018双十一数据

首先,我们来看一下TSDB在2018年双十一的答卷:TSDB承受了4000万/秒的峰值写入,2万/秒的峰值查询,与2017年双十一相比均翻倍增长;而写入均值也达到了2600万/秒,查询均值达到了8000次/秒。

零距离接触阿里云时序时空数据库TSDB

零距离接触阿里云时序时空数据库TSDB

场景

下面几页Slide是我们在外部的一些场景和客户案例:

零距离接触阿里云时序时空数据库TSDB

零距离接触阿里云时序时空数据库TSDB

零距离接触阿里云时序时空数据库TSDB

核心技术解析

为了更好的支持业务的需求,今年我们在核心引擎层面做了非常多的优化和改进,我们还引入了新的计算引擎层,分布式SQL引擎,时空引擎以及面向IoT市场的边缘计算版本,极大的提高了TSDB的计算能力和场景。下图就是TSDB的主要架构图,接下来的篇章我会分时序引擎,计算引擎,SQL引擎,时空引擎,边缘计算这5大部分来详细的介绍我们的核心技术能力。

零距离接触阿里云时序时空数据库TSDB

一、时序引擎

问题挑战

稳定性、流量翻倍、不降级、低延迟、无限时间线

复杂时间线索引、无限制时间线支持:

问题

为了支持多维查询和聚合查询,TSDB使用了倒排索引以快速定位到某条时间线。在TSDB现有的实现里,倒排索引是全部存放在内存中的。该方案的好处是根据某个Tag或者Metric查找时间线时会非常高效,但是缺点也非常明显:受限于内存大小,TSDB无法支持大规模的时间线。随着TSDB的客户越来越多,这个问题也越来越突出:某直播业务要求TSDB能够支撑20亿时间线的规模;某监控业务虽然初始时间线只有上千万,但是每天会新增几十万条时间线,而且时间线规模没有上限。

方案

TSDB在之前全内存倒排索引的基础上,将倒排索引持久化到硬盘,赋予了TSDB支撑无限时间线的能力。同时,通过给予倒排索引时间的概念,我们将查询的时间过滤算子下推到了索引查询阶段,进一步优化了查询性能。而通过创建时间线索引的BloomFilter,TSDB保证了海量时间线规模下的低延迟索引查询。

零距离接触阿里云时序时空数据库TSDB

零距离接触阿里云时序时空数据库TSDB

效果

拿集团内业务举例,原来64G内存的机器只能支持到不到500万的时间线,采用了上面的技术方案后,64G内存的机器就可以支持业务将近7000万以上的时间线,而且时间线数量在原有机器的基础上还可以继续增加。

高效列式内存缓存、时间线内存分片:

为了加速数据的写入和查询能力,今年我们为TSDB设计了全内存的分布式高效缓存,具体架构图如下:

零距离接触阿里云时序时空数据库TSDB

效果

最终我们测试效果是:在单个docker下,单机TPS从原来的50W提升到100W+,QPS从原来的1K提升到2K+ ;并且这个改进很好的支持了集团魔兔业务的需求和发展。

工作负载管理:

为了更好的解决数据量大的情况下的负载均衡的问题,我们做了许多工作,主要包括:

通过读写分离机制进一步提升写入和查询性能;

快慢查询自动分级,让慢查询不再拖累其他查询;

自动限流保护,无需业务方降级,无惧双十一洪峰。

效果

双十一结果证明,新的负载管理策略帮助业务方非常平滑的度过了流量洪峰。

时序全新存储引擎——Lindorm:

这里需要提到的另外一点是,TSDB时序最新架构采用了Lindorm作为存储引擎,能够以更少的机器成本提供更高的吞吐、更低的延迟。下图为采用Lindorm存储引擎前后的TSDB写入延迟。

零距离接触阿里云时序时空数据库TSDB

聚合器

丰富的流式聚合算子:15+聚合,10+填充策略,支撑大量的adhoc操作:groupby, in,not_literal_or, topN, limit等等;支持不规则时间序列数据的处理,TSDB提供的填值策略,可以很轻松地将不规则的时间序列转换为常规时间序列进行处理;支持top-bottom等聚合方式。

混合存储记录块

时序数据存储的记录块方式是其查询性能的基石。TSDB既支持基于时间线的存储方式,

同时支持基于窗口的数据记录切分,复用同一套流式聚合,满足不同业务场景性能需求。

服务化

TSDB服务目前已经在阿里云上出售,目前提供小规格版本以及标准规格版本,满足了很多用户的需求,但依然有一些用户希望提供更小规格的TSDB服务。为了更好满足用户的需求,TSDB提供服务化功能。服务化功能是通过多个用户共享一个TSDB集群的方式来提供更小规格的TSDB服务

数据安全:HTTPS支持,用户认证

并发管理:写入并发管理,查询并发管理

性能管理:写入性能管理,查询性能管理

使用量管理:数据点管理,时间线管理

零距离接触阿里云时序时空数据库TSDB

时序引擎接下来会继续突破核心技术,包括:自驱动索引TPI,多值数据模型,时序算法,内存计算等等。从功能,性能,成本,生态方面进一步发力,打通K8S指标存储体系,具备兼容Prometheus的能力。

猜你喜欢

转载自blog.csdn.net/qq_38506209/article/details/86614118