17611538698
webmaster@21cto.com

腾讯打造一个 NoSQL 数据库来治理所有数据模型

数据库 0 99 2024-10-13 11:35:41

图片

导读:腾讯使用“X-Stor”控制数据库蔓延并节省云资源。

中国互联网与科技巨头腾讯独家透露,它创建了一个 NoSQL 数据库,它认为此数据库可以比其他尝试更优雅地处理多种数据模型,并已利用它来整合其数据库集群并提高资源利用率。

这个名为 X-Stor 的数据库的存在最近在《超大型数据库基金会论文集》上发表的一篇论文中被披露,该论文集是一家非盈利组织的期刊,旨在促进和交流数据库及相关领域的学术成果。

论文地址:https://www.vldb.org/pvldb/vol17/p4025-lei.pdf

这篇论文开篇指出,NoSQL 数据库通常是为了处理某些数据模型而构建的。腾讯承认,它运行了其中的几个数据库来支持其一系列产品——社交网络、视频流服务、在线游戏和公共云——这些产品总共服务于超过 10 亿活跃用户。

这篇题为《X-Stor:一种支持多模型的云原生 NoSQL 数据库服务》的论文这样描述:

腾讯使用图形数据库来存储其社交网络的用户关系信息,使用宽列存储来保存用户资料,使用文档系列数据库来支持其广告平台运营,并使用时间序列数据库来记录用户行为数据。

事实证明,这并不是理想的选择。腾讯发现很难在现有系统中支持新的数据模型,因此有时需要从头开发新的 NoSQL 系统。这样做意味着重建其他地方已有的功能,这是一种浪费与重叠。

与其他超大规模企业一样,腾讯也不喜欢资源利用不足。

因此,当得知“大规模部署多个异构数据库会导致不同 NoSQL 数据库的系统资源隔离,这不仅使维护复杂化,还阻碍了集群间有效的资源共享”时,这家网络巨头听起来并不咋太高兴。

现在,X-Stor 解决了这个问题——通过“扩展 X-Stor 系统内相应的存储引擎和数据访问接口”,允许使用不同的数据模型。独立的存储引擎“可以完全支持各自的数据模型,其性能可与单一模型的存储引擎相媲美。”

该论文声称,这是一种比竞争对手 NoSQL 数据库:MongoDB、Redis 和 ArangoDB 所采用的安排更为优雅,每个数据库都有自己的方式来适应多种数据模型。

X-Stor 基于无服务器,由腾讯自己的 Kubernetes Engine 编排的多个微服务形式运行。

腾讯最开始在配备快速 SSD 的主机上运行数据库,以满足不同数据模型的需求,例如 I/O 密集型键值和时间序列模型。但是,这样做会导致一些配备 SSD 的服务器内存利用率不足。X-Stor 可以识别哪些节点具有匹配工作负载和其采用的数据模型所需的资源,从而最大限度地利用每个节点。

腾讯的论文上面提供了一些密集的数学运算来解释工作负载如何竞争和分配资源。如果各位感兴趣的话,请享受它的计算方程式。

最重要的是,这家中国巨头自己建立了一个数据库,声称它可以处理任何数据模型,甚至是全新的数据模型,而且已经证明。该数据库可以扩展到存储 12PB 的在线运营数据,每天处理 7000 亿个请求,峰值为每秒 3000 万个请求,同时处理具有多种数据模型的 100,000 多个表。

遗憾的是,目前该数据库似乎不是开源的,所以其他开发人员暂时无法试用它。

中国的大规模互联网企业正在做一些有趣的东西。这样的事情越多越好!~

编辑:聆听世界的鱼

评论