dot Redis 8 发布了——并且是开源的

了解更多

数据持久性 vs 数据可用性:流媒体视频有助于解释

需要理解数据持久性与数据可用性之间的区别吗?您最喜欢的追剧体验可以帮助阐明这些区别。

数据是有保质期的。数据容易受到位腐烂的影响——也称为数据衰减、位衰减和数据腐烂。这适用于软件和媒体,例如消失的网站,它们带走了多年的新闻文章、电影或其他信息,其中只有一小部分被 互联网档案馆(Wayback Machine) 捕获。  

然而,位衰减也适用于存储设备的物理介质,并导致存储在此的信息的数据完整性恶化。随着时间的推移,丢失一个位或一个字节会累积成不可信的数据。数据丢失意味着数据确实消失了——可能是重要文件,如历史电子商务记录或税务信息。更糟糕的是,驱动器故障可能意味着数据存储不准确,从而导致信息错误。 

这不仅仅是一个技术问题。在像金融服务这样的行业中,脆弱或缓慢的数据可能会使一个值得信赖的品牌名称失去客户忠诚度、损害其声誉并导致收入损失。 

现在,如果您在某个流媒体服务上有喜欢的节目,请举手。  

根据 Statista 的数据,2022 年 83% 的美国消费者使用了点播视频流媒体服务。通常,客户希望随时随地观看他们喜欢的电视剧。这部电视剧的媒体——假设是 Andor ——无论在哪里观看都是相同的位集合,因此它是持久数据的一个很好的例子它阐明了数据持久性和可用性的重要性,以及处理不良数据的潜在影响。 

不,持久性和可用性并非一回事!然而,要使用可信赖的数据,持久性和可用性协同工作非常重要。只有其中一项而没有另一项,无法实现真正的数据质量。  

以您常看的值得追的剧集为例,让我们探讨一下原因。 

什么是数据持久性? 

数据持久性是指在发生中断或故障时,保护数据免受丢失或损坏的方法。 

数据持久性是通过该过程确保数据完整(并保持完整)、没有任何退化。 本质上,持久数据意味着未受损的数据。

用流媒体术语来说,想象一下您正坐下来观看最新的《星球大战》衍生剧。您的 4K 电视已准备就绪。您听说特效令人惊叹。然而,出于某种原因,剧集开始播放时,画质却远不能令人满意。

在这种情况下,可能有某些因素干扰了流媒体的数据持久性,也就是说,画质已经下降,但信息仍然可用。

了解 Redis 如何通过 AOF 和快照持久化选项提升数据持久性

如何保持持久性? 

数据持久性依赖于持久化数据。 

当数据是持久化的,它在下一次应用程序会话开始时是可访问且可用的。期望是在上次会话和下次会话之间不会发生数据丢失。 

为了保持数据持久性,将数据持久化到磁盘至关重要。数据以两种不同的方式按设定的时间间隔持久化到磁盘:仅追加文件 (AoF) 和快照。 

AoF 提供两种将写入操作追加到磁盘的选项: 

  • 每秒(更快,但不那么全面)或  
  • 每次写入(最可信赖,但不那么快)。  

对于任何需要实时获得未受损数据的组织来说,AoF 通常是最明智的选择。 

快照是一种数据复制形式,它捕获数据库在特定时间点的状态。与 AoF 不同,快照通常以 1、6 或 12 小时为间隔写入磁盘。 

数据库持久化的标准不是通用的。持久化配置取决于数据库类型(无论是NoSQL 还是关系型数据库)、数据库大小以及其他因素。因此,最好在建立架构时做出配置决策。 

另一种选择是编辑现有数据库的配置。请注意,此更改不是自动的。更改数据库的持久化模型可能需要时间才能完成。 

如何衡量持久性? 

换句话说,您如何衡量数据库抵御位衰减或丢失导致的损坏的能力? 

持久性通常以百分比表示,例如 11 个九 (99.9999999%) 或 99.9999999% 的持久性,根据 Google Cloud 的说法,这意味着“即使拥有一亿个对象,您也可能一百年都不会丢失一个!” 

所有这些九后面的数学涉及到一些复杂的统计学知识,因此请了解,衡量数据持久性主要使用的统计测量方法通常是泊松分布和二项分布。泊松分布衡量的是给定时间间隔内某个事件发生 (k) 次的概率,而二项分布评估的是可重复测试中两种结果之一(即“成功”或“失败”)的概率。 

什么是数据可用性? 

数据可用性意味着数据处于可操作状态。当请求数据时,数据被提供。换句话说,数据可用性是系统正常运行时间的同义词。  

这就是为什么数据持久性与可用性相结合,构成了完美的公式:未受损数据加上正常运行时间和可访问性,即立即访问未损坏的文件。  

哦对了!让我们回到新的《星球大战》系列剧集。  

您在剧集中看到悬念迭起之处,但您不得不赶往机场进行国际商务旅行。抵达酒店后,您可以开始新的会话。当您重新开始观看时,就像魔法一样,您可以从上次中断的地方继续,即使您的位置已经身处地球的另一端。这就是可用性和高可用性的魅力所在。它让您能够说:“即使我之前在堪萨斯暂停了 Baby Yoda 的某个动作场景,我也想在意大利看到他清晰、流畅、正处于攻击状态。”  

尽管您的地理位置发生了显著变化,但使得后续会话如此流畅和可能的原因是 Active-Active Geo-Distribution(主-主地理分布式),而不是“原力”,尽管那听起来可能很酷。Active-Active Geo-Distribution 将数据库的复制数据分发到分布在不同可用区的节点上,从而使数据可用。通过在本地节点建立副本,可以大大减少延迟,丰富观看体验。

Baby Yoda 的动作已经够慢了。您的数据库不应该让情况更糟。 

如何衡量数据可用性? 

数据可用性通过总正常运行时间除以总正常运行时间加总停机时间的和来衡量:可用性 = 正常运行时间 ÷ (正常运行时间 + 停机时间)。  

可用性通常用“五个九”或“十一个九”来表示,但通常以百分比形式表达,例如 99.999%。总而言之,“五个九”平均下来相当于一年中总停机时间约为五分钟。 

举例来说,假设我们知道某个实例在一周(168 小时)内仅可用了 145 小时。这意味着有 13 小时的差异。在这种情况下,计算方式如下:145 ÷ (145 + 13) = 91.772% 可用性。   

高可用性架构确实非常有趣,对于技术人员来说,探索在其最佳潜力下可以实现什么也非常有趣。请查看高可用性架构解析什么是数据复制,了解有关集群和灾难恢复的更多信息。

https://www.youtube.com/embed/mCOX-2ez-m4

数据不可用的影响 

Uptime Institute 2022 年的停机分析发现,“超过 60% 的故障导致至少 10 万美元的总损失,这比 2019 年的 39% 大幅增加。同期,造成 100 万美元以上损失的停机事件比例从 11% 上升到 15%。” 

这是真实世界的结果。元宇宙和游戏平台 Roblox 在 2021 年 10 月遭受了长达 73 小时的中断。据 Data Center Frontier 称,这给公司带来了约 2500 万美元的预订损失。 

例如,在金融行业,数十亿美元的交易取决于谁先到达——数据不可用的每一毫秒都可能转化为收入损失、合作机会的丧失以及潜在的客户流失。  

Netflix 在 2022 年 7 月发生了 1.5 小时的中断,影响了美国、法国和印度的客户。据路透社报道,这引起了负面反应,例如:“周五晚上,@netflix 崩溃了!你的周五晚上过得怎么样?”  

希望您与 Baby Yoda 共度的周五晚上非常愉快! 

想了解更多关于 Redis Enterprise 内置的灾难恢复功能吗?请观看我们的技术讲座。