Skip to content
搜索以了解InterSystems产品和解决方案,职业机会等。

InterSystems IRIS:驾驭海量扩展

可扩展性

programmer at a data center

下载《技术指南》

面对全球数据量呈指数级增长的态势,软件架构师必须对其解决方案的可扩展性给予高度重视。 他们设计的系统必须具备在需要时支撑成千上万并发用户的能力。 尽管这极具挑战,但在当今时代,为大规模可扩展性而设计,对于绝大多数组织而言已不再是选择题,而是必答题。 无论是支持实时分析、机器学习、大型语言模型、检索增强生成(RAG)还是网络应用,数据系统都必须处理不断增长的数据量、速度和复杂性。

软件架构师可以通过多种方式设计可扩展系统。 他们可以通过使用拥有数十个内核的大型机器进行纵向扩展。 他们可以使用数据分布(复制)技术来横向扩展,以满足日益增长的用户需求。 他们还可以通过对数据进行分区来横向扩展数据量。 在实践中,软件架构师会同时采用上述几种技术,在硬件成本、代码复杂性和部署难易程度之间进行权衡,以满足其特定需求。

本指南聚焦海量用户与数据体量下的垂直及水平扩展机制,统筹考量性能、成本与架构因素。 指南详述了数据与用户流量的多种分布式部署及分片策略,并结合具体场景剖析各类方案的适用边界。 此外,本指南还将阐释全球创新数据技术领导者 InterSystems 及其旗舰产品 InterSystems IRIS®,如何通过弹性伸缩能力,大幅简化分布式系统的配置、部署与运维全流程。

垂直扩展(Vertical Scaling)

最为直接的扩展方式便是“垂直扩展”——即“纵向扩容”,通过换用配备更多 CPU 内核与大内存的高配机型来实现。 目前,多数现代数据平台均支持关键应用(如 SQL)的并行处理,并内置了针对多核环境优化的 CPU 利用率技术。 垂直扩展能够在维持既有计算架构不变的前提下实现基础设施的升级, 兼具部署简易、低延迟(单机部署,网络开销小)以及与遗留系统高度兼容等优势。

然而,单纯依靠垂直扩展终将面临难以逾越的瓶颈。 首先,即便是顶配的巨型机,也未必能扛住现代应用所产生的海量数据与工作负载,且硬件升级终有上限。 此外,“巨无霸”级硬件的成本往往令人望而却步。 因此,许多机构发现,采购四台 16 核服务器远比购置一台 64 核的单体机器更具性价比。

单机架构的容量规划极具挑战,尤其是对于那些负载波动剧烈的应用场景而言。 若按峰值负载来配置资源,往往会导致闲时资源大量闲置,造成浪费; 反之,若核数过少,又会在高负载时段令性能陷入瘫痪。 此外,提升单机架构的容量意味着必须购置全新的整机设备, 根本无法实现“动态扩容”。 此外,对整体系统而言,单机架构还存在单点故障的风险。

简而言之,尽管充分释放底层硬件潜能至关重要,但仅靠垂直扩展,除应对相对静态的工作负载外,实难满足多样化的业务需求。

programmer at monitor

水平扩展(Horizontal Scaling)

鉴于上述种种原因,大多数追求海量可扩展性的组织都会选择部署网络化系统,通过将工作负载及/或数据量在多台服务器间进行分布式处理,从而实现“水平扩容”。 通常情况下,网络中的每台服务器均可采用高性价比的商用机型;当然,如有需要,亦可选用更高配置的服务器,以便同时兼顾垂直扩展的优势(详见下文“垂直-水平混合扩展[Hybrid Vertical-Horizontal Scaling]”)。

水平扩展在现代大数据应用中具备多项不可或缺的核心优势。 此类弹性系统能够随需动态伸缩,利用商用硬件及云资源经济高效地应对波动性需求。 此外,水平扩展还增强了系统的韧性:即便单个节点宕机,多节点系统亦不会全线崩溃。 作为云原生与分布式系统的基石,水平扩展是实现海量扩展与容错的关键所在。

尽管水平扩展是大数据的基石,但并非毫无挑战。 它要求精细化的编排、负载均衡以及数据分片策略。 尤其是在实时系统中,保障跨节点的数据一致性与规避网络延迟堪称巨大的工程难题。 此外,水平分布式架构受限于 CAP(一致性-可用性-分区容错性)定理, 权衡取舍在所难免,这就要求架构师审慎界定核心目标与次要目标。

软件架构师们都深知,世间并无完全相同的两种工作负载。 有些现代应用需承受数十万用户的并发访问,每秒产生海量的小型事务; 另一些则可能仅有寥寥数名用户,却要对 PB 级数据进行查询。 二者皆属高负荷场景,但对扩展策略的要求截然不同。 我们将针对这些差异化场景逐一剖析。

