梧桐数据库采用了存算分离架构,它为什么要选择这种架构?我们在为企业选择数据库时,要从哪些方面考虑存储和计算的架构?

数据库中的存储和计算
数据库中的存储和计算是数据库管理系统的两个核心功能,它们共同支持着数据的存储、检索、处理和分析。
存储

在数据库中,存储是指将数据以及数据之间的联系以一定的结构保存在计算机系统中。数据库是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。具体来说,数据库中的存储包括以下几个方面:
- 数据:数据是数据库的核心内容,通常以表格形式存储。每张表包含若干行和列,每行代表一条记录,每列代表一个属性。例如,用户信息表可能包含用户的姓名、年龄、邮箱等属性。
- 元数据:元数据是描述数据的数据,包括数据类型、表结构、约束等。元数据是数据库管理系统理解和操作数据的基础。例如,元数据会描述某个列的数据类型是整型还是字符串,以及该列是否为主键等。
- 事务日志:事务日志记录数据库操作的历史,用于数据恢复和审计。当数据库发生故障或需要恢复到某个特定状态时,事务日志可以提供必要的信息。
- 索引:索引用于加速数据检索。通过为数据库表创建索引,可以显著提高查询效率,降低查询时间复杂度。索引是数据库性能和可靠性的重要保障。
就像一个仓库一样,数据是货品,元数据是货品的摆放结构、事务日志是进货出货记录、索引是货品的分类。
计算

数据库中的计算则是指对数据进行的各种处理和分析操作。这些操作包括但不限于以下几个方面:
- 查询:查询是数据库计算功能的核心。用户可以通过 SQL 语句从数据库中检索所需的数据。查询功能不仅限于简单的数据检索,还包括复杂的条件过滤、字段选择和数据转换等。
- 聚合:聚合功能用于对数据进行汇总和统计。常见的聚合操作包括求和(SUM)、平均值(AVG)、计数(COUNT)、最大值(MAX)和最小值(MIN)等。这些操作可以帮助用户快速计算出某一列的总和、平均值等统计信息。
- 排序:排序功能用于将查询结果按照指定的顺序排列。排序可以是升序或降序,用户可以根据需要指定排序的列。排序功能有助于数据的展示和分析。
- 分组:分组功能用于将查询结果按照某一列或多列进行分组。分组后可以对每个组进行聚合计算,从而得到每个组的统计信息。
- 连接:连接功能用于将多个表的数据关联在一起,从而实现复杂的数据查询。常见的连接方式包括内连接、外连接和交叉连接等。
- 子查询:子查询是指在查询语句中嵌套另一个查询语句。子查询可以用来提供过滤条件、计算值或生成结果集。
- 窗口函数:窗口函数用于对查询结果集的每一行进行计算,并且可以访问该行的前后数据。窗口函数在数据分析中非常有用,如排名、计算移动平均等。
- 数学计算:数据库还提供了丰富的数学计算功能,包括基本的算术运算(加、减、乘、除)和数学函数(如平方根、对数、三角函数)等。这些功能可以帮助用户进行数据处理和分析。
数据库中的存储和计算是相互依存、相互支持的两个核心功能。存储为计算提供了数据基础,而计算则通过对存储的数据进行处理和分析,实现了数据的价值。
存算分离与存算一体
存算分离
想象一下你是一位厨师,在一个大型餐厅的厨房里工作。这个厨房被划分为不同的区域:
- 食材存储区(冰箱、货架等)
- 烹饪区(炉灶、烤箱等)
这就是一个典型的存算分离的场景。
- 食材存储区(存储):就像数据库中的存储部分,它负责存放所有原材料(数据)。这些原材料被精心分类和存放在适当的位置,以便需要时能够快速找到。
- 烹饪区(计算):类似于数据库中的计算部分,这里是食材被加工成美味佳肴(处理数据、执行查询等)的地方。厨师(处理器)需要走到食材存储区选取所需的原料,然后回到烹饪区进行烹饪。

在存算分离中,数据的存储和处理是分离的,它们各自位于不同的物理或逻辑位置。这种架构提高了系统的灵活性和可扩展性,因为你可以根据需要增加更多的存储空间或计算资源,而不会影响彼此。

存算一体
现在,让我们想象一下另一个场景:你正在使用一个高科技的智能烤面包机。这个烤面包机内置了一个自动配料系统,可以直接从内部的储物仓中取出面粉、酵母等原料,然后在机器内部进行混合、发酵和烘烤,最终完成一个完整的面包制作过程。
- 智能烤面包机(存算一体):这就像是存算一体的数据库系统。在这个系统中,存储(内部储物仓)和计算(混合、发酵、烘烤等功能)被紧密地集成在一起。当你按下“开始”按钮时,整个制作流程在机器内部自动完成,无需将数据(原料)移出到外部进行计算(处理)。

存算一体的优势在于减少了数据在存储和计算单元之间的传输时间,从而提高了处理速度和效率。它类似于将厨房的食材存储区和烹饪区合并成一个高效的制作中心,使整个过程更加流畅和快速。然而,这种架构也可能带来一些挑战,如设计和实现的复杂性增加,以及可能的资源利用率不平衡等问题。

