前回のRASISについて調べた時の、それ以外のメモです。
こういった用語は普段使わないし、既に感覚として理解しているものもありますが、きちんと知っておくのも悪くないなと思います。
ACID特性
主にデータベースにおいて、トランザクション処理に求められる特性。Atomicity(原子性)
データの処理が「完了」か「未実行」のいずれかで曖昧さがないConsistency(一貫性)
データの矛盾がない。整合性を満たすIsolation(独立性)
処理間の依存関係がないDurability(永続性)
処理結果が完全に保護されるCAP定理
Consistency
データの一貫性を保つAvailability
システムの可用性を保つPartitions
システムを分散させるこの3つのうち、同時には2つしか実現できないということを証明したもの。
超並列分散処理を行うパブリック・クラウドにおいては、可用性を確保する代償として、データの一貫性を犠牲にすることでCAP定理を満たしている。
(Consistencyは満たせそうだが厳密な意味では満たせない)
BASE特性
Basically Available
システムの可用性を最優先する一方、Soft-state
一時的に一貫性のない状態を許容し、Eventual consistency
即時ではなく最終的にすべてのデータの整合性をとることでシステム全体が一貫した状態になるような特性のこと。
新・ACID特性
GoogleのGregor Hohpe氏は、クラウドにおけるACIDは次のような意味になると言った。詳しくは
障害対策
Fail Soft
故障時にシステム・ダウンをさせず、部分的な機能低下に留める。リトライ機能、バッファ・クリア機能、ソフトウェア・イニシャル機能の導入Fail Safe
故障時に常にシステムを安全に稼動させる。フェイル・マネージャ機能、リカバリー・ソフトの導入。ウォッチドック機能の強化。Fault Avoidance
障害そのものをなくそうとする考え方Fault Tolerant
故障しにくいよう、システムに冗長性を持たせる。バッファサイズの拡張、デュアル・システム化などFool Proof
不特定多数の使用者がいるプログラムで意図しない使用をされても、故障しないように工夫すること保守対策
バージョン・アップ
ソフトウェア機能改善・修正版のインストール機能。システムを停止することなく実施可能とするエラーロギング
エラー内容の記録と表示自己診断
起動時やメンテナンス・モード時に起動させ、システム状況を確認する検査モード
検査コマンド等でシステムを任意にテスト可能とするバスタブ曲線
ハードウェアのライフサイクルの概念初期故障期
装置の使い始めの故障で時間と共に減っていきます偶然故障期
装置の安定時期で、故障はあまり発生しません磨耗故障期
ある程度の時間が経過した時に故障が増えていきますSSDやioDriveだとバスタブ曲線の概念と異なるので時代の流れですね。
常に現場で学んできた私としては、障害関連をまとめると
『できるだけ迷惑がかからないよう努めて、終わり良ければ全て良し』
であながち間違っちゃいない気がしますが、
こういった概念や定義を、経験に当てはめて考えなおすとまた面白いですね。
(先に概念の勉強だけしてもつまらなそう・・・)