首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  数据库

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

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

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

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

    内存再快,遇到网络延迟,尤其是 sql 需要从几个不同的服务器上面取数据、加锁、判断每份数据的改变是否传播到了特定数量的节点,响应时间和吞吐量都很差。
        21
    annielong   30 天前
    各有优劣,看业务场景,没必要上纲上线非要分出个一二三,
        22
    stabc   30 天前
    @areless 别乱说误导人,SQL 数据库 reliable write 速度都在硬盘。延迟 commit 无法应用到支付领域的。
        23
    jackdu   30 天前
    TBase 初篇文档:主要讲解安装部署相关内容,有兴趣的小伙伴们可以行动起来了链接 Base64:aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvM1JoRmIzTld1MGk5LXVub3FnckFDdw==
        24
    jackdu   30 天前
    TBase 定位:OLTP + 轻量级(OLAP),如果是需要专业 OLAP 数仓,需要使用列存储 + MPP
        25
    jackdu   30 天前
    有对该数据库感兴趣的或者有疑问的和可留下微信我添加你们进腾讯 tbase 产品开发组成员建立的 Tbase 官方技术群进行交流,里面汇集各大厂开发人员。
        26
    joyeu   30 天前
    赞啊!
        27
    ty4z2008   30 天前
    开源!=代码公开
    还是有日后的维护、社群。开源之后两个月,代码还停留在第一次同步。这个和发一个源码压缩包没有什么区别。
    之前的 phxsql 就是一个例子
        28
    Mithril   30 天前
    阿里的 OceanBase 当年一样吵吵着开源,然后 Github 上挂尸体挂了好几年,现在连尸体都没了。
    就是不知道当年被骗上车的公司现在怎么样了。
        29
    wyw223   30 天前
    能不能存储空间数据啊,postgresql 有 postgis,
        30
    datafeng   30 天前   ♥ 1
    发现这里很喜欢 base64 转换一下?
    要是说邮箱啥的我理解,但一个公开的超链接为什么也要转换一下。。
        31
    sujin190   30 天前
    @areless #19 数据库瓶颈难道不是在 acid 一致性要求下,很容易受单核极限性能影响,核多用处不大,再者就是一致性落盘 io 性能影响,以现在 cpu 性能来说,单机并行化计算性能不算是一个核心限制吧,而就现实来说,对并行化计算性能要求又要求的几乎都是超大数据集,单机 io 和单机内存缓存本身就是极大限制,aci 一致性要求弱,单机并行计算性能要求高但是数据量不大的场景并不多吧,对于大多数通用场景来说,事务、高一致性、高稳定性、可拓展迁移才是性能问题所在吧,而这些都不是显卡并行计算强能有更大用处的
        32
    datafeng   30 天前
    @ty4z2008 开源不公开代码 ??
    这是什么时候新出的理论么。。
        33
    jackdu   30 天前
    @datafeng 链接发不出来,这个账号没满 90 天,不让发只能换种方式发,抱歉。
        34
    markgor   30 天前
    @sujin190 其實 OLAP 型的跑 GPU 不錯,但 OLTP 的跑 gpu,現在就是存在你說的這些問題,可就像 areless 說的,GPU 是未來方向,而不是現在就能進行替換.......

    不過他說的“前端通过加密直接传 sql,后端提供 sql 本身,多么烂的程序都能单机跑上亿日 pv。”我就不是怎麼讚同,畢竟前端加密本來就等於沒加密,而且重點是這一領域只有更快沒有足夠快.
        35
    jackdu   29 天前
    Tbase 复用了 PGXL 的框架,新建可扩展健壮的分布式事务,增加三权分立安全,优化高性能执行器,新增在线扩容,分区表。。。。
        36
    markgor   29 天前
    @ty4z2008
    @jackdu
    搭建:
    https://mp.weixin.qq.com/s/3RhFb3NWu0i9-unoqgrACw

    倉庫:
    https://github.com/Tencent/TBase

    幫你發出來了,話說你們註冊那麼多賬號幹嘛....
        37
    jackdu   29 天前
    @markgor 赞啊
        38
    leeg810312   29 天前 via Android
    使用国内大公司的开源要谨慎,放了一个版本,然后很久不更新,都是 KPI,只是做个姿态
        39
    sujin190   29 天前
    @markgor #34 我跟你认为的恰恰相反,任何期望用单一技术作为银弹都是作死,信息技术进步带来企业合作改变,未来无论企业还是信息系统必然向着分离式大型联合体发展,小型高性能单体系统既不利于大型联合体协作,也无法支撑复杂问题解决,单机性能或许不高,但是耦合度低的超大型分布式系统才是未来更好的方向,所以 GPU 作为高性能计算单元,作为支撑单元,在有限可控场景下提供高性能并行计算支撑确实不错,未来使用必然越来越广泛,但是以 GPU 为基础设计单体或有限分布式数据库确实不是一个好选择
        40
    Mithril   29 天前
    @leeg810312 有几个贡献给 Apache 的还可以,其他的就算了。
        41
    hkitdog   29 天前 via iPhone
    @leeg810312 源码不难看,自己从头到尾看几篇就搞懂原理和结构了,个人开发者还是可以自己维护的
        42
    joyeu   29 天前
    请问是不是基于 PGXL ( Postgres-XL ) 开发的?
        43
    jackdu   29 天前
    感兴趣或者有疑问可以留下微信我拉你们进入官方技术群,在群里有人统一答疑,我也是被别人拉进去的
        44
    jackdu   29 天前
    @joyeu 复用了 PGXL 的框架
        45
    joyeu   29 天前
    之前关注过 PGXL,当时的版本 Postgres-XL 9.5 R1.3 基于 PG 9.5 的,现在看到有最近版是 Postgres-XL 10R1.1,应该是 PG10 吧。有些滞后,更不上 PG 的节奏啊😄
        46
    FS1P7dJz   29 天前
    @datafeng 他的意思是,开源不等于仅仅公开原代码
    很多项目"开源"
    无文档,无维护
        47
    Ryan7sz   29 天前
    @jackdu 我感兴趣,麻烦拉我进群 scott_tiger, 谢谢!
        48
    BIAOXYZ   29 天前
    github 开源第一天就 star 了,毕竟之前也是做 PG 的。看到 cn dn gtm 就是 pgxc 扑面而来的感觉啊~希望这个项目能好好维护开源,不要像 oceanbase 那样的 KPI 开源。。。微信号( Ymlhb3h5eg==),麻烦拉我入群了,谢谢~
        49
    lolizeppelin   29 天前
    跟不上 pg 自身更新节奏的都得死 2333

    因为都会被 pg 干死....
        50
    tairan2006   29 天前
    @areless ???请不要自己脑补好么,单节点瓶颈不通过分布式数据库解决,你还想怎么解决…ACID 不要了么
        51
    jhdxr   29 天前
    去看了 oceanbase 的仓库,还真是就剩下一个 readme 了。关键里边说自己不再开源不再维护的声明加了又删( https://github.com/alibaba/oceanbase/commit/61354c60856274760625fc5ae4214f7fe3ba32b9

    之前有人说阿里开源只是为了 KPI,我还说不是的,还是有一些东西的。现在看,真的就是呵呵,要么干脆弃坑,要么干脆丢给 apache 基金会去养着。自己名声<del>赚</del>骗到了转脸就把东西丢了。
    -----
    可能会有人要说阿里内部变化太快之类的(很可能原有团队都没了之类的),但从外面看阿里这就是又要当婊子又要立牌坊,恶心至极。
        52
    areless   29 天前 via Android
    @tairan2006 我不是说分布式不好,多 gpu 数据库同样是单机分布式构架。我只是不支持傻傻的用百兆网线把十几台服务器串起来,而这就是目前分布式的主流做法。你知道傻在哪里吗?百兆网线~~~高 io 数据库~~~串起来,你以为是烤串啊~美味加倍。
        53
    ivechan   29 天前
    华为的高斯数据库也是基于 pg 的,有没有对比一下?
        54
    endintro   29 天前
    @jackdu 所以和 greenplum 的差别在于更轻量级的 OLAP ?
        55
    timbotetsu   29 天前
    这贴让我意识到现在什么神经病都有
        56
    ty4z2008   29 天前
    @datafeng 我的意思是开源不只是单单把源码发布出来,还有开源社区。新成员的加入,后续的代码更新

    别没看明白就开始喷喷喷,好好讨论不好么?
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1888 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 02:16 · PVG 10:16 · LAX 18:16 · JFK 21:16
    ♥ Do have faith in what you're doing.