【文献】
但野 紅美子,アクティビティ図で記述されたシステム,第73回(平成23年)全国大会講演論文集(1) アーキテクチャ ソフトウェア科学・工学 データベース,一般社団法人情報処理学会,2011年 3月 2日,1−263〜1−264
【文献】
中庭 明子,信頼性を考慮した分散ミラーサーバ配置最適化モデル,電子情報通信学会技術研究報告,社団法人電子情報通信学会,2000年 4月21日,Vol.100 No.17,p.7−12
【文献】
青山 哲也,外2名,マルコフモデルを用いた性能解析の基礎検討,電子情報通信学会2004年総合大会講演論文集 通信1,社団法人電子情報通信学会,2004年 3月 8日,p.811
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下に実施形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。
【0013】
(1 データベースシステム10の構成)
まず、「2」で説明する情報処理装置100が運用を支援するデータベースシステム10について説明する。
【0014】
高い可用性が要求されるデータベース(DB)システム10では、DBの複製(レプリカ)が利用されることがある。
図1は、DBシステム10の概略構成及び動作を説明するための図である。DBシステム10が備えるDBのレプリカには、プライマリ・レプリカ14と、セカンダリ・レプリカ16との二種類がある。
【0015】
プライマリ・レプリカ14(以下、単に「プライマリ14」とも呼ぶ)は、通常稼動時に、ホストシステム12からのデータの参照や更新の要求を受付けて処理する。セカンダリ・レプリカ16(以下、単に「セカンダリ16」とも呼ぶ)は、プライマリ14に障害が発生した際に、プライマリ14に代わってホストシステム12からのデータの参照や更新に係る処理を行う。尚、このような障害発生時に、代替装置に処理やデータを切り換えることを、フェイルオーバと呼ぶ。このようなフェイルオーバを可能とするため、プライマリ14へなされたデータの更新は、所定のタイミングでセカンダリ16に反映される。
【0016】
DBの複製方法は、DBの構成パラメータとして、システム設計者等により設定されることが多い。DBシステム10に要求される単位時間あたりの処理能力や可用性(信頼性)に応じて、適切なDBの複製方法は変わる。例えば、DB複製に係るデータの同期方法については、以下のような設定がなされることがある。
【0017】
通常稼働時(障害非発生時)における高い処理能力が必要な場合には、セカンダリ16へのデータ更新の反映を待たずにプライマリ14が処理を進める、すなわちプライマリ14になされたデータ更新のセカンダリ16への反映を非同期に行うことが多い(非同期コミットモード)。非同期コミットモードでは、通常稼動時の処理能力が高い半面、障害発生時には、プライマリ14とセカンダリ16との間のデータの不整合が生じる可能性が高くなる。この理由は、非同期コミットモードでは、プライマリ14のトランザクションログがある程度蓄積されてからセカンダリ16に送られるため、障害発生時に、セカンダリ16へ未送信のトランザクションログが残存している可能性が高いからである。
【0018】
一方、高い可用性が必要な場合には、プライマリ14へのデータ更新を常にセカンダリ16に反映して、両者を同期させることが多い(同期コミットモード)。同期コミットモードでは、プライマリ14はセカンダリ16へのデータ更新の反映を待つため、一般に通常稼動時の処理能力は低くなる。その反面、障害発生時にデータ不整合が生じる可能性は非同期コミットモードに比べて低くなる。
【0019】
ここで、プライマリ14へのデータ更新がセカンダリ16に反映される前にプライマリ14に障害が発生した場合に、プライマリ14とセカンダリ16との間でデータの不整合が生じる可能性がある。DBシステム10がデータ不整合を許容できない場合には、ユーザに(ホストシステム12に)対してサービス提供を再開する前に、データの不整合を解消する必要がある。通常、データ不整合の解消は、人間が確認しながら行う必要があるため、長い時間を必要とし、結果として障害からの復旧時間が長くなる。これは、DBシステム10のダウンタイムが長くなることを意味するため、処理能力の時間平均値も低くなる。
【0020】
つまり、DBシステム10の通常稼動時の処理能力だけでなく、データ不整合発生による処理能力の低下の可能性を考慮すると、データ同期の方法と、処理能力(障害発生時も含む時間平均値)との関係は、一概に決定することができない。
【0021】
そこで、本実施形態に係る情報処理装置100は、DBシステム10の処理能力(時間平均値)を定量評価し、処理能力が要件を満たすようなDBシステム10の同期方法を決定することを可能とする。
【0022】
(2 情報処理装置の構成)
以下、DBシステム10に、データベースの同期方式の設定を支援する情報処理装置100の機能構成を説明する。
図2は、本実施形態に係る情報処理装置100の機能構成を示すブロック図である。尚、本実施形態では、DBシステム10とは別に情報処理装置100を設ける場合を例に説明を行うが、これに限られるものではなく、DBシステム10と情報処理装置100とを同一システム内に実装し、情報処理装置100で決定した同期方法をDBシステム10に反映させるようにしても良い。
【0023】
情報処理装置100は、障害復旧状態モデル記憶装置101、パラメータ入力装置103、報酬入力装置105、定常状態解析装置107、処理能力推定装置109、及び同期間隔算出装置111を含む。
【0024】
障害復旧状態モデル記憶装置101は、障害復旧の状態変化(状態遷移)を表す数理モデルである障害復旧状態の状態遷移モデル(以下、「障害復旧状態モデル」をいう。)を記憶する。障害復旧状態モデルは、DBシステム10が取りうる状態と、その状態遷移とをモデル化したものである。障害復旧状態モデル記憶装置101は、例えばHDD(Hard Disk Drive)等の各種記憶装置により実現可能である。また、障害復旧状態モデルや次に述べるパラメータの具体例は、
図3や
図4を参照しながら後述する。
【0025】
パラメータ入力装置103は、障害復旧状態モデルに係る各種パラメータ群の値の入力を受け付けるパラメータ入力装置103を備える。当該パラメータ群は、DBシステム10が、障害復旧状態モデル内で規定される各状態間を遷移する確率を決定するためのものである。パラメータ群の詳細は、「4」で後述する。
【0026】
報酬入力装置105は、障害復旧状態モデル中の各状態にあるときの処理能力に対応する値(後述の評価値の算出に使用されるため、「報酬」とも呼べる。)の入力を受け付ける。尚、
図2の例では、便宜的にパラメータ入力装置103及び報酬入力装置105を別の機能構成として表現しているが、物理的に分離する必要はなく、例えば同一の入力装置から、パラメータ群及び報酬の両方の値の入力を受け付けるように実現しても良い。報酬については、後に「5」で詳述する。
【0027】
定常状態解析装置107は、パラメータ入力装置103から入力されたパラメータ群に基づいて、障害復旧状態モデルの定常状態を解析する。より具体的には、定常状態において、DBシステム10が、どの程度の確率で障害復旧状態モデル内の各状態にあるかを定常状態解析装置107は求める。尚、定常状態とは、障害復旧状態モデル内の全ての状態において、他の状態から各状態に遷移する確率の合計と、各状態から他の状態に遷移する確率の合計とが一致することをいう。
【0028】
処理能力推定装置109は、定常状態解析装置107で解析した定常状態と、報酬入力装置105から入力された報酬とに基づき、DBシステム10の処理能力の時間平均値を、定量的な評価値として算出する。
【0029】
同期間隔算出装置111は、処理能力推定装置109で推定された処理能力が所定の条件を満たす場合にDBシステム10が有するDB間でデータの同期を取る時間間隔を算出し、決定する。
【0030】
(3 障害復旧状態モデル)
次に、障害復旧状態モデルについて説明する。
上述の通り、障害復旧状態モデル記憶装置101は、DBシステム10の障害復旧の状態遷移を表す数理モデルである障害復旧状態モデルを記憶(格納)する。障害復旧状態モデルは、例えば、連続時間マルコフ連鎖(CTMC:Continuous−time Markov Chain)や、確率報酬ネット(SRN:Stochastic Reward Net)等の数理モデルで表される。
【0031】
障害復旧状態モデルは、少なくとも、以下の状態を含む。DBシステム10が通常稼動している状態と、プライマリとセカンダリとの同期が取れている時に発生した障害によりフェイルオーバを実施している状態と、プライマリとセカンダリの同期が完了していない時に発生した障害によりフェイルオーバを実施している状態と、障害発生により発生したデータ不整合を復旧している状態とである。
【0032】
また、障害復旧状態モデルは、少なくとも、以下のパラメータを含む。セカンダリが同期された状態である確率aと、データ不整合の復旧が必要となる確率bと、データ不整合からの復旧率μ
3と、同期が取れている時に発生した障害のフェイルオーバによる復旧率μ
1と、同期が取れていない時に発生した障害のフェイルオーバによる復旧率μ
2と、データベースサーバの故障率λ
1とである。
【0033】
図3Aは、障害復旧状態モデル記憶装置101に記憶される障害復旧状態モデル101Aの一例を示す図である。
図3B及び
図3Cは、障害復旧状態モデル101Aの状態及びパラメータを説明するための表である。
図3Aに示す障害復旧状態モデル101Aは、連続時間マルコフ連鎖で表現されている。
【0034】
図3Aの例において、DBシステム10が取りうる状態として、通常稼動している状態であるUP、プライマリとセカンダリとの同期が取れている時に発生した障害によりフェイルオーバを実施している状態であるFOと、プライマリとセカンダリの同期が完了していない時に発生した障害によりフェイルオーバを実施している状態であるFFOと、障害発生により発生したデータ不整合を復旧している状態であるDRとの4つの状態が表現されている。DBシステム10は、パラメータ群103Aから決定される確率(遷移確率)で、障害復旧状態モデル101Aの各状態間を遷移する。
【0035】
図4Aは、障害復旧状態モデル記憶装置101に記憶される障害復旧状態モデル101Aの他の例である。
図4B及び
図4Cは、
図4Aに係る障害復旧状態モデル101Aの状態及びパラメータを説明するための表である。
図4Aの障害復旧状態モデル101Aも、
図3Aと同様に連続時間マルコフ連鎖で表現されているが、
図3Aよりも詳細なフェイルオーバの状態遷移を含んでいる。
【0036】
より具体的には、
図4Aの障害復旧モデル101Aは、DBシステム10が取りうる状態として、通常稼動している状態であるUP、プライマリとセカンダリの同期が完了していない時に発生した障害によりフェイルオーバを実施している状態であるFFOと、障害発生により発生したデータ不整合を復旧している状態であるDRとを含んでいる。また、
図4Aの障害復旧モデル101Aでは、
図3Aでプライマリとセカンダリとの同期が取れている時に発生した障害によりフェイルオーバを実施している状態であるFOとして表現していた状態が、障害検出を行っている状態であるD、ロールフォワード状態であるRF、データ再構成の状態であるRC、ロールバック状態であるRBの4つの詳細な状態に分解されている。DBシステム10は、パラメータ群103Aから決定される確率(遷移確率)で、障害復旧状態モデル101Aの各状態間を遷移する。
【0037】
尚、障害復旧状態モデル101Aの表現は、
図3Aや
図4Aに示したものに限らない。例えば、障害復旧状態モデル101Aは、フェイルオーバ等の障害復旧手順に加えて、処理能力に影響のあるバックアップや監視等の通常稼動時の運用手順を含んでも良い。
【0038】
(4 パラメータ)
続いて、障害復旧状態モデル101A内の状態遷移を決定するためのパラメータ群103Aについて説明する。上述の通り、パラメータ入力装置103は、例えばシステム設計者等から、障害復旧状態モデル101Aのパラメータ群103Aの具体的な入力を受ける。
【0039】
ここで、セカンダリが同期された状態である確率aとデータ不整合の復旧が必要となる確率b以外のパラメータには、DBシステム10のシステム設計(ハードウェア及びソフトウェアの構成と運用手順の設計)によって決まる値が設定される。よって、これらの値(確率a及び確率b以外のパラメータ)については、実験環境での測定値や、過去の同一若しくは類似したDBシステム10での測定値に基づいて決定して自動的に入力するようにDBシステム10を構成しても良い。
【0040】
確率bの値は、DBシステムに格納されるデータの重要度が高いほど大きくなる。例えば、データの重要度を大・中・小に分類する場合には、重要度に対応する値として、それぞれ確率bの値を1.0、0.75、0.5することができる。
このように、確率a以外のパラメータの値は、対象とするDBシステム10の設計や運用されるデータの重要度に応じて決定される。
【0041】
一方、確率aに対しては、0乃至1のいずれかの値を任意に設定することが可能である。このとき、確率aの定義域内の複数の値を自動的に設定することも可能である。
【0042】
(5 報酬)
障害復旧状態モデル101A内の各状態の処理能力を評価するための報酬について説明する。
上述の通り、報酬入力装置105は、例えばシステム設計者等からDBシステム10が障害復旧状態モデル101A内の各状態をとる時のDBシステム10の処理能力を定量的に表現した報酬の入力を受ける。例えば、DBシステム10が稼動中(
図3Aや
図4Aの例であればUP)の状態であれば報酬は1、それ以外の状態(非稼動状態)の報酬は0とすることが可能である。尚、処理能力に対応する値(報酬)は、全てシステム設計者等が入力する必要はなく、例えば少なくとも一部の報酬を、実験環境での測定値や、過去の同一又は類似のDBシステム10での測定値から自動的に設定するようにDBシステム10を構成しても良い。或いは、各状態に設定する報酬は、DBシステム10の構成の設計情報に基づき性能を評価する数理モデルを用いて算出しても良い。
【0043】
(6 同期間隔の決定方法)
DBシステム10のプライマリ14とセカンダリ16との同期間隔の決定に際しては、まず定常状態を解析した上で処理能力の時間平均値を定量評価し、当該処理能力が要件を満たす確率aに応じて同期間隔を決定する。この処理の詳細を以下順番に述べる。
【0044】
定常状態解析装置107は、パラメータ入力装置103から入力されたパラメータ群103Aに基づき、障害復旧状態モデル101Aの定常状態を解析する。より具体的には、定常状態において、DBシステム10が、障害復旧状態モデル101A内で表現される各状態にある確率を算出する(全ての状態の確率の合計は1となる)。ここで、パラメータ入力装置103で複数の確率aの値を入力した場合には、入力されたそれぞれの値に対して、定常状態において、DBシステム10が各状態にある確率をそれぞれ算出する。このとき、確率a以外のパラメータ値を固定し、確率aのみを変化させる。
【0045】
処理能力推定装置109は、定常状態解析装置107で求めた、定常状態においてDBシステム10が各状態にある確率と、報酬入力装置105から入力された、DBシステム10の各状態における処理能力とに基づき、DBシステム10の処理能力の時間平均値に対応する評価値(定量値)を算出する。ここで、π
xを障害復旧状態モデル101A内の状態xにいる確率、r
xを状態xにアサイン(設定)された報酬とすると、時間平均の処理能力に相当する評価値Rは、以下の式で算出できる。
【0046】
【数1】
この式を、
図2の障害復旧状態モデル101Aに当てはめると、評価値Rは、以下の式で与えられる。
【0047】
【数2】
尚、この式では、通常稼動中(状態UP)の処理能力に相当する報酬r
UPを1とし、他を0とした場合を前提としている。
また、
図4Aの障害復旧状態モデル101Aの場合は、時間平均の処理能力である評価値Rは、以下の式で算出できる。
【0049】
尚、この式では、DBシステム10が、DBのロールバック処理(状態RB)をバックグラウンドで行いながらユーザに対してサービスを再開することのできるシステム(例えば、Microsoft SQL Server 2008)であることを前提としている。つまり、ロールバック中の処理能力を示す報酬r
RBとして、通常稼動中の処理能力であるr
UPよりは小さいが、0ではない値が報酬入力装置105から入力(設定)され、かつ、他の状態はサービスを提供できないために処理能力に相当する報酬が0である場合である。
【0050】
同期間隔算出装置111は、処理能力推定装置109により推定された処理能力が所定の要件を満たす場合、そのときの確率aの値から所定の変換式を用いて同期間隔を算出する。尚ここで、所定の要件は予め定められている値を用いてもよく、また、報酬やパラメータと一緒に、ユーザから入力を受けるように実装しても良い。
同期間隔iは、例えば、以下の変換式により算出できる。
【0052】
ここで、cは、例えば過去の同一又は類似したDBシステム10の測定データから決定することのできる定数である。その他、DBシステム10のハードウェア・ソフトウェア等の構成に応じて異なる変換式を用いることも可能である。
【0053】
DBシステム10の設計者は、同期間隔算出装置111が算出した同期間隔iを元に、DBシステム10に対して同期方式を設定する。例えば、同期間隔iが短い場合には、同期コミットモードを選択する。推定された処理能力が所定要件を満たさない場合には、要件を満たさないことをシステム設計者に提示しても良い。この場合、処理能力が当該要件を充足するように例えば確率aに別の値を設定し直した上で、再度同期間隔iを求めることも考えられる。
【0054】
(7 処理の流れ)
以下、情報処理装置100の処理の流れを、
図5を参照しながら説明する。
図5は、本実施形態の情報処理装置100が処理する情報処理方法の処理の流れを示すフローチャートである。
【0055】
ここで、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更して若しくは並列に実行することができ、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上1つのステップとして記載されているステップは複数のステップに分けて実行することもでき、便宜上複数に分けて記載されているステップを1ステップとして実行することもできる。
【0056】
まず、障害復旧状態モデル記憶装置101は、DBシステム10の障害復旧の状態遷移を表現する数理モデルである障害復旧状態モデル101Aを記憶する(S501)。この障害復旧状態モデル101Aは、例えばDBシステム10の設計者等から入力されたものでも良い。
【0057】
また、パラメータ入力装置103は、障害復旧状態モデル101Aの各状態遷移を決定するためのパラメータ群103Aの入力を受付け(S503)、また、各状態に対して設定される報酬の入力を報酬入力装置105で受け付ける(S505)。
【0058】
次に、定常状態解析装置107は、パラメータ入力装置103から入力されたパラメータ群103Aに基づき、定常状態において、障害復旧状態モデル101A内に表現される各状態にDBシステム10がある確率を算出する(S507)。その上で、算出した、障害復旧状態モデル101A内の各状態にDBシステム10がある確率と、それぞれの状態に対して設定された報酬とから、例えば数(1)に例を示した式に基づき、処理能力推定装置109が、DBシステム10の処理能力の時間平均に対応する定量的な評価値を算出する(S509)。
その上で、同期間隔算出装置111は、S509で算出された処理能力が所定の要件を満たす場合に、DBシステム10のDBの同期間隔を算出する。
【0059】
尚、上述した情報処理装置100の処理は、必ずしもこの順番に実行する必要はない。例えば、S503とS505とを逆に実行したり、或いはS505とS507とを逆に実行したりしても良い。
【0060】
(8 本実施形態に係る効果)
以上説明したように、本実施形態の情報処理装置100は、DBシステム10の同期方式を決定可能とするものであり、さらに、この同期方式決定は、障害発生時も含むDBシステム10の処理能力(時間平均)を定量評価して、この評価結果に基づいてすることができる。これにより、例えばユーザが望む所定の条件に応じたDBシステム10のシステム設計をすることも可能となる。
【0061】
(9 付記事項)
尚、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
尚、前述の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0062】
(付記1)
複数のデータベース間でデータを同期することのできるデータベースシステムの障害復旧状態遷移を示す数理モデルである状態遷移モデルを記憶する記憶手段と、前記状態遷移モデルにおける各状態間の遷移確率を決定するためのパラメータと、各状態における処理能力に対応する報酬との入力を受ける入力手段と、前記入力されたパラメータ群に基づき、定常状態において、前記データベースシステムが前記状態遷移モデルの各状態にある確率を求める算出手段と、前記状態遷移モデルの各状態にある確率及び前記報酬に基づき、前記データベースシステムの処理能力の時間平均に対応する評価値を算出する評価手段と、前記評価値に基づき、前記データベース間でデータの同期をとる時間間隔を決定する決定手段とを備える、情報処理装置。
【0063】
(付記2)
前記記憶手段は、フェイルオーバを含む復旧処理の状態遷移を含む状態遷移モデルを記憶する、付記1記載の情報処理装置。
【0064】
(付記3)
前記記憶手段は、バックアップ手順や監視手順を含む正常稼動時の運用手順に係る状態遷移を含む状態遷移モデルを記憶する、付記1又は付記2に記載の情報処理装置。
【0065】
(付記4)
前記入力手段は、前記データベースシステム構成の設計情報に基づく性能モデルを用いて算出した報酬の入力を受ける、付記1乃至付記3のいずれか1項記載の情報処理装置。
【0066】
(付記5)
複数のデータベース間でデータを同期することのできるデータベースシステムの障害復旧状態遷移を示す数理モデルである状態遷移モデルを記憶するステップと、前記状態遷移モデルにおける各状態間の遷移確率を決定するためのパラメータの入力を受けるステップと、前記状態遷移モデルの各状態における処理能力に対応する報酬の入力を受けるステップと、前記入力されたパラメータ群に基づき、定常状態において、前記データベースシステムが前記状態遷移モデルの各状態にある確率を求めるステップと、前記状態遷移モデルの各状態にある確率及び前記報酬に基づき、前記データベースシステムの処理能力の時間平均に対応する評価値を算出するステップと、前記評価値に基づき、前記データベース間でデータの同期をとる時間間隔を決定するステップとを備える、情報処理方法。
【0067】
(付記6)
コンピュータに、複数のデータベース間でデータを同期することのできるデータベースシステムの障害復旧状態遷移を示す数理モデルである状態遷移モデルを記憶媒体に記憶するステップと、前記記憶媒体から読み出した前記状態遷移モデルにおける各状態間の遷移確率を決定するためのパラメータの入力を受けるステップと、各状態における処理能力に対応する報酬との入力を受けるステップと、前記入力されたパラメータ群に基づき、定常状態において、前記データベースシステムが前記状態遷移モデルの各状態にある確率を求めるステップと、前記状態遷移モデルの各状態にある確率及び前記報酬に基づき、前記データベースシステムの処理能力の時間平均に対応する評価値を算出するステップと、前記評価値に基づき、前記データベース間でデータの同期をとる時間間隔を決定するステップとを実行させるための情報処理プログラム。
【0068】
この出願は、2012年2月13日に出願された日本出願特願2012−28764を基礎とする優先権を主張し、その開示の全てをここに取り込む。