reliability & availability

在系統設計中,有時會關注reliability, availability這兩個特性。reliability 是可靠度而availability是可用度。

這是兩個完全不同的概念(但要看定義)。在可靠度工程裡有比較嚴謹的數學定義,這邊只做qualitative概念性的描述。

Dependability, or reliability, describes the ability of a system or component to function under stated conditions for a specified period of time
(節錄 https://en.wikipedia.org/wiki/Reliability_engineering)

reliability 指的是系統在一段時間內是否正常運作,而availability指的是在一段時間內系統可以使用的時間比例 (這邊在不同的context下可能會有不同的定義方式,例如CAP裡論證的availability是以response time來定義availability)

a measure of the degree of a system which is in the operable and committable state at the start of mission when the mission is called for at an unknown random point in time. (參考https://en.wikipedia.org/wiki/Availability)

如果用生活的例子來說
high availability => 隨call可以隨到:
隨call(unknown random point in time)
隨到(operable and committable state)

而可靠度:

  • 某甲每個月按照約定(to function)按時繳貸款,連續20年(a specified period of time)
  • B覺得A是可靠的人,因為A總是(a specified period of time 從認識開始) 說到做到(function as expectation)

要達成high availability的方式最基本的思路是redundant,而要達成high reliability的方式比較複雜一點,如果做的事沒有side effect,那麼最基本的思路是consensus,這個再另文描述。

This entry was posted in Distributed. Bookmark the permalink.

Leave a Reply