可靠性、可用性、持久性等三个概念

这几个概念经常被混用,而实际上他们的含义并不一样,而且针对的场景和领域都很不一样,下面分别来说一下:

1、可靠性(Reliability)。针对通用系统的指标。通常在硬件系统中会出现地多一些。主要是指一个系统(设备)在约定条件下完成既定功能的概率。衡量可靠性的指标有FR(故障率)、MTBF/MTTF、MTTR等。软件也是存在可靠性的,但是软件的可靠性一般仅是一个局部,和硬件结合在一起,构成系统后,其可靠性的含义才更为全面。

image

2、可用性(Availability)。针对通用系统的指标。在软件和硬件系统中都会使用,可用性是从可靠性推导出来的。可用性是指系统无故障运行的时间占比,也就是我在前文中提到的5N、3N5等指标。大体计算公式:Availability = MTBF/(MTBF + MTTR)

3、持久性(Durability)。最初也是针对通用系统的指标,指在物理产品设计的生命周期内,系统保持可用,而无需重度维护/维修的能力。这个和可用性基本上就是一个含义。但是随着数据库的推广使用,ACID概念把持久性D纳入针对数据系统的指标中。通常用在存储、数据库等系统中,持久性保证数据被真正地写到非易失存储系统上。到了分布式数据库以及后面的云计算时代,持久性的含义又加强了,意思是分布式系统已经知道数据写完了(eg. 写完了所有副本或者写完了部分副本和日志等)

Durability guarantees that once a transaction has been committed, it will remain committed even in the case of a system failure (e.g., power outage or crash). This usually means that completed transactions (or their effects) are recorded in non-volatile memory.

 

除此以外,一个系统还有安全性、可伸缩性、可运营可管理等各种属性。所有这些概念经常被弄混,有时候也只好装糊涂,浏览了Intel、Microsoft、Cisco、AWS等外企的英文文档,感觉其使用还是比较准确的。一些国内企业的英文文档,就出现了乱用的情况,华为做的很不错了,但是也有错漏~

 

相关信息:

  1. 完整的可用性定义:从9个5到9个9
  2. MTBF
  3. Reliability and availability basics
  4. Durability
  5. ACID

发表评论

电子邮件地址不会被公开。 必填项已用*标注