基于用户体量的水平扩展:缓存策略(Caching)

为在扩展的同时实现加速,数据库系统频繁利用缓存机制,针对高频访问数据增设高速临时层,从而避免对同一数据的反复库查。 为支持海量并发用户或事务、实现基于用户体量的水平扩展,InterSystems 推出了独有的企业级缓存协议(Enterprise Cache Protocol,ECP)。

在服务器网络中,其中一台将被配置为“数据服务器”以持久化存储数据, 其余则作为“应用服务器”。 每台应用服务器均运行 InterSystems IRIS 实例,并模拟本地数据库向应用程序呈现数据。 应用服务器本身不进行数据持久化, 而是专司缓存与 CPU 运算之职。

用户会话通常通过负载均衡器分发至各应用服务器,查询请求将优先由本地应用服务器缓存响应。 仅在必要时,应用服务器才会向数据服务器检索数据。 而 ECP 则会自动同步所有集群节点间的数据状态。

鉴于计算任务已由应用服务器承接,数据服务器便可专心致力于事务结果的持久化存储。 随着工作负载的波动,应用服务器可轻松实现集群的弹性伸缩。 例如,在零售场景中,您可能需要增配应用服务器以应对“黑色星期五”购物季的超高负载,并在假期结束后将其下线。 对于那些需处理海量事务、但单笔事务仅涉及极小部分数据集的应用场景,应用服务器的价值尤为凸显。

Figure 1: Database Workload Distribution with Enterprise Cache Protocol
Figure 1: Database Workload Distribution with Enterprise Cache Protocol
InterSystems IRIS 和 ECP

InterSystems IRIS 与 IRIS for Health 已将 ECP 深度融入其核心数据架构之中。 实践表明,采用 ECP 应用服务器架构的部署方案,已在多个行业成功支撑了成千上万的并发用户规模。

基于数据体量的水平扩展:数据分片(Sharding)

当查询(通常为分析型查询)必须访问海量数据时,为了高效支撑查询负载而需缓存的“工作数据集”可能会超出单机的内存容量。 应对此类超大数据集的一项强效技术便是“分片”(Sharding),即把大型数据库表物理分割并分布到多个服务器实例上。 应用程序依然访问被指定为主分片(Shard Master)实例上的单一逻辑表。 主分片会将接收到的查询拆解,并分发至各分片服务器;每一台分片服务器均持有表数据及关联索引的特定部分。 随后,各分片服务器并行处理本地分片查询,并将结果返回给主分片进行聚合。

Fig. 2 Sharding with intelligent inter-shard communication
Figure 2: Sharding with Intelligent Inter-Shard Communication

数据依据“分片键(shard key)”在各分片服务器间进行分区,该分片键可由系统自动管理,亦可由软件架构师基于选定的表字段进行定义。 通过审慎甄选分片键,可将常需关联查询的表进行“协同分片”(Co-sharding),从而确保通常需联合查询的行数据存储于同一分片服务器上。 这种“数据共置(co-location)”策略允许在各分片服务器本地执行表连接操作,进而最大化并行处理能力与性能。 随着数据量激增,可轻松增配分片节点。 分片过程对应用程序及终端用户完全透明。

并非所有表都需要分片。 例如,在分析型应用中,事实表(如零售场景中的订单表)通常体量巨大,需进行分片处理; 而维度表(如产品、销售网点等)体量较小,则无需分片。 未分片的表将持久化存储在主分片上。 若查询涉及分片表与非分片表的连接,或需合并两个不同分片的数据,InterSystems 技术会利用高效的基于 ECP 的机制,正确且高效地响应请求。 在此类场景下,系统仅会在分片间共享所需的行数据,而非像许多其他技术那样在网络中广播整张表。 InterSystems 技术通过分片机制,在不限制查询类型的前提下,显著提升了大数据查询工作流的效率与性能。

InterSystems 架构支持在查询分布式、分区数据集时执行复杂的多表连接——无需协同分片,亦无需复制数据或在网络中广播整表。

Architect and programmer at Data center

兼顾用户与数据体量的混合水平扩展(Hybrid Horizontal Scaling)

现代数据解决方案通常必须同时支持高并发事务处理(用户体量)与海量数据分析。 一个典型的例子是私人财富管理应用:它需要基于实时市场数据,即时生成汇总客户投资组合与风险敞口的仪表盘。

InterSystems 技术的独特之处在于其兼具分析查询与数据摄入事务的处理能力。 通过结合应用服务器与分片技术,该技术实现了 混合事务/分析处理(HTAP,亦称 Translytics)应用。 如图 2 所示,可在架构中增配应用服务器,以分担主分片的工作负载。 根据应用需求,工作负载与数据体量可实现彼此独立的弹性伸缩。

