JP4378335B2 - ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム - Google Patents

ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム Download PDF

Info

Publication number
JP4378335B2
JP4378335B2 JP2005262155A JP2005262155A JP4378335B2 JP 4378335 B2 JP4378335 B2 JP 4378335B2 JP 2005262155 A JP2005262155 A JP 2005262155A JP 2005262155 A JP2005262155 A JP 2005262155A JP 4378335 B2 JP4378335 B2 JP 4378335B2
Authority
JP
Japan
Prior art keywords
disk
queue
write
writing
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005262155A
Other languages
English (en)
Other versions
JP2007072975A (ja
Inventor
亮 根山
学 山本
陽介 小澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2005262155A priority Critical patent/JP4378335B2/ja
Priority to US11/517,684 priority patent/US7490179B2/en
Priority to CNB2006101291122A priority patent/CN100430945C/zh
Publication of JP2007072975A publication Critical patent/JP2007072975A/ja
Application granted granted Critical
Publication of JP4378335B2 publication Critical patent/JP4378335B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、オンライン・トランザクション処理(OLTP)等において、動的な負荷の変動、プロセスやハードウェアの障害に応じて、ディスクへのトランザクション・データの書き込みを、ライト・スルー方式とライト・ビハインド方式で動的に切り替えることが可能なトランザクション・データをディスクに書き込む装置、書き込む方法、及び書き込むプログラムに関する。
証券取引システムのようなオンライン・トランザクション処理アプリケーションでは、コミット済みのデータが障害によって失われることは許されない。通常、障害に対するデータの耐久性を保証する方法として、コミット時にディスクに直接データを書き込むライト・スルー方式が用いられる。
従来は、データのディスク書き込みは一般的にレイテンシが大きくスループットも低いため、それを改善する手法としてライト・ビハインド方式が使われてきた。図1は、ライト・ビハインド方式によるデータの書き込み処理を簡単に説明している。ライト・ビハインド方式では、まず、コミット時に異なるノードやプロセス上のメモリ(遠隔メモリ)にデータを一時的にコピーして冗長化しておく(101)。コピー先の遠隔メモリの場所や構成などはどのような障害に耐えたいかによって変わる。コミット完了後、ローカルプロセスのメモリ(ローカルメモリ)上のデータを非同期にディスクに書き込む(102)。もし、ディスクにデータが書き込まれる前に障害が発生しても、遠隔メモリ上からデータを復旧できる(103)。ディスクに書き込みが完了したらローカルメモリおよび遠隔メモリからデータを削除する(104)。メモリはディスクに比べてデータの書き込み速度が高速なため、アプリケーションはレイテンシを小さくしスループットを高められる。
しかし、ライト・スルー方式とライト・ビハインド方式を切り替えるというデータの耐久性保証はアプリケーションの起動前に静的に設定するのが一般的であり、実行時の負荷の変化、プロセスやハードウェアの障害に対応して方式を動的に変更することはできなかった。
また、ライト・スルー方式とライト・ビハインド方式を選択する特許文献1では、マルチプロセッサシステムにおいて、複数のプロセッサが共有する領域へは、CPUのライトアクセスは競合を防止するためライト・スルー方式でアクセスし、1つのCPUに固有のアドレスへのアクセスには、ライト・ビハインド方式でアクセスするのみで、アプリケーションの状況に応じて動的に変更することはできなかった。
特開平9−93265号公報
コミット時のデータの保存先を、ディスクではなく遠隔メモリにすることによって、トランザクション・データの耐久性を保証しつつレイテンシを向上できる。しかし、ディスクに比べてメモリは高価であり、結果として容量が小さい。そのため、ライト・ビハインド方式では、ある一定量以上のコミット済みデータが一定時間以内にメモリに蓄積すると、メモリの使用容量が限界に達してしまい、それ以上にコミット済みデータを保存することができなくなる。その結果、メモリが溢れてしまう。一方で、これを防ぐためにトランザクション・データのディスク書き込みを待つと、ディスク書き込み処理がボトルネックとなってしまう。
上記課題を解決するため、本発明においては、ライト・スルー方式とライト・ビハインド方式でトランザクション・データのディスクへの書き込み方式を動的に変更することが可能な、トランザクション・データをディスクに書き込む装置を提供する。該装置は、前記トランザクション・データを格納するディスク書き込み用キューとメモリ書き込み用キューとを管理するためのキュー管理テーブルを有するメモリを備える。また、該装置は、負荷が所定の閾値を超えたことを条件として前記キュー管理テーブルに前記メモリ書き込み用キューを登録し、前記負荷が閾値を下回ることを条件として前記キュー管理テーブルから前記メモリ書き込み用キューを削除する手段を有する。そして、該装置は、前記ディスク書き込み用キューに格納された前記トランザクション・データを受け取りディスクに書き込む手段と、前記メモリ書き込み用キューに格納された前記トランザクション・データを受け取り冗長化メモリに書き込む手段とを有する。該装置により、負荷に応じて、ディスクへのデータ書き込みをライト・スルー方式とライト・ビハインド方式で動的に切り替えることが可能になり、システムのリソースを有効に活用することができる。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせは、発明の内容を理解しやすくするためのものもあり、その全てが発明の解決手段に必須であるとは限らない。
以下の実施の形態では、主に方法またはシステムについて説明するが、当業者であれば明らかなとおり、本発明はコンピュータで使用可能なプログラムとしても実施できる。したがって、本発明は、ハードウェアとしての実施形態、ソフトウェアとしての実施形態またはソフトウェアとハードウェアとの組合せの実施形態をとることができる。プログラムは、ハードディスク、CD−ROM、光記憶装置または磁気記憶装置等の任意のコンピュータ可読媒体に記録できる。
図2は、負荷の変動、プロセスやハードウェアの障害に応じて、ディスクへのトランザクション・データの書き込みを、ライト・スルー方式とライト・ビハインド方式で動的に切り替えるシステムが作動するハードウェア構成200の概略を示している。中央演算処理装置であるCPU201は各種オペレーティング・システムの制御下で様々なプログラムを実行する。CPU201はバス202を介して、メモリ203、ディスク204、ディスプレイ・アダプタ205、ユーザ・インタフェース206およびネットワーク・インタフェース207と相互接続される。ディスク204には、コンピュータを本発明を実現するためのシステムとして機能させるためのソフトウェア、オペレーティング・システムおよびデータベース・システム等が含まれる。
ユーザ・インタフェース206を通して、キーボード208およびマウス209に接続され、ディスプレイ・アダプタ205を通してディスプレイ装置208に接続され、ネットワーク・インタフェース207を通してネットワーク211に接続される。ネットワーク211からさらに冗長化用ノード/プロセス212に接続される。冗長化用ノード/プロセスは、遠隔メモリ213を有する。この遠隔メモリ213は、ライト・ビハインド方式でトランザクション・データの耐久性を保証するため、コミット後でディスク204に反映されていないメモリ203のトランザクション・データを冗長化して保持する。このハード構成200は、コンピュータ・システム、バス配置およびネットワーク接続の一実施形態の例にすぎず、本発明の特徴は、さまざまなシステム構成で、同一の構成要素を複数有する形態で、または、ネットワーク上にさらに分散された形態でも実現することができる。
図3は、ディスクへのトランザクション・データの書き込みを、ライト・スルー方式とライト・ビハインド方式で動的に切り替える装置の機能および処理されるデータを、概念的に表したものである。ここで表現される機能ブロックおよびデータの構成は、さらに細かい単位で表現可能であり、また、もっと大きい単位の機能ブロックでも表現可能である。これら機能ブロックの表現単位の違いは、発明を実施する際の本質的問題ではないことは、当業者には明らかである。ディスク301は、ハード・ディスクなどの一般にデータ書き込み速度が遅い装置で、データベース等のデータが最終的に記録される装置である。メモリ302は、ディスク301に比べて、書き込み速度が高速であり、ライト・ビハインド方式での書き込みの場合に、一時的にデータを冗長化するのに使用される。メモリ302は、障害に耐えるために使用されるので、通常は異なるノードやプロセス上に配置される。リージョン303は、データの耐久性保証方法を切り替える単位であり、あるトランザクションでアクセスするデータの集合は、必ず特定のリージョンに含まれる。リージョンの定義は、データ全体を一つのリージョンとすることもできるし、また、証券取引システムなどでは、会社毎の取引データをそれぞれのリージョンとして定義することもできる。ちなみにトランザクションはリージョンの境界を越えてデータにアクセスすることはできない。
キュー管理テーブル304は、トランザクションのコミット毎のデータが入ったキューを管理するテーブルである。キューはリージョンとデータ記録手段の組み合わせごとに用意される。図3においては、リージョンaおよびリージョンbと、ディスク用データ記録手段305およびメモリ用データ記録手段306の組み合わせとなるので、キューはディスク用キュー{D、a}と{D、b}、およびメモリ用キュー{M、a}と{M、b}の4つとなる。ディスク用キュー{D、a}と{D、b}は、ディスク301にデータを書き込むためのトランザクション・データを管理し、メモリ用キュー{M、a}と{M、b}は、メモリ302にデータを書き込むためのトランザクション・データを管理する。キュー・マネージャ307が、キュー管理テーブル304に対し、キューの登録、削除および変更等を行う。キュー・マネージャ307の機能は、書き込みタイミング制御手段308などの一部として取り込まれていてもいい。
ディスク用データ記録手段305は、キュー{D、a}およびキュー{D、b}からトランザクション・データを受け取り、ディスク301に書き込む。メモリ用データ記録手段306は、キュー{M、a}およびキュー{M、b}からトランザクション・データを受け取り、メモリ302に書き込む。キューにはトランザクション・データそのもの、またはトランザクション・データが記録されている場所を示すポインタが入っていて、これらに従って、データ記録手段305および306は、データの書き込み処理を行う。キュー{M、a}およびキュー{M、b}は、通常はシステムのローカルのメモリ上(図2のメモリ203)にあるが、他のシステムに存在することも可能である。書き込みタイミング制御手段308は、ディスク用データ記録手段305およびメモリ用データ記録手段306にスレッドを割り当て、データ記録手段305およびメモリ用データ記録手段306がトランザクション・データを受取って書き込み処理を行う。また、書き込みタイミング制御手段308は、スレッドのプールを管理し、このプールから必要に応じてデータ記録手段305およびメモリ用データ記録手段306にスレッドを割り当て、不要になったスレッドを再びプールに戻す。そして、キューに対しては、それぞれのプロセスがデータの読み取りと書き込みを別々に行うので、データの順番を間違えて処理するのを防止するために、それぞれのプロセスは、キューに対して排他ロックをかける。
本発明では、メモリのリソースを最大限に活用するため、ディスクへのトランザクション・データの書き込み処理では、通常の負荷の場合はメモリを使わないようにしておき、低負荷状態から高負荷状態に移行する場合にメモリを効率的に使って一度に大量のデータを処理できるようにする。すなわち、通常の負荷の場合は、メモリへのデータ蓄積を行なわないライト・スルー方式でデータ書き込みを処理し、メモリの空き容量を最大に保つことで、高負荷時にライト・ビハインド方式に移行した際のメモリに蓄積できるデータ量を多くする。また、高負荷状態から平均的な負荷に戻る場合は、次に来る高負荷状態に耐えるため、ライト・ビハインド方式からライト・スルー方式に戻してメモリの空き容量を多くし、次回のライト・ビハインド方式でメモリに蓄積できるデータ量を多くできるようにする。
また、ライト・スルー方式でディスクに障害が発生した場合、アプリケーションを停止させないようにするために、一時的にライト・ビハインド方式に切り替えたい場合がある。逆に、ライト・ビハインド方式で、遠隔メモリに障害が発生し、同じくアプリケーションを停止させないようにするために、ライト・スルー方式に切り替えなければならない場合もある。例えば、ディスク、それを管理するOS(オペレーティング・システム)やデータベースが何らかの原因で一時的に応答が遅くなる応答遅延が発生する場合がある。データベース・プロセスに障害が発生した場合、データベースが一時的に応答できない状況もある。同様に、ライト・ビハインド方式で、遠隔メモリを管理するOSやプロセスの負荷が高くなり応答しなくなる場合がある。これらの障害は短時間で回復することが多いので、ある一定時間以上遠隔メモリやディスクが応答しない場合は、ライト・スルー方式とライト・ビハインド方式を相互に切り替えられると、アプリケーションに対して応答時間を保証できる。
さらに、ライト・ビハインド方式でアプリケーションが動作中にプロセスに障害が発生し、別プロセスが引き継ぐフェイルオーバーの場合、遠隔メモリとディスク上のデータの差分をディスクに反映する必要がある。しかし、引継ぎ後のプロセスが、差分の反映が完了するのを待ってからでないと新しいトランザクションを実行できないとすると、アプリケーションの可用性が低下してしまう。そこで、アプリケーションの可用性を重視する場合、差分を反映している間はライト・ビハインド方式でディスクに書き込みつつ、同時にアプリケーションの処理を即時に開始できることが望ましい。この場合、差分を反映し終え、さらにフェイルオーバー後のトランザクションによる新たなデータも反映し終えるまでは、ライト・ビハインド方式を使うことになる。さらに、これらの処理が完了した後は、必要に応じてライト・スルー方式に切り替えられることが望ましい。なお、フェイルオーバーも、一時的に応答が遅くなる応答遅延と考えることもできる。
さらに、負荷はある特定の種類のデータに集中する場合がある。例えば、証券取引アプリケーションでは、特定の株銘柄の売買が短期間に集中する場合がある。そのため、ライト・スルー方式とライト・ビハインド方式の切り替えは、株取引の銘柄などのデータの種類ごと(例えば、リージョンごと)に行なえるようにしておく必要がある。
図4に、図3の構成を用いて、ライト・スルー方式を実現した状態の一例を示す。ここでは、リージョンaとリージョンb(403)のデータは、ディスク用データ記録手段405によって書き込みが行われる。ライト・スルー方式でデータ書き込みをするため、メモリ用データ記録手段406は使用されない。キュー管理テーブル404には、ディスク用データ記録手段405が利用するリージョンaとリージョンbについてのキュー{D、a}およびキュー{D、b}が登録される。ここでは、リージョンaのトランザクションがコミットされる場合を例として説明する。データは関連するキュー{D、a}に格納される。ライト・スルー方式では、コミット完了前にディスクにデータが書き込まれる必要があるため、書き込みタイミング制御手段408は、ディスク用データ記録手段405にスレッドを割り当て、データを渡し、ディスク用データ記録手段405が書き込みを行なう。
ディスク用データ記録手段405によるデータの書き込みが完了するとコミットが完了する。リージョンの異なるトランザクションは互いに関連がないため、書き込みタイミング制御手段408は、データ記録手段に対してキューごとにスレッドを割り当てる。なお、図4ではライト・スルー方式でデータ書き込みを行うので、キュー管理テーブル404を経由しないでディスク用データ記録手段405がデータを受取ることも可能である。しかし、ライト・スルー方式でのデータ書き込みの際にも、データがキュー管理テーブル404を経由するようにすれば、書き込みタイミング制御手段408や、ディスク用データ記録手段405の機能は、ライト・ビハインド方式の際の機能と共通化できるため、機能構成を単純なものとすることが可能となる。また、必ずキューを経由してデータ書き込み処理をすれば、ライト・ビハインド方式からライト・スルー方式に切り替えた場合にも、データ順にキューの残存データの書き込み処理をしやすくなる。
図5に、図3の構成を用いて、ライト・ビハインド方式を実現した状態の一例を示す。ここでは、リージョンaとリージョンb(503)のデータは、それぞれディスク用データ記録手段505によりディスク501に書き込まれ、メモリ用データ記録手段506によりメモリ502に書き込まれる。従って、キュー管理テーブルには、ディスク用データ記録手段505に渡すデータを管理するためのキュー{D、a}およびキュー{D、b}と、メモリ用データ記録手段506に渡すデータを管理するためのキュー{M、a}およびキュー{M、b}の4つが登録される。ライト・ビハインド方式でのデータ書き込みでは、コミット処理の前に冗長化用の遠隔メモリ(メモリ502)に書き込む必要がある。書き込みタイミング制御手段508は、メモリ用データ記録手段506にスレッドを割り当てる。
アプリケーションからのトランザクション・データはキュー{M、a}および{M、b}に格納される。メモリ用データ記録手段506により、メモリ502へのデータの書き込みがなされると、アプリケーションのコミット処理が完了する。その後、書き込みタイミング制御手段508は、ディスク用データ記録手段505にスレッドを割り当て、ディスク用データ記録手段505はデータを受取って書き込み処理を行う。なお、ディスク用データ記録手段505が、ディスク501にデータの書き込みを完了すると、冗長化したデータは不要となるので、書き込みタイミング制御手段508は、メモリ502のデータの削除を指示する。ライト・ビハインド方式の場合、アプリケーション側のコミット処理は、メモリ502への書き込み処理が完了していればいいので、ディスク用データ記録手段505に対するスレッドの割り当てはコミット完了前であってもよい。また、メモリからのデータの削除処理は、個々のトランザクション毎に行なってもいいし、性能向上のために複数トランザクション分の削除をまとめてバッチ処理してもよい。
図6に、リージョンaについて、ディスクへのデータ書き込み方式を、ライト・スルー方式からライト・ビハインド方式へ変更する処理のフロー600を例示する。ステップ601で処理が開始される。ステップ602で負荷の検出を行う。ステップ603で負荷が所定の閾値を超えたか否か判断する。例えば、所定の閾値は、先行トランザクションの処理のディスク書き込みが終了する前に次のトランザクションが発生する程度のトランザクション量および頻度を設定する。これは、アプリケーションのスループットやレイテンシに対する要求を満たす範囲内で負荷に対する閾値を設定することになる。ステップ603で、負荷が閾値を超えていないと判断される場合(No)は、ステップ606に進んで、ディスクへのデータ書き込み方式を変更することなく処理を終了する。
一方、ステップ603で、負荷が閾値を超えていると判断された場合(Yes)は、ステップ604に進む。ステップ604では、キュー{D、a}について、リージョンaの識別子を鍵とした排他ロックを取得する。排他ロックの鍵はリージョンの識別子以外のものでも可能である。この排他ロックの取得は、データ書き込みをライト・スルー方式からライト・ビハインド方式に変更している間に、アプリケーションやデータ書き込み手段がキューにアクセスしてエラーとなることを防ぐためである。ステップ605では、キュー管理テーブルにキュー{M、a}を登録する。ステップ606で排他ロックを解除する。ステップ607で、キュー{M、a}について、メモリ用データ記録手段スレッドを割り当てる。但し、ステップ607では、当該スレッドのインスタンスが残っている場合は、スレッドの割り当ては行う必要はない。この処理は不要となる。ステップ608で変更処理を終了する。ステップ606が完了した後、メモリ用データ記録手段にスレッドが割り当てられ、ライト・ビハインド方式によるデータの書き込み処理が始まる。
ちなみに、ステップ602では、アプリケーションの動作中にプロセスに障害が発生し、別のプロセスに引き継ぐフェイルオーバー、データベースの一時的な応答遅延や、データベースのフェイルオーバー、また、ディスクのフェイルオーバーを検出した場合にも、負荷が閾値を超えたとみなして、ステップ603からステップ604に進んで、ディスクへのデータ書き込みをライト・スルー方式からライト・ビハインド方式に変更するようにしてもよい。
ちなみに、ステップ602で負荷の検出できる例として、アプリケーションのフェイルオーバー時の差分反映が挙げられる。ライト・ビハインド方式でアプリケーションが動作中にプロセスに障害が発生し、別プロセスが引き継ぐフェイルオーバーの場合、遠隔メモリとディスク上のデータの差分をディスクに反映する必要がある。しかし、これが完了するのを待っていたのでは、アプリケーションの可用性が低下してしまう。そこで、本発明を用いて、差分を反映している間はライト・ビハインド方式でディスクに書き込みつつ、同時にアプリケーションの処理を即時に開始することができる。その後、差分を反映し終え、さらにフェイルオーバー後のトランザクションによる新たなデータも反映し終えた時点で、必要ならライト・スルー方式に切り替えてもよい。
また、ステップ602で負荷の検出できる例として、データベースの一時的な応答遅延への対応が挙げられる。ライト・スルー方式でデータベースに書き込み中、データベースが何らかの原因で一時的に応答が遅くなる場合がある。これに備えて、ある一定時間以上データベースが応答しない場合は、ライト・ビハインド方式に切り替えることによって、アプリケーションに対して応答時間を保証できる。その後データベースが応答したら、ライト・スルー方式に戻してもよい。動的な切り替えにより、耐えられる応答遅延時間を長くできる。
さらに、ステップ602で負荷の検出できる例として、データベースのフェイルオーバー時間の隠蔽する場合が挙げられる。ライト・スルー方式でデータベースに書き込み中、データベースに障害が発生しデータベース・プロセスがフェイルオーバーする場合がある。通常、データベースのフェイルオーバーには時間がかかり、その間アプリケーションへの応答を返せなくなるが、これを応答遅延の1つととらえ、同様にライト・ビハインド方式に切り替えれば、データベースのフェイルオーバー時間をアプリケーションに対して隠蔽することができる。これによりアプリケーションの可用性を上げられる。動的な切り替えにより、耐えられるデータベースのフェイルオーバー時間を長くできる。
そして、ステップ602で負荷の検出できる例として、ディスクのフェイルオーバーも挙げられる。ライト・スルー方式またはライト・ビハインド方式で使用中のファイルやデータベースまたはディスクそのものに障害が発生した場合、書き込み先を他のファイルやデータベースに切り替える必要がある場合もある。これは単にディスク用データ記録部の書き込み先を切り替えるだけで実現できる。
また、ステップ602の負荷の検出は、リージョン毎に行うことも可能である。例えば、リージョンbについて負荷が閾値を超えたと判断した場合は、ステップ604で、リージョンbの識別子を鍵とした排他ロックを取得し、ステップ605でキュー管理テーブルにキュー{M、b}を登録する。ステップ
図7に、リージョンaについて、ディスクへのデータ書き込み方式を、ライト・ビハインド方式からライト・スルー方式へ変更する処理のフロー700を例示する。ステップ701で処理が開始される。ステップ702で負荷の検出を行う。ステップ703で負荷が所定の閾値を下回るか否か判断する。ステップ703で、負荷が所定の閾値を下回ると判断される場合(No)は、ステップ707に進んで、ディスクへのデータ書き込み方式を変更することなく処理を終了する。一方、ステップ703で、負荷が閾値を下回ると判断された場合(Yes)は、ステップ704に進む。ステップ704では、キュー{D、a}およびキュー{M、a}につき、リージョンaの識別子を鍵とした排他ロックを取得する。ステップ705では、キュー管理表からキュー{M、a}を削除する。ステップ706で排他ロックを解除する。ステップ707で変更処理を終了する。
また、ステップ703では、アプリケーションの動作中のフェイルオーバーの完了、データベースの一時的な応答遅延の回復や、データベースのフェイルオーバーの完了、またはディスクのフェイルオーバーの完了を検出した場合にも、ステップ704に進んで、ディスクへのデータ書き込みをライト・ビハインド方式からライト・スルー方式に変更するようにしてもよい。なお、ステップ705では、キュー{M、a}のインスタンスそのものを削除してしまうのではなく、図8のように単にキュー管理テーブルから登録を抹消しておく。キュー{M、a}のインスタンスが残っていれば、キュー管理テーブルから抹消された後も、メモリ用データ記録手段に割り当てられたスレッドは、キュー{M、a}から残存するライト・ビハインド方式のデータを取得し書き込み処理を継続できる。但し、キュー{M、a}のデータ書き込みが終われば、リソースに応じて、インスタンスを削除することが望ましい。
図9は、図6と図7のそれぞれの処理を、同一フローで行う場合の一例を示したフロー900である。ステップ902の負荷の検出はステップ602およびステップ702と共通化できるので、二つの処理フローは図9のように融合することができる。ステップ903とステップ913は負荷が閾値よりも上か下かを判断する処理である。ステップ903では、負荷が閾値より下から上に変化があったか否かを判断する。ステップ913では、負荷が閾値より上から下に変化があったか否かを判断する。ステップ904からステップ906は、図6のステップ604からステップ607と同じである。ステップ914からステップ916は、図7のステップ704からステップ706と同じである。ステップ908では処理は終了となるが、負荷の変化に対応するため、定期的に処理は再開され、ステップ902に戻って再び負荷の検出をし、ライト・スルー方式とライト・ビハインド方式の切り替え処理を始める。
本発明は、様々な形態で実施可能である。例えば図10に示すように、データベースとマルチキャスト通信を用いたライト・ビハインド方式に適用できる。ディスクをデータベース1001として、ディスク用データ記録手段1005がデータを書き込み、また、マルチキャスト通信1010を用いて、ディスク用データ記録手段1005が複数の遠隔メモリ1002にコピーすることで冗長度を上げられる。メモリ用データ記録手段1006がデータ書き込み完了を通知するタイミングを変えることで遠隔メモリの障害に対する耐久度を変えることもできる。例えば、コピー先の遠隔メモリが3つある場合、そのうち所定の数(例えば、最初の2つ)の遠隔メモリからのコピー完了応答が届いた時点で書き込み完了を通知すれば、最大1つの遠隔メモリの障害に耐えることができる。
また、本発明はリージョンが1つしかない場合にも適用可能である。リージョンがシステムに1つしかない場合も許される。この場合はシステム全体でライト・スルー方式またはライト・ビハインド方式の耐久性保証方法を統一的に切り替えて利用することになる。
本手法により、データの耐久性保証方法であるライト・スルー方式とライト・ビハインド方式を動的な負荷の変動に応じて切り替えることが可能になる。これにより、ディスク・ボトルネックになるような高負荷時に閾値の範囲でメモリ使用量を節約し、閾値を超えるような高負荷に備えることが可能になる。また、ライト・スルー方式とライト・ビハインド方式の両方における対故障性を向上でき、フェイルオーバーにかかる時間を小さくできて、データの耐久性保証方法の切り替えの範囲を柔軟に定義できる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
ライト・ビハインド方式によるデータの書き込み処理を簡単に示す。 ディスクへのトランザクション・データの書き込みを、ライト・スルー方式とライト・ビハインド方式で動的に切り替えるシステムが作動するハードウェア構成図の一例を示す。 ディスクへのトランザクション・データの書き込みを、ライト・スルー方式とライト・ビハインド方式で動的に切り替える装置の機能および処理されるデータの一例を示す。 ライト・スルー方式を実現した状態の一例を示す。 ライト・ビハインド方式を実現した状態の一例を示す。 ディスクへのデータ書き込み方式を、ライト・スルー方式からライト・ビハインド方式へ変更する処理のフローを例示する。 ディスクへのデータ書き込み方式を、ライト・ビハインド方式からライト・スルー方式へ変更する処理のフロー700を例示する。 単にキュー管理テーブルから登録を抹消しておく状態を示す。 図6と図7のそれぞれの処理を、同一フローで行う場合のフローの一例を示す。 データベースとマルチキャスト通信をライト・ビハインド方式に適用した一例を示す。

Claims (18)

  1. トランザクション・データをディスクに書き込む装置であって、
    前記トランザクション・データを格納するディスク書き込み用キューとメモリ書き込み用キューに関連づける情報を管理するためのキュー管理テーブルを有するメモリであって、前記ディスク書き込み用キューと前記メモリ書き込み用キューがデータの耐久性保証方法を切り替える単位であるリージョンごとに設けられているものと、
    先行トランザクションのディスクへの書き込み処理が終了する前に次のトランザクションが発生する頻度として定義されるディスクへの書き込み負荷が所定の閾値を超えたことを条件として前記キュー管理テーブルに前記メモリ書き込み用キューに関連づける情報を登録し、前記負荷が閾値を下回ることを条件として前記キュー管理テーブルから前記メモリ書き込み用キューに関連づける情報を削除する手段と、
    前記キュー管理テーブルに前記ディスク書き込み用キューに関連づける情報のみが登録されている場合、前記ディスク書き込み用キューに格納された前記トランザクション・データを受け取り、冗長化メモリを使用せずにディスクに書き込む手段と、
    前記キュー管理テーブルに前記メモリ書き込み用キューに関連づける情報が登録されている場合、前記メモリ書き込み用キューに格納された前記トランザクション・データを受け取り冗長化メモリに書き込む手段と、
    を有するトランザクション・データをディスクに書き込む装置。
  2. 前記キュー管理テーブルに前記メモリ書き込み用キューに関連づける情報が登録されている場合、前記トランザクション・データを前記冗長化メモリに書き込むために、前記メモリに書き込む手段にスレッドを割り当てる手段をさらに含む請求項1に記載のトランザクション・データをディスクに書き込む装置。
  3. 前記メモリに書き込む手段が、前記メモリ書き込み用キューに格納された前記トランザクション・データをマルチキャストで複数のメモリに書き込むことを特徴とする請求項1または2に記載のトランザクション・データをディスクに書き込む装置。
  4. 前記メモリに書き込む手段が、マルチキャストの宛先からの応答により所定の数のメモリへのコピーが完了したことが判明したら、データ書き込みの完了通知を返す手段をさらに含む、請求項3に記載のトランザクション・データをディスクに書き込む装置。
  5. アプリケーションのプロセスの障害が発生した場合にも、前記負荷が閾値を超えたとする、請求項1に記載のトランザクション・データをディスクに書き込む装置。
  6. データベースの一時的な応答遅延が発生した場合にも、前記負荷が閾値を超えたものとする、請求項1に記載のトランザクション・データをディスクに書き込む装置。
  7. データベースに障害が発生した場合にも、前記負荷が閾値を超えたものとする、請求項1に記載のディスクへの書き込み方式を変更する装置。
  8. ディスクの障害が発生した場合にも、前記負荷が閾値を超えたものとする、請求項1に記載のトランザクション・データをディスクに書き込む装置。
  9. 前記管理する手段が、さらに、データの耐久性保証方法を切り替える場合、前記ディスク書き込み用キューに排他ロックをかける手段を含む請求項1に記載のトランザクション・データをディスクに書き込む装置。
  10. ライト・スルー方式とライト・ビハインド方式でトランザクション・データのディスクへの書き込み方式を変更する方法であって、
    先行トランザクションのディスクへの書き込み処理が終了する前に次のトランザクションが発生する頻度として定義されるディスクへの書き込み負荷が所定の閾値より下から上に変わったことに応答して、キュー・マネージャがディスク書き込み用キューとメモリ書き込み用キューに関連づける情報をキュー管理テーブルに登録するステップであって、前記ディスク書き込み用キューと前記メモリ書き込み用キューがデータの耐久性保証方法を切り替える単位であるリージョンごとに設けられているものと、
    前記負荷が前記閾値より上から下に変わったことに応答して、前記キュー・マネージャが前記キュー管理テーブルからメモリ書き込み用キューに関連づける情報を削除するステップと、
    前記キュー管理テーブルに前記ディスク書き込み用キューに関連づける情報のみが登録されている場合、ディスク用データ記録手段が前記ディスク書き込み用キューに格納された前記トランザクション・データを受け取り、冗長化メモリを使用せずにディスクに書き込むステップと、
    前記キュー管理テーブルに前記メモリ書き込み用キューに関連づける情報が登録されている場合、メモリ用データ記録手段が前記メモリ書き込み用キューに格納された前記トランザクション・データを受け取り冗長化メモリに書き込むステップと、
    を含むディスクへの書き込み方式を変更する方法。
  11. 前記キュー管理テーブルに前記メモリ書き込み用キューに関連づける情報が登録されている場合、前記トランザクション・データを冗長化メモリに書き込むために、書き込みタイミング制御手段が前記メモリに書き込む手段にスレッドを割り当てるステップをさらに含む請求項10に記載のディスクへの書き込み方式を変更する方法。
  12. 前記登録するステップの前に、登録する前記キューに対応するリージョンのディスク書き込み用キューに前記キュー・マネージャが排他ロックをかけるステップを含む請求項10に記載のディスクへの書き込み方式を変更する方法。
  13. 前記削除するステップの前に、削除する前記キューに対応するリージョンのディスク書き込み用キューに前記キュー・マネージャが排他ロックをかけるステップを含む請求項10に記載のディスクへの書き込み方式を変更する方法。
  14. アプリケーションのプロセスのフェイルオーバーが発生した場合にも、前記キュー・マネージャは、前記負荷が閾値を超えたとみなして処理する、請求項10に記載のディスクへの書き込み方式を変更する方法。
  15. データベースの一時的な応答遅延が発生した場合にも、前記キュー・マネージャは、前記負荷が閾値を超えたものとみなして処理する、請求項10記載のディスクへの書き込み方式を変更する方法。
  16. データベースに障害が発生した場合にも、前記キュー・マネージャは、前記負荷が閾値を超えたものとみなして処理する、請求項10に記載のディスクへの書き込み方式を変更する方法。
  17. ディスクの障害が発生した場合にも、前記キュー・マネージャは、前記負荷が閾値を超えたものとみなして処理する、請求項10に記載のディスクへの書き込み方式を変更する
    方法。
  18. 請求項10から17のいずれかに記載の方法を実現するステップを、コンピュータに実行させるためのプログラム。
JP2005262155A 2005-09-09 2005-09-09 ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム Expired - Fee Related JP4378335B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005262155A JP4378335B2 (ja) 2005-09-09 2005-09-09 ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム
US11/517,684 US7490179B2 (en) 2005-09-09 2006-09-08 Device for, method of, and program for dynamically switching modes for writing transaction data into disk
CNB2006101291122A CN100430945C (zh) 2005-09-09 2006-09-08 动态切换将事务数据写入盘中的模式的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005262155A JP4378335B2 (ja) 2005-09-09 2005-09-09 ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム

Publications (2)

Publication Number Publication Date
JP2007072975A JP2007072975A (ja) 2007-03-22
JP4378335B2 true JP4378335B2 (ja) 2009-12-02

Family

ID=37858835

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005262155A Expired - Fee Related JP4378335B2 (ja) 2005-09-09 2005-09-09 ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム

Country Status (3)

Country Link
US (1) US7490179B2 (ja)
JP (1) JP4378335B2 (ja)
CN (1) CN100430945C (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2395432B1 (en) * 2005-04-20 2013-07-24 Axxana (Israel) Ltd. Remote data mirroring system
US9195397B2 (en) 2005-04-20 2015-11-24 Axxana (Israel) Ltd. Disaster-proof data recovery
EP2201456A4 (en) * 2007-10-08 2012-02-15 Axxana Israel Ltd SYSTEM FOR QUICK DATA RECOVERY
EP2286343A4 (en) * 2008-05-19 2012-02-15 Axxana Israel Ltd ROBUST DATA STORAGE IN THE EVENT OF REPLICATION ERRORS AND ROLLING DISASTERS
WO2010076755A2 (en) * 2009-01-05 2010-07-08 Axxana (Israel) Ltd Disaster-proof storage unit having transmission capabilities
CN102630319B (zh) 2009-09-17 2015-03-25 株式会社东芝 管理装置
US9021124B2 (en) 2009-12-02 2015-04-28 Axxana (Israel) Ltd. Distributed intelligent network
JP5515810B2 (ja) * 2010-02-05 2014-06-11 日本電気株式会社 負荷制御装置
JP5742542B2 (ja) * 2011-07-25 2015-07-01 富士通株式会社 ストレージ装置及びその負荷状態低減方法
CN103838547B (zh) * 2012-11-27 2018-05-11 中国电信股份有限公司 一种队列的管理方法和装置
US10769028B2 (en) 2013-10-16 2020-09-08 Axxana (Israel) Ltd. Zero-transaction-loss recovery for database systems
CA2882446A1 (en) * 2014-02-21 2015-08-21 Coho Data, Inc. Methods, systems and devices for parallel network interface data structures with differential data storage service capabilities
GB2533415B (en) * 2014-12-19 2022-01-19 Advanced Risc Mach Ltd Apparatus with at least one resource having thread mode and transaction mode, and method
US10489203B2 (en) * 2015-04-03 2019-11-26 Oracle International Corporation System and method for using an in-memory data grid to improve performance of a process defined by a process execution language in a SOA middleware environment
US10379958B2 (en) 2015-06-03 2019-08-13 Axxana (Israel) Ltd. Fast archiving for database systems
US10592326B2 (en) 2017-03-08 2020-03-17 Axxana (Israel) Ltd. Method and apparatus for data loss assessment
CN113535721B (zh) * 2018-08-31 2024-06-04 创新先进技术有限公司 一种数据写入方法及装置
EP3712899A1 (en) * 2019-03-21 2020-09-23 Siemens Healthcare GmbH Generation of a result image
CN110347482B (zh) * 2019-07-18 2021-07-23 哈尔滨汇拓投资中心(有限合伙) 基于OLTPShare的OLTP事务结合规则与队列模型改进方法
CN110908613B (zh) * 2019-11-28 2024-02-23 深信服科技股份有限公司 一种数据写命令处理方法、装置、电子设备及存储介质
CN113806322B (zh) * 2021-09-30 2024-06-25 北京蓝海医信科技有限公司 一种多类型日志记录***
CN116627352B (zh) * 2023-06-19 2024-03-08 深圳市青葡萄科技有限公司 一种分布式存储器下的数据管理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
JP2976780B2 (ja) 1992-12-07 1999-11-10 松下電器産業株式会社 情報記録再生装置
US5915129A (en) * 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
JPH0993265A (ja) * 1995-09-28 1997-04-04 Hitachi Ltd 分散型ネットワーク管理方法
US6085291A (en) 1995-11-06 2000-07-04 International Business Machines Corporation System and method for selectively controlling fetching and prefetching of data to a processor
US6260125B1 (en) * 1998-12-09 2001-07-10 Ncr Corporation Asynchronous write queues, reconstruction and check-pointing in disk-mirroring applications
US7039756B2 (en) * 2003-04-28 2006-05-02 Lsi Logic Corporation Method for use of ternary CAM to implement software programmable cache policies
CN1305265C (zh) * 2003-11-07 2007-03-14 清华大学 San***中基于负载自适应的异步远程镜像方法

Also Published As

Publication number Publication date
JP2007072975A (ja) 2007-03-22
CN100430945C (zh) 2008-11-05
US7490179B2 (en) 2009-02-10
US20070266197A1 (en) 2007-11-15
CN1928872A (zh) 2007-03-14

Similar Documents

Publication Publication Date Title
JP4378335B2 (ja) ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム
US7631214B2 (en) Failover processing in multi-tier distributed data-handling systems
US9916201B2 (en) Write performance in fault-tolerant clustered storage systems
JP6437656B2 (ja) ストレージ装置、ストレージシステム、ストレージシステムの制御方法
US8074222B2 (en) Job management device, cluster system, and computer-readable medium storing job management program
US5448718A (en) Method and system for time zero backup session security
JP5192226B2 (ja) 待機系計算機の追加方法、計算機及び計算機システム
US11068367B2 (en) Storage system and storage system control method
US20090157766A1 (en) Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
CN106104502B (zh) 用于存储***事务的***、方法和介质
WO2021057108A1 (zh) 一种读数据方法、写数据方法及服务器
US11449241B2 (en) Customizable lock management for distributed resources
WO2021082465A1 (zh) 一种保证数据一致性的方法及相关设备
JP2005338985A (ja) 記憶領域管理方法及びシステム
JP6028415B2 (ja) 仮想サーバ環境のデータ移行制御装置、方法、システム
US10929041B1 (en) Block-storage service supporting multi-attach
US20080301777A1 (en) Hot standby server system
EP3183675B1 (en) Systems and methods for highly-available file storage with fast online recovery
JP5154843B2 (ja) クラスタシステム、計算機、および障害回復方法
US20150169236A1 (en) System and method for supporting memory allocation control with push-back in a distributed data grid
US11500701B1 (en) Providing a global queue through replication
CN113687935A (zh) 一种基于超融合设计的云原生存储调度方式
US11080113B1 (en) Fifo queue replication
US11625180B1 (en) Fault tolerant reservation state distribution for multi-partition logical volumes
JP2004005113A (ja) 複数の実計算機上で動作する仮想計算機システム及びその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080121

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20080130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080515

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090106

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090108

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090716

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090901

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090914

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130918

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees