【文献】
中村 正弘,複製ファイルの非同期更新が分散データベースの中心技術に,日経エレクトロニクス,日本,日経BP社,1994年06月06日,第609号,pp. 101-110
(58)【調査した分野】(Int.Cl.,DB名)
プライマリデータベースにおいて、当該プライマリデータベースに対する1以上のデータベースレコードそれぞれの変更後の値を示すデータ変更要求をユーザから受信するステップと;
前記データ変更要求に応じて前記1以上のデータベースレコードの変更前の値を前記変更後の値へ変更するステップと;
前記データ変更要求に基づいて第1のログと第2のログとを生成するステップであって、
前記第2のログは前記変更後の値と前記変更前の値を備え、前記第1のログは、復元または同期に用いられ、前記変更後の値を備える、ステップと;
前記第1のログに永続化処理を実行して永続化記憶デバイスに格納するステップと;
前記データ変更要求に応じて前記プライマリデータベースにおける変更に成功したことを示す変更結果を返信するステップと;を備え、
前記変更結果を返信するステップの前に、
前記第1のログに対する永続化処理に応じて、前記変更結果を一時的に保留し、
前記第1のログに基づきセカンダリデータベースの変更を前記プライマリデータベースの変更と同期させるステップを更に備え、
前記第1のログに基づき前記セカンダリデータベースの変更と同期させるステップは、
前記セカンダリデータベースによって、前記プライマリデータベースにより同期される第1のログを受信するステップと、
前記セカンダリデータベースによって、受信した前記第1のログに永続化処理を実行するステップと、
前記第1のログを再生成するステップと、
データ変更操作を同期させ、前記再生成を通じてメモリ内に第2のログを生成するステップを更に備える、
処理をコンピュータシステムに実行可能とする1以上の命令を格納したコンピュータ読み取り可能な記憶媒体。
【発明を実施するための形態】
【0018】
本願の目的、技術的解決策、及び利点をより明確にするために、本願の実施及び対応する添付図面を参照して、本願の技術的解決策を明確且つ包括的に以下説明する。明らかに、記載される実施は、本願の実施の一部であって全てではない。本願の実施に基づき当業者が創造的に努力することなく獲得する他の全ての実施は、本願の保護範囲に包含される。
【0019】
図1は、本願の実施に係る、データベースのデータの変更要求処理方法を示す概略フローチャートである。
【0020】
図1の手順は、データベースによって、又はデータベースに属していないがデータベースに接続できる機能モジュールによって実行できる。データベース及び/又は機能モジュールが配置されているデバイス(装置)は、本願では限定されない。このデバイスとしては、サーバ又はクライアントとして機能する、パソコン、中型及び大型コンピュータ、コンピュータクラスタ、携帯電話、タブレット型コンピュータ、スマートウォッチ、車載型モバイルステーション等が挙げられるがこれらに限定されない。
【0021】
図1の手順は、以下のステップを含むことができる。
【0022】
S101.データベースに対するデータ変更要求を受信する。
【0023】
本願のこの実施では、データ変更要求は、データベース内のデータを変更するよう要求するためのものである。データベースのユーザは、この要求を手動で送信でき、又は自動化スクリプトを実行して自動的に送信できる。データ変更要求は、データ更新要求、データ削除要求、及びデータ追加要求のうちの少なくとも1つを含む。
【0024】
データ変更要求のフォーマットは、本願においては限定されず、構造化照会言語(Structured Query Language、SQL)ステートメントフォーマットであってもよく、データベースによってサポートされる他のフォーマットであってもよい。
【0025】
S102.データベース内の第2のデータを第1のデータへ変更し、データ変更要求に基づいて第1のログと第2のログとを生成する。ここで、第1のログは第1のデータを含み、第2のログは第2のデータを含む。
【0026】
本願のこの実施では、データ変更要求は、特定のデータ変更操作を実行するための要求を示すことができる。例えば、データ変更要求は、データベース内の第2のデータを第1のデータに変更するための要求を示す。当然ながら、実際には、データ変更要求はそれほど特定的ではない要求であってもよい。例えば、データ変更要求は、データベース内のデータの総量を半分に削減する要求などを示すことができる。削減対象データは、一定の方針(certain policies)に基づいてデータベースによって特定できる。
【0027】
本願のこの実施では、第1のデータ又は第2のデータをヌル(null)にすることができる。例えば、データ削除要求の場合、第2のデータはヌルではなく、第1のデータがヌルである;データ追加要求の場合、第1のデータはヌルではなく、第2のデータがヌルである;データ更新要求の場合、第1のデータも第2のデータもヌルではない;とすることができる。
【0028】
第1のデータと第2のデータとの内容は、本願では限定されず、データベースレコード、データテーブル、データインデックス、又はデータグラフのような任意のタイプのデータの一部又は全部であってよい。
【0029】
本願のこの実施では、データベースの復元又はプライマリ/セカンダリ同期がログに基づいて実行される必要がある場合、ログは少なくとも第1のデータを含む必要がある。第2のデータと、変更されたデータに関連するその他のデータとは、データベースの復元又はプライマリ/セカンダリ同期には不要であるため、ログから除外できる。本願の解決策では、このような思想に基づいて、従来技術における課題を軽減できる。従来技術では、1種類のログ(説明を簡単にするために完全ログと呼ぶ)しかなく、完全ログには第1のデータと第2のデータの両方が含まれる。本願の解決策は、2種類のログ、すなわち第1のログ及び第2のログを提供する。第1のログは、データベースの復元又はプライマリ/セカンダリ同期に特化し単純化されたログであってよい。好ましくは、第1のログは、第1のデータのみを含むことができる(その結果、第1のログのデータ量をできるだけ少なくすることができる)。第2のログは、完全ログ又は第1のログを補足するために用いられる不完全ログであってもよい。例えば、第2のログは、第2のデータと第1のデータとの両方を含むことができ、変更されたデータなどに関連する他のデータさえ含むことができる。あるいは、第2のログは、第2のデータのみを含むことができる。
【0030】
あるいは、本願のこの実施では、第2のログ又は第1のログと組み合わせた第2のログを、データベースの復元又はプライマリ/セカンダリ同期のために用いることができ、このデータベースの復元又はプライマリ/セカンダリ同期に加えて、例えば、データベース内のデータの変化に対してリアルタイムで分析を実行するタスクのために更に用いることができる。
【0031】
本願のこの実施では、ステップS102において「第2のデータを第1のデータに変更する」及び「第1のログと第2のログとを生成する」という2つのサブステップを実行する順序は限定されない。通常、変更操作が先ず実行され、次に、対応するログが生成される。しかし、実際には、先ずログが生成され、次に、対応する変更操作が実行されることで、変更操作が実行されるときに発生する電源障害などの例外によって引き起こされるログの消失を防ぐことができる。この場合、変更操作の実行中に電源障害などの例外が発生した場合でも、データベース内のデータの実際の状況に基づいてログをロールバックできる。ロールバックされたログから、含むべきログが失われたり、エラーのあるログや冗長なログが含まれたりすることがないよう保証することは有益である。
【0032】
S103.第1のログを永続化処理した後、データ変更要求に対応する変更結果を返信する。
【0033】
本願のこの実施では、ステップS102で生成された第1のログと第2のログは、メモリ内又はバッファ内で生成されるが、生成後は一時的な非安定状態にある。通常、この時点でデータベースを再起動する又は電源を切ると、生成された第1のログと生成された第2のログとが失われ、その後、データベースの復元やプライマリ/セカンダリ同期を実行できなくなる、又はログを用いる必要があるその他の機能を実施できない。このような事態を避けるために、先ず第1のログに対して永続化処理を実行した後、対応する変更結果をデータ変更要求の送信者へ返信して、少なくとも永続化処理が実行される第1のログを用いて、データベースの復元又はプライマリ/セカンダリ同期を実行できるよう保証する。
【0034】
本願のこの実施では、同様の理由で、第2のログに対して永続化処理を実行できる。しかし、第2のログに対する永続化処理も、データ変更要求処理手順のキーパス(key path)に置くことはできない。
図1に示す手順は、「第2のログに対する永続化処理の実行」を含まず、
図1に示す手順における何れのステップの実行も、「第2のログに対する永続化処理の実行」に基づく必要はない。
【0035】
例えば、メインのスレッド又は工程を用いて、
図1の手順を実行でき、別のスレッド(例えば、バックエンドスレッド)又は工程を用いて、第2のログに対して永続化処理を実行できる。この2つの働きは互いに干渉しない。
【0036】
本願のこの実施では、返信された変更結果に含まれる内容は限定されない。変更結果には、変更に成功したかどうかの記述のみを含めることができる、又は、変更後のデータの記述を含めることができる。
【0037】
注記すると、
図1に示す手順におけるステップは、同じデバイスによっても異なるデバイスによっても実行できる。例えば、ステップS101とステップS102とはデバイス1によって実行でき、ステップS103はデバイス2によって実行できる。別の実施例では、ステップS101はデバイス1によって実行でき、ステップS102とステップS103とはデバイス2によって実行できる。
【0038】
前述の方法によると、変更後のデータと、変更前のデータと、変更されたデータに関連する他のデータとを含む完全ログを生成する従来技術と比べると、本願の解決策では、必ずしも完全ではなく、内容が同一ではない2種類のログ、すなわち第1のログと第2のログとを、どのようなデータ変更要求に対しても生成できる。第1のデータは変更後のデータであり、第2のデータは変更前のデータである。第1のログは、第1のデータのみを含むことができ、第2のデータと変更されたデータに関連する他のデータとを含まない。第2のデータと、変更されたデータに関連する他のデータとを含まず変更後のデータのみに基づいて、データベース状態を復元でき、又はプライマリ/セカンダリ同期を実施できるので、第1のログに対して永続化処理が実行された後に変更結果をユーザへ返信できる。また、第1のログのデータ量が完全ログのデータ量より少ないので、永続化処理にかかる時間は少なくてすみ、その結果、データベースのデータ変更要求処理時間を短縮できる。したがって、従来技術における問題を軽減できる。
【0039】
更に、第2のログも本願の解決策において生成されるので、第2のログは、完全ログであってよい、又は、第1のログを補足するために用いられる不完全ログであってよい。したがって、従来技術におけるログと比べると、ログ全体の内容が不足することはなく、ログを生成するために消費されるリソースの量はほぼ同じである。従来技術におけるログに基づいて実施できる機能は、本願の解決策でも、依然、実施できる。
【0040】
前述の方法に基づいて、本願の実施は、前述の方法の実施解決策及び拡張解決策を更に提供し、これを以下説明する。
【0041】
本願のこの実施では、第1のログ又は第2のログに対して実行される永続化処理について上で説明した。理解を容易にするために、永続化処理について以下説明する。永続化処理は:ログを不揮発性記憶デバイスに格納するステップを含み;より具体的には、ログを特定のフォーマットのファイルに記録し、次いでそのファイルを不揮発性記憶デバイスに格納するステップを含むことができる。不揮発性記憶デバイスは、電源を切っても記憶されたデータが失われない記憶デバイス、例えば、ハードディスク、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリ等でよい。
【0042】
例えば、生成されたレコードをテキストで記録し、そのテキストをハードディスクに格納できる。
【0043】
本願のこの実施では、プライマリ/セカンダリデータベースの同期及びデータベースの復元に加え、ログをデータ分析などの他のシナリオで使えることが、前述の説明から分かる。第2のログを、複数のシナリオの実施で使用でき、詳細について以下説明する。
【0044】
いくつかのアプリケーションシナリオでは、データベースはデータ分析システムなどの外部システムに接続されている。データベースのログを、他の用途のために外部システムに提供できる。例としてデータ分析システムを用いる。データ分析システムは、データベースによって送信されたログに基づいてデータベース内のデータ変更についてリアルタイム又は非リアルタイムで分析を実行し、分析結果を関連ユーザ、組織等に提供できる。
【0045】
データ分析結果の正確性と包括性のために、データ分析システムでは、ログが、変更後のデータ(すなわち第1のデータ)と変更前のデータ(すなわち第2のデータ)とを含む必要があり、さらに他の関連データ(例えば、変更されたデータと同じデータベースレコードに属する他のデータ)をも含む必要がある。
【0046】
本願のこの実施では、第2のログはデータ分析システムの必要性を満たすことができる。第2のログが生成された後、又は第2のログに対して永続化処理が実行された後、第2のログをデータ分析システムへ送信でき、その結果、データ分析システムは第2のログに基づいてデータ分析を実行する。データ分析システムの分析内容は本願では限定しない。
【0047】
本願のこの実施では、本願の解決策のロバスト性(構造安定性)を更に向上させるために、第1のログに対して永続化処理が実行された後、変更結果を一時的に保留し、第1のログがセカンダリデータベース又は別のデバイスと同期した後に返信できる。そのため、セカンダリデータベースが変更を時間内に同期させるには好都合である。加えて、それは第1のログのバックアップと同等である。第1のログに対する永続化処理に用いられる記憶デバイスに障害がある場合でも、第1のログをセカンダリデータベース又は別のデバイスから、依然として復旧可能である。
【0048】
例えば、データベースがプライマリデータベースである場合、データ変更要求に対応する変更結果を返信するステップS103の前に、セカンダリデータベースが第1のログに基づいて変更を同期させるよう、第1のログをセカンダリデータベースと同期させるステップを更に実行できる。
【0049】
前述の分析によると、実際のアプリケーションシナリオでは、第1のログは第1のデータのみを含む単純化されたログであり、第2のログは少なくとも第1のデータと第2のデータとを含む完全ログである。
図2と
図3とに基づいて、従来技術における処理手順と本願の解決策における処理手順とを比較して分析する。
【0050】
図2は従来技術による、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。
図2の手順がプライマリデータベースによって実行される場合、手順は以下のステップを含むことができる。
【0051】
S201.プライマリデータベースが、ユーザによって送信されたデータ変更要求を受信する。
【0052】
S202.プライマリデータベースが、データ変更要求に基づいて、対応するデータ変更操作を実行する。
【0053】
S203.プライマリデータベースが、データ変更要求又は実行されたデータ変更操作に基づいて、メモリ内に第2のログを生成する。
【0054】
S204.プライマリデータベースが、生成された第2のログに対して永続化処理を実行する。
【0055】
S205.プライマリデータベースが、永続化処理を実行された第2のログを、セカンダリデータベースと同期させる。
【0056】
S206.プライマリデータベースが、変更に成功したことをユーザへ応答する。
【0057】
ステップS201乃至S205のいずれか1つにおいて例外が発生した場合には、例外が除去されるまでステップS206を実行しなくてもよい。
【0058】
図3は本願の実施に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。
図3の手順もプライマリデータベースによって実行される場合、その手順は以下のステップを含むことができる。
【0059】
S301.プライマリデータベースが、ユーザによって送信されたデータ変更要求を受信する。
【0060】
S302.プライマリデータベースが、データ変更要求に基づいて、対応するデータ変更操作を実行する。
【0061】
S303.プライマリデータベースが、データ変更要求又は実行されたデータ変更操作に基づいて、メモリ内に第1のログと第2のログとを生成する。
【0062】
S304.プライマリデータベースが、生成された第1のログに対して永続化処理を実行する。
【0063】
S305.プライマリデータベースが、永続化処理を実行された第1のログを、セカンダリデータベースと同期させる。
【0064】
S306.プライマリデータベースが、変更に成功したことをユーザへ応答する。
【0065】
ステップS301乃至S305のいずれか1つにおいて例外が発生した場合には、例外が除去されるまでステップS306を実行しなくてもよい。
【0066】
図2と
図3との手順の比較から分かるように、第1のログのデータ量は第2のログのデータ量よりも少ないため、従来技術と比較して、プライマリデータベースがユーザへ変更の成功を応答する前における、永続化処理を実行する必要があるログのデータ量を、本願の解決策において削減できる。そのため、データ変更要求処理時間を短縮できる。
【0067】
更に、
図2と
図3とにおける両手順において、プライマリデータベースはログをセカンダリデータベースと同期させる。ログの同期も、対応する帯域幅を占有し、対応する時間を費やす必要がある。第1のログのデータ量は第2のログのデータ量よりも少ないので、従来技術と比較して、ログの同期によって占有される帯域幅及び/又はログの同期に費やされる時間も、本願の解決策において低減できる。
【0068】
図4に示すように、本願の実施により、更に、実際のアプリケーションシナリオにおいてデータ分析システムなどの外部システムへログを送信するための手順を示す概略図が提供される。
図4の手順もプライマリデータベースによって実行される場合、以下のステップを含むことができる。
【0069】
S401.プライマリデータベースが、メモリ内に新しく生成された第2のログを検出する。
【0070】
S402.プライマリデータベースが、新たに生成された第2のログを取得する。
【0071】
S403.プライマリデータベースが、取得された第2のログに対して永続化処理を実行する。
【0072】
S404.プライマリデータベースが、第2のログを所定の外部システムへ送信する。
【0073】
本願のこの実施では、プライマリデータベースによって同期されたログを受信した後、セカンダリデータベースは、そのログに対して永続化処理を実行する、及び/又はそのログを外部システムへ送信する等の操作も実行できる。しかし、このような操作工程は、従来技術の工程とは異なる。セカンダリデータベースに関する操作について以下説明する。
【0074】
従来技術では、セカンダリデータベースは完全ログ(つまり、前述の例では第2のログ)を受信するので、受信したログに対して永続化処理を実行する、及び/又は受信したログを外部システムへ送信する等の操作を、直接、実行できる。
【0075】
本願の解決策では、セカンダリデータベースは単純化されたログ(すなわち、前述の例の第1のログ)を受信し、この受信されたログに対し、直接、永続化処理のみを実行できる。この受信されたログを外部システムへ送信することは適切ではない。実際には、セカンダリデータベースも完全ログを用いる必要があろう。したがって、セカンダリデータベースは、単純化されたログに基づいて対応の完全ログを取得でき、次いで、完全ログに対して永続化処理を実行できる、及び/又は完全ログを外部システムへ送信する等の操作を実行できる。そのようにして、プライマリデータベースとセカンダリデータベースとのログ間の一貫性を向上させることができる。このような思想に基づいて、データベースが第1のログをデータベースのセカンダリデータベースと同期させた後、セカンダリデータベースは:セカンダリデータベースが変更を同期し、第1のログに基づいて第2のログを生成するステップを実行できる。更に、セカンダリデータベースは:セカンダリデータベースが、同期によって取得された第1のログ及び/又は第1のログに基づいて生成された第2のログに対して永続化処理を実行するステップと;セカンダリデータベースが、第2のログを所定の外部システムへ送信するステップと;を実行できる。
【0076】
図5に示すように、本願の実施により、実際のアプリケーションシナリオにおいて(
図2乃至
図4のシナリオを用いることによって)プライマリデータベースによって同期された受信済の第1のログをセカンダリデータベースが処理する手順を示す概略図が提供される。
図5の手順がプライマリデータベースに対するセカンダリデータベースによって実行される場合、手順は以下のステップを含むことができる。
【0077】
S501.セカンダリデータベースが、プライマリデータベースによって同期された第1のログを受信する。
【0078】
S502.セカンダリデータベースが、受信した第1のログに対して永続化処理を実行する。
【0079】
S503.セカンダリデータベースが、第1のログをリプレイ(replay、再生成)する。
【0080】
S504.セカンダリデータベースがデータ変更操作を同期させ、リプレイを通してメモリ内に第2のログを生成する。
【0081】
S505.セカンダリデータベースが、第2のログに対して永続化処理を実行する。
【0082】
本願のこの実施では、上述のように、2種類のログ、すなわち第1のログと第2のログとを、何れのデータ変更要求に対しても生成できる。その次の2種類のログの読み出し速度を上げるために、永続化処理を実行する際に、第1のログと第2のログとを異なる不揮発性記憶デバイスに別々に記憶できる。したがって、2種類のログは、それぞれの記憶デバイスの性能(例えば、帯域幅や読み出し速度)に基づいて別々に読み出すことができ、並行に読み出すこともできる。
【0083】
本願のこの実施では、上述のように、完全ログ又は第2のログは、第1のデータと第2のデータとに加えて、変更データに関連する他のデータを含むことができる。通常、第1のデータと第2のデータとがそれぞれ少なくとも1つのデータベースレコードに属する場合、第2のログに更に含めることができる「変更されたデータに関連する他のデータ」は、第1のデータが属するデータベースレコード内の第1のデータ以外のデータ、及び/又は第2のデータが属するデータベースレコード内の第2のデータ以外のデータを含むが、これらに限定されない。
【0084】
容易に理解できるように、説明のための例として表1及び表2を用いる。
【表1】
【0085】
表1は、3つのデータベースレコード:a,b,cを含む、データベース内のデータテーブルの一部の内容である。各レコードにはnキーと値のペアが含まれ、nキーはそれぞれcolumn(列)_1からcolumn_nであり、各データベースレコードのキーに対応する値を表1に示す。説明を簡単にするために、キーと値のペアと、そのキーと値のペアが属するデータベースレコードの行番号とを<row>:<key、value>で示す。ここで、「key」はキーを示し、「value」は値を示し、及び「row」は、キーと値のペアが属するデータベースレコードの行番号を示す。
【0086】
データベースは、ユーザによって送信されたデータ変更要求を受信すると仮定する。データ変更要求に基づいて、<a>:<column_2、a_2>が、<a>:<column_2、a_2’>に変更され、<b>:<column_2、b_2>が、<b>:<column_2、b_2’>に変更される。表1を変更したものを下記表2に示す。
【表2】
【0087】
前述の例では、第1のデータは、<a>:<column_2、a_2’>、及び、<b>:<column_2、b_2’>であり、第2のデータは、<a>:<column_2、a_2>及び<b>:<column_2、b_2>である。
【0088】
変更されたデータに関連する他のデータは、レコードaとレコードbの変更されたデータ以外のデータ、つまり<a>:<column_1、a_1>、・・・、<a>:<column_n、a_n>、及び、<b>:<column_1、b_1>、・・・、<b>:<column_n、b_n>を含むことができる。
【0089】
生成された第1のログは、「<a>:<column_2、a_2‘>、及び、<b>:<column_2,b_2’>」と示された第1のデータのみを含むことができ、第2のデータと、変更されたデータに関連するその他のデータとは含まない。
【0090】
生成された第2のログは、「<a>:第2のデータ及び変更されたデータに関連するその他のデータ:<column_1、a_1>、<column_2、a_2>、・・・、<column_n、a_n>;第1のデータ:<column_2、a_2’>、及び<b>:第2のデータ及び変更されたデータに関連するその他のデータ:<column_1、a_1>、<column_2、a_2>、・・・、<column_n、a_n>;第1のデータ:<column_2、a_2’>」と示され、第1のデータだけでなく、第2のデータと変更されたデータに関連するその他のデータも含むことができる。
【0091】
前述の例のログに含まれる内容の表現形式は単なる例に過ぎず、本願を限定するものではないことは特に留意すべき事項である。実際には、その内容を他の形式で表すこともできる。
【0092】
図6に示すように、本願の実施は、本願の解決策をより直感的に理解できるよう、(
図2乃至
図4のシナリオを用いることによる)実際のアプリケーションシナリオにおける本願の解決策における端末間のインタラクション(対話、相互作用)を例示する概略図を更に提供する。
【0093】
4つの端末が主に
図6に含まれており、端末はそれぞれユーザ、プライマリデータベース、セカンダリデータベース、及びデータ分析システムである。
図6の(1)乃至(5)までの番号に対応するステップは、本願のこの実施において提供されるデータ変更要求処理方法の主要ステップであり、番号のないステップは二次的(補助的)ステップである。すべてのステップは、先に、それぞれ詳細に述べられており、簡略化のために詳細をここでは省略する。
【0094】
以上が本願の実施において提供されるデータベースのデータ変更要求処理方法である。
図7に示すように、本願の実施は、同じ考えに基づいて対応する装置を更に提供する。
【0095】
図7は本願の実施に係る、データベースのデータ変更要求処理装置を示す概略構造図である。この装置は:データベースに対するデータ変更要求を受信するよう構成された受信モジュール701と;データベース内の第2のデータを第1のデータへ変更し、データ変更要求に基づいて第1のログと第2のログとを生成するよう構成された処理モジュール702であって、第1のログは第1のデータを含み、第2のログは第2のデータを含む、処理モジュール702と;第1のログに対して永続化処理が実行された後に、データ変更要求に対応する変更結果を返信するよう構成された返信モジュール703と;を含む。
【0096】
オプションとして、第2のログは第1のデータを更に含む。
【0097】
オプションとして、処理モジュール702は、メモリ内に第1のログと第2のログとを生成するよう構成される。
【0098】
オプションとして、処理モジュール702は、第2のログに対して永続化処理を実行するよう更に構成される。
【0099】
オプションとして、装置は、第2のログをデータ分析システムに送信するよう構成される送信装置704を更に含み、それによりデータ分析システムは第2のログに基づいてデータ分析を実行する。
【0100】
オプションとして、データベースがプライマリデータベースである場合、装置は、返信モジュール703がデータ変更要求に対応する変更結果を返信する前に、セカンダリデータベースが第1のログに基づいて変更を同期するように、第1のログをデータベースのセカンダリデータベースと同期させるよう構成された同期モジュール705を更に含む。
【0101】
オプションとして、第1のデータと第2のデータとは、それぞれ少なくとも1つのデータベースレコードに属する。
【0102】
第2のログは、第1のデータが属するデータベースレコード内の第1のデータ以外のデータ、及び/又は第2のデータが属するデータベースレコード内の第2のデータ以外のデータを更に含む。
【0103】
オプションとして、永続化処理には、ログを不揮発性記憶デバイスに格納する処理が含まれる。
【0104】
オプションとして、永続化処理には、ログを不揮発性記憶デバイスに格納する処理が含まれる。
【0105】
第1のログと第2のログとは、永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される。
【0106】
オプションとして、データ変更要求はデータ更新要求、データ削除要求、又はデータ追加要求である。
【0107】
データ変更要求がデータ更新要求である場合、第1のデータも第2のデータもヌルではない;又は、データ変更要求がデータ削除要求である場合、第1のデータはヌルであり、第2のデータはヌルではない;又は、データ変更要求がデータ追加要求の場合、第1のデータはヌルではなく、第2のデータがヌルである。
【0108】
図7の装置は、データベース内に配置できる、又は、データベースに属さないがデータベースに接続できる機能モジュール上に配置できる。
【0109】
本願において提供される装置は、本願において提供される方法と1対1に対応する。したがって、装置及び方法は、同様の有益な技術的効果を奏する。本方法の有益な技術的効果については上で詳細に述べているので、装置の有益な技術的効果については、簡略化のためにここでは省略する。
【0110】
当業者は、本願の実施が方法、システム、又はコンピュータプログラム製品として提供できることを理解するはずである。そのため、本発明は、ハードウェアのみの実施、ソフトウェアのみの実施、又は、ソフトウェアとハードウェアとの組み合わせによる実施を用いることができる。さらに、本発明は、コンピュータで使用可能なプログラムコードを含んだ1台以上のコンピュータで使用可能な記憶媒体(ディスクメモリ、CD−ROM、光学メモリ等を含むがこれに限定されない)上で実施されるコンピュータプログラム製品を使用できる。
【0111】
本発明は、本願の実施に係る方法、デバイス(システム)、コンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明されている。フローチャート及び/又はブロック図内の各プロセス及び/又は各ブロック、並びにフローチャート及び/又はブロック図内のプロセス及び/又はブロックの組み合わせを実施するために、コンピュータプログラム命令を使用することができることを理解されたい。このコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はあらゆるその他のプログラムマブルデータ処理デバイスに、マシンを生成するために提供されることができ、これにより、コンピュータ、又はあらゆるその他のプログラムマブルデータ処理デバイスのプロセッサが、フローチャートの1つ以上のフローにおける、及び/又は、ブロック図の1つ以上のブロックにおける、特定の機能を実施するデバイスを生成できるようになる。
【0112】
このコンピュータプログラム命令を、コンピュータ又はあらゆるその他のプログラマブルデータ処理デバイスに特定の方法で機能するように命令することができるコンピュータ読取可能なメモリに記憶して、これらのコンピュータ読取可能なメモリに記憶された命令が、命令装置を含むアーチファクトを作り出すようにすることができる。この命令装置は、フローチャート内の1つ以上のフローにおける、及び/又はブロック図内の1つ以上のブロックにおける特定の機能を実施する。
【0113】
このコンピュータプログラム命令をコンピュータ又はその他のプログラマブルデータ処理デバイスにロードして、コンピュータ又はその他のプログラムマブルデバイス上で一連の操作及びステップが実行されるようにし、コンピュータで実施される処理を生成することができる。これにより、コンピュータ又はその他のプログラムマブルデバイス上で実行される命令が、フローチャート内の1つ以上のフロー及び/又はブロック図内の1つ以上のブロックにおける特定の機能を実施するデバイスを提供することを可能とする。
【0114】
典型的な構成では、コンピューティングデバイスは1つ以上のプロセッサ(CPUs)、入出力インターフェース、ネットワークインターフェース、及びメモリを含む。
【0115】
メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、及び/又はリードオンリーメモリ(ROM)やフラッシュメモリ(flash RAM)のようなコンピュータ読取可能な媒体を含んでよい。メモリはコンピュータ読取可能な媒体の一例である。
【0116】
コンピュータ読取可能な媒体には、任意の方法又は技術を用いて情報を記憶できる、永続的、非永続的、移動可能な、移動不能な媒体が含まれる。この情報はコンピュータ読取可能な命令、データ構造、プログラムモジュール、又はその他のデータであってよい。コンピュータの記憶媒体の例として、コンピューティングデバイスによってアクセスできる情報を記憶するために用いることが可能な、相変化ランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別タイプのランダムアクセスメモリ、リードオンリーメモリ(ROM)、電気的に消去可能でプログラム可能なROM(EEPROM)、フラッシュメモリ、又は別のメモリ技術、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、又は別の光学記憶装置、カセット、磁気テープ、テープ、ディスクストレージ、他の磁気的記憶装置、又は他の任意の非伝送媒体があるが、これに限定されない。本願の定義に基づき、コンピュータ読取可能な媒体は、変調されたデータ信号及び搬送波のような一時的な媒体(transitory media)を含まない。
【0117】
さらに、用語「含む」、「含有する」、又はこれらのその他任意の応用形は、非限定的な包含を網羅するものであるため、一連の要素を含んだ工程、方法、物品、デバイスはこれらの要素を含むだけでなく、ここで明確に挙げていないその他の要素をも含む、あるいは、このような工程、方法、物品、デバイスに固有の要素をさらに含むことができる点に留意することが重要である。「(1つの)〜を含む」との用語を付けて示された要素は、それ以上の制約がなければ、その要素を含んだ工程、方法、商品、デバイス内に別の同一の要素をさらに含むことを排除しない。
【0118】
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
以下、本発明の実施の態様の例を列挙する。
[第1の局面]
データベースのデータ変更要求処理方法であって:
データベースに対するデータ変更要求を受信するステップと;
前記データベース内の第2のデータを第1のデータへ変更し、前記データ変更要求に基づいて第1のログと第2のログとを生成するステップであって、前記第1のログは前記第1のデータを備え、前記第2のログは前記第2のデータを備える、ステップと;
前記第1のログに永続化処理を実行した後、前記データ変更要求に対応する変更結果を返信するステップと;を備える、
データベースのデータ変更要求処理方法。
[第2の局面]
前記第2のログは前記第1のデータを更に備える、
第1の局面に記載の方法。
[第3の局面]
第1のログと第2のログとを生成する前記ステップは:
前記第1のログと前記第2のログとをメモリ内に生成するステップを備える、
第2の局面に記載の方法。
[第4の局面]
前記第2のログに永続化処理を実行するステップを更に備える、
第2の局面に記載の方法。
[第5の局面]
データ分析システムが前記第2のログに基づいてデータ分析を実行するように、前記第2のログを前記データ分析システムへ送信するステップを更に備える、
第2の局面に記載の方法。
[第6の局面]
前記データベースがプライマリデータベースである場合、前記データ変更要求に対応する変更結果を返信する前記ステップの前に:
前記データベースのセカンダリデータベースが前記第1のログに基づいて前記変更を同期させるように、前記第1のログを前記データベースの前記セカンダリデータベースと同期させるステップを更に備える、
第2の局面に記載の方法。
[第7の局面]
前記第1のログを前記データベースの前記セカンダリデータベースと同期させる前記ステップの後に:
前記セカンダリデータベースによって、前記変更を同期させ、前記第1のログに基づいて前記第2のログを生成するステップを更に備える、
第6の局面に記載の方法。
[第8の局面]
同期を通して得られた前記第1のログ及び/又は前記第1のログに基づいて生成された前記第2のログに対して永続化処理を、前記セカンダリデータベースによって実行するステップを更に備える、
第7の局面に記載の方法。
[第9の局面]
前記第1のデータと前記第2のデータとはそれぞれ、少なくとも1つのデータベースレコードに属し;
前記第2のログは、前記第1のデータが属する前記データベースレコード内の前記第1のデータ以外のデータ、及び/又は前記第2のデータが属する前記データベースレコード内の前記第2のデータ以外のデータを更に備える、
第1乃至5の局面のいずれかに記載の方法。
[第10の局面]
前記永続化処理は:
ログを不揮発性記憶デバイスに格納するステップを備える、
第1乃至8の局面のいずれかに記載の方法。
[第11の局面]
前記永続化処理は:
ログを不揮発性記憶デバイスに格納するステップを備え;
前記第1のログと前記第2のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスへ別々に格納される、
第1乃至4の局面のいずれかに記載の方法。
[第12の局面]
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり;
前記データ変更要求がデータ更新要求である場合は、前記第1のデータも前記第2のデータもヌルではない;又は
前記データ変更要求がデータ削除要求である場合は、前記第1のデータはヌルであり、前記第2のデータはヌルではない;又は
前記データ変更要求がデータ追加要求である場合は、前記第1のデータはヌルではなく、前記第2のデータがヌルである、
第1乃至8の局面のいずれかに記載の方法。
[第13の局面]
データベースのデータ変更要求処理装置であって:
データベースに対するデータ変更要求を受信するよう構成された受信モジュールと;
前記データベース内の第2のデータを第1のデータへ変更し、前記データ変更要求に基づいて第1のログと第2のログとを生成するよう構成された処理モジュールであって、前記第1のログは前記第1のデータを備え、前記第2のログは前記第2のデータを備える、前記処理モジュールと;
前記第1のログに対して永続化処理が実行された後に、前記データ変更要求に対応する変更結果を返信するよう構成された返信モジュールと;を備える、
データベースのデータ変更要求処理装置。
[第14の局面]
前記第2のログは前記第1のデータを更に備える、
第13の局面に記載の装置。
[第15の局面]
前記処理モジュールは、メモリ内に前記第1のログと前記第2のログとを生成するよう構成される、
第14の局面に記載の装置。
[第16の局面]
前記処理モジュールは、前記第2のログに対して永続化処理を実行するように更に構成される、
第14の局面に記載の装置。
[第17の局面]
データ分析システムが前記第2のログに基づいてデータ分析を実行するように、前記第2のログを前記データ分析システムへ送信するよう構成された送信装置を更に備える、
第14の局面に記載の装置。
[第18の局面]
前記データベースがプライマリデータベースである場合:
前記返信モジュールが前記データ変更要求に対応する前記変更結果を返信する前に、セカンダリデータベースが前記第1のログに基づいて前記変更を同期させるように、前記第1のログを前記データベースの前記セカンダリデータベースと同期させるよう構成された同期モジュールを更に備える、
第14の局面に記載の装置。
[第19の局面]
前記第1のデータと前記第2のデータとはそれぞれ少なくとも1つのデータベースレコードに属し;
前記第2のログは、前記第1のデータが属する前記データベースレコード内の前記第1のデータ以外のデータ、及び/又は、前記第2のデータが属する前記データベースレコード内の前記第2のデータ以外のデータを更に備える、
第13乃至18の局面のいずれかに記載の装置。
[第20の局面]
前記永続化処理は:
ログを不揮発性記憶デバイスに格納する処理を備える、
第13乃至18の局面のいずれかに記載の装置。
[第21の局面]
前記永続化処理は、ログを不揮発性記憶デバイスに格納する処理を備え;
前記第1のログと前記第2のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される、
第13乃至18の局面のいずれかに記載の装置。
[第22の局面]
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり;
前記データ変更要求がデータ更新要求である場合は、前記第1のデータも前記第2のデータもヌルではない;又は、
前記データ変更要求がデータ削除要求である場合は、前記第1のデータはヌルであり、前記第2のデータはヌルではない;又は
前記データ変更要求がデータ追加要求である場合は、前記第1のデータはヌルではなく、前記第2のデータがヌルである、
第13乃至18の局面のいずれかに記載の装置。