(57)【要約】  本願は、データベースのデータ変更要求処理方法及び装置を開示し、データベースのデータ変更要求処理モードが比較的長い時間を要するという従来技術における問題を解決する。本方法は：データベースに対するデータ変更要求を受信するステップと；データベース内の第２のデータを第１のデータへ変更し、データ変更要求に基づいて第１のログと第２のログとを生成するステップであって、第１のログは第１のデータを含み、第２のログは第の２データを含む、ステップと；第１のログに対して永続化処理を実行した後に、データ変更要求に対応する変更結果を返信するステップと；を含む。
2019527883.tif 000002
【特許請求の範囲】
【請求項１】
データベースのデータ変更要求処理方法であって：
データベースに対するデータ変更要求を受信するステップと；
前記データベース内の第２のデータを第１のデータへ変更し、前記データ変更要求に基づいて第１のログと第２のログとを生成するステップであって、前記第１のログは前記第１のデータを備え、前記第２のログは前記第２のデータを備える、ステップと；
前記第１のログに永続化処理を実行した後、前記データ変更要求に対応する変更結果を返信するステップと；を備える、
データベースのデータ変更要求処理方法。
【請求項２】
前記第２のログは前記第１のデータを更に備える、
請求項１に記載の方法。
【請求項３】
第１のログと第２のログとを生成する前記ステップは：
前記第１のログと前記第２のログとをメモリ内に生成するステップを備える、
請求項２に記載の方法。
【請求項４】
前記第２のログに永続化処理を実行するステップを更に備える、
請求項２に記載の方法。
【請求項５】
データ分析システムが前記第２のログに基づいてデータ分析を実行するように、前記第２のログを前記データ分析システムへ送信するステップを更に備える、
請求項２に記載の方法。
【請求項６】
前記データベースがプライマリデータベースである場合、前記データ変更要求に対応する変更結果を返信する前記ステップの前に：
前記データベースのセカンダリデータベースが前記第１のログに基づいて前記変更を同期させるように、前記第１のログを前記データベースの前記セカンダリデータベースと同期させるステップを更に備える、
請求項２に記載の方法。
【請求項７】
前記第１のログを前記データベースの前記セカンダリデータベースと同期させる前記ステップの後に：
前記セカンダリデータベースによって、前記変更を同期させ、前記第１のログに基づいて前記第２のログを生成するステップを更に備える、
請求項６に記載の方法。
【請求項８】
同期を通して得られた前記第１のログ及び／又は前記第１のログに基づいて生成された前記第２のログに対して永続化処理を、前記セカンダリデータベースによって実行するステップを更に備える、
請求項７に記載の方法。
【請求項９】
前記第１のデータと前記第２のデータとはそれぞれ、少なくとも１つのデータベースレコードに属し；
前記第２のログは、前記第１のデータが属する前記データベースレコード内の前記第１のデータ以外のデータ、及び／又は前記第２のデータが属する前記データベースレコード内の前記第２のデータ以外のデータを更に備える、
請求項１乃至請求項５のいずれか１項に記載の方法。
【請求項１０】
前記永続化処理は：
ログを不揮発性記憶デバイスに格納するステップを備える、
請求項１乃至請求項８のいずれか１項に記載の方法。
【請求項１１】
前記永続化処理は：
ログを不揮発性記憶デバイスに格納するステップを備え；
前記第１のログと前記第２のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスへ別々に格納される、
請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項１２】
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり；
前記データ変更要求がデータ更新要求である場合は、前記第１のデータも前記第２のデータもヌルではない；又は
前記データ変更要求がデータ削除要求である場合は、前記第１のデータはヌルであり、前記第２のデータはヌルではない；又は
前記データ変更要求がデータ追加要求である場合は、前記第１のデータはヌルではなく、前記第２のデータがヌルである、
請求項１乃至請求項８のいずれか１項に記載の方法。
【請求項１３】
データベースのデータ変更要求処理装置であって：
データベースに対するデータ変更要求を受信するよう構成された受信モジュールと；
前記データベース内の第２のデータを第１のデータへ変更し、前記データ変更要求に基づいて第１のログと第２のログとを生成するよう構成された処理モジュールであって、前記第１のログは前記第１のデータを備え、前記第２のログは前記第２のデータを備える、前記処理モジュールと；
前記第１のログに対して永続化処理が実行された後に、前記データ変更要求に対応する変更結果を返信するよう構成された返信モジュールと；を備える、
データベースのデータ変更要求処理装置。
【請求項１４】
前記第２のログは前記第１のデータを更に備える、
請求項１３に記載の装置。
【請求項１５】
前記処理モジュールは、メモリ内に前記第１のログと前記第２のログとを生成するよう構成される、
請求項１４に記載の装置。
【請求項１６】
前記処理モジュールは、前記第２のログに対して永続化処理を実行するように更に構成される、
請求項１４に記載の装置。
【請求項１７】
データ分析システムが前記第２のログに基づいてデータ分析を実行するように、前記第２のログを前記データ分析システムへ送信するよう構成された送信装置を更に備える、
請求項１４に記載の装置。
【請求項１８】
前記データベースがプライマリデータベースである場合：
前記返信モジュールが前記データ変更要求に対応する前記変更結果を返信する前に、セカンダリデータベースが前記第１のログに基づいて前記変更を同期させるように、前記第1のログを前記データベースの前記セカンダリデータベースと同期させるよう構成された同期モジュールを更に備える、
請求項１４に記載の装置。
【請求項１９】
前記第１のデータと前記第２のデータとはそれぞれ少なくとも１つのデータベースレコードに属し；
前記第２のログは、前記第１のデータが属する前記データベースレコード内の前記第１のデータ以外のデータ、及び／又は、前記第２のデータが属する前記データベースレコード内の前記第２のデータ以外のデータを更に備える、
請求項１３乃至請求項１８のいずれか１項に記載の装置。
【請求項２０】
前記永続化処理は：
ログを不揮発性記憶デバイスに格納する処理を備える、
請求項１３乃至請求項１８のいずれか１項に記載の装置。
【請求項２１】
前記永続化処理は、ログを不揮発性記憶デバイスに格納する処理を備え；
前記第１のログと前記第２のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される、
請求項１３乃至請求項１８のいずれか１項に記載の装置。
【請求項２２】
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり；
前記データ変更要求がデータ更新要求である場合は、前記第１のデータも前記第２のデータもヌルではない；又は、
前記データ変更要求がデータ削除要求である場合は、前記第１のデータはヌルであり、前記第２のデータはヌルではない；又は
前記データ変更要求がデータ追加要求である場合は、前記第１のデータはヌルではなく、前記第２のデータがヌルである、
請求項１３乃至請求項１８のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はデータベース技術の分野に関し、特に、データベースのデータ変更要求処理方法及び装置に関する。
【背景技術】
【０００２】
データベースはサーバ上で作動する一連のソフトウェアであり、これを用いて大量のデータを記憶し、照会（クエリ）し、管理する。データベースログは、データベースで用いられる記憶内容であり、例えばデータ変更操作等、データベースで発生した操作を記録するために用いることができる。データベースを再起動すると、ログを用いて以前の通常作動状態を復元できる。データベースがログを別のデータベースへ送信する場合、別のデータベースは受信したログを用いて、ログを送信したデータベースと同一のコピーを復元することもできる。これが、プライマリ／セカンダリデータベースの同期方法である。ログには、変更後のデータと変更前のデータとが含まれ、シナリオによっては、変更されたデータなどに関連する他のデータも含まれる。
【０００３】
従来技術において、ユーザはデータベースへデータ変更要求を送信できる。データベースは、それに対応してデータを変更し、データ変更要求に基づいてログを生成し、生成されたログに対して永続化処理（ｐｅｒｓｉｓｔｅｎｔ  ｐｒｏｃｅｓｓｉｎｇ）を実行し（例えば、生成されたログをハードディスクに格納し）、次いで、データ変更要求に対応する変更結果をユーザへ返信する（例えば、変更に成功したことをユーザへ通知する）。生成されたログは通常は一時的な状態であり、永続化処理を実行することは電源障害（停電）や再起動によって引き起こされる偶発的な消失を防ぐためのものであることは、特に留意すべき事項である。更に、データベースがセカンダリデータベースを有する場合、データベースは、先ず、生成されたログをセカンダリデータベースと同期させ、次に、データ変更要求に対応する変更結果を返信する。
【０００４】
しかし、生成されたログに対する永続化処理の実行、又は生成されたログのセカンダリデータベースとの同期には、共に多くの時間を要する。その結果、従来技術におけるデータベースのデータ変更要求処理モードには比較的長い時間がかかることになる。
【発明の概要】
【０００５】
本願の実施は、データベースのデータ変更要求処理方法及び装置を提供し、データベースのデータ変更要求処理モードに比較的長い時間がかかるという、従来技術における課題を解決する。
【０００６】
本願の実施では以下の技術的解決策が用いられる。
【０００７】
本願の実施は、データベースのデータ変更要求処理方法を提供し：データベースに対するデータ変更要求を受信するステップと；前記データベース内の第２のデータを第１のデータへ変更し、前記データ変更要求に基づいて第１のログと第２のログとを生成するステップであって、前記第１のログは前記第１のデータを含み、前記第２のログは前記第２のデータを含む、ステップと；前記第１のログに永続化処理を実行した後、前記データ変更要求に対応する変更結果を返信するステップと；を含む。
【０００８】
本願の実施は、データベースのデータ変更要求処理装置を提供し：データベースに対するデータ変更要求を受信するよう構成された受信モジュールと；前記データベース内の第２のデータを第１のデータへ変更し、前記データ変更要求に基づいて第１のログと第２のログとを生成するよう構成された処理モジュールであって、前記第１のログは前記第１のデータを含み、前記第２のログは前記第２のデータを含む、前記処理モジュールと；前記第１のログに対して永続化処理が実行された後に、前記データ変更要求に対応する変更結果を返信するよう構成された返信モジュールと；を含む。
【０００９】
本願の実施において用いられる少なくとも１つの技術的解決策は、以下の有益な効果を奏する。変更後のデータと、変更前のデータと、変更されたデータに関連する他のデータとを含む完全ログを生成する従来技術と比べると、本願の解決策では、必ずしも完全ではなく内容が同一ではない２種類のログ、すなわち第１のログと第２のログを、どのようなデータ変更要求に対しても生成できる。第１のデータは変更後のデータであり、第２のデータは変更前のデータである。第１のログは、第１のデータのみを含み、第２のデータと変更されたデータに関連する他のデータとを含まなくてもよい。第２のデータと変更されたデータに関連する他のデータとを含まずに変更後のデータのみに基づいて、データベース状態を復元できる、又は、プライマリ／セカンダリ同期を実施できるので、第１のログに対して永続化処理が実行された後に変更結果をユーザへ返信できる。また、第１のログのデータ量が完全ログのデータ量より少ないので、永続化処理に要する時間が少なくてすみ、その結果、データベースのデータ変更要求処理時間を短縮できる。したがって、従来技術における課題を部分的又は包括的に軽減できる。
【図面の簡単な説明】
【００１０】
ここで説明する添付図面は、本願の更なる理解の提供を意図しており、本願の一部を構成することを意図している。本願の例示の実施及びその説明は、本願を説明することを意図しており、本願に対する限定を構成するものではない。
【００１１】
【図１】図１は、本願の実施に係る、データベースのデータ変更要求処理方法を示す概略フローチャートである。
【００１２】
【図２】図２は、従来技術に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。
【００１３】
【図３】図３は、本願の実施に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。
【００１４】
【図４】図４は、本願の実施に係る、実際のアプリケーションシナリオにおけるデータ分析システムなどの外部システムへログを送信するための手順を示す概略図である。
【００１５】
【図５】図５は、本願の実施に係る、実際のアプリケーションシナリオにおいて、セカンダリデータベースがプライマリデータベースによって同期された受信済みの第１のログを処理する手順を示す概略図である。
【００１６】
【図６】図６は、本願の実施に係る、（図２乃至図４のシナリオを用いることによる）実際のアプリケーションシナリオにおける本願の解決策での端末間の相互作用を示す概略図である。
【００１７】
【図７】図７は、本願の実施に係る、データベースのデータ変更要求処理装置を示す概略構造図である。
【発明を実施するための形態】
【００１８】
本願の目的、技術的解決策、及び利点をより明確にするために、本願の実施及び対応する添付図面を参照して、本願の技術的解決策を明確且つ包括的に以下説明する。明らかに、記載される実施は、本願の実施の一部であって全てではない。本願の実施に基づき当業者が創造的に努力することなく獲得する他の全ての実施は、本願の保護範囲に包含される。
【００１９】
図１は、本願の実施に係る、データベースのデータの変更要求処理方法を示す概略フローチャートである。
【００２０】
図１の手順は、データベースによって、又はデータベースに属していないがデータベースに接続できる機能モジュールによって実行できる。データベース及び／又は機能モジュールが配置されているデバイス（装置）は、本願では限定されない。このデバイスとしては、サーバ又はクライアントとして機能する、パソコン、中型及び大型コンピュータ、コンピュータクラスタ、携帯電話、タブレット型コンピュータ、スマートウォッチ、車載型モバイルステーション等が挙げられるがこれらに限定されない。
【００２１】
図１の手順は、以下のステップを含むことができる。
【００２２】
Ｓ１０１．データベースに対するデータ変更要求を受信する。
【００２３】
本願のこの実施では、データ変更要求は、データベース内のデータを変更するよう要求するためのものである。データベースのユーザは、この要求を手動で送信でき、又は自動化スクリプトを実行して自動的に送信できる。データ変更要求は、データ更新要求、データ削除要求、及びデータ追加要求のうちの少なくとも１つを含む。
【００２４】
データ変更要求のフォーマットは、本願においては限定されず、構造化照会言語（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ、ＳＱＬ）ステートメントフォーマットであってもよく、データベースによってサポートされる他のフォーマットであってもよい。
【００２５】
Ｓ１０２．データベース内の第２のデータを第１のデータへ変更し、データ変更要求に基づいて第１のログと第２のログとを生成する。ここで、第１のログは第１のデータを含み、第２のログは第２のデータを含む。
【００２６】
本願のこの実施では、データ変更要求は、特定のデータ変更操作を実行するための要求を示すことができる。例えば、データ変更要求は、データベース内の第２のデータを第１のデータに変更するための要求を示す。当然ながら、実際には、データ変更要求はそれほど特定的ではない要求であってもよい。例えば、データ変更要求は、データベース内のデータの総量を半分に削減する要求などを示すことができる。削減対象データは、一定の方針（ｃｅｒｔａｉｎ  ｐｏｌｉｃｉｅｓ）に基づいてデータベースによって特定できる。
【００２７】
本願のこの実施では、第１のデータ又は第２のデータをヌル（ｎｕｌｌ）にすることができる。例えば、データ削除要求の場合、第２のデータはヌルではなく、第１のデータがヌルである；データ追加要求の場合、第１のデータはヌルではなく、第２のデータがヌルである；データ更新要求の場合、第１のデータも第２のデータもヌルではない；とすることができる。
【００２８】
第１のデータと第２のデータとの内容は、本願では限定されず、データベースレコード、データテーブル、データインデックス、又はデータグラフのような任意のタイプのデータの一部又は全部であってよい。
【００２９】
本願のこの実施では、データベースの復元又はプライマリ／セカンダリ同期がログに基づいて実行される必要がある場合、ログは少なくとも第１のデータを含む必要がある。第２のデータと、変更されたデータに関連するその他のデータとは、データベースの復元又はプライマリ／セカンダリ同期には不要であるため、ログから除外できる。本願の解決策では、このような思想に基づいて、従来技術における課題を軽減できる。従来技術では、１種類のログ（説明を簡単にするために完全ログと呼ぶ）しかなく、完全ログには第１のデータと第２のデータの両方が含まれる。本願の解決策は、２種類のログ、すなわち第１のログ及び第２のログを提供する。第１のログは、データベースの復元又はプライマリ／セカンダリ同期に特化し単純化されたログであってよい。好ましくは、第１のログは、第１のデータのみを含むことができる（その結果、第１のログのデータ量をできるだけ少なくすることができる）。第２のログは、完全ログ又は第１のログを補足するために用いられる不完全ログであってもよい。例えば、第２のログは、第２のデータと第１のデータとの両方を含むことができ、変更されたデータなどに関連する他のデータさえ含むことができる。あるいは、第２のログは、第２のデータのみを含むことができる。
【００３０】
あるいは、本願のこの実施では、第２のログ又は第１のログと組み合わせた第２のログを、データベースの復元又はプライマリ／セカンダリ同期のために用いることができ、このデータベースの復元又はプライマリ／セカンダリ同期に加えて、例えば、データベース内のデータの変化に対してリアルタイムで分析を実行するタスクのために更に用いることができる。
【００３１】
本願のこの実施では、ステップＳ１０２において「第２のデータを第１のデータに変更する」及び「第１のログと第２のログとを生成する」という２つのサブステップを実行する順序は限定されない。通常、変更操作が先ず実行され、次に、対応するログが生成される。しかし、実際には、先ずログが生成され、次に、対応する変更操作が実行されることで、変更操作が実行されるときに発生する電源障害などの例外によって引き起こされるログの消失を防ぐことができる。この場合、変更操作の実行中に電源障害などの例外が発生した場合でも、データベース内のデータの実際の状況に基づいてログをロールバックできる。ロールバックされたログから、含むべきログが失われたり、エラーのあるログや冗長なログが含まれたりすることがないよう保証することは有益である。
【００３２】
Ｓ１０３．第１のログを永続化処理した後、データ変更要求に対応する変更結果を返信する。
【００３３】
本願のこの実施では、ステップＳ１０２で生成された第１のログと第２のログは、メモリ内又はバッファ内で生成されるが、生成後は一時的な非安定状態にある。通常、この時点でデータベースを再起動する又は電源を切ると、生成された第１のログと生成された第２のログとが失われ、その後、データベースの復元やプライマリ／セカンダリ同期を実行できなくなる、又はログを用いる必要があるその他の機能を実施できない。このような事態を避けるために、先ず第１のログに対して永続化処理を実行した後、対応する変更結果をデータ変更要求の送信者へ返信して、少なくとも永続化処理が実行される第１のログを用いて、データベースの復元又はプライマリ／セカンダリ同期を実行できるよう保証する。
【００３４】
本願のこの実施では、同様の理由で、第２のログに対して永続化処理を実行できる。しかし、第２のログに対する永続化処理も、データ変更要求処理手順のキーパス（ｋｅｙ  ｐａｔｈ）に置くことはできない。図１に示す手順は、「第２のログに対する永続化処理の実行」を含まず、図１に示す手順における何れのステップの実行も、「第２のログに対する永続化処理の実行」に基づく必要はない。
【００３５】
例えば、メインのスレッド又は工程を用いて、図１の手順を実行でき、別のスレッド（例えば、バックエンドスレッド）又は工程を用いて、第２のログに対して永続化処理を実行できる。この２つの働きは互いに干渉しない。
【００３６】
本願のこの実施では、返信された変更結果に含まれる内容は限定されない。変更結果には、変更に成功したかどうかの記述のみを含めることができる、又は、変更後のデータの記述を含めることができる。
【００３７】
注記すると、図１に示す手順におけるステップは、同じデバイスによっても異なるデバイスによっても実行できる。例えば、ステップＳ１０１とステップＳ１０２とはデバイス１によって実行でき、ステップＳ１０３はデバイス２によって実行できる。別の実施例では、ステップＳ１０１はデバイス１によって実行でき、ステップＳ１０２とステップＳ１０３とはデバイス２によって実行できる。
【００３８】
前述の方法によると、変更後のデータと、変更前のデータと、変更されたデータに関連する他のデータとを含む完全ログを生成する従来技術と比べると、本願の解決策では、必ずしも完全ではなく、内容が同一ではない２種類のログ、すなわち第１のログと第２のログとを、どのようなデータ変更要求に対しても生成できる。第１のデータは変更後のデータであり、第２のデータは変更前のデータである。第１のログは、第１のデータのみを含むことができ、第２のデータと変更されたデータに関連する他のデータとを含まない。第２のデータと、変更されたデータに関連する他のデータとを含まず変更後のデータのみに基づいて、データベース状態を復元でき、又はプライマリ／セカンダリ同期を実施できるので、第１のログに対して永続化処理が実行された後に変更結果をユーザへ返信できる。また、第１のログのデータ量が完全ログのデータ量より少ないので、永続化処理にかかる時間は少なくてすみ、その結果、データベースのデータ変更要求処理時間を短縮できる。したがって、従来技術における問題を軽減できる。
【００３９】
更に、第２のログも本願の解決策において生成されるので、第２のログは、完全ログであってよい、又は、第１のログを補足するために用いられる不完全ログであってよい。したがって、従来技術におけるログと比べると、ログ全体の内容が不足することはなく、ログを生成するために消費されるリソースの量はほぼ同じである。従来技術におけるログに基づいて実施できる機能は、本願の解決策でも、依然、実施できる。
【００４０】
前述の方法に基づいて、本願の実施は、前述の方法の実施解決策及び拡張解決策を更に提供し、これを以下説明する。
【００４１】
本願のこの実施では、第１のログ又は第２のログに対して実行される永続化処理について上で説明した。理解を容易にするために、永続化処理について以下説明する。永続化処理は：ログを不揮発性記憶デバイスに格納するステップを含み；より具体的には、ログを特定のフォーマットのファイルに記録し、次いでそのファイルを不揮発性記憶デバイスに格納するステップを含むことができる。不揮発性記憶デバイスは、電源を切っても記憶されたデータが失われない記憶デバイス、例えば、ハードディスク、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ等でよい。
【００４２】
例えば、生成されたレコードをテキストで記録し、そのテキストをハードディスクに格納できる。
【００４３】
本願のこの実施では、プライマリ／セカンダリデータベースの同期及びデータベースの復元に加え、ログをデータ分析などの他のシナリオで使えることが、前述の説明から分かる。第２のログを、複数のシナリオの実施で使用でき、詳細について以下説明する。
【００４４】
いくつかのアプリケーションシナリオでは、データベースはデータ分析システムなどの外部システムに接続されている。データベースのログを、他の用途のために外部システムに提供できる。例としてデータ分析システムを用いる。データ分析システムは、データベースによって送信されたログに基づいてデータベース内のデータ変更についてリアルタイム又は非リアルタイムで分析を実行し、分析結果を関連ユーザ、組織等に提供できる。
【００４５】
データ分析結果の正確性と包括性のために、データ分析システムでは、ログが、変更後のデータ（すなわち第１のデータ）と変更前のデータ（すなわち第２のデータ）とを含む必要があり、さらに他の関連データ（例えば、変更されたデータと同じデータベースレコードに属する他のデータ）をも含む必要がある。
【００４６】
本願のこの実施では、第２のログはデータ分析システムの必要性を満たすことができる。第２のログが生成された後、又は第２のログに対して永続化処理が実行された後、第２のログをデータ分析システムへ送信でき、その結果、データ分析システムは第２のログに基づいてデータ分析を実行する。データ分析システムの分析内容は本願では限定しない。
【００４７】
本願のこの実施では、本願の解決策のロバスト性（構造安定性）を更に向上させるために、第１のログに対して永続化処理が実行された後、変更結果を一時的に保留し、第１のログがセカンダリデータベース又は別のデバイスと同期した後に返信できる。そのため、セカンダリデータベースが変更を時間内に同期させるには好都合である。加えて、それは第１のログのバックアップと同等である。第１のログに対する永続化処理に用いられる記憶デバイスに障害がある場合でも、第１のログをセカンダリデータベース又は別のデバイスから、依然として復旧可能である。
【００４８】
例えば、データベースがプライマリデータベースである場合、データ変更要求に対応する変更結果を返信するステップＳ１０３の前に、セカンダリデータベースが第１のログに基づいて変更を同期させるよう、第１のログをセカンダリデータベースと同期させるステップを更に実行できる。
【００４９】
前述の分析によると、実際のアプリケーションシナリオでは、第１のログは第１のデータのみを含む単純化されたログであり、第２のログは少なくとも第１のデータと第２のデータとを含む完全ログである。図２と図３とに基づいて、従来技術における処理手順と本願の解決策における処理手順とを比較して分析する。
【００５０】
図２は従来技術による、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。図２の手順がプライマリデータベースによって実行される場合、手順は以下のステップを含むことができる。
【００５１】
Ｓ２０１．プライマリデータベースが、ユーザによって送信されたデータ変更要求を受信する。
【００５２】
Ｓ２０２．プライマリデータベースが、データ変更要求に基づいて、対応するデータ変更操作を実行する。
【００５３】
Ｓ２０３．プライマリデータベースが、データ変更要求又は実行されたデータ変更操作に基づいて、メモリ内に第２のログを生成する。
【００５４】
Ｓ２０４．プライマリデータベースが、生成された第２のログに対して永続化処理を実行する。
【００５５】
Ｓ２０５．プライマリデータベースが、永続化処理を実行された第２のログを、セカンダリデータベースと同期させる。
【００５６】
Ｓ２０６．プライマリデータベースが、変更に成功したことをユーザへ応答する。
【００５７】
ステップＳ２０１乃至Ｓ２０５のいずれか１つにおいて例外が発生した場合には、例外が除去されるまでステップＳ２０６を実行しなくてもよい。
【００５８】
図３は本願の実施に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。図３の手順もプライマリデータベースによって実行される場合、その手順は以下のステップを含むことができる。
【００５９】
Ｓ３０１．プライマリデータベースが、ユーザによって送信されたデータ変更要求を受信する。
【００６０】
Ｓ３０２．プライマリデータベースが、データ変更要求に基づいて、対応するデータ変更操作を実行する。
【００６１】
Ｓ３０３．プライマリデータベースが、データ変更要求又は実行されたデータ変更操作に基づいて、メモリ内に第１のログと第２のログとを生成する。
【００６２】
Ｓ３０４．プライマリデータベースが、生成された第１のログに対して永続化処理を実行する。
【００６３】
Ｓ３０５．プライマリデータベースが、永続化処理を実行された第１のログを、セカンダリデータベースと同期させる。
【００６４】
Ｓ３０６．プライマリデータベースが、変更に成功したことをユーザへ応答する。
【００６５】
ステップＳ３０１乃至Ｓ３０５のいずれか１つにおいて例外が発生した場合には、例外が除去されるまでステップＳ３０６を実行しなくてもよい。
【００６６】
図２と図３との手順の比較から分かるように、第１のログのデータ量は第２のログのデータ量よりも少ないため、従来技術と比較して、プライマリデータベースがユーザへ変更の成功を応答する前における、永続化処理を実行する必要があるログのデータ量を、本願の解決策において削減できる。そのため、データ変更要求処理時間を短縮できる。
【００６７】
更に、図２と図３とにおける両手順において、プライマリデータベースはログをセカンダリデータベースと同期させる。ログの同期も、対応する帯域幅を占有し、対応する時間を費やす必要がある。第１のログのデータ量は第２のログのデータ量よりも少ないので、従来技術と比較して、ログの同期によって占有される帯域幅及び／又はログの同期に費やされる時間も、本願の解決策において低減できる。
【００６８】
図４に示すように、本願の実施により、更に、実際のアプリケーションシナリオにおいてデータ分析システムなどの外部システムへログを送信するための手順を示す概略図が提供される。図４の手順もプライマリデータベースによって実行される場合、以下のステップを含むことができる。
【００６９】
Ｓ４０１．プライマリデータベースが、メモリ内に新しく生成された第２のログを検出する。
【００７０】
Ｓ４０２．プライマリデータベースが、新たに生成された第２のログを取得する。
【００７１】
Ｓ４０３．プライマリデータベースが、取得された第２のログに対して永続化処理を実行する。
【００７２】
Ｓ４０４．プライマリデータベースが、第２のログを所定の外部システムへ送信する。
【００７３】
本願のこの実施では、プライマリデータベースによって同期されたログを受信した後、セカンダリデータベースは、そのログに対して永続化処理を実行する、及び／又はそのログを外部システムへ送信する等の操作も実行できる。しかし、このような操作工程は、従来技術の工程とは異なる。セカンダリデータベースに関する操作について以下説明する。
【００７４】
従来技術では、セカンダリデータベースは完全ログ（つまり、前述の例では第２のログ）を受信するので、受信したログに対して永続化処理を実行する、及び／又は受信したログを外部システムへ送信する等の操作を、直接、実行できる。
【００７５】
本願の解決策では、セカンダリデータベースは単純化されたログ（すなわち、前述の例の第１のログ）を受信し、この受信されたログに対し、直接、永続化処理のみを実行できる。この受信されたログを外部システムへ送信することは適切ではない。実際には、セカンダリデータベースも完全ログを用いる必要があろう。したがって、セカンダリデータベースは、単純化されたログに基づいて対応の完全ログを取得でき、次いで、完全ログに対して永続化処理を実行できる、及び／又は完全ログを外部システムへ送信する等の操作を実行できる。そのようにして、プライマリデータベースとセカンダリデータベースとのログ間の一貫性を向上させることができる。このような思想に基づいて、データベースが第１のログをデータベースのセカンダリデータベースと同期させた後、セカンダリデータベースは：セカンダリデータベースが変更を同期し、第１のログに基づいて第２のログを生成するステップを実行できる。更に、セカンダリデータベースは：セカンダリデータベースが、同期によって取得された第１のログ及び／又は第１のログに基づいて生成された第２のログに対して永続化処理を実行するステップと；セカンダリデータベースが、第２のログを所定の外部システムへ送信するステップと；を実行できる。
【００７６】
図５に示すように、本願の実施により、実際のアプリケーションシナリオにおいて（図２乃至図４のシナリオを用いることによって）プライマリデータベースによって同期された受信済の第１のログをセカンダリデータベースが処理する手順を示す概略図が提供される。図５の手順がプライマリデータベースに対するセカンダリデータベースによって実行される場合、手順は以下のステップを含むことができる。
【００７７】
Ｓ５０１．セカンダリデータベースが、プライマリデータベースによって同期された第１のログを受信する。
【００７８】
Ｓ５０２．セカンダリデータベースが、受信した第１のログに対して永続化処理を実行する。
【００７９】
Ｓ５０３．セカンダリデータベースが、第１のログをリプレイ（ｒｅｐｌａｙ、再生成）する。
【００８０】
Ｓ５０４．セカンダリデータベースがデータ変更操作を同期させ、リプレイを通してメモリ内に第２のログを生成する。
【００８１】
Ｓ５０５．セカンダリデータベースが、第２のログに対して永続化処理を実行する。
【００８２】
本願のこの実施では、上述のように、２種類のログ、すなわち第１のログと第２のログとを、何れのデータ変更要求に対しても生成できる。その次の２種類のログの読み出し速度を上げるために、永続化処理を実行する際に、第１のログと第２のログとを異なる不揮発性記憶デバイスに別々に記憶できる。したがって、２種類のログは、それぞれの記憶デバイスの性能（例えば、帯域幅や読み出し速度）に基づいて別々に読み出すことができ、並行に読み出すこともできる。
【００８３】
本願のこの実施では、上述のように、完全ログ又は第２のログは、第１のデータと第２のデータとに加えて、変更データに関連する他のデータを含むことができる。通常、第１のデータと第２のデータとがそれぞれ少なくとも１つのデータベースレコードに属する場合、第２のログに更に含めることができる「変更されたデータに関連する他のデータ」は、第１のデータが属するデータベースレコード内の第１のデータ以外のデータ、及び／又は第２のデータが属するデータベースレコード内の第２のデータ以外のデータを含むが、これらに限定されない。
【００８４】
容易に理解できるように、説明のための例として表１及び表２を用いる。
【表１】
2019527883.tif 000003
【００８５】
表１は、３つのデータベースレコード：ａ，ｂ，ｃを含む、データベース内のデータテーブルの一部の内容である。各レコードにはｎキーと値のペアが含まれ、ｎキーはそれぞれｃｏｌｕｍｎ（列）＿１からｃｏｌｕｍｎ＿ｎであり、各データベースレコードのキーに対応する値を表１に示す。説明を簡単にするために、キーと値のペアと、そのキーと値のペアが属するデータベースレコードの行番号とを＜ｒｏｗ＞：＜ｋｅｙ、ｖａｌｕｅ＞で示す。ここで、「ｋｅｙ」はキーを示し、「ｖａｌｕｅ」は値を示し、及び「ｒｏｗ」は、キーと値のペアが属するデータベースレコードの行番号を示す。
【００８６】
データベースは、ユーザによって送信されたデータ変更要求を受信すると仮定する。データ変更要求に基づいて、＜ａ＞：＜ｃｏｌｕｍｎ＿２、ａ＿２＞が、＜ａ＞：＜ｃｏｌｕｍｎ＿２、ａ＿２’＞に変更され、＜ｂ＞：＜ｃｏｌｕｍｎ＿２、ｂ＿２＞が、＜ｂ＞：＜ｃｏｌｕｍｎ＿２、ｂ＿２’＞に変更される。表１を変更したものを下記表２に示す。
【表２】
2019527883.tif 000004
【００８７】
前述の例では、第１のデータは、＜ａ＞：＜ｃｏｌｕｍｎ＿２、ａ＿２’＞、及び、＜ｂ＞：＜ｃｏｌｕｍｎ＿２、ｂ＿２’＞であり、第２のデータは、＜ａ＞：＜ｃｏｌｕｍｎ＿２、ａ＿２＞及び＜ｂ＞：＜ｃｏｌｕｍｎ＿２、ｂ＿２＞である。
【００８８】
変更されたデータに関連する他のデータは、レコードａとレコードｂの変更されたデータ以外のデータ、つまり＜ａ＞：＜ｃｏｌｕｍｎ＿１、ａ＿１＞、・・・、＜ａ＞：＜ｃｏｌｕｍｎ＿ｎ、ａ＿ｎ＞、及び、＜ｂ＞：＜ｃｏｌｕｍｎ＿１、ｂ＿１＞、・・・、＜ｂ＞：＜ｃｏｌｕｍｎ＿ｎ、ｂ＿ｎ＞を含むことができる。
【００８９】
生成された第１のログは、「＜ａ＞：＜ｃｏｌｕｍｎ＿２、ａ＿２‘＞、及び、＜ｂ＞：＜ｃｏｌｕｍｎ＿２，ｂ＿２’＞」と示された第１のデータのみを含むことができ、第２のデータと、変更されたデータに関連するその他のデータとは含まない。
【００９０】
生成された第２のログは、「＜ａ＞：第２のデータ及び変更されたデータに関連するその他のデータ：＜ｃｏｌｕｍｎ＿１、ａ＿１＞、＜ｃｏｌｕｍｎ＿２、ａ＿２＞、・・・、＜ｃｏｌｕｍｎ＿ｎ、ａ＿ｎ＞；第１のデータ：＜ｃｏｌｕｍｎ＿２、ａ＿２’＞、及び＜ｂ＞：第２のデータ及び変更されたデータに関連するその他のデータ：＜ｃｏｌｕｍｎ＿１、ａ＿１＞、＜ｃｏｌｕｍｎ＿２、ａ＿２＞、・・・、＜ｃｏｌｕｍｎ＿ｎ、ａ＿ｎ＞;第１のデータ：＜ｃｏｌｕｍｎ＿２、ａ＿２’＞」と示され、第１のデータだけでなく、第２のデータと変更されたデータに関連するその他のデータも含むことができる。
【００９１】
前述の例のログに含まれる内容の表現形式は単なる例に過ぎず、本願を限定するものではないことは特に留意すべき事項である。実際には、その内容を他の形式で表すこともできる。
【００９２】
図６に示すように、本願の実施は、本願の解決策をより直感的に理解できるよう、（図２乃至図４のシナリオを用いることによる）実際のアプリケーションシナリオにおける本願の解決策における端末間のインタラクション（対話、相互作用）を例示する概略図を更に提供する。
【００９３】
４つの端末が主に図６に含まれており、端末はそれぞれユーザ、プライマリデータベース、セカンダリデータベース、及びデータ分析システムである。図６の（１）乃至（５）までの番号に対応するステップは、本願のこの実施において提供されるデータ変更要求処理方法の主要ステップであり、番号のないステップは二次的（補助的）ステップである。すべてのステップは、先に、それぞれ詳細に述べられており、簡略化のために詳細をここでは省略する。
【００９４】
以上が本願の実施において提供されるデータベースのデータ変更要求処理方法である。図７に示すように、本願の実施は、同じ考えに基づいて対応する装置を更に提供する。
【００９５】
図７は本願の実施に係る、データベースのデータ変更要求処理装置を示す概略構造図である。この装置は：データベースに対するデータ変更要求を受信するよう構成された受信モジュール７０１と；データベース内の第２のデータを第１のデータへ変更し、データ変更要求に基づいて第１のログと第２のログとを生成するよう構成された処理モジュール７０２であって、第１のログは第１のデータを含み、第２のログは第２のデータを含む、処理モジュール７０２と；第１のログに対して永続化処理が実行された後に、データ変更要求に対応する変更結果を返信するよう構成された返信モジュール７０３と；を含む。
【００９６】
オプションとして、第２のログは第１のデータを更に含む。
【００９７】
オプションとして、処理モジュール７０２は、メモリ内に第１のログと第２のログとを生成するよう構成される。
【００９８】
オプションとして、処理モジュール７０２は、第２のログに対して永続化処理を実行するよう更に構成される。
【００９９】
オプションとして、装置は、第２のログをデータ分析システムに送信するよう構成される送信装置７０４を更に含み、それによりデータ分析システムは第２のログに基づいてデータ分析を実行する。
【０１００】
オプションとして、データベースがプライマリデータベースである場合、装置は、返信モジュール７０３がデータ変更要求に対応する変更結果を返信する前に、セカンダリデータベースが第１のログに基づいて変更を同期するように、第１のログをデータベースのセカンダリデータベースと同期させるよう構成された同期モジュール７０５を更に含む。
【０１０１】
オプションとして、第１のデータと第２のデータとは、それぞれ少なくとも１つのデータベースレコードに属する。
【０１０２】
第２のログは、第１のデータが属するデータベースレコード内の第１のデータ以外のデータ、及び／又は第２のデータが属するデータベースレコード内の第２のデータ以外のデータを更に含む。
【０１０３】
オプションとして、永続化処理には、ログを不揮発性記憶デバイスに格納する処理が含まれる。
【０１０４】
オプションとして、永続化処理には、ログを不揮発性記憶デバイスに格納する処理が含まれる。
【０１０５】
第１のログと第２のログとは、永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される。
【０１０６】
オプションとして、データ変更要求はデータ更新要求、データ削除要求、又はデータ追加要求である。
【０１０７】
データ変更要求がデータ更新要求である場合、第１のデータも第２のデータもヌルではない；又は、データ変更要求がデータ削除要求である場合、第１のデータはヌルであり、第２のデータはヌルではない；又は、データ変更要求がデータ追加要求の場合、第１のデータはヌルではなく、第２のデータがヌルである。
【０１０８】
図７の装置は、データベース内に配置できる、又は、データベースに属さないがデータベースに接続できる機能モジュール上に配置できる。
【０１０９】
本願において提供される装置は、本願において提供される方法と１対１に対応する。したがって、装置及び方法は、同様の有益な技術的効果を奏する。本方法の有益な技術的効果については上で詳細に述べているので、装置の有益な技術的効果については、簡略化のためにここでは省略する。
【０１１０】
当業者は、本願の実施が方法、システム、又はコンピュータプログラム製品として提供できることを理解するはずである。そのため、本発明は、ハードウェアのみの実施、ソフトウェアのみの実施、又は、ソフトウェアとハードウェアとの組み合わせによる実施を用いることができる。さらに、本発明は、コンピュータで使用可能なプログラムコードを含んだ１台以上のコンピュータで使用可能な記憶媒体（ディスクメモリ、ＣＤ−ＲＯＭ、光学メモリ等を含むがこれに限定されない）上で実施されるコンピュータプログラム製品を使用できる。
【０１１１】
本発明は、本願の実施に係る方法、デバイス（システム）、コンピュータプログラム製品のフローチャート及び／又はブロック図を参照して説明されている。フローチャート及び／又はブロック図内の各プロセス及び／又は各ブロック、並びにフローチャート及び／又はブロック図内のプロセス及び／又はブロックの組み合わせを実施するために、コンピュータプログラム命令を使用することができることを理解されたい。このコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はあらゆるその他のプログラムマブルデータ処理デバイスに、マシンを生成するために提供されることができ、これにより、コンピュータ、又はあらゆるその他のプログラムマブルデータ処理デバイスのプロセッサが、フローチャートの１つ以上のフローにおける、及び／又は、ブロック図の１つ以上のブロックにおける、特定の機能を実施するデバイスを生成できるようになる。
【０１１２】
このコンピュータプログラム命令を、コンピュータ又はあらゆるその他のプログラマブルデータ処理デバイスに特定の方法で機能するように命令することができるコンピュータ読取可能なメモリに記憶して、これらのコンピュータ読取可能なメモリに記憶された命令が、命令装置を含むアーチファクトを作り出すようにすることができる。この命令装置は、フローチャート内の１つ以上のフローにおける、及び／又はブロック図内の１つ以上のブロックにおける特定の機能を実施する。
【０１１３】
このコンピュータプログラム命令をコンピュータ又はその他のプログラマブルデータ処理デバイスにロードして、コンピュータ又はその他のプログラムマブルデバイス上で一連の操作及びステップが実行されるようにし、コンピュータで実施される処理を生成することができる。これにより、コンピュータ又はその他のプログラムマブルデバイス上で実行される命令が、フローチャート内の１つ以上のフロー及び／又はブロック図内の１つ以上のブロックにおける特定の機能を実施するデバイスを提供することを可能とする。
【０１１４】
典型的な構成では、コンピューティングデバイスは１つ以上のプロセッサ（ＣＰＵｓ）、入出力インターフェース、ネットワークインターフェース、及びメモリを含む。
【０１１５】
メモリは、揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ、及び／又はリードオンリーメモリ（ＲＯＭ）やフラッシュメモリ（ｆｌａｓｈ  ＲＡＭ）のようなコンピュータ読取可能な媒体を含んでよい。メモリはコンピュータ読取可能な媒体の一例である。
【０１１６】
コンピュータ読取可能な媒体には、任意の方法又は技術を用いて情報を記憶できる、永続的、非永続的、移動可能な、移動不能な媒体が含まれる。この情報はコンピュータ読取可能な命令、データ構造、プログラムモジュール、又はその他のデータであってよい。コンピュータの記憶媒体の例として、コンピューティングデバイスによってアクセスできる情報を記憶するために用いることが可能な、相変化ランダムアクセスメモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、別タイプのランダムアクセスメモリ、リードオンリーメモリ（ＲＯＭ）、電気的に消去可能でプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、又は別のメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、又は別の光学記憶装置、カセット、磁気テープ、テープ、ディスクストレージ、他の磁気的記憶装置、又は他の任意の非伝送媒体があるが、これに限定されない。本願の定義に基づき、コンピュータ読取可能な媒体は、変調されたデータ信号及び搬送波のような一時的な媒体（ｔｒａｎｓｉｔｏｒｙ  ｍｅｄｉａ）を含まない。
【０１１７】
さらに、用語「含む」、「含有する」、又はこれらのその他任意の応用形は、非限定的な包含を網羅するものであるため、一連の要素を含んだ工程、方法、物品、デバイスはこれらの要素を含むだけでなく、ここで明確に挙げていないその他の要素をも含む、あるいは、このような工程、方法、物品、デバイスに固有の要素をさらに含むことができる点に留意することが重要である。「（１つの）〜を含む」との用語を付けて示された要素は、それ以上の制約がなければ、その要素を含んだ工程、方法、商品、デバイス内に別の同一の要素をさらに含むことを排除しない。
【０１１８】
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
【符号の説明】
【０１１９】
７０１  受信モジュール
７０２  処理モジュール
７０３  返信モジュール
７０４  送信モジュール
７０５  同期モジュール
【図１】
2019527883.tif 000005
【図２】
2019527883.tif 000006
【図３】
2019527883.tif 000007
【図４】
2019527883.tif 000008
【図５】
2019527883.tif 000009
【図６】
2019527883.tif 000010
【図７】
2019527883.tif 000011
【手続補正書】
【提出日】平成31年3月4日(2019.3.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データベースのデータ変更要求を処理する方法であって：
データベースに対するデータ変更要求を受信するステップ（Ｓ１０１）と；
前記データベース内の第２のデータを第１のデータへ変更するステップと；
前記データ変更要求に基づいて第１のログと第２のログとを生成するステップであって、前記第１のログは前記第１のデータを備え、前記第２のログは前記第２のデータを備える、ステップ（Ｓ１０２）と；
前記第１のログに永続化処理を実行した後、前記データ変更要求に対応する変更結果を返信するステップ（Ｓ１０３）と；を備える、
データベースのデータ変更要求を処理する方法。
【請求項２】
前記第２のログは前記第１のデータを更に備える、
請求項１に記載の方法。
【請求項３】
第１のログと第２のログとを生成するステップは：
前記第１のログと前記第２のログとをメモリ内に生成するステップ（Ｓ２０３）に基づく、
請求項２に記載の方法。
【請求項４】
前記第２のログに永続化処理を実行するステップ（Ｓ２０４）を更に備える、
請求項２に記載の方法。
【請求項５】
データ分析システムが前記第２のログに基づいてデータ分析を実行するように、前記第２のログを前記データ分析システムへ送信するステップを更に備える、
請求項２に記載の方法。
【請求項６】
前記データベースがプライマリデータベースである場合、前記データ変更要求に対応する変更結果を返信するステップの前に：
前記データベースのセカンダリデータベースが前記第１のログに基づいて前記変更を同期させるように、前記第１のログを前記データベースの前記セカンダリデータベースと同期させるステップを更に備える、
請求項２に記載の方法。
【請求項７】
前記第１のログを前記データベースの前記セカンダリデータベースと同期させるステップの後に：
前記セカンダリデータベースによって、前記変更を同期させ、前記第１のログに基づいて前記第２のログを生成するステップを更に備える、
請求項６に記載の方法。
【請求項８】
同期を通して得られた前記第１のログ及び／又は前記第１のログに基づいて生成された前記第２のログに対して永続化処理を、前記セカンダリデータベースによって実行するステップを更に備える、
請求項７に記載の方法。
【請求項９】
前記第１のデータと前記第２のデータとはそれぞれ、少なくとも１つのデータベースレコードに属し；
前記第２のログは、前記第１のデータが属する前記データベースレコード内の前記第１のデータ以外のデータ、及び／又は前記第２のデータが属する前記データベースレコード内の前記第２のデータ以外のデータを更に備える、
請求項１乃至請求項５のいずれか１項に記載の方法。
【請求項１０】
永続化処理は：
ログを不揮発性記憶デバイスに格納するステップを備える、
請求項１乃至請求項８のいずれかに１項に記載の方法。
【請求項１１】
永続化処理は：
ログを不揮発性記憶デバイスに格納するステップを備え；
前記第１のログと前記第２のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスへ別々に格納される、
請求項１乃至請求項４のいずれか１項に記載の方法。
【請求項１２】
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり；
前記データ変更要求がデータ更新要求である場合は、前記第１のデータも前記第２のデータもヌルではない；又は
前記データ変更要求がデータ削除要求である場合は、前記第１のデータはヌルであり、前記第２のデータはヌルではない；又は
前記データ変更要求がデータ追加要求である場合は、前記第１のデータはヌルではなく、前記第２のデータがヌルである、
請求項１乃至請求項８のいずれか１項に記載の方法。
【請求項１３】
前記データ変更要求は、１乃至複数の方針に基づいて前記データベース内のデータの総量を削減する要求を備える、
請求項１乃至請求項８のいずれか１項に記載の方法。
【請求項１４】
前記第２のログを外部システムへ送信するステップを更に備える、
請求項１乃至請求項８のいずれか１項に記載の方法。
【請求項１５】
請求項１乃至請求項１０のいずれか１項に記載の方法を実行するように構成された複数のモジュールを備える、
データベースのデータ変更要求を処理するための装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
以下、本発明の実施の態様の例を列挙する。
［第１の局面］
データベースのデータ変更要求処理方法であって：
データベースに対するデータ変更要求を受信するステップと；
前記データベース内の第２のデータを第１のデータへ変更し、前記データ変更要求に基づいて第１のログと第２のログとを生成するステップであって、前記第１のログは前記第１のデータを備え、前記第２のログは前記第２のデータを備える、ステップと；
前記第１のログに永続化処理を実行した後、前記データ変更要求に対応する変更結果を返信するステップと；を備える、
データベースのデータ変更要求処理方法。
［第２の局面］
前記第２のログは前記第１のデータを更に備える、
第１の局面に記載の方法。
［第３の局面］
第１のログと第２のログとを生成する前記ステップは：
前記第１のログと前記第２のログとをメモリ内に生成するステップを備える、
第２の局面に記載の方法。
［第４の局面］
前記第２のログに永続化処理を実行するステップを更に備える、
第２の局面に記載の方法。
［第５の局面］
データ分析システムが前記第２のログに基づいてデータ分析を実行するように、前記第２のログを前記データ分析システムへ送信するステップを更に備える、
第２の局面に記載の方法。
［第６の局面］
前記データベースがプライマリデータベースである場合、前記データ変更要求に対応する変更結果を返信する前記ステップの前に：
前記データベースのセカンダリデータベースが前記第１のログに基づいて前記変更を同期させるように、前記第１のログを前記データベースの前記セカンダリデータベースと同期させるステップを更に備える、
第２の局面に記載の方法。
［第７の局面］
前記第１のログを前記データベースの前記セカンダリデータベースと同期させる前記ステップの後に：
前記セカンダリデータベースによって、前記変更を同期させ、前記第１のログに基づいて前記第２のログを生成するステップを更に備える、
第６の局面に記載の方法。
［第８の局面］
同期を通して得られた前記第１のログ及び／又は前記第１のログに基づいて生成された前記第２のログに対して永続化処理を、前記セカンダリデータベースによって実行するステップを更に備える、
第７の局面に記載の方法。
［第９の局面］
前記第１のデータと前記第２のデータとはそれぞれ、少なくとも１つのデータベースレコードに属し；
前記第２のログは、前記第１のデータが属する前記データベースレコード内の前記第１のデータ以外のデータ、及び／又は前記第２のデータが属する前記データベースレコード内の前記第２のデータ以外のデータを更に備える、
第１乃至５の局面のいずれかに記載の方法。
［第１０の局面］
前記永続化処理は：
ログを不揮発性記憶デバイスに格納するステップを備える、
第１乃至８の局面のいずれかに記載の方法。
［第１１の局面］
前記永続化処理は：
ログを不揮発性記憶デバイスに格納するステップを備え；
前記第１のログと前記第２のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスへ別々に格納される、
第１乃至４の局面のいずれかに記載の方法。
［第１２の局面］
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり；
前記データ変更要求がデータ更新要求である場合は、前記第１のデータも前記第２のデータもヌルではない；又は
前記データ変更要求がデータ削除要求である場合は、前記第１のデータはヌルであり、前記第２のデータはヌルではない；又は
前記データ変更要求がデータ追加要求である場合は、前記第１のデータはヌルではなく、前記第２のデータがヌルである、
第１乃至８の局面のいずれかに記載の方法。
［第１３の局面］
データベースのデータ変更要求処理装置であって：
データベースに対するデータ変更要求を受信するよう構成された受信モジュールと；
前記データベース内の第２のデータを第１のデータへ変更し、前記データ変更要求に基づいて第１のログと第２のログとを生成するよう構成された処理モジュールであって、前記第１のログは前記第１のデータを備え、前記第２のログは前記第２のデータを備える、前記処理モジュールと；
前記第１のログに対して永続化処理が実行された後に、前記データ変更要求に対応する変更結果を返信するよう構成された返信モジュールと；を備える、
データベースのデータ変更要求処理装置。
［第１４の局面］
前記第２のログは前記第１のデータを更に備える、
第１３の局面に記載の装置。
［第１５の局面］
前記処理モジュールは、メモリ内に前記第１のログと前記第２のログとを生成するよう構成される、
第１４の局面に記載の装置。
［第１６の局面］
前記処理モジュールは、前記第２のログに対して永続化処理を実行するように更に構成される、
第１４の局面に記載の装置。
［第１７の局面］
データ分析システムが前記第２のログに基づいてデータ分析を実行するように、前記第２のログを前記データ分析システムへ送信するよう構成された送信装置を更に備える、
第１４の局面に記載の装置。
［第１８の局面］
前記データベースがプライマリデータベースである場合：
前記返信モジュールが前記データ変更要求に対応する前記変更結果を返信する前に、セカンダリデータベースが前記第１のログに基づいて前記変更を同期させるように、前記第1のログを前記データベースの前記セカンダリデータベースと同期させるよう構成された同期モジュールを更に備える、
第１４の局面に記載の装置。
［第１９の局面］
前記第１のデータと前記第２のデータとはそれぞれ少なくとも１つのデータベースレコードに属し；
前記第２のログは、前記第１のデータが属する前記データベースレコード内の前記第１のデータ以外のデータ、及び／又は、前記第２のデータが属する前記データベースレコード内の前記第２のデータ以外のデータを更に備える、
第１３乃至１８の局面のいずれかに記載の装置。
［第２０の局面］
前記永続化処理は：
ログを不揮発性記憶デバイスに格納する処理を備える、
第１３乃至１８の局面のいずれかに記載の装置。
［第２１の局面］
前記永続化処理は、ログを不揮発性記憶デバイスに格納する処理を備え；
前記第１のログと前記第２のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される、
第１３乃至１８の局面のいずれかに記載の装置。
［第２２の局面］
前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり；
前記データ変更要求がデータ更新要求である場合は、前記第１のデータも前記第２のデータもヌルではない；又は、
前記データ変更要求がデータ削除要求である場合は、前記第１のデータはヌルであり、前記第２のデータはヌルではない；又は
前記データ変更要求がデータ追加要求である場合は、前記第１のデータはヌルではなく、前記第２のデータがヌルである、
第１３乃至１８の局面のいずれかに記載の装置。
【国際調査報告】
2019527883.tif 000012
2019527883.tif 000013
2019527883.tif 000014
2019527883.tif 000015