存算分离,从何兴起?
数据库中的存算分离并非由单一的个人或团队“发明”,而是一个随着数据库技术和云计算发展而逐渐形成的趋势和技术架构。存算分离的概念在数据库领域中的兴起,是多种技术因素和业务需求共同推动的结果。
-
数据库技术的发展:从关系数据库模型的提出,到大型商业数据库如 IBM DB2 和 Oracle 的垄断,再到开源数据库如 MySQL 和 PostgreSQL 的兴起,数据库技术经历了从集中到分布、从单一到多元的演变。这一过程中,存算分离作为一种优化资源利用、提高系统灵活性和可靠性的技术架构,逐渐受到重视。
-
云计算的推动:随着公有云的蓬勃发展,云原生数据库逐渐成为主流。这些数据库在设计之初就考虑到了存算分离的需求,以更好地适应云环境的弹性扩展和高可用性要求。
如何选择存算架构?


存算一体适用情况
- 高性能计算需求:
- 当应用场景对计算性能有极高要求,且数据处理量巨大时,存算一体能够提供更高的计算效率和更低的延迟。例如,在人工智能、深度学习、大数据实时分析等领域,存算一体架构能够显著加速数据处理和模型训练过程。
- 低延迟响应:
- 对于需要低延迟响应的应用,如实时数据分析、金融交易系统等,存算一体可以减少数据在存储和计算单元之间的传输时间,从而提高系统的响应速度。
- 能效优化:
- 存算一体架构通过减少数据搬移的功耗,可以在一定程度上优化系统的能效比。这对于能源敏感型应用或需要长时间运行的系统尤为重要。
- 特定领域应用:
- 在某些特定领域,如物联网边缘计算、嵌入式系统等,由于资源受限,存算一体架构能够更有效地利用有限的计算和存储资源,满足应用需求。

存算分离适用情况
- 资源灵活扩展:
- 当系统需要根据业务变化灵活扩展计算和存储资源时,存算分离架构能够提供更高的灵活性和可扩展性。通过独立扩展计算节点和存储节点,可以根据实际需求动态调整资源分配。
- 高可靠性和数据安全性:
- 存算分离将计算和存储功能分离,可以在一定程度上提高系统的可靠性和数据安全性。即使计算节点发生故障,存储节点上的数据仍然可以保持完整和可访问。
- 成本优化:
- 在某些情况下,存算分离架构可以通过优化资源配置和降低硬件成本来实现成本优化。例如,在数据存储需求远大于计算需求的应用场景中,可以通过增加存储节点来降低成本,而不必同时增加计算节点。
- 大数据分析和处理:
- 对于大规模数据分析和处理任务,存算分离架构可以提供更强大的计算能力和数据处理速度。通过将计算任务分配到专门的计算节点上,可以加速数据处理过程,提高分析效率。

选择建议
梧桐数据库在存算分离上的实践
在当今大数据时代,数据的海量增长与业务需求的快速变化对数据库系统提出了前所未有的挑战。中国移动的数据体量首当其冲,如何高效、灵活地管理这些数据,同时确保系统的可扩展性、成本效益与业务敏捷性,成为了中国移动亟需解决的问题。
梧桐数据库(WuTongDB),凭借其独特的存算分离架构,正逐步成为解决这一难题的佼佼者。
存算分离:架构创新的基石
梧桐数据库采用存算分离的架构,彻底打破了传统数据库存算一体的束缚,实现了存储层与计算层的完全解耦。存储层专注于数据的持久化存储,而计算层则聚焦于数据处理能力的弹性扩展。
这种架构不仅简化了系统的复杂度,还极大地提升了系统的灵活性和可扩展性。企业可以根据业务需求独立部署和扩展存储或计算资源,无需担心两者之间的耦合问题,从而实现了资源的优化配置。
VSeg 技术:弹性计算的驱动力

在计算节点层面,梧桐数据库引入了先进的 VSeg(Virtual Segment)技术,该技术通过虚拟化技术将计算资源划分为多个独立的逻辑单元,每个单元都能独立运行并处理数据。这种设计不仅实现了计算资源的弹性扩展,还通过进程逻辑隔离保障了数据处理的安全性和稳定性。即使在高并发场景下,VSeg 技术也能确保各计算节点之间的互不干扰,有效提升了系统的整体性能和稳定性。
实战案例:从 Vertica 与 Oracle 到 WuTongDB 的华丽转身
在某个企业的现网大数据业务的快速发展时,遇到了诸多挑战。其原有的数据存储方案主要依赖于 Vertica 和 Oracle 等 MPP 数据库产品,这些产品虽然性能强劲,但存算一体的设计使得扩容变得异常困难,且多个异构数仓的并存导致了大量数据冗余和共享困难。随着业务规模的扩大,这些问题愈发凸显,严重影响了业务的敏捷开发能力和系统运行效率。

为了打破这一困境,该企业决定对数据库架构进行升级,选择将业务迁移至梧桐数据库。通过存算分离架构的引入,梧桐数据库成功解决了原系统存在的开发复杂、数据共享困难等问题。计算资源的弹性扩展使得企业能够轻松应对业务高峰期的数据处理需求,而存储层的独立部署则进一步优化了数据存储的效率和成本。

目前,该企业已部署了 178 个梧桐数据库节点,系统性能实现了显著提升。在保持高效数据处理能力的同时,成本也得到了有效控制。这一转变不仅为企业赢得了宝贵的时间和资源,更为其业务的持续快速发展奠定了坚实的基础。
梧桐数据库以其创新的存算分离架构和先进的 VSeg 技术,在大数据领域展现出了强大的竞争力和广阔的应用前景。通过不断的技术创新和实践探索,梧桐数据库正逐步成为企业数字化转型的重要支撑力量,助力企业在数据洪流中乘风破浪,实现业务的持续创新和增长。





