JP2019527883A - データベースのデータ変更要求処理方法及び装置 - Google Patents

データベースのデータ変更要求処理方法及び装置 Download PDF

Info

Publication number
JP2019527883A
JP2019527883A JP2019500305A JP2019500305A JP2019527883A JP 2019527883 A JP2019527883 A JP 2019527883A JP 2019500305 A JP2019500305 A JP 2019500305A JP 2019500305 A JP2019500305 A JP 2019500305A JP 2019527883 A JP2019527883 A JP 2019527883A
Authority
JP
Japan
Prior art keywords
data
log
database
change request
request
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.)
Granted
Application number
JP2019500305A
Other languages
English (en)
Other versions
JP6987340B2 (ja
Inventor
ヤン,ヂェンクン
ハン,フーシャン
Original Assignee
アリババ グループ ホウルディング リミテッド
アリババ グループ ホウルディング リミテッド
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 アリババ グループ ホウルディング リミテッド, アリババ グループ ホウルディング リミテッド filed Critical アリババ グループ ホウルディング リミテッド
Publication of JP2019527883A publication Critical patent/JP2019527883A/ja
Application granted granted Critical
Publication of JP6987340B2 publication Critical patent/JP6987340B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本願は、データベースのデータ変更要求処理方法及び装置を開示し、データベースのデータ変更要求処理モードが比較的長い時間を要するという従来技術における問題を解決する。本方法は:データベースに対するデータ変更要求を受信するステップと;データベース内の第2のデータを第1のデータへ変更し、データ変更要求に基づいて第1のログと第2のログとを生成するステップであって、第1のログは第1のデータを含み、第2のログは第の2データを含む、ステップと;第1のログに対して永続化処理を実行した後に、データ変更要求に対応する変更結果を返信するステップと;を含む。

Description

本願はデータベース技術の分野に関し、特に、データベースのデータ変更要求処理方法及び装置に関する。
データベースはサーバ上で作動する一連のソフトウェアであり、これを用いて大量のデータを記憶し、照会(クエリ)し、管理する。データベースログは、データベースで用いられる記憶内容であり、例えばデータ変更操作等、データベースで発生した操作を記録するために用いることができる。データベースを再起動すると、ログを用いて以前の通常作動状態を復元できる。データベースがログを別のデータベースへ送信する場合、別のデータベースは受信したログを用いて、ログを送信したデータベースと同一のコピーを復元することもできる。これが、プライマリ/セカンダリデータベースの同期方法である。ログには、変更後のデータと変更前のデータとが含まれ、シナリオによっては、変更されたデータなどに関連する他のデータも含まれる。
従来技術において、ユーザはデータベースへデータ変更要求を送信できる。データベースは、それに対応してデータを変更し、データ変更要求に基づいてログを生成し、生成されたログに対して永続化処理(persistent processing)を実行し(例えば、生成されたログをハードディスクに格納し)、次いで、データ変更要求に対応する変更結果をユーザへ返信する(例えば、変更に成功したことをユーザへ通知する)。生成されたログは通常は一時的な状態であり、永続化処理を実行することは電源障害(停電)や再起動によって引き起こされる偶発的な消失を防ぐためのものであることは、特に留意すべき事項である。更に、データベースがセカンダリデータベースを有する場合、データベースは、先ず、生成されたログをセカンダリデータベースと同期させ、次に、データ変更要求に対応する変更結果を返信する。
しかし、生成されたログに対する永続化処理の実行、又は生成されたログのセカンダリデータベースとの同期には、共に多くの時間を要する。その結果、従来技術におけるデータベースのデータ変更要求処理モードには比較的長い時間がかかることになる。
本願の実施は、データベースのデータ変更要求処理方法及び装置を提供し、データベースのデータ変更要求処理モードに比較的長い時間がかかるという、従来技術における課題を解決する。
本願の実施では以下の技術的解決策が用いられる。
本願の実施は、データベースのデータ変更要求処理方法を提供し:データベースに対するデータ変更要求を受信するステップと;前記データベース内の第2のデータを第1のデータへ変更し、前記データ変更要求に基づいて第1のログと第2のログとを生成するステップであって、前記第1のログは前記第1のデータを含み、前記第2のログは前記第2のデータを含む、ステップと;前記第1のログに永続化処理を実行した後、前記データ変更要求に対応する変更結果を返信するステップと;を含む。
本願の実施は、データベースのデータ変更要求処理装置を提供し:データベースに対するデータ変更要求を受信するよう構成された受信モジュールと;前記データベース内の第2のデータを第1のデータへ変更し、前記データ変更要求に基づいて第1のログと第2のログとを生成するよう構成された処理モジュールであって、前記第1のログは前記第1のデータを含み、前記第2のログは前記第2のデータを含む、前記処理モジュールと;前記第1のログに対して永続化処理が実行された後に、前記データ変更要求に対応する変更結果を返信するよう構成された返信モジュールと;を含む。
本願の実施において用いられる少なくとも1つの技術的解決策は、以下の有益な効果を奏する。変更後のデータと、変更前のデータと、変更されたデータに関連する他のデータとを含む完全ログを生成する従来技術と比べると、本願の解決策では、必ずしも完全ではなく内容が同一ではない2種類のログ、すなわち第1のログと第2のログを、どのようなデータ変更要求に対しても生成できる。第1のデータは変更後のデータであり、第2のデータは変更前のデータである。第1のログは、第1のデータのみを含み、第2のデータと変更されたデータに関連する他のデータとを含まなくてもよい。第2のデータと変更されたデータに関連する他のデータとを含まずに変更後のデータのみに基づいて、データベース状態を復元できる、又は、プライマリ/セカンダリ同期を実施できるので、第1のログに対して永続化処理が実行された後に変更結果をユーザへ返信できる。また、第1のログのデータ量が完全ログのデータ量より少ないので、永続化処理に要する時間が少なくてすみ、その結果、データベースのデータ変更要求処理時間を短縮できる。したがって、従来技術における課題を部分的又は包括的に軽減できる。
ここで説明する添付図面は、本願の更なる理解の提供を意図しており、本願の一部を構成することを意図している。本願の例示の実施及びその説明は、本願を説明することを意図しており、本願に対する限定を構成するものではない。
図1は、本願の実施に係る、データベースのデータ変更要求処理方法を示す概略フローチャートである。
図2は、従来技術に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。
図3は、本願の実施に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。
図4は、本願の実施に係る、実際のアプリケーションシナリオにおけるデータ分析システムなどの外部システムへログを送信するための手順を示す概略図である。
図5は、本願の実施に係る、実際のアプリケーションシナリオにおいて、セカンダリデータベースがプライマリデータベースによって同期された受信済みの第1のログを処理する手順を示す概略図である。
図6は、本願の実施に係る、(図2乃至図4のシナリオを用いることによる)実際のアプリケーションシナリオにおける本願の解決策での端末間の相互作用を示す概略図である。
図7は、本願の実施に係る、データベースのデータ変更要求処理装置を示す概略構造図である。
本願の目的、技術的解決策、及び利点をより明確にするために、本願の実施及び対応する添付図面を参照して、本願の技術的解決策を明確且つ包括的に以下説明する。明らかに、記載される実施は、本願の実施の一部であって全てではない。本願の実施に基づき当業者が創造的に努力することなく獲得する他の全ての実施は、本願の保護範囲に包含される。
図1は、本願の実施に係る、データベースのデータの変更要求処理方法を示す概略フローチャートである。
図1の手順は、データベースによって、又はデータベースに属していないがデータベースに接続できる機能モジュールによって実行できる。データベース及び/又は機能モジュールが配置されているデバイス(装置)は、本願では限定されない。このデバイスとしては、サーバ又はクライアントとして機能する、パソコン、中型及び大型コンピュータ、コンピュータクラスタ、携帯電話、タブレット型コンピュータ、スマートウォッチ、車載型モバイルステーション等が挙げられるがこれらに限定されない。
図1の手順は、以下のステップを含むことができる。
S101.データベースに対するデータ変更要求を受信する。
本願のこの実施では、データ変更要求は、データベース内のデータを変更するよう要求するためのものである。データベースのユーザは、この要求を手動で送信でき、又は自動化スクリプトを実行して自動的に送信できる。データ変更要求は、データ更新要求、データ削除要求、及びデータ追加要求のうちの少なくとも1つを含む。
データ変更要求のフォーマットは、本願においては限定されず、構造化照会言語(Structured Query Language、SQL)ステートメントフォーマットであってもよく、データベースによってサポートされる他のフォーマットであってもよい。
S102.データベース内の第2のデータを第1のデータへ変更し、データ変更要求に基づいて第1のログと第2のログとを生成する。ここで、第1のログは第1のデータを含み、第2のログは第2のデータを含む。
本願のこの実施では、データ変更要求は、特定のデータ変更操作を実行するための要求を示すことができる。例えば、データ変更要求は、データベース内の第2のデータを第1のデータに変更するための要求を示す。当然ながら、実際には、データ変更要求はそれほど特定的ではない要求であってもよい。例えば、データ変更要求は、データベース内のデータの総量を半分に削減する要求などを示すことができる。削減対象データは、一定の方針(certain policies)に基づいてデータベースによって特定できる。
本願のこの実施では、第1のデータ又は第2のデータをヌル(null)にすることができる。例えば、データ削除要求の場合、第2のデータはヌルではなく、第1のデータがヌルである;データ追加要求の場合、第1のデータはヌルではなく、第2のデータがヌルである;データ更新要求の場合、第1のデータも第2のデータもヌルではない;とすることができる。
第1のデータと第2のデータとの内容は、本願では限定されず、データベースレコード、データテーブル、データインデックス、又はデータグラフのような任意のタイプのデータの一部又は全部であってよい。
本願のこの実施では、データベースの復元又はプライマリ/セカンダリ同期がログに基づいて実行される必要がある場合、ログは少なくとも第1のデータを含む必要がある。第2のデータと、変更されたデータに関連するその他のデータとは、データベースの復元又はプライマリ/セカンダリ同期には不要であるため、ログから除外できる。本願の解決策では、このような思想に基づいて、従来技術における課題を軽減できる。従来技術では、1種類のログ(説明を簡単にするために完全ログと呼ぶ)しかなく、完全ログには第1のデータと第2のデータの両方が含まれる。本願の解決策は、2種類のログ、すなわち第1のログ及び第2のログを提供する。第1のログは、データベースの復元又はプライマリ/セカンダリ同期に特化し単純化されたログであってよい。好ましくは、第1のログは、第1のデータのみを含むことができる(その結果、第1のログのデータ量をできるだけ少なくすることができる)。第2のログは、完全ログ又は第1のログを補足するために用いられる不完全ログであってもよい。例えば、第2のログは、第2のデータと第1のデータとの両方を含むことができ、変更されたデータなどに関連する他のデータさえ含むことができる。あるいは、第2のログは、第2のデータのみを含むことができる。
あるいは、本願のこの実施では、第2のログ又は第1のログと組み合わせた第2のログを、データベースの復元又はプライマリ/セカンダリ同期のために用いることができ、このデータベースの復元又はプライマリ/セカンダリ同期に加えて、例えば、データベース内のデータの変化に対してリアルタイムで分析を実行するタスクのために更に用いることができる。
本願のこの実施では、ステップS102において「第2のデータを第1のデータに変更する」及び「第1のログと第2のログとを生成する」という2つのサブステップを実行する順序は限定されない。通常、変更操作が先ず実行され、次に、対応するログが生成される。しかし、実際には、先ずログが生成され、次に、対応する変更操作が実行されることで、変更操作が実行されるときに発生する電源障害などの例外によって引き起こされるログの消失を防ぐことができる。この場合、変更操作の実行中に電源障害などの例外が発生した場合でも、データベース内のデータの実際の状況に基づいてログをロールバックできる。ロールバックされたログから、含むべきログが失われたり、エラーのあるログや冗長なログが含まれたりすることがないよう保証することは有益である。
S103.第1のログを永続化処理した後、データ変更要求に対応する変更結果を返信する。
本願のこの実施では、ステップS102で生成された第1のログと第2のログは、メモリ内又はバッファ内で生成されるが、生成後は一時的な非安定状態にある。通常、この時点でデータベースを再起動する又は電源を切ると、生成された第1のログと生成された第2のログとが失われ、その後、データベースの復元やプライマリ/セカンダリ同期を実行できなくなる、又はログを用いる必要があるその他の機能を実施できない。このような事態を避けるために、先ず第1のログに対して永続化処理を実行した後、対応する変更結果をデータ変更要求の送信者へ返信して、少なくとも永続化処理が実行される第1のログを用いて、データベースの復元又はプライマリ/セカンダリ同期を実行できるよう保証する。
本願のこの実施では、同様の理由で、第2のログに対して永続化処理を実行できる。しかし、第2のログに対する永続化処理も、データ変更要求処理手順のキーパス(key path)に置くことはできない。図1に示す手順は、「第2のログに対する永続化処理の実行」を含まず、図1に示す手順における何れのステップの実行も、「第2のログに対する永続化処理の実行」に基づく必要はない。
例えば、メインのスレッド又は工程を用いて、図1の手順を実行でき、別のスレッド(例えば、バックエンドスレッド)又は工程を用いて、第2のログに対して永続化処理を実行できる。この2つの働きは互いに干渉しない。
本願のこの実施では、返信された変更結果に含まれる内容は限定されない。変更結果には、変更に成功したかどうかの記述のみを含めることができる、又は、変更後のデータの記述を含めることができる。
注記すると、図1に示す手順におけるステップは、同じデバイスによっても異なるデバイスによっても実行できる。例えば、ステップS101とステップS102とはデバイス1によって実行でき、ステップS103はデバイス2によって実行できる。別の実施例では、ステップS101はデバイス1によって実行でき、ステップS102とステップS103とはデバイス2によって実行できる。
前述の方法によると、変更後のデータと、変更前のデータと、変更されたデータに関連する他のデータとを含む完全ログを生成する従来技術と比べると、本願の解決策では、必ずしも完全ではなく、内容が同一ではない2種類のログ、すなわち第1のログと第2のログとを、どのようなデータ変更要求に対しても生成できる。第1のデータは変更後のデータであり、第2のデータは変更前のデータである。第1のログは、第1のデータのみを含むことができ、第2のデータと変更されたデータに関連する他のデータとを含まない。第2のデータと、変更されたデータに関連する他のデータとを含まず変更後のデータのみに基づいて、データベース状態を復元でき、又はプライマリ/セカンダリ同期を実施できるので、第1のログに対して永続化処理が実行された後に変更結果をユーザへ返信できる。また、第1のログのデータ量が完全ログのデータ量より少ないので、永続化処理にかかる時間は少なくてすみ、その結果、データベースのデータ変更要求処理時間を短縮できる。したがって、従来技術における問題を軽減できる。
更に、第2のログも本願の解決策において生成されるので、第2のログは、完全ログであってよい、又は、第1のログを補足するために用いられる不完全ログであってよい。したがって、従来技術におけるログと比べると、ログ全体の内容が不足することはなく、ログを生成するために消費されるリソースの量はほぼ同じである。従来技術におけるログに基づいて実施できる機能は、本願の解決策でも、依然、実施できる。
前述の方法に基づいて、本願の実施は、前述の方法の実施解決策及び拡張解決策を更に提供し、これを以下説明する。
本願のこの実施では、第1のログ又は第2のログに対して実行される永続化処理について上で説明した。理解を容易にするために、永続化処理について以下説明する。永続化処理は:ログを不揮発性記憶デバイスに格納するステップを含み;より具体的には、ログを特定のフォーマットのファイルに記録し、次いでそのファイルを不揮発性記憶デバイスに格納するステップを含むことができる。不揮発性記憶デバイスは、電源を切っても記憶されたデータが失われない記憶デバイス、例えば、ハードディスク、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能読み出し専用メモリ(EEPROM)、フラッシュメモリ等でよい。
例えば、生成されたレコードをテキストで記録し、そのテキストをハードディスクに格納できる。
本願のこの実施では、プライマリ/セカンダリデータベースの同期及びデータベースの復元に加え、ログをデータ分析などの他のシナリオで使えることが、前述の説明から分かる。第2のログを、複数のシナリオの実施で使用でき、詳細について以下説明する。
いくつかのアプリケーションシナリオでは、データベースはデータ分析システムなどの外部システムに接続されている。データベースのログを、他の用途のために外部システムに提供できる。例としてデータ分析システムを用いる。データ分析システムは、データベースによって送信されたログに基づいてデータベース内のデータ変更についてリアルタイム又は非リアルタイムで分析を実行し、分析結果を関連ユーザ、組織等に提供できる。
データ分析結果の正確性と包括性のために、データ分析システムでは、ログが、変更後のデータ(すなわち第1のデータ)と変更前のデータ(すなわち第2のデータ)とを含む必要があり、さらに他の関連データ(例えば、変更されたデータと同じデータベースレコードに属する他のデータ)をも含む必要がある。
本願のこの実施では、第2のログはデータ分析システムの必要性を満たすことができる。第2のログが生成された後、又は第2のログに対して永続化処理が実行された後、第2のログをデータ分析システムへ送信でき、その結果、データ分析システムは第2のログに基づいてデータ分析を実行する。データ分析システムの分析内容は本願では限定しない。
本願のこの実施では、本願の解決策のロバスト性(構造安定性)を更に向上させるために、第1のログに対して永続化処理が実行された後、変更結果を一時的に保留し、第1のログがセカンダリデータベース又は別のデバイスと同期した後に返信できる。そのため、セカンダリデータベースが変更を時間内に同期させるには好都合である。加えて、それは第1のログのバックアップと同等である。第1のログに対する永続化処理に用いられる記憶デバイスに障害がある場合でも、第1のログをセカンダリデータベース又は別のデバイスから、依然として復旧可能である。
例えば、データベースがプライマリデータベースである場合、データ変更要求に対応する変更結果を返信するステップS103の前に、セカンダリデータベースが第1のログに基づいて変更を同期させるよう、第1のログをセカンダリデータベースと同期させるステップを更に実行できる。
前述の分析によると、実際のアプリケーションシナリオでは、第1のログは第1のデータのみを含む単純化されたログであり、第2のログは少なくとも第1のデータと第2のデータとを含む完全ログである。図2と図3とに基づいて、従来技術における処理手順と本願の解決策における処理手順とを比較して分析する。
図2は従来技術による、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。図2の手順がプライマリデータベースによって実行される場合、手順は以下のステップを含むことができる。
S201.プライマリデータベースが、ユーザによって送信されたデータ変更要求を受信する。
S202.プライマリデータベースが、データ変更要求に基づいて、対応するデータ変更操作を実行する。
S203.プライマリデータベースが、データ変更要求又は実行されたデータ変更操作に基づいて、メモリ内に第2のログを生成する。
S204.プライマリデータベースが、生成された第2のログに対して永続化処理を実行する。
S205.プライマリデータベースが、永続化処理を実行された第2のログを、セカンダリデータベースと同期させる。
S206.プライマリデータベースが、変更に成功したことをユーザへ応答する。
ステップS201乃至S205のいずれか1つにおいて例外が発生した場合には、例外が除去されるまでステップS206を実行しなくてもよい。
図3は本願の実施に係る、実際のアプリケーションシナリオにおけるデータ変更要求処理手順を示す概略図である。図3の手順もプライマリデータベースによって実行される場合、その手順は以下のステップを含むことができる。
S301.プライマリデータベースが、ユーザによって送信されたデータ変更要求を受信する。
S302.プライマリデータベースが、データ変更要求に基づいて、対応するデータ変更操作を実行する。
S303.プライマリデータベースが、データ変更要求又は実行されたデータ変更操作に基づいて、メモリ内に第1のログと第2のログとを生成する。
S304.プライマリデータベースが、生成された第1のログに対して永続化処理を実行する。
S305.プライマリデータベースが、永続化処理を実行された第1のログを、セカンダリデータベースと同期させる。
S306.プライマリデータベースが、変更に成功したことをユーザへ応答する。
ステップS301乃至S305のいずれか1つにおいて例外が発生した場合には、例外が除去されるまでステップS306を実行しなくてもよい。
図2と図3との手順の比較から分かるように、第1のログのデータ量は第2のログのデータ量よりも少ないため、従来技術と比較して、プライマリデータベースがユーザへ変更の成功を応答する前における、永続化処理を実行する必要があるログのデータ量を、本願の解決策において削減できる。そのため、データ変更要求処理時間を短縮できる。
更に、図2と図3とにおける両手順において、プライマリデータベースはログをセカンダリデータベースと同期させる。ログの同期も、対応する帯域幅を占有し、対応する時間を費やす必要がある。第1のログのデータ量は第2のログのデータ量よりも少ないので、従来技術と比較して、ログの同期によって占有される帯域幅及び/又はログの同期に費やされる時間も、本願の解決策において低減できる。
図4に示すように、本願の実施により、更に、実際のアプリケーションシナリオにおいてデータ分析システムなどの外部システムへログを送信するための手順を示す概略図が提供される。図4の手順もプライマリデータベースによって実行される場合、以下のステップを含むことができる。
S401.プライマリデータベースが、メモリ内に新しく生成された第2のログを検出する。
S402.プライマリデータベースが、新たに生成された第2のログを取得する。
S403.プライマリデータベースが、取得された第2のログに対して永続化処理を実行する。
S404.プライマリデータベースが、第2のログを所定の外部システムへ送信する。
本願のこの実施では、プライマリデータベースによって同期されたログを受信した後、セカンダリデータベースは、そのログに対して永続化処理を実行する、及び/又はそのログを外部システムへ送信する等の操作も実行できる。しかし、このような操作工程は、従来技術の工程とは異なる。セカンダリデータベースに関する操作について以下説明する。
従来技術では、セカンダリデータベースは完全ログ(つまり、前述の例では第2のログ)を受信するので、受信したログに対して永続化処理を実行する、及び/又は受信したログを外部システムへ送信する等の操作を、直接、実行できる。
本願の解決策では、セカンダリデータベースは単純化されたログ(すなわち、前述の例の第1のログ)を受信し、この受信されたログに対し、直接、永続化処理のみを実行できる。この受信されたログを外部システムへ送信することは適切ではない。実際には、セカンダリデータベースも完全ログを用いる必要があろう。したがって、セカンダリデータベースは、単純化されたログに基づいて対応の完全ログを取得でき、次いで、完全ログに対して永続化処理を実行できる、及び/又は完全ログを外部システムへ送信する等の操作を実行できる。そのようにして、プライマリデータベースとセカンダリデータベースとのログ間の一貫性を向上させることができる。このような思想に基づいて、データベースが第1のログをデータベースのセカンダリデータベースと同期させた後、セカンダリデータベースは:セカンダリデータベースが変更を同期し、第1のログに基づいて第2のログを生成するステップを実行できる。更に、セカンダリデータベースは:セカンダリデータベースが、同期によって取得された第1のログ及び/又は第1のログに基づいて生成された第2のログに対して永続化処理を実行するステップと;セカンダリデータベースが、第2のログを所定の外部システムへ送信するステップと;を実行できる。
図5に示すように、本願の実施により、実際のアプリケーションシナリオにおいて(図2乃至図4のシナリオを用いることによって)プライマリデータベースによって同期された受信済の第1のログをセカンダリデータベースが処理する手順を示す概略図が提供される。図5の手順がプライマリデータベースに対するセカンダリデータベースによって実行される場合、手順は以下のステップを含むことができる。
S501.セカンダリデータベースが、プライマリデータベースによって同期された第1のログを受信する。
S502.セカンダリデータベースが、受信した第1のログに対して永続化処理を実行する。
S503.セカンダリデータベースが、第1のログをリプレイ(replay、再生成)する。
S504.セカンダリデータベースがデータ変更操作を同期させ、リプレイを通してメモリ内に第2のログを生成する。
S505.セカンダリデータベースが、第2のログに対して永続化処理を実行する。
本願のこの実施では、上述のように、2種類のログ、すなわち第1のログと第2のログとを、何れのデータ変更要求に対しても生成できる。その次の2種類のログの読み出し速度を上げるために、永続化処理を実行する際に、第1のログと第2のログとを異なる不揮発性記憶デバイスに別々に記憶できる。したがって、2種類のログは、それぞれの記憶デバイスの性能(例えば、帯域幅や読み出し速度)に基づいて別々に読み出すことができ、並行に読み出すこともできる。
本願のこの実施では、上述のように、完全ログ又は第2のログは、第1のデータと第2のデータとに加えて、変更データに関連する他のデータを含むことができる。通常、第1のデータと第2のデータとがそれぞれ少なくとも1つのデータベースレコードに属する場合、第2のログに更に含めることができる「変更されたデータに関連する他のデータ」は、第1のデータが属するデータベースレコード内の第1のデータ以外のデータ、及び/又は第2のデータが属するデータベースレコード内の第2のデータ以外のデータを含むが、これらに限定されない。
容易に理解できるように、説明のための例として表1及び表2を用いる。
Figure 2019527883
表1は、3つのデータベースレコード:a,b,cを含む、データベース内のデータテーブルの一部の内容である。各レコードにはnキーと値のペアが含まれ、nキーはそれぞれcolumn(列)_1からcolumn_nであり、各データベースレコードのキーに対応する値を表1に示す。説明を簡単にするために、キーと値のペアと、そのキーと値のペアが属するデータベースレコードの行番号とを<row>:<key、value>で示す。ここで、「key」はキーを示し、「value」は値を示し、及び「row」は、キーと値のペアが属するデータベースレコードの行番号を示す。
データベースは、ユーザによって送信されたデータ変更要求を受信すると仮定する。データ変更要求に基づいて、<a>:<column_2、a_2>が、<a>:<column_2、a_2’>に変更され、<b>:<column_2、b_2>が、<b>:<column_2、b_2’>に変更される。表1を変更したものを下記表2に示す。
Figure 2019527883
前述の例では、第1のデータは、<a>:<column_2、a_2’>、及び、<b>:<column_2、b_2’>であり、第2のデータは、<a>:<column_2、a_2>及び<b>:<column_2、b_2>である。
変更されたデータに関連する他のデータは、レコードaとレコードbの変更されたデータ以外のデータ、つまり<a>:<column_1、a_1>、・・・、<a>:<column_n、a_n>、及び、<b>:<column_1、b_1>、・・・、<b>:<column_n、b_n>を含むことができる。
生成された第1のログは、「<a>:<column_2、a_2‘>、及び、<b>:<column_2,b_2’>」と示された第1のデータのみを含むことができ、第2のデータと、変更されたデータに関連するその他のデータとは含まない。
生成された第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のデータと変更されたデータに関連するその他のデータも含むことができる。
前述の例のログに含まれる内容の表現形式は単なる例に過ぎず、本願を限定するものではないことは特に留意すべき事項である。実際には、その内容を他の形式で表すこともできる。
図6に示すように、本願の実施は、本願の解決策をより直感的に理解できるよう、(図2乃至図4のシナリオを用いることによる)実際のアプリケーションシナリオにおける本願の解決策における端末間のインタラクション(対話、相互作用)を例示する概略図を更に提供する。
4つの端末が主に図6に含まれており、端末はそれぞれユーザ、プライマリデータベース、セカンダリデータベース、及びデータ分析システムである。図6の(1)乃至(5)までの番号に対応するステップは、本願のこの実施において提供されるデータ変更要求処理方法の主要ステップであり、番号のないステップは二次的(補助的)ステップである。すべてのステップは、先に、それぞれ詳細に述べられており、簡略化のために詳細をここでは省略する。
以上が本願の実施において提供されるデータベースのデータ変更要求処理方法である。図7に示すように、本願の実施は、同じ考えに基づいて対応する装置を更に提供する。
図7は本願の実施に係る、データベースのデータ変更要求処理装置を示す概略構造図である。この装置は:データベースに対するデータ変更要求を受信するよう構成された受信モジュール701と;データベース内の第2のデータを第1のデータへ変更し、データ変更要求に基づいて第1のログと第2のログとを生成するよう構成された処理モジュール702であって、第1のログは第1のデータを含み、第2のログは第2のデータを含む、処理モジュール702と;第1のログに対して永続化処理が実行された後に、データ変更要求に対応する変更結果を返信するよう構成された返信モジュール703と;を含む。
オプションとして、第2のログは第1のデータを更に含む。
オプションとして、処理モジュール702は、メモリ内に第1のログと第2のログとを生成するよう構成される。
オプションとして、処理モジュール702は、第2のログに対して永続化処理を実行するよう更に構成される。
オプションとして、装置は、第2のログをデータ分析システムに送信するよう構成される送信装置704を更に含み、それによりデータ分析システムは第2のログに基づいてデータ分析を実行する。
オプションとして、データベースがプライマリデータベースである場合、装置は、返信モジュール703がデータ変更要求に対応する変更結果を返信する前に、セカンダリデータベースが第1のログに基づいて変更を同期するように、第1のログをデータベースのセカンダリデータベースと同期させるよう構成された同期モジュール705を更に含む。
オプションとして、第1のデータと第2のデータとは、それぞれ少なくとも1つのデータベースレコードに属する。
第2のログは、第1のデータが属するデータベースレコード内の第1のデータ以外のデータ、及び/又は第2のデータが属するデータベースレコード内の第2のデータ以外のデータを更に含む。
オプションとして、永続化処理には、ログを不揮発性記憶デバイスに格納する処理が含まれる。
オプションとして、永続化処理には、ログを不揮発性記憶デバイスに格納する処理が含まれる。
第1のログと第2のログとは、永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される。
オプションとして、データ変更要求はデータ更新要求、データ削除要求、又はデータ追加要求である。
データ変更要求がデータ更新要求である場合、第1のデータも第2のデータもヌルではない;又は、データ変更要求がデータ削除要求である場合、第1のデータはヌルであり、第2のデータはヌルではない;又は、データ変更要求がデータ追加要求の場合、第1のデータはヌルではなく、第2のデータがヌルである。
図7の装置は、データベース内に配置できる、又は、データベースに属さないがデータベースに接続できる機能モジュール上に配置できる。
本願において提供される装置は、本願において提供される方法と1対1に対応する。したがって、装置及び方法は、同様の有益な技術的効果を奏する。本方法の有益な技術的効果については上で詳細に述べているので、装置の有益な技術的効果については、簡略化のためにここでは省略する。
当業者は、本願の実施が方法、システム、又はコンピュータプログラム製品として提供できることを理解するはずである。そのため、本発明は、ハードウェアのみの実施、ソフトウェアのみの実施、又は、ソフトウェアとハードウェアとの組み合わせによる実施を用いることができる。さらに、本発明は、コンピュータで使用可能なプログラムコードを含んだ1台以上のコンピュータで使用可能な記憶媒体(ディスクメモリ、CD−ROM、光学メモリ等を含むがこれに限定されない)上で実施されるコンピュータプログラム製品を使用できる。
本発明は、本願の実施に係る方法、デバイス(システム)、コンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明されている。フローチャート及び/又はブロック図内の各プロセス及び/又は各ブロック、並びにフローチャート及び/又はブロック図内のプロセス及び/又はブロックの組み合わせを実施するために、コンピュータプログラム命令を使用することができることを理解されたい。このコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はあらゆるその他のプログラムマブルデータ処理デバイスに、マシンを生成するために提供されることができ、これにより、コンピュータ、又はあらゆるその他のプログラムマブルデータ処理デバイスのプロセッサが、フローチャートの1つ以上のフローにおける、及び/又は、ブロック図の1つ以上のブロックにおける、特定の機能を実施するデバイスを生成できるようになる。
このコンピュータプログラム命令を、コンピュータ又はあらゆるその他のプログラマブルデータ処理デバイスに特定の方法で機能するように命令することができるコンピュータ読取可能なメモリに記憶して、これらのコンピュータ読取可能なメモリに記憶された命令が、命令装置を含むアーチファクトを作り出すようにすることができる。この命令装置は、フローチャート内の1つ以上のフローにおける、及び/又はブロック図内の1つ以上のブロックにおける特定の機能を実施する。
このコンピュータプログラム命令をコンピュータ又はその他のプログラマブルデータ処理デバイスにロードして、コンピュータ又はその他のプログラムマブルデバイス上で一連の操作及びステップが実行されるようにし、コンピュータで実施される処理を生成することができる。これにより、コンピュータ又はその他のプログラムマブルデバイス上で実行される命令が、フローチャート内の1つ以上のフロー及び/又はブロック図内の1つ以上のブロックにおける特定の機能を実施するデバイスを提供することを可能とする。
典型的な構成では、コンピューティングデバイスは1つ以上のプロセッサ(CPUs)、入出力インターフェース、ネットワークインターフェース、及びメモリを含む。
メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)、不揮発性メモリ、及び/又はリードオンリーメモリ(ROM)やフラッシュメモリ(flash RAM)のようなコンピュータ読取可能な媒体を含んでよい。メモリはコンピュータ読取可能な媒体の一例である。
コンピュータ読取可能な媒体には、任意の方法又は技術を用いて情報を記憶できる、永続的、非永続的、移動可能な、移動不能な媒体が含まれる。この情報はコンピュータ読取可能な命令、データ構造、プログラムモジュール、又はその他のデータであってよい。コンピュータの記憶媒体の例として、コンピューティングデバイスによってアクセスできる情報を記憶するために用いることが可能な、相変化ランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別タイプのランダムアクセスメモリ、リードオンリーメモリ(ROM)、電気的に消去可能でプログラム可能なROM(EEPROM)、フラッシュメモリ、又は別のメモリ技術、コンパクトディスクROM(CD−ROM)、デジタル多用途ディスク(DVD)、又は別の光学記憶装置、カセット、磁気テープ、テープ、ディスクストレージ、他の磁気的記憶装置、又は他の任意の非伝送媒体があるが、これに限定されない。本願の定義に基づき、コンピュータ読取可能な媒体は、変調されたデータ信号及び搬送波のような一時的な媒体(transitory media)を含まない。
さらに、用語「含む」、「含有する」、又はこれらのその他任意の応用形は、非限定的な包含を網羅するものであるため、一連の要素を含んだ工程、方法、物品、デバイスはこれらの要素を含むだけでなく、ここで明確に挙げていないその他の要素をも含む、あるいは、このような工程、方法、物品、デバイスに固有の要素をさらに含むことができる点に留意することが重要である。「(1つの)〜を含む」との用語を付けて示された要素は、それ以上の制約がなければ、その要素を含んだ工程、方法、商品、デバイス内に別の同一の要素をさらに含むことを排除しない。
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
701 受信モジュール
702 処理モジュール
703 返信モジュール
704 送信モジュール
705 同期モジュール
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
以下、本発明の実施の態様の例を列挙する。
[第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の局面のいずれかに記載の装置。

Claims (22)

  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のいずれか1項に記載の方法。
  10. 前記永続化処理は:
    ログを不揮発性記憶デバイスに格納するステップを備える、
    請求項1乃至請求項8のいずれか1項に記載の方法。
  11. 前記永続化処理は:
    ログを不揮発性記憶デバイスに格納するステップを備え;
    前記第1のログと前記第2のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスへ別々に格納される、
    請求項1乃至請求項4のいずれか1項に記載の方法。
  12. 前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり;
    前記データ変更要求がデータ更新要求である場合は、前記第1のデータも前記第2のデータもヌルではない;又は
    前記データ変更要求がデータ削除要求である場合は、前記第1のデータはヌルであり、前記第2のデータはヌルではない;又は
    前記データ変更要求がデータ追加要求である場合は、前記第1のデータはヌルではなく、前記第2のデータがヌルである、
    請求項1乃至請求項8のいずれか1項に記載の方法。
  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のいずれか1項に記載の装置。
  20. 前記永続化処理は:
    ログを不揮発性記憶デバイスに格納する処理を備える、
    請求項13乃至請求項18のいずれか1項に記載の装置。
  21. 前記永続化処理は、ログを不揮発性記憶デバイスに格納する処理を備え;
    前記第1のログと前記第2のログとは、前記永続化処理を用いて別々の不揮発性記憶デバイスに別々に記憶される、
    請求項13乃至請求項18のいずれか1項に記載の装置。
  22. 前記データ変更要求は、データ更新要求、データ削除要求、又はデータ追加要求であり;
    前記データ変更要求がデータ更新要求である場合は、前記第1のデータも前記第2のデータもヌルではない;又は、
    前記データ変更要求がデータ削除要求である場合は、前記第1のデータはヌルであり、前記第2のデータはヌルではない;又は
    前記データ変更要求がデータ追加要求である場合は、前記第1のデータはヌルではなく、前記第2のデータがヌルである、
    請求項13乃至請求項18のいずれか1項に記載の装置。
JP2019500305A 2016-07-04 2017-06-27 データベースのデータ変更要求処理方法及び装置 Active JP6987340B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610518735.2 2016-07-04
CN201610518735.2A CN106897338A (zh) 2016-07-04 2016-07-04 一种针对数据库的数据修改请求处理方法及装置
PCT/CN2017/090269 WO2018006723A1 (zh) 2016-07-04 2017-06-27 一种针对数据库的数据修改请求处理方法及装置

Publications (2)

Publication Number Publication Date
JP2019527883A true JP2019527883A (ja) 2019-10-03
JP6987340B2 JP6987340B2 (ja) 2021-12-22

Family

ID=59191565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019500305A Active JP6987340B2 (ja) 2016-07-04 2017-06-27 データベースのデータ変更要求処理方法及び装置

Country Status (9)

Country Link
US (3) US11106695B2 (ja)
EP (1) EP3480705B1 (ja)
JP (1) JP6987340B2 (ja)
KR (1) KR102248386B1 (ja)
CN (1) CN106897338A (ja)
MY (1) MY189491A (ja)
SG (1) SG11201811808VA (ja)
TW (1) TWI701567B (ja)
WO (1) WO2018006723A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897338A (zh) 2016-07-04 2017-06-27 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置
CN110209642A (zh) * 2018-02-05 2019-09-06 北京智明星通科技股份有限公司 信息处理的方法、装置、服务器及计算机可读介质
CN110851486A (zh) * 2018-07-26 2020-02-28 珠海格力电器股份有限公司 数据存储方法及装置
CN110134653B (zh) * 2019-05-17 2021-09-07 杭州安恒信息技术股份有限公司 一种利用日志辅助数据库审计方法及系统
CN112416924A (zh) * 2019-08-22 2021-02-26 富泰华工业(深圳)有限公司 数据同步查询方法、装置、计算机装置及存储介质
CN110543386B (zh) * 2019-09-16 2022-06-10 上海达梦数据库有限公司 一种数据存储方法、装置、设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684223B1 (en) * 1998-12-29 2004-01-27 Oracle International Corporation Performing 2-phase commit with presumed prepare
US20040054644A1 (en) * 2002-09-16 2004-03-18 Oracle Corporation Method and mechanism for implementing in-memory transaction logging records
JP2006011848A (ja) * 2004-06-25 2006-01-12 Nec Corp レプリケーションシステム、装置、方法、およびプログラム
JP2006268503A (ja) * 2005-03-24 2006-10-05 Toshiba Corp 計算機システム、ディスク装置およびデータ更新制御方法
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
CN101681313A (zh) * 2008-02-29 2010-03-24 株式会社东芝 存储器系统
JP2010257284A (ja) * 2009-04-27 2010-11-11 Hitachi Ltd データ処理方法、計算機、及びデータ処理プログラム
JP2013178685A (ja) * 2012-02-29 2013-09-09 Nec Corp 非同期バックアップ機能を有するデータ処理システム、フロントシステム、バックアップ方法、及びそのためのプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430869A (en) * 1991-05-29 1995-07-04 Hewlett-Packard Company System and method for restructuring a B-Tree
US5701480A (en) 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US6052695A (en) * 1995-02-28 2000-04-18 Ntt Data Communications Systems Corporation Accurate completion of transaction in cooperative type distributed system and recovery procedure for same
JP4186602B2 (ja) * 2002-12-04 2008-11-26 株式会社日立製作所 ジャーナルログを利用した更新データ書込方法
US7168001B2 (en) 2004-02-06 2007-01-23 Hewlett-Packard Development Company, L.P. Transaction processing apparatus and method
US8185551B2 (en) * 2007-06-08 2012-05-22 Massachusetts Institute Of Technology Disk-resident streaming dictionary
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
CN102024021A (zh) * 2010-11-04 2011-04-20 曙光信息产业(北京)有限公司 一种逻辑文件系统元数据的日志方法
CN102270225B (zh) * 2011-06-28 2015-10-21 用友网络科技股份有限公司 数据变更日志监控方法和数据变更日志监控装置
CN103166785A (zh) * 2011-12-15 2013-06-19 同程网络科技股份有限公司 基于Hadoop的分布式日志分析系统
JP2014071487A (ja) * 2012-09-27 2014-04-21 Sony Corp ファイル記録装置、フィルシステム管理方法およびチェンジャドライブ
US9396220B2 (en) * 2014-03-10 2016-07-19 Oracle International Corporation Instantaneous unplug of pluggable database from one container database and plug into another container database
US10706009B2 (en) * 2013-03-14 2020-07-07 Oracle International Corporation Techniques to parallelize CPU and IO work of log writes
US9514007B2 (en) * 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9098453B2 (en) * 2013-07-11 2015-08-04 International Business Machines Corporation Speculative recovery using storage snapshot in a clustered database
CN104462127B (zh) * 2013-09-22 2018-07-20 阿里巴巴集团控股有限公司 一种记录数据更新方法及装置
US10230796B2 (en) * 2014-05-30 2019-03-12 Apple Inc. Intelligent disk space manager
US10545987B2 (en) * 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
CN104537037B (zh) * 2014-12-23 2018-01-23 杭州华为数字技术有限公司 一种处理数据库日志的方法及装置
US9811493B2 (en) * 2015-05-29 2017-11-07 Toshiba Memory Corporation Semiconductor device
WO2017042890A1 (ja) * 2015-09-08 2017-03-16 株式会社東芝 データベースシステム、サーバ装置、プログラムおよび情報処理方法
US10296661B2 (en) 2015-09-11 2019-05-21 Salesforce.Com, Inc. Processing log files using a database system
US10747739B1 (en) * 2015-09-18 2020-08-18 Amazon Technologies, Inc. Implicit checkpoint for generating a secondary index of a table
CN108431810B (zh) * 2015-10-23 2022-02-01 甲骨文国际公司 代理数据库
CN107046552B (zh) * 2016-02-05 2020-10-23 华为技术有限公司 基于心跳的数据同步装置、方法及分布式存储系统
CN106897338A (zh) 2016-07-04 2017-06-27 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684223B1 (en) * 1998-12-29 2004-01-27 Oracle International Corporation Performing 2-phase commit with presumed prepare
US20040054644A1 (en) * 2002-09-16 2004-03-18 Oracle Corporation Method and mechanism for implementing in-memory transaction logging records
JP2006011848A (ja) * 2004-06-25 2006-01-12 Nec Corp レプリケーションシステム、装置、方法、およびプログラム
JP2006268503A (ja) * 2005-03-24 2006-10-05 Toshiba Corp 計算機システム、ディスク装置およびデータ更新制御方法
CN101681313A (zh) * 2008-02-29 2010-03-24 株式会社东芝 存储器系统
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2010257284A (ja) * 2009-04-27 2010-11-11 Hitachi Ltd データ処理方法、計算機、及びデータ処理プログラム
JP2013178685A (ja) * 2012-02-29 2013-09-09 Nec Corp 非同期バックアップ機能を有するデータ処理システム、フロントシステム、バックアップ方法、及びそのためのプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中村 正弘: "複製ファイルの非同期更新が分散データベースの中心技術に", 日経エレクトロニクス, vol. 第609号, JPN6020013386, 6 June 1994 (1994-06-06), JP, pages 101 - 110, ISSN: 0004406163 *

Also Published As

Publication number Publication date
JP6987340B2 (ja) 2021-12-22
CN106897338A (zh) 2017-06-27
US11132379B2 (en) 2021-09-28
WO2018006723A1 (zh) 2018-01-11
SG11201811808VA (en) 2019-02-27
US20200125581A1 (en) 2020-04-23
TW201804346A (zh) 2018-02-01
EP3480705B1 (en) 2021-08-04
US20190155817A1 (en) 2019-05-23
MY189491A (en) 2022-02-16
US11106695B2 (en) 2021-08-31
US20210390114A1 (en) 2021-12-16
KR102248386B1 (ko) 2021-05-07
EP3480705A1 (en) 2019-05-08
EP3480705A4 (en) 2019-05-08
TWI701567B (zh) 2020-08-11
KR20190026846A (ko) 2019-03-13

Similar Documents

Publication Publication Date Title
JP6987340B2 (ja) データベースのデータ変更要求処理方法及び装置
US10649953B2 (en) Blockchain-based data migration method and apparatus
EP3474516B1 (en) Data processing method and device
US20110106768A1 (en) Backup using metadata virtual hard drive and differential virtual hard drive
US10609141B2 (en) Methods and apparatuses for cluster switching
CN112131237A (zh) 数据同步方法、装置、设备及计算机可读介质
US11748215B2 (en) Log management method, server, and database system
US20230267048A1 (en) Master-slave architecture deployment method and device based on snapshot
US20210064473A1 (en) Method and device for failover in hbase system, and non-transitory computer-readable storage medium
CN111221678A (zh) Hbase数据备份/恢复系统、方法、装置及电子设备
US10592355B2 (en) Capacity management
US20180121531A1 (en) Data Updating Method, Device, and Related System
US11157456B2 (en) Replication of data in a distributed file system using an arbiter
US10387262B1 (en) Federated restore of single instance databases and availability group database replicas
US20230281167A1 (en) Hybrid synchronization using a shadow component
CN113157392B (zh) 镜像仓库高可用方法及设备
CN111522883A (zh) 对象数据的备份方法、装置、设备及存储介质
US20220398115A1 (en) Aggregating block mapping metadata to improve linked clone read performance
US9747166B2 (en) Self healing cluster of a content management system
US10942649B2 (en) System and method for backup storage garbage collection
CN113157393A (zh) 管理节点高可用方法及设备
CN114490540A (zh) 数据存储方法、介质、装置和计算设备
US10091286B1 (en) Method and system for enhanced client-server communication in a cached communication environment
CN115454946A (zh) 数据复制方法、分布式存储系统、电子设备及存储介质
CN117130995A (zh) 数据处理方法、装置、设备及介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190304

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200407

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201214

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20201228

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20210225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210312

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: 20210921

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211020

R150 Certificate of patent or registration of utility model

Ref document number: 6987340

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150