腾讯基于 PostgreSQL 历时 8 年研发的 HTAP 分布式数据库 TBase 开源了,对数据库有兴趣的同学可以去了解体验一下

2019-11-14 19:23:21 +08:00
 jackdu

github 地址: https://github.com/Tencent/TBase

6104 次点击
所在节点    数据库
57 条回复
jackdu
2019-11-14 19:24:23 +08:00
TBase 是腾讯基于 PostgreSQL 历时 8 年研发的 HTAP 分布式数据库,能同时提供高性能的 OLTP 和 OLAP 能力,原名 PostgreSQL-XZ,2017 年更名 TBase。

TBase 开源之所以引人关注,是因为其已在微信支付、保险、公安、税务、电信等行业解决方案中大量应用。

什么是 TBase
TBase 是一个提供写可靠性,多主节点数据同步的关系数据库集群平台。你可以将 TBase 配置一台或者多台主机上,TBase 数据存储在多台物理主机上面。数据表的存储有两种方式, 分别是 distributed 或者 replicated,当向 TBase 发送查询 SQL 时,TBase 会自动向数据节点发出查询语句并获取最终结果。

TBase 采用分布式集群架构, 该架构分布式为无共享(share nothing)模式,节点之间相应独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转,各处理单元之间通过网络协议进行通信,并行处理和扩展能力更好,这也意味着只需要简单的 x86 服务器就可以部署 TBase 数据库集群
jackdu
2019-11-14 19:24:47 +08:00
喜欢的点个小星星
dbskcnc
2019-11-14 19:27:48 +08:00
不知具体是基于 Pg 那个版本,pg12 提升了不少
jackdu
2019-11-14 19:28:24 +08:00
介绍链接 Base64:aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3Mvb2h4a3FaRmNqSTE2VHBQdzRSYXMyQQ==
jackdu
2019-11-14 19:30:56 +08:00
@dbskcnc 没有具体哪个版本是在开源的 PostgreSQL 基础上自己有所修改
areless
2019-11-14 22:32:55 +08:00
这不是未来的方向。未来的方向是用 gpu 执行 sql 处理显存里的载入数据。cpu 只提供载入数据的通道及整合运算资源的最后输出。sql 执行速度加快了,kv 缓存便不需要了,构建开始转变,前端通过加密直接传 sql,后端提供 sql 本身,多么烂的程序都能单机跑上亿日 pv。你这种只有腾讯自己能用。
xupefei
2019-11-14 22:47:22 +08:00
@areless 你这个目前还是小说里的应用…
azh7138m
2019-11-14 22:52:54 +08:00
@xupefei 什么小说敢这么写?可以介绍一下吗?
iPhoneXI
2019-11-14 22:56:05 +08:00
和 tidb 比哪个好用
areless
2019-11-14 23:01:42 +08:00
@xupefei 那个,16 年搞 gpu 数据库开源的都有七八家。商业的很多很多了。目前该领域还没有真正的巨头出现。其实只要 mod 显卡数,单机 gpu 分布式构架真的是超牛逼了,而且现在显存又大~gpu 跟显存的通道无敌大。mapd,BlazingDB,PG-Strom~~~gpuexdsql 自己编译下就能把 sqlite 跑在 gpu 里面。
palfortime
2019-11-14 23:14:13 +08:00
@areless 现在数据库的瓶颈不是存储吗
areless
2019-11-14 23:39:44 +08:00
@azh7138m 一个 12 显卡 12g 显存的单机能提供上百 g 高速查询缓冲区。每个显卡是独立执行查询,是单显卡执行 sql 的 12 倍。现在一张英伟达运算卡是普通高配主机数据库速度的 20 倍左右。即便是笔记本的渣独显这个方面也快 cpu~2 倍以上。
@palfortime sql 慢导致 nosql 啊缓存大量涌现。缓存分布式各种的兼容方案,要是 sql 不慢了,就不用去折腾构架了,储存只要每隔几分钟增减量快照 dump 到外部储存就可以了,普通企业上百 g 显存用完很难~~~业务直接写成 sql,完全跑在运算卡里~~~cpu 内存主要处理 http 之类的请求~~~这将是未来主流构架。
mtrec
2019-11-15 00:09:42 +08:00
@areless gpu 可以提升性能不假 但 io 还是瓶颈 几分钟 dump 一次 数据丢失了怎么办
optional
2019-11-15 00:32:23 +08:00
@areless nosql 的优点是分布式,不但性能可以类似于线性增长,而且可以多写。
des
2019-11-15 00:52:23 +08:00
@palfortime
同问,数据库瓶颈不是在存储吗?
xupefei
2019-11-15 05:28:37 +08:00
@areless GPU 有没有用估计要看运行什么查询。GPU 优势在并行,但是并行写肯定要牺牲 ACID。在只读不写的 data lake 场景下 GPU 加速应该会更快,但一旦写数据,GPU 估计性能雪崩。
PCI 总线传输数据没 CPU 到内存快吧?
xupefei
2019-11-15 05:29:48 +08:00
@areless 另外,分布式不只是因为 SQL 慢才搞的,HA 也是非常重要的原因。
palfortime
2019-11-15 07:21:15 +08:00
@areless 先不说你的显 nei 存数据库性能有多厉害,楼主发的 tbase 怎么也不像是解决 100gb 级别数据的问题。用买 12 显卡的服务器的钱来买普通服务器,装个单机的 MySQL 或者 PostgreSQL,怎样也能解决 100gb 级别的数据吧。
areless
2019-11-15 07:57:56 +08:00
@xupefei 有内存一半速度的,pci-e 挺快的,以后会更快~而且越来越灵活,你想想一下 usb 的灵活性,插张卡速度就升级了。甚至能实现热拔插。写不慢的,因为固态硬盘走的 pci-e 才跑 1gb 每秒,但是显卡是可以跑满 32gb 的。比普通固态硬盘快 16 倍左右。pcie 通道只比普通内存慢一半,而且显卡读是处理好的数据,相当于内存型 nosql 的速度却能快速执行各种 sql。PG-Strom 是 PostgreSQL 的 gpu 辅助~~~可以试试
crclz
2019-11-15 08:24:40 +08:00
@areless 你还是没搞清楚何时使用 mongo 这类的 nosql,何时要使用传统的 sql。基于脆弱的知识,一切推论都是白搭(有点像民科)

sql 属于万精油型:由于其粒度小,所以干小规模的事情,都不会很差。
mongo 因为其数据粒度大,所以适合分布式。并且,由于现在的大部分业务场景中,数据的粒度都很大,所以即使单机,mongo 也有速度优势。

何谓粒度大? sql 的粒度很小,要获取一个业务操作所需要的数据,需要到很多不同的地方取数据。磁盘随机 IO 负担重,甚至一次操事务会涉及好几台机器,甚至是分布在不同地域的机器。mongo 则相反,在设计文档结构的时候可以挑选适合自己业务的数据粒度,可以将高频使用的东西聚合在一起,这样大多数事务只会涉及到一个文档。

内存再快,遇到网络延迟,尤其是 sql 需要从几个不同的服务器上面取数据、加锁、判断每份数据的改变是否传播到了特定数量的节点,响应时间和吞吐量都很差。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619632

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX