近日,中国互联网巨头腾讯公司宣布开发了一款名为X-Stor的NoSQL数据库,该公司认为这款数据库能够比其他尝试更优雅地处理多种数据模型。腾讯利用X-Stor整合了其数据库舰队,并提高了资源利用率。
X-Stor的存在最近在《超大型数据库基金会论文集》(Proceedings of the Very Large Data Base Endowment) 上发表的一篇论文中被披露,该期刊是一个非营利组织的期刊,旨在促进和交流有关数据库和相关领域的学术工作。
论文指出,NoSQL数据库通常是为了处理某些数据模型而构建的。腾讯承认,为了支持其产品舰队——包括社交网络、视频流服务、在线游戏和公共云——共同服务于超过十亿的活跃用户,它运行了多个NoSQL数据库实例。
这篇名为“X-Stor: A Cloud-native NoSQL Database Service with Multi-model Support”的论文透露,腾讯使用了图数据库来存储社交网络中的用户关系信息,宽列存储来保存用户档案,文档系列数据库来支持其广告运营,以及时间序列数据库来记录用户行为数据。
然而,这被证明并不理想,因为腾讯发现在现有系统中支持新数据模型很困难——有时需要从头开始开发一个新的NoSQL系统。这样做意味着重建已经在其他地方找到的功能——这是浪费的重叠。
像任何超大规模计算公司一样,腾讯讨厌资源利用不足。因此,这家网络巨头得知“大规模部署多个异构数据库会导致不同NoSQL数据库的系统资源隔离,这不仅使维护变得复杂,还阻碍了集群之间的高效资源共享”时,并不高兴。
X-Stor解决了这个问题——通过“在X-Stor系统内扩展相应的存储引擎和数据访问接口”来使用不同的数据模型。独立的存储引擎可以完全支持它们各自的数据模型,性能与单一模型的对应物相当。
论文声称,这是一种比竞争对手NoSQL数据库MongoDB、Redis和ArangoDB使用的安排更优雅的安排,每种数据库都有自己处理多个数据模型的方式。
X-Stor是无服务器的,运行为由腾讯自己的Kubernetes Engine编排的多个微服务。最初,腾讯在装有快速SSD的主机上运行数据库,以满足不同数据模型的需求,例如I/O密集型的键值和时间序列模型。然而,这样做导致了一些装有SSD的服务器的内存使用不足。X-Stor可以识别哪些节点具有与工作负载和它使用的数据处理模型相匹配的所需资源,从而最大限度地使用每个节点。
腾讯云还推出了针对中国芯片优化的CentOS变体,以及与微软在中国的应用商店链接。此外,腾讯云在设计上进行了重新思考,以解决循环依赖问题,这些问题在紧急API修复中减缓了反应速度。
腾讯的论文提供了一些密集的数学解释,说明了工作负载如何竞争和分配资源——如果这是你的兴趣所在,可以享受它的方程式。
总之,这家中国巨头为自己构建了一个数据库,它声称可以处理任何数据模型——甚至是全新的数据模型——并且已经证明可以扩展到存储12PB的在线操作数据,每天处理7000亿请求,峰值达到每秒3000万请求,同时处理超过100,000个具有多种数据模型的表。
遗憾的是,看来这个数据库不是开源的——所以我们其他人无法试用它。
中国的超大规模计算公司正在做一些有趣的事情。我们最近报道了阿里云的硬件故障检测代码、模块化数据中心架构,以及华为云在AI模型训练中使用的服务器上安装了九个NIC的先进以太网方案。腾讯发现了一种方法,可以将WAN延迟减半。
原文作者:iconSimon Sharwood
2024年10月11日
原文链接:https://www.theregister.com/2024/10/11/tencent_x_store_multi_model_nosql/