JP5577350B2 - 効率的なデータ同期化のための方法及びシステム - Google Patents

効率的なデータ同期化のための方法及びシステム Download PDF

Info

Publication number
JP5577350B2
JP5577350B2 JP2011540691A JP2011540691A JP5577350B2 JP 5577350 B2 JP5577350 B2 JP 5577350B2 JP 2011540691 A JP2011540691 A JP 2011540691A JP 2011540691 A JP2011540691 A JP 2011540691A JP 5577350 B2 JP5577350 B2 JP 5577350B2
Authority
JP
Japan
Prior art keywords
data
data table
target data
synchronization
current target
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
JP2011540691A
Other languages
English (en)
Other versions
JP2012511773A (ja
JP2012511773A5 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2012511773A publication Critical patent/JP2012511773A/ja
Publication of JP2012511773A5 publication Critical patent/JP2012511773A5/ja
Application granted granted Critical
Publication of JP5577350B2 publication Critical patent/JP5577350B2/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/2308Concurrency control
    • 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
    • G06F16/2386Bulk updating operations
    • 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/2393Updating materialised views
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

[関連出願への相互参照]
本出願は、2008年12月10日付けで出願された、発明の名称を「DATA SYNCHRONIZATION METHOD AND DEVICE(データ同期化の方法及びデバイス)」とする中国特許出願第200810179394.6号の優先権を主張する。当該出願は、あらゆる目的のために参照によって本明細書に組み込まれる。
本発明は、コンピュータの分野に関し、特に、データ同期化の方法及びシステムに関する。
大規模な電子商取引ウェブサイトでは、フロントエンドアプリケーションサーバによるクエリを処理するために、バックエンドデータウェアハウスと、オンライントランザクション処理(OLTP)用のORACLE(商標)データベースなどのフロントエンドデータベースとを、同期化させることが、しばしば必要とされる。
ORACLEデータベースは、アンドゥ/ロールバックテーブルスペースを含む。あるセッションがデータベースに対してデータ操作言語(DML)で更新及び削除の動作を実施するとき、アンドゥ/ロールバックテーブルスペースに、データ行に作用するローデータが保存される。問題のセッションがコミットされる前に別のセッションがこれらのデータ行にアクセスするときは、このセッションは、データが変更されたがまだコミットされていない旨の表示を受信し、保存されたアンドゥ/ロールバックアドレス情報にしたがってアンドゥ/ロールバックテーブルスペースからローデータを読み出す。占有されたロールバックセグメントは、問題のセッションがコミットされるまで又はロールバックが終了されるまで解放されない。
図1は、代表的なデータ同期化技術を示した図である。この例では、テーブルt1は、フロントエンドOLTP ORACLEデータベースにあるテーブルであり、データウェアハウス(DW)は、バックエンドデータウェアハウスであり、アプリケーションサーバは、テーブルt1からデータを読み出す。代表的なデータ同期化技術は、以下の通りである(以下のコマンドは、全て、フロントエンドデータベースで実行される)。すなわち、第1のステップでは、ユーザテーブルt1内のデータが、delete from schema1.tablenameなどのコマンドを使用して削除され、削除されたデータは、アンドゥ/ロールバックテーブルスペースに一時的に保存され、第2のステップでは、バックエンドデータウェアハウスのユーザテーブルt2からデータが読み出され、insert into schema 1.tablename select * from schema2.tablename@lnk_dwなどのコマンドを使用してユーザテーブルt1に挿入され、同期化されたがコミットされていないデータもまた、アンドゥ/ロールバックテーブルスペースに一時的に保存され、第3のステップでは、データはコミットされ、第4のステップでは、もし異常が発生した場合にデータがロールバックされる。ORACLEデータベースは、フロントエンド及びデータウェアハウスの両方に採用されるので、データは、データベースリンクを介して直接的にインポート/エクスポートすることができる。例えば、上記ステップの第2のステップで使用されるlnk_dwは、データベースリンクを表わす。
上記のデータ同期化技術では、同じデータサービスの全ての動作が同じテーブル上で実施される、すなわち、バックエンドデータウェアハウスのテーブルはフロントエンドデータベースのテーブルに対応している。このように、動作中は、アンドゥ/ロールバックテーブルスペースに大量のデータを保存する必要がある。既存の技術には、以下の短所がある。
(1)上記のステップでは、アンドゥ/ロールバックテーブルスペースのかなりの部分が第1及び第2のステップで使用され、問題を発生させやすい。例えば、もしアンドゥ/ロールバックテーブルスペースが使い尽くされると、サービスの通常の過程で呼び出される「挿入」、「更新」、及び「削除」などの他の通常DML動作が影響を受ける恐れがある。ピーク期間中にアンドゥ/ロールバックテーブルスペースが満杯になると、アプリケーションサーバからデータベースに送信された各DML宣言は待機しなければならず、サーバにおける接続プールが満杯になる。この結果、アプリケーションサーバに到着するますます多くの要求が接続待ちしなければならず、アプリケーションサーバ上のメモリなどのリソースが使い尽くされてアプリケーションサーバを正常に機能させなくするという悪循環が生じる。
(2)第1及び第2のステップの実行には、長時間要する可能性がある。この時間中に異常が発生すると、第4のロールバックステップが実行される。すると、システムは、誤差耐性に乏しくなる。ロールバックされるデータが大量にあると、ロールバック動作の実施が長期に及び、生産データベースのパフォーマンスを低下させる可能性がある。
(3)データの同期化は、主として第1のステップの削除動作ゆえに、非効率的である。
(4)断絶された移送を復旧させるのは、困難である。
(5)データの同期化の進行は、監視が容易でない。
同期化されるデータの量が増すほど、フロントエンドORACLEデータベースのアンドゥ/ロールバックテーブルスペースは満杯になりやすく、これは、システムのパフォーマンスに悪影響を及ぼす。
以下の詳細な説明及び添付の図面において、本発明の各種の実施形態が開示される。
代表的なデータ同期化技術を示した図である。
データ同期化システムの一実施形態を示した図である。
ソースデータテーブルとターゲットデータテーブルとの間でデータを同期化するためのデータ同期化プロセスの一実施形態を示したフローチャートである。
アプリケーションサーバがテーブルt1にアクセスし、データがバックエンドデータウェアハウスからヌルテーブルt2へ同期化される一例を示す図である。
アプリケーションサーバがテーブルt2にアクセスし、データがバックエンドデータウェアハウスからヌルテーブルt1へ同期化される一例を示す図である。
ソースデータテーブル(例:バックエンドデータウェアハウス内のデータテーブル)とターゲットデータテーブル(例:フロントエンドORACLEデータベース内のデータテーブル)との間でデータを同期化するためのデータ同期化プロセスの実施形態を示したフローチャートである。 ソースデータテーブル(例:バックエンドデータウェアハウス内のデータテーブル)とターゲットデータテーブル(例:フロントエンドORACLEデータベース内のデータテーブル)との間でデータを同期化するためのデータ同期化プロセスの実施形態を示したフローチャートである。
ソースデータテーブルと現ターゲットデータテーブルとを同期化するためのプロセスの一実施形態を示したフローチャートである。
ストレージフォーマットの一実施形態を示した図である。
ソースデータテーブルから現ターゲットデータテーブルへセグメント式にデータを同期化するためのプロセスの一実施形態を示したフローチャートである。
データ同期化システムを示したブロック図である。
マルチプロセスデータ同期化システムを示したブロック図である。
本発明は、プロセス、装置、システム、合成物、コンピュータ可読記憶媒体に盛り込まれたコンピュータプログラム製品、並びに/又は結合先のメモリに格納された命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサを含む、数々の形態で実現することができる。本明細書では、これらの実現の形態、又は本発明が取り得るその他の任意の形態は、技術と称することができる。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で変更され得る。別途明記されない限り、タスクを実施するように構成されるものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にそのタスクを実施するように一時的に構成される汎用コンポーネント、又はそのタスクを実施するように製造された特殊コンポーネントとして導入され得る。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1つ又は複数のデバイス、回路、及び/又は処理コアを意味するものとする。
発明の原理を例示した添付の図面を伴って、以下で、発明の1つ又は複数の実施形態に関する詳細な説明が提供される。発明は、このような実施形態に関連して説明されるが、どの実施形態にも限定されない。発明の範囲は、特許請求の範囲によってのみ限定され、数々の代替、変更、及び等価な形態を内包する。以下の説明では、発明の完全な理解を可能にするために、数々の詳細が特定される。これらの詳細は、例示目的で提供されるものであり、発明は、これらの詳細の一部又は全部を伴わなくても特許請求の範囲にしたがって実施され得る。明瞭さを期するため、発明に関連した技術分野で知られている技工物は、発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
図2は、データ同期化システムの一実施形態を示した図である。同じデータサービスについて、2つ又は3つ以上のターゲットデータテーブル(図2には、ターゲットデータテーブル1及びターゲットデータテーブル2が示されている)が予め確立される。ターゲットデータテーブルは、同期化予定のデータが格納されたソースデータテーブルに対応している。この例では、各ソースデータテーブルは、交互に使用される2つのターゲットデータテーブルに対応している。ソースデータテーブル及びターゲットデータテーブルは、バックエンドデータウェアハウス内に、又はORACLEなどのフロントエンドデータベース内に存在することができる。或いは、ソースデータテーブルがバックエンドデータウェアハウス内に、ターゲットデータテーブルがフロントエンドデータベース内にそれぞれ存在することができる、又はその逆であっても良い。
この例では、アプリケーションサーバによるターゲットデータテーブルアクセスを促すために、上位ビューが予め確立される。上位ビューは、データベースサーバ上、アプリケーションサーバ上、又はその他の適切なデバイス上に確立され得る。一部の実施形態では、上位ビューは、ターゲットデータテーブルへのポインタ、ハンドル、又はその他の適切な参照として実装される。一部の実装形態では、上位ビューは、ターゲットデータテーブルへポインタ又は参照を返す関数として実装される。アプリケーションサーバは、上位レベルによって指し示される又は参照されるターゲットデータテーブルにアクセスする。図2に示されるように、例えば、上位ビューがターゲットデータテーブル1を指し示すときは、アプリケーションサーバは、上位ビューを介してターゲットデータテーブル1内のデータにアクセスすることができる。その間、ターゲットデータテーブル2は、アクセスを受けず、同期化を所望されるデータがソースデータテーブル内にある場合には、ターゲットデータテーブル2と同期化することができる。同様に、上位ビューがターゲットデータテーブル2を指し示すときは、アプリケーションサーバは、上位ビューを通してターゲットデータテーブル2内のデータにアクセスすることができる。ターゲットデータテーブル1は、このときはアクセスされないので、同期化を必要とするソースデータテーブル内のデータは、ターゲットデータテーブル1と同期化することができる。このように、データ同期化プロセス及びデータアクセスプロセスは、別々のテーブル上で実施され、衝突が回避される。
図3は、ソースデータテーブルとターゲットデータテーブルとの間でデータを同期化するためのデータ同期化プロセスの一実施形態を示したフローチャートである。プロセスは、ウェブサーバやデータベースサーバなどのサーバ上で、又はデータベース及びアプリケーションサーバの両方とやり取りするその他の任意の適切なデバイス上で実施され得る。
ステップ302では、図2に関連して上述された技術に従い、ソースデータテーブルに基づいて2つ又は3つ以上のターゲットデータテーブルが確立される。ステップ304では、先に確立されたターゲットデータテーブルから現ターゲットデータテーブルが決定される。一部の実施形態では、現ターゲットデータテーブルを決定するために、各ターゲットデータテーブル内のデータレコードの数がカウントされる。レコードを持たないターゲットデータテーブルが、現テーブルであると見なされる。2つ以上のターゲットデータテーブルのレコード数がゼロの場合には、任意のテーブルが選ばれる。しかしながら、レコード数がゼロのターゲットデータテーブルが存在しない場合には、異常が発生しており、データ同期化のフローは終了される。
ステップ306では、ソースデータテーブルと、決定された現ターゲットデータテーブルとが同期化される。一部の実施形態では、ソースデータテーブルから、決定された現ターゲットデータテーブルへデータが同期化されるときに、データは、決定された現ターゲットデータテーブル(すなわち、元はヌルのターゲットデータテーブル)へ直接、コピー又は更新することができる。一部の実施形態では、元は空/無効(null)のターゲットデータテーブルが削除され、現ターゲットデータテーブルとして新しいターゲットデータテーブルが作成され、データは、その新しく作成された現ターゲットデータテーブルへコピーされる。
一部の実施形態では、ターゲットデータテーブルを作成するために、以下のコマンドが使用される。
create table t2 as select* from schema2.tablename@lnk_dw
コマンドの動作は、複合動作である。1つの動作は、(テーブルt2を作成するための)DDLであり、もう1つの動作は、データ同期化である。ORACLEは、それを、アンドゥ/ロールバックテーブルスペースを実質的に占有しないDDL動作として扱う。また、並列プロンプトも採用可能であり、特定のコマンドは、以下の通りである。
create table t2 as select/*+parallel (dw_t2, 4)*/* from schema2.tablename@lnk_dw dw_t2
ここで、上記コマンドの/*+parallel (dw_t2, 4)*/は、4つのプロセスによってtable dw_t2をスキャンすることを意味する。
このようなスキームの使用は、アンドゥ/ロールバックテーブルスペースが一杯になる可能性を更に下げるとともに、データ同期化の効率をある程度向上させることができる。
ステップ308では、データテーブルの同期化が成功した場合(正常に完了した場合)、アプリケーションサーバは、現ターゲットデータテーブルにアクセスするように指示される。一部の実施形態では、上位ビューは、データ同期化が成功すると随時更新される。更新された上位ビューは、ターゲットデータテーブルへ同期化されたデータにアプリケーションサーバがスムーズにアクセスできることを保証するために、データの新しいインポート先となったターゲットデータテーブルを指し示す。
一部の実施形態では、非現ターゲットデータテーブル(すなわち、データ同期化を受けないターゲットデータテーブル)の情報を消去する動作も、データ同期化が成功すると実行される。
バックエンドデータウェアハウス内のソースデータテーブルとフロントエンドORACLEデータベース内のターゲットデータテーブルとの間のデータ同期化を説明するために、詳細な一例が以下に提示される。同じデータサービス用に、2つのデータテーブルがフロントエンドデータサービス内に確立される。すなわち、バックエンドデータウェアハウス内のソースデータテーブルは、フロントエンドデータベース内の、交互に使用される2つのターゲットデータテーブル(テーブルt1及びテーブルt2)に対応している。
同期化スキームは、図4及び図5に示されている。図4は、アプリケーションサーバがテーブルt1にアクセスし、データがバックエンドデータウェアハウスからヌルテーブルt2へ同期化される一例を示している。図5は、アプリケーションサーバがテーブルt2にアクセスし、データがバックエンドデータウェアハウスからヌルテーブルt1へ同期化される一例を示している。
図4及び図5では、データウェアハウス(DW)は、バックエンドデータウェアハウスに対応しており、テーブルt1及びテーブルt2は、フロントエンドデータベース内の2つのデータテーブルに対応している。これらのテーブルは、同じデータサービスに対応している。バックエンドデータウェアハウス内のデータテーブルは、フロントエンドデータベース内の2つのデータテーブル(t1及びt2)に対応している。したがって、データは、バックエンドデータウェアハウス内のテーブルからテーブルt1又はテーブルt2へ同期化することができる。
アプリケーションサーバは、上位ビューがt1又はt2のいずれを指し示すかに基づいて、テーブルt1又はテーブルt2のいずれのデータにアクセスするかを決定する。したがって、アプリケーションサーバは、もし上位ビューがテーブルt1を指し示すならば、上位ビューを通してテーブルt1にアクセスする、又はもし上位ビューがテーブルt2を指し示すならば、アプリケーションサーバは、上位ビューを通してテーブルt2にアクセスする。
一部の実施形態では、データを定期的に同期化するために使用される時間間隔(プリセットデータ同期化期間とも言われる)がある。例えば、一部のシステムは、データウェアハウスからフロントエンドORACLEデータベースへ毎日データ同期化を実施するように構成される。データ同期化のために、テーブルt1及びテーブルt2は、同期化されたデータを取り込む(すなわち、コピーする)ヌルテーブルを見つけるために調査される。
図4では、アプリケーションサーバはテーブルt1にアクセスし、データはヌルテーブルt2中に同期化され、上位ビューは、データの同期化が完了するとテーブルt2を指し示すように再定義される。テーブルt1内のデータを消去するために、以下のコマンドが実行される。
truncate table t1
Truncate(切り捨て)の動作は、Delete(削除)の動作とは原則的に異なり、前者の使用の方が、より速いと思われる。
データがテーブルt2中に同期化され、上位ビューが再定義された後、アプリケーションサーバは、テーブルt2内のデータにアクセスし、次に同期化されるときのデータは、ヌルテーブルt1へ同期化される。図5は、アプリケーションサーバがテーブルt2にアクセスし、データがヌルテーブルt1へ同期化されるケースを示している。データ同期化が完了すると、上位ビューは、テーブルt1を指し示すように再定義され、次いで、以下のコマンドが実行される。
truncate table t2
テーブルt2のデータは、消去される。
図6及び図7は、ソースデータテーブル(例:バックエンドデータウェアハウス内のデータテーブル)とターゲットデータテーブル(例:フロントエンドORACLEデータベース内のデータテーブル)との間でデータを同期化するためのデータ同期化プロセスの実施形態を示したフローチャートである。これらの例は、ターゲットデータテーブルt1及びターゲットデータテーブルt2が事前に確立されていることを前提とする。以下の実施形態で説明されるプロセスは、ウェブサーバ上、データベースサーバ上、又はその他の適切なデバイス上で実行され得る。
図6では、2つのターゲットデータテーブル内のレコードの数が順次決定される。一方のターゲットデータテーブル内のレコード数がゼロに決定されるときは、もう一方のターゲットデータテーブル内のレコード数を決定する必要はない。ステップ601では、テーブルt1内のレコード数がカウントされ、その結果がN1として保存される。一部の実施形態では、以下のコマンドを使用して、テーブルt1内のレコード数がカウントされ変数N1として保存される。
Select count(*) into N1 from t1 where rownum<2
ここで、rownumは、データレコードを意味し、rownum<2は、データテーブル内に少なくとも1つのレコードが検出される限り、これ以上データレコードを更に検出しなくてもデータの存在を決定できることを示している。
ステップ602では、テーブルt1内にデータが存在するか否かが決定される。この例では、テーブルt1内にデータが存在するか否かは、カウントされたレコード数N1がゼロに等しいか否かを決定することによって決定される。等しい場合に、プロセスは、同期化のために603に進み、等しくない場合には、プロセスは、テーブルt2がデータを有するか否かを決定するためにステップ111に進む。
ステップ603では、データが同期化され、バックエンドデータウェアハウスからテーブルt1へ取り込まれる。各種の実施形態では、データは、ORACLEEXTENTによってサポートされるセグメント式コミットメント法などの各種の同期化方法を使用して同期化される。
ステップ604では、同期化が成功したか否かが決定される。成功した場合には、ステップ605が実行され、成功しなかった場合には、異常を処理するためにステップ608が実行される。異常が発生すると、データ同期化プロセスは終了される。警告メッセージ及び/又はログメッセージが生成されても良い。
ステップ605では、新しい上位ビューが作成される。新しい上位ビューは、テーブルt1を指し示すように作成されるので、アプリケーションサーバは、上位ビューを通してテーブルt1にアクセスすることができる。
ステップ606では、テーブルt2に対して消去動作が実施される。一部の実施形態では、古いデータを速やかに削除してテーブルt2の内容を消去するために、テーブルt2に対して消去動作が実施されるときに、上記のテーブル切り捨てコマンドが使用される。
ステップ607では、データ同期化プロセスは終了する。
ステップ611では、テーブルt2内のレコード数がカウントされ、その値がN2として保存される。
以下のコマンドを使用して、テーブルt2内のレコードの数がカウントされ変数N2として保存される。
Select count(*) into N2 from t2 where rownum<2
ステップ612では、テーブルt2内にデータが存在するか否かが決定される。すなわち、カウントされたレコード数N2がゼロに等しいか否かが決定される。等しい場合には、プロセスは、データ同期化を実施するためにステップ613に進み、等しくない場合には、両テーブル内におけるデータの存在は、異常を示しており、プロセスは、異常を処理するためにステップ608に進む。
ステップ613では、データが同期化され、バックエンドデータウェアハウスからテーブルt2に取り込まれる。各種の実施形態では、データは、ORACLEEXTENTによってサポートされるセグメント式コミットメント法などの各種の同期化方法を使用して同期化される。
ステップ614では、同期化が成功したか否かが決定される。成功した場合には、プロセスは、ステップ615に進み、成功しなかった場合には、異常があり、プロセスは、異常を処理するためにステップ608に進む。
ステップ615では、新しい上位ビューが作成される。データ同期化が成功すると、同期化されたテーブル、すなわちテーブルt2を指し示す上位ビューが作成しなおされるので、アプリケーションサーバは、上位ビューを通してテーブルt2にアクセスすることができる。
ステップ616では、テーブルt1に対して消去動作が実施される。一部の実施形態では、古いデータを速やかに削除してテーブルt1の内容を消去するために、上記のテーブル切り捨てコマンドが実行される。
ステップ607では、プロセスは終了する。
図7では、2つのターゲットデータテーブル内のレコード数が同時にカウントされ、それらのうち、カウント数がゼロであるターゲットデータテーブルが選択される。
ステップ701では、テーブルt1内のレコード数及びテーブルt2内のレコード数が、それぞれN1及びN2としてカウントされる。
テーブルt1内のレコード数及びテーブルt2内のレコード数は、処理中に、やはり上記のrownum<2のやり方でそれぞれN1及びN2としてカウントすることができ、具体的なコマンド行は、以下の通りである。
Select count(*) into N1 from t1 where rownum<2
Select count(*) into N2 from t2 where rownum<2
ステップ702では、テーブルt1及びテーブルt2にデータが存在するか否かが決定される。一部の実施形態では、テーブルt1内のレコード数N1及びテーブルt2内のレコード数N2がゼロに等しいか否かが決定される。
N1=0且つN2≠0は、テーブルt1にはデータがなく、テーブルt2にはデータがあることを示し、したがって、プロセスは、ステップ703に進む。
ステップ703では、バックエンドデータウェアハウスからテーブルt1中にデータが同期化される。
ステップ704では、同期化が成功したか否かが決定される。成功した場合には、プロセスは、ステップ705に進み、成功しなかった場合には、プロセスは、異常状態を処理するためにステップ733に進む。
ステップ705では、新しい上位ビューが作成される。新しい上位ビューは、テーブルt1を指し示すように作成されるので、アプリケーションサーバは、上位ビューを通してテーブルt1にアクセスすることができる。
ステップ706では、テーブルt2に対して消去動作が実施される。一部の実施形態では、消去動作を実施するために、上述の切り捨てコマンドが使用される。
プロセスは、ステップ707で終了する。
N1≠0且つN2=0は、テーブルt1にはデータがあり、テーブルt2にはデータがないことを示し、したがって、プロセスは、ステップ713に進む。
ステップ713では、バックエンドデータウェアハウスからテーブルt2中にデータが同期化される。
ステップ714では、同期化が成功したか否かが決定される。成功した場合には、プロセスは、新しい上位ビューを作成するためにステップ715に進み、成功しなかった場合には、異常が発生しており、プロセスは、異常を処理するためにステップ733に進む。
データ同期化が成功すると、ステップ715では、同期化されたデータテーブルt2を指し示すように上位ビューが作成しなおされるので、アプリケーションサーバは、上位ビューを通してテーブルt2にアクセスすることができる。
ステップ716では、テーブルt1に対して消去動作が実施される。
プロセスは、ステップ707で終了する。
N1=0且つN2=0は、テーブルt1にもテーブルt2にもデータが存在しないことを示し、プロセスは、ステップ723に進む。
ステップ723では、テーブルt1及びテーブルt2のなかからデータテーブルが選択される。この選択は、任意の選択であってよい。テーブルt1が選択される場合には、703〜707が実施される。テーブルt2が選択される場合には、713〜716及び707が実施される。
N1≠0且つN2≠0は、テーブルt1にもテーブルt2にもデータが存在することを示している。これは、異常状態だと見なされる。プロセスは、異常を処理するためにステップ733に進み、終了する。
図8は、ソースデータテーブルと現ターゲットデータテーブルとを同期化するためのプロセスの一実施形態を示したフローチャートである。プロセスは、図6のステップ603及び613、並びに図7のステップ703及び713を実施するために使用され得る。
ステップ801では、ソースデータテーブル内において同期化予定データによって占有されているストレージ範囲が決定される。一部の実施形態では、ソースデータテーブル内において同期化予定データによって占有されているストレージ範囲を得るために、ORACLEデータベースのデータディクショナリビューに対してクエリが行われる。
ステップ802では、上記ストレージ範囲内における同期化予定データのストレージアドレス情報が決定される。このストレージアドレス情報は、少なくとも、それぞれのストレージ範囲内における同期化予定データのアドレス域を含む。それぞれのストレージ範囲内において同期化予定データが保存されている最小アドレス(e_min_rowid)及び最大アドレス(e_max_rowid)が、ORACLEデータベースのデータディクショナリビューから導出される、ソースデータテーブル内において同期化予定データによって占有されているストレージ範囲を基にして計算される。一部の実施形態では、導出されたアドレス域は、例えばテーブルtmp_rowidなどの中間テーブルに保存される。中間テーブルのテーブル構造の一例は、以下の通りである。
create table tmp_rowid
(
id number;
ROWID_MIN VARCHAR2 (100),
ROWID_MAX VARCHAR2 (100)
)
ソースデータテーブル内のそれぞれのストレージ範囲内における同期化予定データのアドレス情報は、必要に応じて中間テーブルに対してクエリを行うことによって読み出される。
ステップ803では、それぞれのストレージ範囲内の同期化予定データが、ストレージアドレス情報にしたがって現ターゲットデータテーブルへ同期化される。あるストレージ範囲内のデータの同期化が失敗した場合には、そのストレージ範囲内のデータを同期化するプロセスは、やり直しされ、やり直しの回数がプリセット閾値を超えると終了する。
同期化は幾つかの方法で実施することができる。例えば、第1の実施形態では、それぞれのストレージ範囲内のデータは、ストレージアドレス情報にしたがって、1つのデータ同期化プロセスにおいて順次、現ターゲットデータテーブルへ同期化される。第2の実施形態では、決定されたストレージ範囲は、N個のグループに分割され、対応するN個のデータ同期化プロセスが開始され、各データ同期化プロセスでは、対応する一グループのそれぞれのストレージ範囲内のデータが、ストレージアドレス情報にしたがって、順次、現ターゲットデータテーブルへ同期化される。第2の実施形態は、通常、ORACLEデータベースを必要とする。第2の実施形態は、アプリケーションサーバを特定のデータから隔てるために、上位ビューを使用する。データウェアハウスからデータが同期化される、フロントエンドORACLEデータベース内のデータテーブルは、例えば、アプリケーションサーバによって現時点で呼び出されているデータが存在する任意のテーブルなどの、システムによって現時点で使用されているどのテーブルとも同じではない。データウェアハウスからフロントエンドORACLEデータベース内のデータテーブルへのデータ同期化、及びアプリケーションサーバによってデータを呼び出す動作は、同じデータテーブル上では実施されないので、これらの動作に起因するアクセスの対立は取り除かれる。
更に、ORACLEデータベースへのデータの保存は、以下の特徴を有する。
ORACLEデータベース内のデータテーブルは、数々のストレージ範囲を含み、各範囲は、データを中に保存される固定サイズのブロックの連なりを含む。一範囲は、データテーブルスペースの最小単位であり、1つの範囲と別の範囲は、それらの物理的位置の観点からみて連続的でないことがある。しかしながら、各範囲の内部には、連続した物理アドレスを有する一連のブロックがある。そのストレージフォーマットは、図9に示されるようなフォーマットである。
ORACLEデータベースへのデータの保存の上記特徴に基づき、データ同期化プロセスがアプリケーションサーバのアクセスプロセスと対立しないとされるときは、同期化予定のデータは、セグメント式にコミットすることができる、すなわち、データ同期化手続きは、サービスシステムによってアクセスされるデータの正確さに何ら影響することなく尚且つ向上されたデータ同期化速度で、第2の実施形態において可能とされ得る。
図10は、ソースデータテーブル(例:バックエンドデータウェアハウス)から現ターゲットデータテーブル(例:フロントエンドテーブルt1又はt2)へセグメント式にデータを同期化するためのプロセスの一実施形態を示したフローチャートである。
ステップ1001では、同期化予定データによって占有されているストレージ範囲に関してクエリが行われる。一部の実施形態では、ソースデータテーブル内において同期化予定データによって占有されているストレージ範囲を導出するために、ソースデータテーブルがあるバックエンドデータウェアハウスのデータディクショナリビューに対してクエリが行われる。
ステップ1002では、ソースデータテーブル内において各ストレージ範囲内の同期化予定データが保存されているアドレス域が決定される。一部の実施形態では、アドレス域は、例えばテーブルtmp_rowidなどの保存された中間テーブルに対してクエリを行うことによって決定される。
ステップ1003では、同期化予定データを保存されているストレージ範囲がN個のグループに分割される。
テーブルtmp_rowid内のデータは、例えば識別子(ID)モジュールによってN個のグループに分割するなどの数々のやり方でグループ分けすることができる。データは、次いで、グループごとに処理される。
ステップ1004では、N個のグループに分割されたそれぞれのストレージ範囲内のデータを現ターゲットデータテーブルへ同期化するために、N個のデータ同期化プロセスが開始される。
データは、各ストレージ範囲グループにそれぞれ対応するN個のデータ同期化プロセスで並列に処理される。同期化プロセスは、対立することなく同時に実行される。それぞれのストレージ範囲内のデータの同期化に並列処理を使用することによって、データ同期化の効率が向上される。
ステップ1005aでは、現グループ(例:第1のグループ)のそれぞれのストレージ範囲内の同期化予定データが、順次、処理される。一部の実施形態では、現グループの一ストレージ範囲内の同期化予定データが処理され、同期化の成功を確認するメッセージの受信を受けて、現グループの次のストレージ範囲内のデータを同期化するプロセスが開始される。
ステップ1006aでは、同期化が成功したか否かが決定される。一部の実施形態では、現ストレージ範囲内の同期化予定データ同期化が成功したか否かが決定される。成功した場合には、次いで、ステップ1008aが実行され、成功しなかった場合には、そのストレージ範囲内のデータを同期化する手続きを再び実行するためにロールバックが必要であり、ステップ1007aが実行される。
ステップ1007aでは、ロールバックの回数がプリセット閾値を超えるか否かが決定される。一部の実施形態では、ロールバック(すなわち、再試行)の回数の閾値がプリセットされ、再試行の回数がカウントされる。再試行の回数がプリセット閾値を上回る場合には、これ以上再試行はなされず、そのストレージ範囲内のデータの同期化の失敗を示す表示が生成されるとともにループが終了する。再試行の方針は、データ同期化の誤差耐性を向上させるためにデータ同期化手順において採用される。再試行の回数がプリセット閾値未満である場合には、フローは、そのストレージ範囲内のデータをターゲットデータテーブルへ再び同期化するステップ1005aに戻って当該ステップを再び実行し、そうでない場合には、1009aが実行され、必要に応じて失敗の表示が生成される。
現ストレージ範囲内のデータの同期化が成功した場合には、ステップ1008aにおいて、同期化されたデータがターゲットデータテーブルに対してコミットされる。
ステップ1009aでは、処理が終わったか否かが決定される、すなわち、現グループ内の全てのストレージ範囲が処理されたか否かが決定される。処理が終わっている場合には、グループ内の全てのストレージ範囲内の対応データが同期化されたことが示され、プロセスは終了する。必要に応じて、失敗の表示が生成される。処理が終わっていない場合、換言すると、グループ内の全てのストレージ範囲内の対応データが同期化されていない場合には、フローは、グループ内の次のストレージ範囲内のデータを同期化するステップ1005aに戻って当該ステップを実行する。
グループのなかでデータ同期化を終えたストレージ範囲の数を相応に示すために、各グループについて、並列処理中にカウンタ変数v_done_numを設定することができる。この結果、各プロセスによるデータ同期化の速度及びデータ同期化の全体速度の計算を促すことができる。データ同期化の効率は、上記の統計値に基づいて便利に監視することもできる。
ステップ1005b〜1009bは、第2のグループのそれぞれのストレージ範囲内のデータを順次、同期化する手続きである。ステップ1005x〜1009xは、第Nグループのそれぞれのストレージ範囲内のデータを順次、同期化する手続きである。フローチャートには、中間グループ用の更なるステップが存在し得る。
ステップ1005b〜1009b、ステップ1005x〜1009x、及びあらゆる中間ステップの処理フローは、ステップ1005a〜1009aの処理フローに対応して同じであり、ここでは、説明の繰り返しは省略される。
ステップ1010では、同期化プロセスは終了する。
ソースデータテーブルからターゲットデータテーブルへの上記のデータ同期化手続きにおいて、複数のデータ範囲内のデータが一度に処理されるように複数のプロセスの並列処理が採用される場合には、これらのデータ範囲内のデータは、コミット動作の数を減らすために、そして更に、同期化予定データをコミットする速度及び効率を高めるために、1つのコミット動作でターゲットデータテーブルに対してコミットすることができる。同時に処理されるストレージ範囲の数は、実際の実装形態に応じて調整することができる。
図8〜10に示された、ソースデータテーブルから現ターゲットデータテーブルへデータを同期化する上記の手続きは、ソースデータテーブルからターゲットデータテーブルへのデータの同期化が必要とされるその他の手続きに個別に適用可能であるが、本発明の実施形態で提示されたデータ同期化手続きに提示された応用に限定はされない。
発明の実施形態における上記のデータ同期化方法にしたがって、図11に示されるようなデータ同期化デバイスを構築することができ、該デバイスは、データテーブル作成モジュール10、決定モジュール20、データ同期化モジュール30、及びアクセス&更新モジュール40を含む。これらのモジュールは、1つ若しくは2つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又は特定の機能を実施するように設計されたプログラマブルロジックデバイス及び/若しくは特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、これらのモジュールは、不揮発性ストレージメディア(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなど)に格納可能で尚且つ本発明の実施形態で説明された方法をコンピュータデバイス(パソコン、サーバ、ネットワーク機器など)に実施させるための幾つかの命令を含むソフトウェア製品の形態で実施することができる。これらのモジュールは、1つのデバイス上に実装されてよい、又は複数のデバイスに分散されてよい。これらのモジュールの機能は、互いに融合されて1つにされてよい、又は更に複数のサブ機能に分けられてよい。
この例では、データテーブル作成モジュール10は、同期化予定のデータを保存されているソースデータテーブルに対応する2つのターゲットデータテーブルを予め作成するように構成される。
決定モジュール20は、2つのターゲットデータテーブルから現ターゲットデータテーブルを決定するように構成される。
好ましくは、決定モジュール20は、カウントユニット201及び決定ユニット202を更に含むことができる。
カウントユニット201は、2つのターゲットデータテーブル内のそれぞれのデータレコードをカウントするように構成される。
決定ユニット202は、ターゲットデータテーブルのうちカウントユニット201によってカウントされたデータレコード数がゼロである1つのターゲットデータテーブルを現ターゲットデータテーブルとして決定するように構成される。
決定ユニット202は、更に、カウントユニット201によってカウントされた2つのターゲットデータテーブル内のデータレコード数がいずれもゼロでないときに異常を示してデータ同期化フローを終了させるように構成される。
データ同期化モジュール30は、ソースデータテーブルから決定モジュール20によって決定された現ターゲットデータテーブルへデータを同期化するように構成される。
好ましくは、データ同期化モジュールは、更に、ストレージ範囲決定ユニット301、アドレス情報決定ユニット302、及びデータ同期化ユニット303を含むことができる。
ストレージ範囲決定ユニット301は、ソースデータテーブル内において同期化予定データによって占有されている幾つかのストレージ範囲を決定するように構成される。
アドレス情報決定ユニット302は、それぞれのストレージ範囲内における同期化予定データのストレージアドレス情報を決定するように構成される。
データ同期化ユニット303は、アドレス情報決定ユニット302によって決定されたストレージアドレス情報にしたがって、それぞれのストレージ範囲内の同期化予定データを現ターゲットデータテーブルへ同期化するように構成される。
好ましくは、データ同期化ユニット303は、更に、第1のデータ同期化サブユニット3031及び第2のデータ同期化サブユニット3032を含むことができる。
第1のデータ同期化サブユニット3031は、アドレス情報決定ユニット302によって決定されたストレージアドレス情報にしたがって、それぞれのストレージ範囲内の同期化予定データを1つのデータ同期化プロセスにおいて順次、現ターゲットデータテーブルへ同期化するように構成される。
第2のデータ同期化サブユニット3032は、ストレージ範囲をN個のグループに分割し、対応するN個のデータ同期化プロセスを開始させ、アドレス情報決定ユニット302によって決定されたストレージアドレス情報にしたがって、対応する一グループのそれぞれのストレージ範囲内のデータを各データ同期化プロセスにおいて順次、現ターゲットデータテーブルへ同期化するように構成される。
データ同期化ユニット303は、更に、同期化が失敗したときにそのストレージ範囲内のデータを同期化する手続きをやり直すように、及びやり直しの回数がプリセット閾値を超えたときにそのストレージ範囲内のデータを同期化する手続きを終了させるように適応されたやり直しサブユニット3033を含む。
アクセス&更新モジュール40は、データ同期化モジュール30がデータ同期化に成功したときに、決定モジュール20によって決定された現ターゲットデータテーブルにアプリケーションサーバがアクセスすることを可能にするように構成される。
アクセス&更新モジュール40は、ターゲットデータテーブルのうち上位ビューが指し示す1つのターゲットデータテーブルにアプリケーションサーバがその上位ビューを通してアクセスすることができるように予め上位ビューを作成するように、及びデータ同期化の完了を受けて上位ビューが現ターゲットデータテーブルを指し示すことを可能にするように上位ビューを更新するように、特に構成される。
上記のデータ同期化デバイスは、更に、データ同期化モジュール30がデータ同期化に成功したときに、2つのターゲットデータテーブルのうちデータ同期化を受けていない方のターゲットデータテーブルの内容を消去するように適応されたデータテーブル消去モジュール50を含む。
上記のデータ同期化デバイスのデータ同期化モジュール30は、データ同期化のための個別の手段として用意することができ、任意のデータ転送手続きにおいて個別に使用することができる。
図8及び図10に示された、ソースデータテーブルからターゲットデータテーブルへデータを同期化する上記のフローにしたがって、図12に示されるような、グループ分けユニット121及びデータ同期化ユニット122を含む複数プロセスデータ同期化デバイスを構築することができる。これらのユニットは、1つ若しくは2つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又は特定の機能を実施するように設計されたプログラマブルロジックデバイス及び/若しくは特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、これらのユニットは、不揮発性ストレージメディア(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなど)に格納可能で尚且つ本発明の実施形態で説明された方法をコンピュータデバイス(パソコン、サーバ、ネットワーク機器など)に実施させるための幾つかの命令を含むソフトウェア製品の形態で実施することができる。これらのユニットは、この例では、1つのデバイス内にあるものとして示されているが、その他の実施形態では、複数のデバイスに分散されてよい。これらのユニットの機能は、互いに融合されて1つにされてよい、又は更に複数のサブ機能に分けられてよい。
グループ分けユニット121は、ソースデータテーブル内で同期化予定データによって占有されているストレージ範囲を幾つかのグループに分割するように構成される。
データ同期化ユニット122は、対応するデータ同期化プロセスを並列に開始させるように、及び各データ同期化プロセスにおいて、対応する一グループのそれぞれのストレージ範囲内の同期化予定データを現ターゲットデータテーブルへ同期化するように構成される。
好ましくは、データ同期化ユニット122は、制御実行サブユニット1221及び決定サブユニット1222を更に含むことができる。
制御実行サブユニット1221は、対応する一グループの一ストレージ範囲内の同期化予定データを処理するように、及び対応するグループの全てのストレージ範囲が処理されたのではないと決定サブユニットによって決定されたときに、対応するグループの次のストレージ範囲内の同期化予定データを処理する手続きを開始させるように、各データ同期化プロセスを制御するように構成される。
決定サブユニット1222は、一ストレージ範囲内の同期化予定データが同期化されて正常にコミットされた後に、対応するグループの全てのストレージ範囲が処理されたかどうかを決定するように構成される。
データ同期化ユニット1222は、同期化が失敗したときにそのストレージ範囲内のデータを同期化する手続きをやり直すように、及びやり直しの回数がプリセット閾値を超えたときにそのストレージ範囲内のデータを同期化する手続きを終了させるように適応されたやり直しサブユニット1223を更に含む。
上記のデータ同期化デバイスは、更に以下の構成を含む。
ソースデータテーブル内において同期化予定データによって占有されているストレージ範囲を決定するように適応されたストレージ範囲決定ユニット123と、それぞれのストレージ範囲内における同期化予定データのストレージアドレス情報を決定するように適応されたアドレス情報決定ユニット124。
本発明の実施形態にしたがったデータ同期化の方法及びデバイスでは、同期化予定データを保存されているソースデータテーブルに対応するターゲットデータテーブルが予め作成され、アプリケーションサーバは、予め作成されている上位ビューを通して、ターゲットデータテーブルのうちその上位ビューが指し示す1つのターゲットデータテーブルにアクセスするので、アプリケーションレイヤは、データが特にどのテーブルから発しているかに注意を払うことはなく、したがって、アプリケーション実装の複雑性が抑えられる。
ソースデータテーブルからターゲットデータテーブルへデータが同期化されるときは、先ず、2つのターゲットデータテーブルのうちヌルである1つのターゲットデータテーブルが現ターゲットデータテーブルとして決定され、次いで、データが、ソースデータテーブルから現ターゲットデータテーブルへ同期化され、そして、データの同期化が成功すると、上位ビューが、現ターゲットデータテーブルを指し示すように更新される。上記の方法では、2つのターゲットデータテーブルは、交互に使用され、アプリケーションサーバによってアクセスされるデータテーブルと、データ同期化プログラムによってアクセスされるデータテーブルは、対立しないので、大量のデータがアンドゥ/ロールバックテーブルスペースへ転送される事態が回避され、それによって、アンドゥ/ロールバックテーブルスペースが満杯にされた後に生じる行列待ち及び混雑の現象が効果的に回避され、また、データ同期化の速度及び効率が向上される。
データ同期化の手続きでは、それぞれのストレージ範囲内のデータをターゲットデータテーブルへ同期化するために、それぞれのストレージ範囲に対してデータ移動を実施するために、並びにストレージ範囲ごとにデータを並列に同期化及びコミットするために、ORACLEテーブルのスペース割り当て及びストレージ原理と併せてORACLEデータテーブルの固有なストレージメカニズムを用いることができるので、データ同期化の手続きでは、フロントエンドORACLEデータベースにおけるアンドゥ/ロールバックテーブルスペースの長期に及ぶ占有を抑えること、アンドゥ/ロールバックテーブルスペースの全体の利用率を大幅に下げること、アンドゥ/ロールバックテーブルスペースが満杯にされる可能性を大幅に減らすこと、及び生産データペースのセキュリティを保証することが可能である。データ同期化のために、ストレージ範囲は、データを並列に移動可能にしてデータ移動の効率を更に高めるようにグループ分けすることもできる。
一ストレージ範囲内のデータの同期化が失敗したときは、ロールバックメカニズムの採用が、システムの誤差耐性を大幅に向上させることができ、ロールバック回数制御メカニズムが、例えば無限ロールバックなどのエンドレスループの発生を阻止することができる。動作は、アプリケーションサーバによってアクセスされるテーブルスペースと何ら対立することなくそれぞれのストレージ範囲に対して実施され、初期状態において、使用される現データテーブルはヌルであり対立データを含まないので、データ同期化の中断時もデータのうち同期化されていない部分の同期化を継続させることができ、これは、断絶されたデータ移送の復旧を可能にする。
更に、データ同期化を終えたストレージ範囲をカウントし、それによってデータ同期化の進行、速度、及び効率を監視するために、カウンタ変数を用意することができる。
以上の説明は、発明の好ましい実施形態を例示したものにすぎず、発明の特許請求の範囲は、それらに限定されず、発明の技術的開示に照らして当業者が容易に思い付く任意の変形、代替、又はその他の類似デバイスへの応用が、発明の特許請求の範囲に含まれるものとする。したがって、発明の特許請求の範囲は、添付の特許請求の範囲として定められるものとする。
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、発明は、提供された詳細に限定されず、発明を実現するには、多くの代替的方法がある。開示された実施形態は、例示的なものであり、限定的なものではない。
適用例1:データ同期化方法は、同期化予定のデータを保存されているソースデータテーブルに基づいて複数のターゲットデータテーブルを確立することと、前記複数のターゲットデータテーブルのなかから現ターゲットデータテーブルを決定することと、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することと、同期化が成功した場合に、前記現ターゲットデータテーブルにアクセスするようにアプリケーションサーバに指示することとを備える。
適用例2:適用例1に記載の方法であって、前記アプリケーションサーバは、前記現ターゲットデータテーブルを指し示すように事前に更新された上位ビューを通じて前記現ターゲットデータテーブルにアクセスするように指示される、方法。
適用例3:請求項1または2に記載の方法であって、前記複数のターゲットデータテーブルのなかから前記現ターゲットデータテーブルを決定することは、前記複数のターゲットデータテーブル内のぞれぞれのデータレコードの数を決定することと、前記ターゲットデータテーブルのうち前記データレコードの数がゼロである1つのターゲットデータテーブルを前記現ターゲットデータテーブルとして選択することとを含む、方法。
適用例4:適用例1〜3のいずれかに記載の方法であって、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、前記ソースデータテーブルから前記現ターゲットデータテーブルへデータを直接コピーすることを含む、方法。
適用例5:請求項1に記載の方法であって、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、旧ターゲットデータテーブルを削除すること、現ターゲットデータテーブルとして新しいターゲットデータテーブルを作成すること、及び前記データを前記新しく作成された現ターゲットデータテーブルへ同期化することを含む、方法。
適用例6:適用例1〜5のいずれか記載の方法であって、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、前記ソースデータテーブル内において同期化予定データによって占有されている幾つかのストレージ範囲を決定することと、前記それぞれのストレージ範囲内における前記同期化予定データのストレージアドレス情報を決定することと、前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することと、を含む、方法。
適用例7:適用例6に記載の方法であって、前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、前記ストレージアドレス情報にしたがって、前記それぞれのストレージ範囲内の前記データを1つのデータ同期化プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することを含む、方法。
適用例8:適用例6に記載の方法であって、前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、前記ストレージ範囲をN個のグループに分割することと、
対応するN個のデータ同期化プロセスを開始させることと、前記ストレージアドレス情報にしたがって、前記グループのうちの対応する1つのグループの前記それぞれのストレージ範囲内の前記データを、前記データ同期化プロセスのうちの各プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することと、を含む、方法。
適用例9:適用例6に記載の方法であって、更に、前記同期化が失敗した場合に、前記それぞれのストレージ範囲内の前記データを前記現ターゲットデータテーブルへ同期化し直すことと、やり直しの回数がプリセット閾値を超えたときに、前記ストレージ範囲内の前記データを同期化することを終了させることと、を備える方法。
適用例10:適用例1〜9に記載の方法であって、更に、前記ソースデータテーブルと前記現ターゲットデータテーブルとの同期化が成功した場合、前記現ターゲットデータテーブル以外のターゲットデータテーブルの内容を消去することを備える方法。
適用例11:データ同期化システムであって、1つ又は2つ以上のプロセッサであって、同期化予定のデータを保存されているソースデータテーブルに基づいて複数のターゲットデータテーブルを確立するように、前記複数のターゲットデータテーブルのなかから現ターゲットデータテーブルを決定するように、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化するように、及び同期化が成功した場合に、前記現ターゲットデータテーブルにアクセスするようにアプリケーションサーバに指示するように、構成されたプロセッサと、
前記1つ又は2つ以上のプロセッサに結合され、前記1つ又は複数のプロセッサに命令を提供するように構成されたメモリと、を備えるシステム。
適用例12:適用例11に記載のシステムであって、前記アプリケーションサーバは、前記現ターゲットデータテーブルを指し示すように事前に更新された上位ビューを通じて前記現ターゲットデータテーブルにアクセスするように指示される、システム。
適用例13:適用例11または12に記載のシステムであって、前記複数のターゲットデータテーブルのなかから前記現ターゲットデータテーブルを決定することは、前記複数のターゲットデータテーブル内のそれぞれのデータレコードの数を決定することと、前記ターゲットデータテーブルのうち前記データレコードの数がゼロである1つのターゲットデータテーブルを前記現ターゲットデータテーブルとして選択することと、を含む、システム。
適用例14:適用例11〜13のいずれかに記載のシステムであって、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、前記ソースデータテーブルから前記現ターゲットデータテーブルへデータを直接コピーすることを含む、システム。
適用例15:適用例11〜14のいずれかに記載のシステムであって、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、旧ターゲットデータテーブルを削除すること、現ターゲットデータテーブルとして新しいターゲットデータテーブルを作成すること、及び前記データを前記新しく作成された現ターゲットデータテーブルへ同期化することを含む、システム。
適用例16:適用例11〜15のいずれかに記載のシステムであって、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、前記ソースデータテーブル内において同期化予定データによって占有されている幾つかのストレージ範囲を決定することと、前記それぞれのストレージ範囲内における前記同期化予定データのストレージアドレス情報を決定することと、前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することと、を含む、システム。
適用例17:適用例16に記載のシステムであって、前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、前記ストレージアドレス情報にしたがって、前記それぞれのストレージ範囲内の前記データを1つのデータ同期化プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することを含む、システム。
適用例18:適用例16に記載のシステムであって、前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、前記ストレージ範囲をN個のグループに分割することと、対応するN個のデータ同期化プロセスを開始させることと、前記ストレージアドレス情報にしたがって、前記グループのうちの対応する1つのグループの前記それぞれのストレージ範囲内の前記データを、前記データ同期化プロセスのうちの各プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することと、を含む、システム。
適用例19:適用例16に記載のシステムであって、前記1つ又は2つ以上のプロセッサは、更に、前記同期化が失敗したときに、前記それぞれのストレージ範囲内の前記データを前記現ターゲットデータテーブルへ同期化し直すように、及びやり直しの回数がプリセット閾値を超えたときに、前記ストレージ範囲内の前記データを同期化することを終了させるように、構成される、システム。
適用例20:適用例11〜19のいずれかに記載のシステムであって、前記1つ又は2つ以上のプロセッサは、更に、前記ソースデータテーブルと前記現ターゲットデータテーブルとの同期化が成功した場合に、前記現ターゲットデータテーブル以外のターゲットデータテーブルの内容を消去するように構成される、システム。

Claims (14)

  1. データ同期化方法であって、
    同期化予定のデータを保存されているソースデータテーブルに基づいて複数のターゲットデータテーブルを確立することと、
    前記複数のターゲットデータテーブルのなかから現ターゲットデータテーブルを決定することと、
    前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することであって、
    前記ソースデータテーブル内において同期化予定データによって占有されている幾つかのストレージ範囲を決定すること、
    前記それぞれのストレージ範囲内における前記同期化予定データのストレージアドレス情報を決定すること、
    前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化すること、
    を含む、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することと、
    同期化が成功した場合に、前記現ターゲットデータテーブルにアクセスするようにアプリケーションサーバに指示することと、
    を備える方法。
  2. 請求項1に記載の方法であって、
    前記アプリケーションサーバは、前記現ターゲットデータテーブルを指し示すように事前に更新された上位ビューを通じて前記現ターゲットデータテーブルにアクセスするように指示される、方法。
  3. 請求項1に記載の方法であって、
    前記複数のターゲットデータテーブルのなかから前記現ターゲットデータテーブルを決定することは、
    前記複数のターゲットデータテーブル内のぞれぞれのデータレコードの数を決定することと、
    前記ターゲットデータテーブルのうち前記データレコードの数がゼロである1つのターゲットデータテーブルを前記現ターゲットデータテーブルとして選択することと、
    を含む、方法。
  4. 請求項に記載の方法であって、
    前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、前記ストレージアドレス情報にしたがって、前記それぞれのストレージ範囲内の前記データを1つのデータ同期化プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することを含む、方法。
  5. 請求項に記載の方法であって、
    前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、
    前記ストレージ範囲をN個のグループに分割することと、
    対応するN個のデータ同期化プロセスを開始させることと、
    前記ストレージアドレス情報にしたがって、前記グループのうちの対応する1つのグループの前記それぞれのストレージ範囲内の前記データを、前記データ同期化プロセスのうちの各プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することと、
    を含む、方法。
  6. 請求項に記載の方法であって、更に、
    前記同期化が失敗した場合に、前記それぞれのストレージ範囲内の前記データを前記現ターゲットデータテーブルへ同期化し直すことと、
    やり直しの回数がプリセット閾値を超えたときに、前記ストレージ範囲内の前記データを同期化することを終了させることと、
    を備える方法。
  7. 請求項1に記載の方法であって、更に、
    前記ソースデータテーブルと前記現ターゲットデータテーブルとの同期化が成功した場合、前記現ターゲットデータテーブル以外のターゲットデータテーブルの内容を消去することを備える方法。
  8. データ同期化システムであって、
    1つ又は2つ以上のプロセッサであって、
    同期化予定のデータを保存されているソースデータテーブルに基づいて複数のターゲットデータテーブルを確立
    前記複数のターゲットデータテーブルのなかから現ターゲットデータテーブルを決定
    前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化し、前記ソースデータテーブルと前記現ターゲットデータテーブルとを同期化することは、
    前記ソースデータテーブル内において同期化予定データによって占有されている幾つかのストレージ範囲を決定し、
    前記それぞれのストレージ範囲内における前記同期化予定データのストレージアドレス情報を決定し、
    前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化すること、
    を含み、及び
    同期化が成功した場合に、前記現ターゲットデータテーブルにアクセスするようにアプリケーションサーバに指示するように、
    構成されたプロセッサと、
    前記1つ又は2つ以上のプロセッサに結合され、前記1つ又は複数のプロセッサに命令を提供するように構成されたメモリと、
    を備えるシステム。
  9. 請求項に記載のシステムであって、
    前記アプリケーションサーバは、前記現ターゲットデータテーブルを指し示すように事前に更新された上位ビューを通じて前記現ターゲットデータテーブルにアクセスするように指示される、システム。
  10. 請求項に記載のシステムであって、
    前記複数のターゲットデータテーブルのなかから前記現ターゲットデータテーブルを決定することは、
    前記複数のターゲットデータテーブル内のそれぞれのデータレコードの数を決定することと、
    前記ターゲットデータテーブルのうち前記データレコードの数がゼロである1つのターゲットデータテーブルを前記現ターゲットデータテーブルとして選択することと、
    を含む、システム。
  11. 請求項に記載のシステムであって、
    前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、前記ストレージアドレス情報にしたがって、前記それぞれのストレージ範囲内の前記データを1つのデータ同期化プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することを含む、システム。
  12. 請求項に記載のシステムであって、
    前記ストレージアドレス情報を使用して、前記それぞれのストレージ範囲内の前記同期化予定データを前記現ターゲットデータテーブルへ同期化することは、
    前記ストレージ範囲をN個のグループに分割することと、
    対応するN個のデータ同期化プロセスを開始させることと、
    前記ストレージアドレス情報にしたがって、前記グループのうちの対応する1つのグループの前記それぞれのストレージ範囲内の前記データを、前記データ同期化プロセスのうちの各プロセスにおいて順次、前記現ターゲットデータテーブルへ同期化することと、
    を含む、システム。
  13. 請求項に記載のシステムであって、
    前記1つ又は2つ以上のプロセッサは、更に、
    前記同期化が失敗したときに、前記それぞれのストレージ範囲内の前記データを前記現ターゲットデータテーブルへ同期化し直すように、及び
    やり直しの回数がプリセット閾値を超えたときに、前記ストレージ範囲内の前記データを同期化することを終了させるように、
    構成される、システム。
  14. 請求項に記載のシステムであって、
    前記1つ又は2つ以上のプロセッサは、更に、前記ソースデータテーブルと前記現ターゲットデータテーブルとの同期化が成功した場合に、前記現ターゲットデータテーブル以外のターゲットデータテーブルの内容を消去するように構成される、システム。
JP2011540691A 2008-12-10 2009-12-09 効率的なデータ同期化のための方法及びシステム Expired - Fee Related JP5577350B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN200810179394.6 2008-12-10
CNA2008101793946A CN101419616A (zh) 2008-12-10 2008-12-10 一种数据同步方法及装置
US12/653,091 US8949178B2 (en) 2008-12-10 2009-12-08 Method and system for efficient data synchronization
US12/653,091 2009-12-08
PCT/US2009/006457 WO2010068260A1 (en) 2008-12-10 2009-12-09 Method and system for efficient data synchronization

Publications (3)

Publication Number Publication Date
JP2012511773A JP2012511773A (ja) 2012-05-24
JP2012511773A5 JP2012511773A5 (ja) 2013-01-10
JP5577350B2 true JP5577350B2 (ja) 2014-08-20

Family

ID=40630405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011540691A Expired - Fee Related JP5577350B2 (ja) 2008-12-10 2009-12-09 効率的なデータ同期化のための方法及びシステム

Country Status (5)

Country Link
US (2) US8949178B2 (ja)
EP (1) EP2368178A4 (ja)
JP (1) JP5577350B2 (ja)
CN (1) CN101419616A (ja)
WO (1) WO2010068260A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473953B2 (en) 2010-07-21 2013-06-25 International Business Machines Corporation Batching transactions to apply to a database
DE102010054446A1 (de) * 2010-12-14 2012-06-14 Giesecke & Devrient Gmbh Portabler Datenträger mit Fehlbedienungszähler
CN102841897B (zh) * 2011-06-23 2016-03-02 阿里巴巴集团控股有限公司 一种实现增量数据抽取的方法、装置及系统
US9223842B2 (en) * 2011-12-05 2015-12-29 Blackberry Limited Apparatus, and associated method, for synchronizing a database
WO2014026611A1 (en) * 2012-08-14 2014-02-20 Huawei Technologies Co., Ltd. Rollback method and apparatus of transaction, relational database management system
US9253113B2 (en) 2012-09-07 2016-02-02 Oracle International Corporation Customizable model for throttling and prioritizing orders in a cloud environment
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9667470B2 (en) 2012-09-07 2017-05-30 Oracle International Corporation Failure handling in the execution flow of provisioning operations in a cloud environment
US10521746B2 (en) 2012-09-07 2019-12-31 Oracle International Corporation Recovery workflow for processing subscription orders in a computing infrastructure system
US9203866B2 (en) 2012-09-07 2015-12-01 Oracle International Corporation Overage framework for cloud services
US10148530B2 (en) 2012-09-07 2018-12-04 Oracle International Corporation Rule based subscription cloning
CN103838762B (zh) * 2012-11-26 2017-09-29 中国银联股份有限公司 基于数据表轮换的不间断数据处理装置及方法
KR102020358B1 (ko) * 2013-03-14 2019-11-05 삼성전자 주식회사 단말 및 그 단말에서 애플리케이션 동기화 방법
US9977820B1 (en) * 2013-03-15 2018-05-22 Tasktop Technologies, Incorporated System and method for synchronizing states in associated data records
US10528590B2 (en) * 2014-09-26 2020-01-07 Oracle International Corporation Optimizing a query with extrema function using in-memory data summaries on the storage server
US9342512B1 (en) 2013-03-15 2016-05-17 Tasktop Technologies, Incorporated System and method for repairing data synchronization links
US9588685B1 (en) * 2013-05-03 2017-03-07 EMC IP Holding Company LLC Distributed workflow manager
US9436724B2 (en) * 2013-10-21 2016-09-06 Sap Se Migrating data in tables in a database
CN104750744B (zh) * 2013-12-31 2018-05-22 中国移动通信集团河南有限公司 一种基于Oracle数据库的压缩数据同步方法及装置
CN104980463B (zh) * 2014-04-04 2019-03-05 腾讯科技(深圳)有限公司 同步网络数据的方法和系统
US10164901B2 (en) 2014-08-22 2018-12-25 Oracle International Corporation Intelligent data center selection
CN104268234B (zh) * 2014-09-26 2018-05-29 东软集团股份有限公司 一种基于sql语句的数据同步方法和装置
CN105701116A (zh) * 2014-11-27 2016-06-22 英业达科技有限公司 数据同步系统
US9459839B2 (en) 2014-12-15 2016-10-04 Tasktop Technologies, Incorporated Systems and methods to synchronize artifact relationships across a plurality of repositories
CN106297599A (zh) * 2015-05-12 2017-01-04 杨鸿年 一种实时动态投影系统的部署方法
KR101573663B1 (ko) 2015-07-21 2015-12-01 한다시스템 주식회사 데이터 통합 방법 및 시스템
CN106484560B (zh) * 2015-08-25 2019-01-15 阿里巴巴集团控股有限公司 数据同步方法及装置
US10061536B2 (en) * 2015-09-28 2018-08-28 EMC IP Holding Company LLC Disk synchronization
CN105183898A (zh) * 2015-09-29 2015-12-23 北京奇艺世纪科技有限公司 数据同步方法和数据同步系统
CN106802897A (zh) * 2015-11-26 2017-06-06 北京国双科技有限公司 查询表数据同步方法和装置
CN107046722B (zh) * 2016-02-05 2020-04-14 中兴通讯股份有限公司 调度定时间隔的确定方法及装置
CN107122354B (zh) * 2016-02-24 2020-05-08 华为技术有限公司 事务执行方法、装置及系统
CN106021494A (zh) * 2016-05-19 2016-10-12 中国银联股份有限公司 一种主数据同步方法及装置
CN106446090A (zh) * 2016-09-12 2017-02-22 浪潮软件股份有限公司 一种跨库传输海量数据的方法
CN108984337B (zh) * 2018-05-29 2021-04-16 杭州网易再顾科技有限公司 一种数据同步异常的修复方法、修复装置、介质和计算设备
CN113553313B (zh) * 2018-07-10 2023-12-05 创新先进技术有限公司 一种数据迁移方法及系统、存储介质、电子设备
US10970255B1 (en) * 2018-07-27 2021-04-06 Veeva Systems Inc. System and method for synchronizing data between a customer data management system and a data warehouse
US10997202B1 (en) 2018-07-27 2021-05-04 Veeva Systems Inc. System and method for synchronizing data between a customer data management system and a data warehouse
US11184406B1 (en) * 2018-08-20 2021-11-23 Shashank System and methods for secure user interface session recording, transmission, and replay without third party disclosure
CN109492000A (zh) * 2018-10-09 2019-03-19 郑州云海信息技术有限公司 一种数据库表的复制方法及系统
CN109785042A (zh) * 2018-12-13 2019-05-21 深圳平安财富宝投资咨询有限公司 分布式部署的异常处理方法、服务器、存储介质及装置
CN109933630B (zh) * 2019-03-19 2021-11-23 武汉达梦数据库股份有限公司 数据库数据实时同步方法及设备
CN110196786B (zh) * 2019-04-30 2021-10-08 武汉达梦数据库股份有限公司 数据库回滚同步中内存的控制方法及设备
CN110347693A (zh) * 2019-07-11 2019-10-18 招商局金融科技有限公司 数据同步方法、装置及存储介质
CN111367839B (zh) * 2020-02-21 2021-06-29 苏州浪潮智能科技有限公司 一种主机端与fpga加速器之间的数据同步方法
US11487784B2 (en) * 2020-04-17 2022-11-01 Sap Se Reload procedure to retain data in target system
CN115080569A (zh) * 2022-06-27 2022-09-20 平安银行股份有限公司 一种数据同步方法、装置、电子设备及存储介质

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE456782B (sv) 1986-04-29 1988-10-31 Ibm Svenska Ab Databasprocessor i ett databehandlingssystem, metod foer tabellbehandling i en databasprocessor samt anvaendning av en databasprocessor i ett databehandlingssystem
US5333299A (en) 1991-12-31 1994-07-26 International Business Machines Corporation Synchronization techniques for multimedia data streams
US5822588A (en) 1995-06-09 1998-10-13 Sun Microsystem, Inc. System and method for checking the use of synchronization locks in a multi-threaded target program
US5778389A (en) 1996-05-23 1998-07-07 Electronic Data Systems Corporation Method and system for synchronizing computer file directories
WO1998035306A1 (en) 1997-02-11 1998-08-13 Connected Corporation File comparison for data backup and file synchronization
US5950198A (en) 1997-03-24 1999-09-07 Novell, Inc. Processes and apparatuses for generating file correspondency through replication and synchronization between target and source computers
US5848405A (en) * 1997-04-21 1998-12-08 Oracle Corporation Method and apparatus for identifying new data by address ranges
US6345313B1 (en) 1997-08-22 2002-02-05 Sun Microsystems, Inc. Recovery of synchronization constructs
US6289357B1 (en) 1998-04-24 2001-09-11 Platinum Technology Ip, Inc. Method of automatically synchronizing mirrored database objects
US6353835B1 (en) * 1998-08-03 2002-03-05 Lucent Technologies Inc. Technique for effectively maintaining materialized views in a data warehouse
US6108653A (en) 1998-08-31 2000-08-22 Platinum Technology Ip, Inc. Method and apparatus for fast and comprehensive DBMS analysis
US6122640A (en) 1998-09-22 2000-09-19 Platinum Technology Ip, Inc. Method and apparatus for reorganizing an active DBMS table
US6397125B1 (en) 1998-12-18 2002-05-28 International Business Machines Corporation Method of and apparatus for performing design synchronization in a computer system
US6430577B1 (en) 1999-10-08 2002-08-06 Unisys Corporation System and method for asynchronously receiving multiple packets of audit data from a source databased host in a resynchronization mode and asynchronously writing the data to a target host
JP3845535B2 (ja) 1999-12-10 2006-11-15 株式会社東芝 データベースシステム
US20020059299A1 (en) * 2000-07-14 2002-05-16 Frederic Spaey System and method for synchronizing databases
JP2002202906A (ja) 2000-12-28 2002-07-19 Nec Corp データベース二重化システムおよび方法
US6728736B2 (en) 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
US6745209B2 (en) 2001-08-15 2004-06-01 Iti, Inc. Synchronization of plural databases in a database replication system
KR20040053142A (ko) * 2001-09-26 2004-06-23 이엠씨 코포레이션 대형 파일들의 효율적 관리
CN100426875C (zh) 2001-12-20 2008-10-15 中兴通讯股份有限公司 数据主备内存处理方法
US7574652B2 (en) * 2002-06-20 2009-08-11 Canon Kabushiki Kaisha Methods for interactively defining transforms and for generating queries by manipulating existing query data
EP2996054B1 (en) * 2003-05-19 2020-07-08 Huawei Technologies Co., Ltd. Limiting scans of loosely ordered and/or grouped relations using nearly ordered maps
JP2004355203A (ja) 2003-05-28 2004-12-16 Nec Corp データの更新・履歴・集計管理方式
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US7440960B2 (en) * 2003-09-03 2008-10-21 International Business Machines Corporation Result set management
EP2530638A1 (en) 2004-02-12 2012-12-05 Mobileframe LLC Smart synchronizing using created manifest
US7225307B2 (en) * 2004-05-04 2007-05-29 International Business Machines Corporation Apparatus, system, and method for synchronizing an asynchronous mirror volume using a synchronous mirror volume
US20060047696A1 (en) * 2004-08-24 2006-03-02 Microsoft Corporation Partially materialized views
JP4643395B2 (ja) 2004-08-30 2011-03-02 株式会社日立製作所 ストレージシステム及びデータの移動方法
US20060085491A1 (en) * 2004-10-08 2006-04-20 Foote Jane E System and method for recovering from interruptions during data loading
EP1825355A4 (en) * 2004-11-12 2009-11-25 Make Sence Inc METHOD FOR KNOWING KNOWLEDGE BY CONSTRUCTING KNOWLEDGE CORRELATIONS USING CONCEPTS OR TERMS
JP2006301820A (ja) 2005-04-19 2006-11-02 Hitachi Ltd ストレージシステム及びストレージシステムのデータ移行方法
JP4693540B2 (ja) 2005-08-04 2011-06-01 富士通株式会社 データベース再構成装置、およびデータベース再構成プログラム
US7680767B2 (en) * 2006-03-23 2010-03-16 Microsoft Corporation Mapping architecture with incremental view maintenance
JP2008059367A (ja) 2006-08-31 2008-03-13 Fujitsu Ltd システムデータ構造管理プログラム、システムデータ構造管理装置、およびシステムデータ構造管理方法
US7707298B2 (en) * 2007-05-10 2010-04-27 Microsoft Corporation Secure sharing of LOB bound information in client applications

Also Published As

Publication number Publication date
US20100145910A1 (en) 2010-06-10
EP2368178A4 (en) 2016-04-06
US8949178B2 (en) 2015-02-03
CN101419616A (zh) 2009-04-29
WO2010068260A1 (en) 2010-06-17
US9727576B2 (en) 2017-08-08
US20150186408A1 (en) 2015-07-02
JP2012511773A (ja) 2012-05-24
EP2368178A1 (en) 2011-09-28

Similar Documents

Publication Publication Date Title
JP5577350B2 (ja) 効率的なデータ同期化のための方法及びシステム
Taft et al. Cockroachdb: The resilient geo-distributed sql database
CN111159252B (zh) 事务执行方法、装置、计算机设备及存储介质
CN111143389B (zh) 事务执行方法、装置、计算机设备及存储介质
US9589041B2 (en) Client and server integration for replicating data
US11010262B2 (en) Database system recovery using preliminary and final slave node replay positions
US10572510B2 (en) Distributed database transaction protocol
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
EP3413215B1 (en) Dynamic snapshot isolation protocol selection
US8886596B2 (en) Method for reorganizing or moving a database table
CN109643310B (zh) 用于数据库中数据重分布的系统和方法
JP2017076424A (ja) データ取得方法及びシステム
US20130262389A1 (en) Parallel Backup for Distributed Database System Environments
CN102081665A (zh) 一种数据同步方法及装置
CN107870954B (zh) 一种分布式数据库的扩展方法及装置
Yang et al. F1 Lightning: HTAP as a Service
WO2022002103A1 (zh) 一种在数据节点上回放日志的方法、数据节点及系统
US11003550B2 (en) Methods and systems of operating a database management system DBMS in a strong consistency mode
Kang et al. Remus: Efficient live migration for distributed databases with snapshot isolation
WO2024081139A1 (en) Consensus protocol for asynchronous database transaction replication with fast, automatic failover, zero data loss, strong consistency, full sql support and horizontal scalability
TWI475409B (zh) Data synchronization method and device
WO2014180395A1 (zh) 海量数据融合存储方法及系统
US11372838B2 (en) Parallel processing of changes in a distributed system
US20240126781A1 (en) Consensus protocol for asynchronous database transaction replication with fast, automatic failover, zero data loss, strong consistency, full sql support and horizontal scalability
WO2024081140A1 (en) Configuration and management of replication units for asynchronous database transaction replication

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R150 Certificate of patent or registration of utility model

Ref document number: 5577350

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees