PostgreSQL正强势回归!

作者:咖啡

三十多年前发布第一个released以来,PostgreSQL正强势回归。PostgreSQL是现今增长最快的数据库,比MongoDB、Redis、MySQL和其它数据库的增长速度都要快。PostgreSQL功能上也已经成熟和扩展,这得益于核心的维护者和不断增长的社区。

然而,PostgreSQL有一个遭人诟病的地方,水平扩展能力差。数位PostgreSQL贡献者已经为OLTP负载和时序负载开发了水平扩展功能选项,而我们研究的,是另外的问题。

问题:时序负载差异

简单来说,时序负载与传统数据库(OLTP)负载不一样。有几个原因:写入即插入、无大规模更新数据、插入数据的实时性、连续时间范围内的读取,而非随机读取、读写分离,一个事务中很少既有写又有读。相比传统数据库,时序数据的数据量要大很多,压缩率也高很多。因此,扩展写、读和存储是时序数据库的关注点。

单个TSDB节点可以扩展到每秒200万个指标和10兆兆字节的数据存储,可以满足大部分的需求。但随着工作量的增大和软件服务的发展,总会追求更强大的性能,这就需要一个基于PostgreSQL的时许数据库的分布式系统。

解决:分块,而非分片

我们新的分布式架构:可扩展到每秒超过1000万个指标,存储pb级的数据,通过更好的并行化处理获得更快的查询速率。从本质上讲,系统可以随着您和您的时序负载的工作量增长而增长。

所有数据库系统水平扩展到多个节点,都是依赖于对数据进行单个维度的切割分片,然后把分片数据存到不同的节点上。

TSDB不通过传统分片的方法作水平扩张,取而代之,我们采用了单节点体系结构的核心概念:块。块是通过按多个维度(其中一个维度是时间)自动对数据进行分区而创建的。创建块是一个细粒度的操作,在单个节点上,一个数据集就可以包含上千个块。

分片通常只支持水平扩展,与分片不同,分块支持广泛,功能强大。例如:

  • 纵向扩展(同一个节点)和水平扩展(多个节点)

  • 弹性扩张:通过让数据增长到新节点并淘汰旧节点从而实现添加和删除节点

  • 分区灵活性:在不停机的情况下更改块大小或分区尺寸(例如,考虑到增加的插入率或额外的节点)

  • 数据保存策略:删除超过阈值的块

  • 数据堆叠:将旧的数据块从更快、更昂贵的存储空间转移到更便宜、更慢的存储空间

  • 数据重排:基于写入模式以一种顺序(例如,按时间)写入数据,然后根据查询模式以另一种顺序(例如,device_id)重写数据

基准测试

早期基准测试结果,表明我们的分布式系统架构能够维持高写速率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值