当应用场景对可扩展性提出极致要求时(例如,预测模型必须在持续摄入新记录并进行查询的同时,对大表中的每一条记录进行评分),每个独立的数据分片均可充当 ECP 模型中的数据服务器。 我们将分担数据分片工作负载的应用服务器称为“查询分片”(Query Shards)。 加之 InterSystems IRIS 集群为确保高可用性而提供的透明机制,这一切都为解决方案架构师提供了满足其方案独特可扩展性与可靠性要求所需的一切工具。

Figure 3: Sharding and Workload Distribution
Figure 3: Sharding and Workload Distribution

垂直-水平混合扩展(Hybrid Vertical-Horizontal Scaling)

许多现代系统均采用垂直与水平扩展相结合的混合模式。 例如,数据库可能运行于经过垂直扩容的强大节点之上,同时将查询分发至水平扩展的应用服务器集群。 混合模式兼具灵活性与韧性,可根据特定工作负载及业务需求量身定制。

架构的影响

有效的扩展离不开缜密的架构设计,二者相互影响、相互制约:

  • 数据分区策略,主要涉及分片与复制,有助于管理海量数据集(参见上文”基于数据体量的水平扩展:数据分片“);
  • 无状态与有状态服务的选择决定了扩展决策的方向, 其中无状态服务更易实现水平扩展;
  • 负载均衡将流量均匀分发至各节点,确保无一节点过载;
  • 租户策略决定了不同用户如何共享数据平台及其底层设施,同时保持各用户数据的逻辑隔离;
  • 一致性模型受限于 CAP 定理(一致性、可用性、分区容错性),指引着分布式系统中的权衡取舍。
Programmer at a monitor

应用场景与前沿趋势

可扩展数据平台对于 InterSystems 深耕并解决客户难题的行业而言,具有举足轻重的地位。 其中最为关键的便是医疗健康领域,InterSystems 在该领域大规模参与患者电子病历、医学影像及其他诊断数据的管理,以及实时监护等众多医疗信息化应用场景。

InterSystems 亦活跃于其他数据应用领域,包括金融(涵盖交易处理、欺诈检测及监管报送)以及供应链(涉及物流追踪、配送优化及库存管理)。

InterSystems 助力上述各行业构建数据解决方案,协助组织机构在规模化运营中达成其数据、性能与可靠性的战略目标。

随着新型数据应用与系统的不断涌现,可扩展数据平台的版图仍在持续演进:

  • 云原生架构,如 Kubernetes 和 Serverless 模型,简化了水平扩展的实施;
  • AI 驱动的动态扩缩容利用预测算法优化资源配置;
  • 边缘计算(Edge computing)可将处理能力下沉至数据源近端,有效降低延迟;
  • 数据网格(data mesh)和联合架构可促进分散的数据所有权和可扩展性。
  • 数据编织(data fabric)架构打破数据孤岛,消除碎片化难题。

InterSystems 赋能海量扩展

海量扩展已不再是可选项,而是现代数据应用的必由之路。 对于 混合事务/分析处理(HTAP)应用而言,这一点尤为关键——此类应用不仅需同时承载海量工作负载与数据体量,还可能面临大规模并发用户的访问压力。

垂直扩展以其简洁性与高性能,成为小型系统的理想之选;而水平扩展则提供了大规模应用所必需的弹性与韧性。 借助专用架构,企业可根据不同的需求组合与优先级,对系统运作进行精准定制。 通过洞悉各种扩展模式的优劣与局限,组织机构能够设计出既能满足当下需求、又能从容应对未来增长的现代化数据架构。

关于InterSystems IRIS

InterSystems IRIS 作为一款强大的数据平台,为软件架构师提供了高效扩展应用及灵活运用本指南所述策略的多种选择。 它不仅支持垂直扩展,提供用于用户体量水平扩展的应用服务器,更拥有基于高效企业缓存协议(ECP)的数据分片技术以实现数据体量的水平扩展,彻底摒弃了网络广播的需求。 这些技术既可独立运用,亦可组合部署,从而根据应用的特定需求量身定制最优架构。 欲了解更多信息,请参阅 InterSystems IRIS 可扩展性官方文档。

InterSystems IRIS 独树一帜地实现了海量可扩展性、高效并发的事务与分析混合处理、无需复制或迁移的单存储多模数据表征、灵活的租户模式,以及可定制的本地-云端部署架构。

相关话题

采取下一步行动

我们希望与您详细沟通,请您填写表格,我们将尽快与您取得联系。
*必须填写的字段
Highlighted fields are required
*必须填写的字段
Highlighted fields are required
** 选择 "是",表示您同意我们就现有及未来InterSystems产品和活动的新闻、更新和其他营销与您联系。此外,您同意将您的业务联系信息输入我们的CRM解决方案,该解决方案托管在美国,但按照适用的数据保护法进行维护。