VoltDB受到全球电信软件解决方案提供商的信赖,后者将其作为首选内存数据库来驱动他们部署在全球100多家运营商处的任务关键型应用。VoltDB受到青睐的原因在于其性能和功能不仅能够解决当前挑战,而且还能支持业内各种系统的快速发展。
我们的下述基准测试展示了VoltDB的性能如何满足或超越电信系统的要求,展示了 VoltDB具备的驱动诸如5G 之类的行业革命所需要的高性能、低延迟和线性扩展。
在这个基准测试中,我们在云中测试了VoltDB v8.3,然后观察到了可以随服务器数量线性扩展的性能以及超过300万次运算/秒的速度,并且自始至终只有个位数的延迟。
1.VoltDB和5G发展5G的出现给电信软件解决方案提供商带来了一些重要挑战。除了新的硬件标准,这种网络进化也需要OSS和BSS的支持IT功能发生转变。通过新服务创建创造额外收入的机会要求OSS和BSS功能具有灵活性和可扩展性, 以便在不断增加的负载下实现新的用例。
这种对系统的要求提升了支持数据库的重要性,其功能不再是简单地存储数据,而是充当一个活跃的实时决策系统。
简而言之,VoltDB是一个电信级数据库,它完全满足主动实时决策系统的要求,例如支持 5G 可能所需要的系统。VoltDB是一个内存关系数据库,具有极其重要和毫不折衷的可扩展性、可编程性和一致性。基于VoltDB构建的应用,无论是在电信、金融还是在零售领域,均具有水平可扩展性,经得起复杂性演变的检验,并且在一致性和正常运行时间方面十分可靠。
理论上,解决方案可由多个用于流、集群管理、数据库存储和内存缓存的开源工具来拼凑,但实际上,这些解决方案达不到要求。它们通常会增加系统间的延迟,在大量服务器上管理多个软件堆栈时的运营成本很高,并且在检测和管理一致性和正确性时会产生客户端编程负担。
VoltDB不仅是高性能数据库,它还提供驱动任务关键型实时电信应用所需的核心架构元素:
严格符合ACID要求
物化视图、预存程序和用户定义的函数
内在高可用性、灾难恢复和多站点跨数据中心复制
云/容器准备就绪
导入/导出流
当涉及到嵌入正确的数据库来驱动5G应用时,没有任何折衷空间。拥有成熟的企业级数据库(不只是特性和功能,也包括全天候支持和娴熟的专业服务)对于5G的成功至关重要。
02 基 准 测 试 2.1 在线计费系统在线计费功能是了解5G在系统层面带来的挑战的理想示例。对于不断增加的设备多样性,解决方案不仅必须应对来自数十亿台新连接的设备的连接负载,而且还必须应对执行不同策略的复杂性。
因此,5G网络中的在线计费必须能够随负载和功能复杂性扩展,同时不在一致性或性能方面做出妥协。
2.2 为什么我们需要ACID ?这些应用的系统架构采用不同的方法来处理这些挑战的影响。大多数应用使用键值存储来获得他们所谓的无限可扩展性的好处,但是这些应用被迫使用自定义机制来实现事务,从而产生一个复杂的系统,这种系统无法兑现关于简单性和可扩展性的最初承诺。
即使最快的键值存储也需要额外的客户端-服务器通信及定制封锁和一致性检查,所有这些都将增加延迟和网络负担。
另一方面,使用传统数据库进行扩展的问题众所周知。我们认为VoltDB 在当今的数据库市场中占据一个独特的位置,它不仅可以解决可扩展性和复杂性的挑战,同时能够保证最高一致性的、严格序列化的ACID事务。
2.3 实现细节我们测试了由Google Cloud Platform提供的3、9、18 和27节点集群构建的VoltDB 数据库实例,工作负载模拟了一个简化的在线计费应用,预载数据之后,基准测试应用运行10分钟。
我们收集了运行期间每秒事务数(TPS) 和第99百分位延迟的性能统计数据(每个VoltDB 事务是一个单一的应用”运算“,并且术语是可交换的)。来自这些统计信息的图表数据证明了VoltDB具有线性可扩展性来应对不断增加的工作负载,同时能够维持可预测的低延迟。
2.4 应用该应用主要由一个Java客户端和一个VoltDB数据库组成。实现每个运算的处理逻辑的预存程序同时使用Java 和 SQL 进行编码以在数据库上运行。
基准测试应用管理用户的余额,同时允许他们购买新服务和添加其他的限额, 例如分钟、数据、消息等。客户端依赖数据库来运行具有多个SQL 语句的复杂事务和能够完全保证 ACID特性的条件逻辑。
2.4.1 架构
作为一个关系数据库,VoltDB 中的数据由以下所示的表组成。每个表要么是分区的,其中数据行在不同位置间分布 (sites_per_node * node_count),要么是复制的,其中每个节点拥有该数据表的完整副本。不常更新的表,例如产品表,是保存为复制表的理想示例。