冗長性と可用性

冗長性と可用性。昔はこんな言葉はなかったような気がします。最近、コンピュータの情報システムから出て来たのでしょう。

WordPressを使っている方はお分かりだと思いますが、Webやブログでデータベースを扱います。
そこで一般的なデーターベース(MySQL)を勉強しようと思い立ちチャレンジするのですが、素人にはなかなかハードルが高くて、入門書を読んでは、挫折の繰り返しでした。

ところが、右の「おうちで学べるデータベースのきほん」いうう本を読んで、やっと理解できるようになり、嬉しくなりブログってる訳です

そこで学んだことが、冗長性と可用性でした。データーベースの世界では、データの安全確保のために、大切な考え方なんだそうです。
それでは、知ったかぶりして、チョットご説明いたしましょう。

冗長性(Redundancy)

冗長性とは「卵を一つの籠に入れるな」ということです。つまり堅牢なシステムを作るには、冗長性が大切だということです。HDDのRAIDを知ってる方はよく解りますよね。

人体の例で、目、耳、肺、睾丸、卵巣、腎臓は冗長化していて、片方がダメでも、もう一方で代用してくれます。
DBMS(Data Base Management System)システムが壊れても、データが全部すっ飛ぶようなことは無いのです。
これを腎臓戦略と言ってます。

ところが、心臓、胃、膵臓、肝臓、脳は、冗長化できません。
安全確保のためには、信頼性を高めるしかありません。
これが心臓戦略すなわち、可用性を上げる戦略なのだそうです。

可用性(Availability)

可用性(Availability)を上げる戦略とは、信頼性(Reliability)を高めることでもあるのですが、可用性と信頼性(故障の頻度と期間)とは似て非なるものです。
どの程度障害なくサービスが使えるかというユーザー目線の表現が可用性で、システムが止まらないことが要件なんです。

稼働率99%のシステムは、サービスの停止時間は年間3日と15時間36分、これでは使えません。99.99%では52分34秒も止まる。
99.9999%でも32秒止まってしまいます。

「ホームページが断続的に閲覧できない状態が続いておりましたが、1月4日(水曜日)午後3時現在、復旧しました。ご迷惑をおかけしましたことをお詫びいたします。」なんてことにならないようにすることが、可用性を高めることです。

心臓が32秒も止まったら大変です。24時間365日無停止でなければなりません。これぞ心臓戦略と言い、可用性が問われます。
人の体というものは、冗長性、可用性からみて、むちゃくちゃ高度だということが解りますよね。大事にしなきゃ。

腎臓戦略、心臓戦略も生きて行くための条件ですが、更に愉しく生きるためには楽観主義(Optimism)であることです。

オプティマイザー(Optimizer)

データーベース(DBMS)システムには、冗長性と可用性が共に大切で、その上でのパーフォーマンスですね。
パーフォーマンスを左右するのが、オプティマイザー ( 適正化Optimizer)です。これはSQL文の実行計画(Execution Plan)を決めてくれる内部プログラム(モジュラー)のことですが、ユーザーには見えません。

オプティマイザーに代わって、ユーザー(人)が指示すべきものでは無いというのはデーターベースの世界の合意事項だそうです。
下手な考え(操作)休むに似たり、と言った処でしょうか。
人為より遥かに信頼できるオプティマイザー(適正化)です。

ユーザー(人)ではなく、オプティマイザーがパーフォーマンスを決めるなんて、なんか愉快な話で面白い。まるで人生のよう