JP2016517102A - データベースにおいて再実行データを処理するための方法および装置 - Google Patents

データベースにおいて再実行データを処理するための方法および装置 Download PDF

Info

Publication number
JP2016517102A
JP2016517102A JP2016504452A JP2016504452A JP2016517102A JP 2016517102 A JP2016517102 A JP 2016517102A JP 2016504452 A JP2016504452 A JP 2016504452A JP 2016504452 A JP2016504452 A JP 2016504452A JP 2016517102 A JP2016517102 A JP 2016517102A
Authority
JP
Japan
Prior art keywords
queue
execution
data
application thread
identifier
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.)
Pending
Application number
JP2016504452A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2016517102A publication Critical patent/JP2016517102A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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
    • 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
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

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

Abstract

本発明の実施形態は、データベースにおいて再実行データを処理するための方法および装置を提供し、方法は、サーバ内に含まれる複数のアプリケーションスレッドの各アプリケーションスレッドによって、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除するステップと、データ読み出しスレッドによって、データ読み出し条件が満たされていることを判定し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップとを含む。本発明の使用によって、時系列キューをデータキューから分離することによって再実行データの処理効率が改善されることができ、それによって、データベースシステムの同時スループットを向上させる。

Description

本発明は通信ネットワーク技術の分野に関し、詳細には、データベースにおいて再実行データを処理するための方法および装置に関する。
再実行ログ(redo log)は、データベース操作においてデータの信頼性の重要な保証であるとともに、ファイルシステムよりも多くのデータセキュリティ保護を提供することができる。再実行ログの基本原理は、データベースの変更操作がコミットされると、データは即座には磁気ディスク上のデータファイルに書き込まれないが、メモリ内に保存され、そのことは、データベースの更新要求をデータファイルに毎回書き込むことを回避し、従って、データベースの更新性能を改善し、再実行データ(redo data)は、変更操作に従って生成されるとともに、再実行ログとして磁気ディスクに書き込まれ、障害が発生した場合のメモリデータ損失によって生じるデータ損失を回避する、ということである。データベース操作中に障害が発生した場合、データは永続的な再実行ログを使用することによって復元されることができる。
たいていの既存のデータベース・アプリケーションでは、システムの同時スループット性能を改善するために、データベースはマルチスレッド同時処理のアクセス方法を提供する。複数のスレッドが同時にデータベースへのアクセスを得ることができるが、磁気ディスクの書き込み効率を改善するために、再実行データの複数の部分が磁気ディスクに書き込まれる前に、再実行データの複数の部分は再実行キュー(redo queue)内に一時的に格納される必要があり、次いで、磁気ディスクに連続的に書き込まれる必要がある。再実行データは時系列の制限を有し、従って、複数のスレッドが再実行データを再実行キューにコピーするとき、再実行キューのグローバルロックの保護範囲内で時系列を保証することが必要とされる。すなわち、再実行データの書き込み毎に、時間がかかるデータのコピーは、再実行キューのロックが占有された後に実行される必要がある。
従来技術では、複数のスレッドはシリアル方式でのみ再実行データを生成およびコピーすることができ、従って、そのことは再実行データの処理効率が低いという欠陥を含み、同時で大量のサービストラフィックのアプリケーションにおいてシステムのスループットに影響を及ぼす。
本発明の態様は、データベースにおいて再実行データを処理するための方法および装置を提供し、それらは再実行データの処理性能を改善するために使用される。
第1の構成によると、本発明の態様はデータベースにおいて再実行データを処理するための方法を提供し、前記方法はサーバに適用され、データ読み出しスレッドおよび複数のアプリケーションスレッドはサーバ上で実行し、複数のアプリケーションスレッドは同時にデータベースを変更し、前記方法は、複数のアプリケーションスレッドの各アプリケーションスレッドによって、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内に各アプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除するステップと、データ読み出しスレッドによって、データ読み出し条件が満たされていることを判定し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップとを含む。
第1の構成の第1の可能な実装方法では、データ読み出し条件は、既定の期間が満了していること、または時系列キューの長さが既定値に達していること、またはアプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることである。
第1の構成または第1の構成の第1の可能な実装方法を参照すると、第2の可能な実装方法では、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの前に、前記方法は、再実行キューの書き込み許可を取得するために、再実行キューのロックを取得するステップをさらに含み、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの後に、前記方法は、再実行キューのロックを解除するステップをさらに含む。
第1の構成または第1の構成の第1の可能な実装方法、または第1の構成の第2の可能な実装方法を参照すると、第3の可能な実装方法では、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの前に、前記方法は、時系列キューをロックするために、時系列キューのロックを取得するステップをさらに含むとともに、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの後に、前記方法は、時系列キューのロックを解除するステップをさらに含むか、または時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの前に、前記方法は、時系列キューの末尾の要素に読み出し終了識別子を追加するステップをさらに含む。
第1の構成および第1の構成の第1〜3の可能な実装方法のいずれか1つを参照すると、第4の可能な実装方法では、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの後に、前記方法は、各アプリケーションスレッドの識別子を時系列キューから削除するステップをさらに含む。
第2の構成によると、本発明の態様はデータベースにおいて再実行データを処理するためのサーバを提供し、複数のアプリケーションスレッドはサーバ内で実行し、複数のアプリケーションスレッドは同時にデータベースを変更し、前記サーバは、
時系列キュー処理ユニットであって、複数のアプリケーションスレッドの各アプリケーションスレッドがデータベースの変更操作に従って、再実行データを生成することを可能にし、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除するとともに時系列キューを再実行キュー処理ユニットに送信するように構成される、時系列キュー処理ユニットと、
再実行キュー処理ユニットであって、時系列キュー処理ユニットから時系列キューを受信し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むように構成される、再実行キュー処理ユニットとを含む。
第1の構成の第1の可能な実装方法では、再実行キュー処理ユニットが、データ読み出し条件が満たされていることを判定することは、具体的には、再実行キュー処理ユニットが、既定の期間が満了していること、または時系列キューの長さが既定値に達していること、またはアプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることを判定することを含む。
第1の構成または第1の構成の第1の可能な実装方法を参照すると、第2の可能な実装方法では、再実行キュー処理ユニットは、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの前に、再実行キューへの書き込み許可を取得するために、再実行キューのロックを取得し、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの後に、再実行キューのロックを解除するようにさらに構成される。
第1の構成または第1の構成の第1の可能な実装方法、または第1の構成の第2の可能な実装方法を参照すると、第3の可能な実装方法では、再実行キュー処理ユニットは、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの前に、時系列キューをロックするために、時系列キューのロックを取得するとともに、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの後に、時系列キューのロックを解除するか、または、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの前に、時系列キューの末尾の要素に読み出し終了識別子を追加するようにさらに構成される。
第1の構成および第1の構成の第1〜3の可能な実装方法のいずれか1つを参照すると、第4の可能な実装方法では、再実行キュー処理ユニットは、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの後に、各アプリケーションスレッドの識別子を時系列キューから削除するようにさらに構成される。
前述の技術的解決手段から、本発明の態様では、アプリケーションスレッドは再実行データを生成するために使用され、再実行データはアプリケーションスレッドに割り当てられたバッファ内に保存され、アプリケーションスレッドの識別子は時系列キュー内に保存され、データ読み出し条件が満たされた後、アプリケーションスレッドの識別子のシーケンスは時系列キューから読み出され、再実行データはアプリケーションスレッドのバッファから連続的に読み出されるとともに再実行キューに書き込まれ、それによって、再実行データの処理効率を改善するとともに、データベースシステムの同時スループットを増加させることがわかる。
本発明の実施形態または従来技術における技術的解決手段をより明確に説明するために、以下では、実施形態または従来技術を説明するために必要とされる添付図面を簡潔に説明する。明らかに、以下の説明における添付図面は、本発明の一部の実施形態を単に示しているだけであり、当業者は、創造的努力なしにこれらの添付図面から他の図面をさらに導出することができる。
図1は、本発明の実施形態に係るデータベースにおいて再実行データを処理するための方法のフローチャートである。 図2は、本発明の別の実施形態に係るデータベースにおいて再実行データを処理するための方法のシグナリングフローチャートである。 図3は、本発明の実施形態に係るデータベースにおいて再実行データを処理するための装置の構成図である。 図4は、本発明の実施形態に係るコンピュータシステムに基づくデータベースにおいて再実行データを処理するための装置の構成図である。
以下では、本発明の実施形態における技術的解決手段を、本発明の実施形態における添付図面を参照して明確に且つ十分に説明する。明らかに、説明される実施形態は単に一部であり、本発明の実施形態の全てではない。創造的努力なしに本発明の実施形態に基づいて当業者によって取得される他の全ての実施形態は、本発明の保護範囲に包含されるべきである。
本発明の実施形態はデータベースにおいて再実行データを処理するための方法を提供し、前記方法はサーバに適用され、データ読み出しスレッドおよび複数のアプリケーションスレッドはサーバ上で実行し、複数のアプリケーションスレッドは同時にデータベースを変更し、図1を参照すると、前記方法は以下のステップを含む。
ステップ101:複数のアプリケーションスレッドの各アプリケーションスレッドは、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内に各アプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除する。
ステップ102:データ読み出しスレッドは、データ読み出し条件が満たされていることを判定し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおけるアプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込む。
前記データ読み出し条件は、具体的には、既定の期間が満了していること、または時系列キューの長さが既定値に達していること、またはアプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることである。
任意で、時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの前に、前記方法は、再実行キューの書き込み許可を取得するために、再実行キューのロックを取得するステップをさらに含み、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの後に、前記方法は、再実行キューのロックを解除するステップをさらに含む。
任意で、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの前に、前記方法は、時系列キューをロックするために、時系列キューのロックを取得するステップをさらに含むとともに、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの後に、前記方法は、時系列キューのロックを解除するステップをさらに含むか、または時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの前に、前記方法は、時系列キューの末尾の要素に読み出し終了識別子を追加するステップをさらに含む。
任意で、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップの後に、前記方法は、各アプリケーションスレッドの識別子を時系列キューから削除するステップをさらに含む。
本発明の別の実施形態は、データベースにおいて再実行データを処理するための方法のシグナリングフローチャートを提供する。図2を参照すると、具体的なプロセスは以下のステップを含む。
ステップ201:端末から、データベースにアクセスするための命令を受信した後、サーバはデータベースを同時に変更するために複数のアプリケーションスレッドを開始し、各アプリケーションスレッドに別個のバッファを割り当て、データ読み出しスレッドを開始する。
具体的には、本実施形態では、データベースを同時に変更する3つのアプリケーションスレッドがあり、3つのアプリケーションスレッドのスレッド識別子は、SessionID1、SessionID2およびSessionID3である。
ステップ202:データベースの変更操作に従って、再実行データを生成した後、任意のアプリケーションスレッドがそのアプリケーションスレッドに割り当てられたバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除する。
具体的には、本実施形態では、ステップ202における3つのアプリケーションスレッドの動作サブステップは以下のステップである。
ステップ202−1:アプリケーションスレッド1はデータベースを変更し、変更操作に従って、再実行データRedo1を生成し、アプリケーションスレッド1のバッファ内にRedo1を保存する。
ステップ202−2:アプリケーションスレッド1は時系列キューをロックし、すなわち、時系列キューのロックを取得し、従って、時系列キューへの書き込み許可を取得し、アプリケーションスレッド1の識別子SessionID1を時系列キュー内に保存する。保存した後、時系列キューは1つのアプリケーションスレッドの識別子、すなわち、SessionID1のみを含み、アプリケーションスレッド1は時系列キューをアンロックし、すなわち、時系列キューのロックを解除する。時系列キューをロックすることによって時系列キューへの書き込み許可が取得された後、別のアプリケーションスレッドは時系列キューへの書き込み操作を同時に行うことはできず、それによって、時系列キューに保存される、アプリケーションスレッドの識別子の時系列を保証する。ロックした後は、1つの整数データの書き込み操作のみが行われる必要があり、従って、時系列キューのロック時間は非常に短く、複数のスレッドの同時実行は高い。
ステップ202−3:アプリケーションスレッド2はデータベースを変更し、変更操作に従って再実行データRedo2を生成し、アプリケーションスレッド2のバッファ内にRedo2を保存する。
ステップ202−4:時系列キューをロックした後、アプリケーションスレッド2はアプリケーションスレッド2の識別子SessionID2を時系列キュー内に保存し、ここで、保存後、時系列キュー内に含まれるアプリケーションスレッドの識別子は、SessionID1およびSessionID2であり、アプリケーションスレッド2は時系列キューを解釈(interpret)する。キューは先入れ先出しの特徴を有し、従って、時系列キュー内に含まれるアプリケーションスレッドの識別子は、保存順序に従って格納される。
ステップ202−5:アプリケーションスレッド3はデータベースを変更し、変更操作に従って、再実行データRedo3を生成し、Redo3をアプリケーションスレッド3のバッファ内に保存する。
ステップ202−6:時系列キューをロックした後、アプリケーションスレッド3はアプリケーションスレッド3の識別子SessionID3を時系列キュー内に保存し、ここで、保存後、時系列キュー内に含まれるアプリケーションスレッドの識別子は、SessionID1、SessionID2およびSessionID3であり、アプリケーションスレッド3は時系列キューをアンロックする。
ステップ202−7:アプリケーションスレッド2はデータベースを再び変更し、変更操作に従って、再実行データRedo4を生成し、Redo4をアプリケーションスレッド2のバッファ内に保存する。バッファはキューのデータ構造を使用し、先入れ先出しの特徴を有し、従って、再実行データRedo2と再実行データRedo4は、生成する順序に従ってバッファ内に格納される。
ステップ202−8:時系列キューをロックした後、アプリケーションスレッド2はアプリケーションスレッド2の識別子SessionID2を時系列キュー内に保存し、ここで、保存後、時系列キュー内に含まれるアプリケーションスレッドの識別子は、SessionID1、SessionID2、SessionID3およびSessionID2であり、アプリケーションスレッド2は時系列キューをアンロックする。
ステップ203:データ読み出し条件が満たされていることを判定した後、データ読み出しスレッドは、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込む。
前記データ読み出し条件は、既定の期間が満了していること、または時系列キューの長さが既定値に達していること、またはアプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることであってもよい。任意で、複数の異なるタイプのデータ読み出し条件がサーバ上に同時に設定されてもよく、条件のうちいずれかが満たされた場合、データ読み出し操作が実行される必要がある。例えば、第1のデータ読み出し条件は期間が10秒であることであり、第2のデータ読み出し条件はアプリケーションスレッドの一時的に格納されたデータの量が10に達していることであることが同時に設定されてもよい。期間を設定することによって、データベース操作が頻繁でない場合に、過度に長い時間再実行データがバッファ内に留まることが回避される。アプリケーションスレッドのバッファの閾値を設定することによって、データベース操作が頻繁に起こる場合に、バッファ内のデータが時間内に処理されることができないということが回避される。具体的には、本実施形態では、データ読み出し条件は、時系列キューの長さが4に達していることであるように設定される。
前記時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むステップについて、具体的な実施方法は、時系列キューがトラバースされ、アプリケーションスレッドの、トラバースすることによって取得される、各識別子に対応するアプリケーションスレッドのバッファ内の1つの再実行データが読み出され、1つの再実行データが再実行キューに書き込まれることであってもよい。
前記時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから再実行データを連続的に読み出すプロセスでは、アプリケーションスレッドの新しい識別子が時系列キュー内に保存されることが可能である。従って、再実行データを連続的に読み出す現在の操作に対する干渉を低減するとともに、データを読み出す効率を改善するために、再実行データを連続的に読み出す現在の操作の前に、時系列キューの書き込み許可を取得するために、時系列キューはロックされてもよく、すなわち、時系列キューのロックが取得されてもよく、アプリケーションスレッドの新しい識別子が時系列キュー内に保存されることを防止してもよい。時系列キューのロックは、再実行データを読み出す現在の操作が終わるまで解除されない。アプリケーションは、待機し、時系列キューのロックを取得した後、時系列キュー内にアプリケーションスレッドの新しい識別子を保存することができる。あるいは、再実行データを連続的に読み出す現在の操作の前に、時系列キューの末尾の要素に読み出し終了識別子が追加される。この場合、アプリケーションスレッドの新しい識別子の保存が許可されるが、読み出し終了識別子が検出されると再実行データを読み出す現在の操作は停止する。
任意で、複数の異なるタイプのデータ読み出し条件を同時に設定することが可能であり、従って、第1のデータ読み出し条件が満たされたことが判定された後、再実行データを連続的に読み出し、再実行データを再実行キューに書き込むプロセスでは、第2のデータ読み出し条件が満たされていることが検出され得る。第2のデータ読み出し条件によって生じるデータを読み出し、データを再実行キューに書き込む新しい操作を回避するために、第1のデータ読み出し条件が満たされていると判定された後、再実行データを連続的に読み出し、再実行データを再実行キューに書き込む操作が実行される前に、再実行キューに対する書き込み許可を取得するために、再実行キューがロックされ、それによって、データを再実行キューに書き込む新しい操作が同時に実行されることを回避する。データ読み出しスレッドは、第2のデータ読み出し条件に従って、再実行データを連続的に読み出し、再実行データを再実行キューに書き込む第1の実行された操作が終わるとともに再実行キューのロックが解除された後でのみ、再実行データを読み出す新しい操作に再実行キューのロックを割り当てることができ、その結果、再実行データを読み出し、再実行データを再実行キューに書き込む新しい操作が実行される。
前記時系列キューにおけるアプリケーションスレッドの識別子に対応するアプリケーションスレッドのバッファから1つの再実行データを連続的に読み出し、1つの再実行データを再実行キューに書き込むステップの後、方法は、時系列キューから、アプリケーションスレッドの、時系列キュー内にある識別子を削除するステップをさらに含む。
具体的には、本実施形態では、ステップ203におけるデータ読み出しスレッドの詳細な操作のプロセスは以下のようになる。
前記時系列キューの長さが4であることを判定した後、データ読み出しスレッドは、時系列キューの末尾の要素、すなわち第4の要素に読み出し終了識別子を追加し、時系列キューをトラバースし、従って、再実行データを読み出すプロセスでは、第3のアプリケーションスレッドは、データベースの変更操作をさらに実行し続けてもよく、すなわち、再実行データをバッファに追加するとともに、アプリケーションスレッドの識別子を時系列キューに追加してもよい。読み出し終了識別子は、キュー内の各要素にStopFlag属性を追加し、キューの末尾の要素のStopFlag属性の値を、1に独立して設定する方法で追加される。
前記データ読み出しスレッドが、トラバースすることによって、第1のアプリケーションスレッドの識別子がSessionID1であることを取得した後、データ読み出しスレッドはSessionID1に対応するアプリケーションスレッド1のバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込む。バッファは先入れ先出しの構造を有し、従って、1つ目のデータRedo1が読み出され、読み出しの後、2つ目のデータは1つ目のデータとなり、データ読み出しスレッドは時系列キューからSessionID1を削除する。この場合、再実行キューに含まれるデータはRedo1である。
前記データ読み出しスレッドが、トラバースすることによって、第2のアプリケーションスレッドの識別子がSessionID2であることを取得した後、データ読み出しスレッドはSessionID2に対応するアプリケーションスレッド2のバッファから1つの再実行データ、すなわち、Redo2を読み出し、1つの再実行データを再実行キューに書き込む。読み出しの後、Redo4はアプリケーションスレッド2のバッファ内の1つ目の再実行データとなり、データ読み出しスレッドは時系列キューからSessionID2を削除する。この場合、再実行キューに含まれるデータはRedo1およびRedo2である。
前記データ読み出しスレッドが、トラバースすることによって、第3のアプリケーションスレッドの識別子がSessionID3であることを取得した後、データ読み出しスレッドはSessionID3に対応するアプリケーションスレッド3のバッファから1つの再実行データ、すなわち、Redo3を読み出し、1つの再実行データを再実行キューに書き込み、時系列キューからSessionID3を削除する。この場合、再実行キューに含まれるデータはRedo1、Redo2およびRedo3である。
前記データ読み出しスレッドが、トラバースすることによって、第4のアプリケーションスレッドの識別子がSessionID2であることを取得した後、データ読み出しスレッドはSessionID2に対応するアプリケーションスレッド2のバッファから1つの再実行データ、すなわち、Redo4を読み出し、1つの再実行データを再実行キューに書き込み、時系列キューからSessionID2を削除する。この場合、再実行キューに含まれるデータはRedo1、Redo2、Redo3およびRedo4である。第4の要素がトラバースされるとき、読み出し終了識別子が検出され、従って、再実行データを読み出す現在の操作が停止する。
ステップ204:再実行キュー内の再実行データを磁気ディスクに書き込む。
具体的には、データ読み出しスレッドは、再実行データを読み出す現在の操作が完了した後、一度に、再実行キュー内の全ての再実行データを瞬時に磁気ディスクに書き込むことであってもよい。
本発明の実施形態はデータベースにおいて再実行データを処理するためのサーバを提供し、複数のアプリケーションスレッドはサーバ上で実行し、複数のアプリケーションスレッドは同時にデータベースを変更する。図3を参照すると、サーバ300は、
時系列キュー処理ユニット301であって、複数のアプリケーションスレッドの各アプリケーションスレッドがデータベースの変更操作に従って、再実行データを生成することを可能にし、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除するとともに時系列キューを再実行キュー処理ユニット302に送信するように構成される、時系列キュー処理ユニット301と、
再実行キュー処理ユニット302であって、時系列キュー処理ユニット301から時系列キューを受信し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むように構成される、再実行キュー処理ユニット302とを含む。
任意で、再実行キュー処理ユニット302が、データ読み出し条件が満たされていることを判定することは、具体的には、既定の期間が満了していること、または時系列キューの長さが既定値に達していること、またはアプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることを判定することを含む。
任意で、再実行キュー処理ユニット302は、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの前に、再実行キューへの書き込み許可を取得するために、再実行キューのロックを取得し、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの後に、再実行キューのロックを解除するようにさらに構成される。
任意で、再実行キュー処理ユニット302は、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの前に、時系列キューをロックするために、時系列キューのロックを取得するとともに、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの後に、時系列キューのロックを解除するか、または、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの前に、時系列キューの末尾の要素に読み出し終了識別子を追加するようにさらに構成される。
任意で、再実行キュー処理ユニット302は、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むことの後に、各アプリケーションスレッドの識別子を時系列キューから削除するようにさらに構成される。
本発明の実施形態におけるサーバはコンピュータシステムに基づいて実施されてもよく、図1および図2に示される方法は、コンピュータシステムに基づいてサーバ上で実施されてもよい。図4は、コンピュータシステムに基づいて実施されるサーバの実施形態を示す。本実施形態では、サーバはプロセッサ401と、メモリ402と、通信インタフェース403とを含んでもよく、
通信インタフェース403は端末と通信するように構成される。サーバと端末との間で交換される全てのメッセージは通信インタフェース403を使用することによって送受信される。具体的には、通信インタフェース403は、端末から、データベースにアクセスするための命令を受信するように構成され、メモリ402は、プログラム命令を格納するように構成され、プロセッサ401は、データベースにアクセスするための命令が端末から受信された後、データ読み出しスレッドと複数のアプリケーションスレッドとを開始し、複数のアプリケーションスレッドは同時にデータベースを変更し、複数のアプリケーションスレッドの各アプリケーションスレッドはデータベースの変更操作に従って再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内に各アプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除する命令と、データ読み出しスレッドがデータ読み出し条件が満たされていることを判定し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおけるアプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込む命令と、を実行するための、メモリ402内に格納されるプログラム命令を呼び出すように構成される。
前記プロセッサ401は、中央処理装置(central processing unit, CPU)、特定用途向け集積回路(application-specific integrated circuit, ASIC)等であってもよい。本実施形態におけるサーバはバス404を含んでもよい。プロセッサ401、メモリ402および通信インタフェース403はバス404を使用することによって互いに接続し互いに通信してもよい。メモリ402は、ランダムアクセスメモリ(random access memory, RAM)、読み出し専用メモリ(read-only memory, ROM)、磁気ディスク等のような、記憶機能を有するエンティティを含んでもよい。
前記プロセッサ401は、図1および図2に示される方法の実施形態におけるサーバのステップを実行するようにさらに構成されてもよい。本発明の本実施形態では、詳細はここでは繰り返し説明されない。
前述は、本発明で提供される、データベースにおいて再実行データを処理するための方法および装置の詳細な説明である。具体的な実施例は、本発明の原理および実施方法を説明するために本明細書内で使用される。前述の実施形態の説明は、単に、本発明の方法およびコアなアイデアの理解を助けることを意図されている。加えて、実施方法および適用範囲に関して、修正は本発明のアイデアに従って当業者によって行われることができる。従って、本明細書は、本発明を限定するものとして解釈されるべきではない。
300 サーバ
301 時系列キュー処理ユニット
302 再実行キュー処理ユニット
401 プロセッサ
402 メモリ
403 通信インタフェース
第2の構成によると、本発明の態様はデータベースにおいて再実行データを処理するためのサーバを提供し、複数のアプリケーションスレッドはサーバ内で実行し、複数のアプリケーションスレッドは同時にデータベースを変更し、前記サーバは、
時系列キュー処理ユニットであって、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除するとともに時系列キューを再実行キュー処理ユニットに送信するように構成される、時系列キュー処理ユニットと、
再実行キュー処理ユニットであって、時系列キュー処理ユニットから時系列キューを受信し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むように構成される、再実行キュー処理ユニットとを含む。
前述の技術的解決手段から、本発明の態様では、アプリケーションスレッドは再実行データを生成するために使用され、再実行データはアプリケーションスレッドに割り当てられたバッファ内に保存され、アプリケーションスレッドの識別子は時系列キュー内に保存され、データ読み出し条件が満たされた後、アプリケーションスレッドの識別子のシーケンスは時系列キューから読み出され、再実行データはアプリケーションスレッドのバッファから連続的に読み出されるとともに再実行キューに書き込まれ、それによって、再実行データの処理効率を改善するとともに、データベースシステムの同時スループットを増加させることがわかる。
ステップ101:複数のアプリケーションスレッドの各アプリケーションスレッドを実行するサーバは、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内に各アプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除する。
ステップ102:データ読み出しスレッドを実行するサーバは、データ読み出し条件が満たされていることを判定し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおけるアプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込む。
ステップ202:データベースの変更操作に従って、再実行データを生成した後、任意のアプリケーションスレッドがそのアプリケーションスレッドに割り当てられたバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除する。
本発明の実施形態はデータベースにおいて再実行データを処理するためのサーバを提供し、複数のアプリケーションスレッドはサーバ上で実行し、複数のアプリケーションスレッドは同時にデータベースを変更する。図3を参照すると、サーバ300は、
時系列キュー処理ユニット301であって、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内にアプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除するとともに時系列キューを再実行キュー処理ユニット302に送信するように構成される、時系列キュー処理ユニット301と、
再実行キュー処理ユニット302であって、時系列キュー処理ユニット301から時系列キューを受信し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおける各アプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込むように構成される、再実行キュー処理ユニット302とを含む。
本発明の実施形態におけるサーバはコンピュータシステムに基づいて実施されてもよく、図1および図2に示される方法は、コンピュータシステムに基づいてサーバ上で実施されてもよい。図4は、コンピュータシステムに基づいて実施されるサーバの実施形態を示す。本実施形態では、サーバはプロセッサ401と、メモリ402と、通信インタフェース403とを含んでもよく、
通信インタフェース403は端末と通信するように構成される。サーバと端末との間で交換される全てのメッセージは通信インタフェース403を使用することによって送受信される。具体的には、通信インタフェース403は、端末から、データベースにアクセスするための命令を受信するように構成され、メモリ402は、プログラム命令を格納するように構成され、プロセッサ401は、データベースにアクセスするための命令が端末から受信された後、データ読み出しスレッドと複数のアプリケーションスレッドとを開始し、複数のアプリケーションスレッドは同時にデータベースを変更し、複数のアプリケーションスレッドの各アプリケーションスレッドはデータベースの変更操作に従って再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に再実行データを保存し、時系列キューのロックが取得された後、時系列キュー内に各アプリケーションスレッドの識別子を保存し、保存が終わった後、時系列キューのロックを解除する命令と、データ読み出しスレッドがデータ読み出し条件が満たされていることを判定し、時系列キューからアプリケーションスレッドの識別子を読み出す順序に連続的に従って、時系列キューにおけるアプリケーションスレッドの識別子に対応する各アプリケーションスレッドのバッファから1つの再実行データを読み出し、1つの再実行データを再実行キューに書き込む命令と、を実行するための、メモリ402内に格納されるプログラム命令を呼び出すように構成される。

Claims (10)

  1. データベースにおいて再実行データを処理するための方法であって、前記方法はサーバに適用され、データ読み出しスレッドおよび複数のアプリケーションスレッドは前記サーバ上で実行し、前記複数のアプリケーションスレッドは同時に前記データベースを変更し、前記方法は、
    前記複数のアプリケーションスレッドの各アプリケーションスレッドによって、データベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に前記再実行データを保存し、時系列キューのロックが取得された後、前記時系列キュー内に前記アプリケーションスレッドの識別子を保存し、前記保存が終わった後、時系列キューの前記ロックを解除するステップと、
    前記データ読み出しスレッドによって、データ読み出し条件が満たされていることを判定し、前記時系列キューから前記アプリケーションスレッドの前記識別子を読み出す順序に連続的に従って、前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むステップと
    を有する方法。
  2. 前記データ読み出し条件は、既定の期間が満了していること、または前記時系列キューの長さが既定値に達していること、または前記アプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることである、請求項1に記載の方法。
  3. 前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込む前記ステップの前に、前記方法は、前記再実行キューの書き込み許可を取得するために、前記再実行キューのロックを取得するステップをさらに有し、
    前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込む前記ステップの後に、前記方法は、再実行キューの前記ロックを解除するステップをさらに有する、
    請求項1または2に記載の方法。
  4. 前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込む前記ステップの前に、前記方法は、前記時系列キューをロックするために、前記時系列キューのロックを取得するステップをさらに有するとともに、前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込む前記ステップの後に、前記方法は、時系列キューの前記ロックを解除するステップをさらに有するか、または
    前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込む前記ステップの前に、前記方法は、前記時系列キューの末尾の要素に読み出し終了識別子を追加するステップをさらに有する、
    請求項1、2または3に記載の方法。
  5. 前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込む前記ステップの後に、前記方法は、
    各アプリケーションスレッドの前記識別子を前記時系列キューから削除するステップ
    をさらに有する、請求項1乃至4のいずれか1項に記載の方法。
  6. データベースにおいて再実行データを処理するためのサーバであって、複数のアプリケーションスレッドは前記サーバ上で実行し、前記複数のアプリケーションスレッドは同時に前記データベースを変更し、前記サーバは、
    時系列キュー処理ユニットであって、前記複数のアプリケーションスレッドの各アプリケーションスレッドがデータベースの変更操作に従って、再実行データを生成し、各アプリケーションスレッドに割り当てられた対応するバッファ内に前記再実行データを保存し、時系列キューのロックが取得された後、前記時系列キュー内に前記アプリケーションスレッドの識別子を保存し、前記保存が終わった後、時系列キューの前記ロックを解除するとともに前記時系列キューを再実行キュー処理ユニットに送信するように構成される、時系列キュー処理ユニットと、
    前記再実行キュー処理ユニットであって、前記時系列キュー処理ユニットから前記時系列キューを受信し、前記時系列キューから前記アプリケーションスレッドの前記識別子を読み出す順序に連続的に従って、前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むように構成される、再実行キュー処理ユニットと
    を有するサーバ。
  7. 前記再実行キュー処理ユニットによって、データ読み出し条件が満たされていることを判定することは、具体的には、
    前記再実行キュー処理ユニットによって、既定の期間が満了していること、または前記時系列キューの長さが既定値に達していること、または前記アプリケーションスレッドの一時的に格納されたデータの量が既定値に達していることを判定することである、請求項6に記載のサーバ。
  8. 前記再実行キュー処理ユニットは、前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むことの前に、前記再実行キューの書き込み許可を取得するために、前記再実行キューのロックを取得し、前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むことの後に、再実行キューの前記ロックを解除するようにさらに構成される、
    請求項6または7に記載のサーバ。
  9. 前記再実行キュー処理ユニットは、
    前記時系列キューにおける前記アプリケーションスレッドの前記識別子に対応する前記アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むことの前に、前記時系列キューをロックするために、前記時系列キューのロックを取得するとともに、前記時系列キューにおける前記アプリケーションスレッドの前記識別子に対応する前記アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むことの後に、時系列キューの前記ロックを解除するか、または、
    前記時系列キューにおける各アプリケーションスレッドの前記識別子に対応する各アプリケーションスレッドの前記バッファから1つの再実行データを読み出し、前記1つの再実行データを再実行キューに書き込むことの前に、前記時系列キューの末尾の要素に読み出し終了識別子を追加するようにさらに構成される、
    請求項6、7または8に記載のサーバ。
  10. 前記時系列キューにおける前記アプリケーションスレッドの前記識別子に対応する前記アプリケーションスレッドの前記バッファから前記1つの再実行データを読み出し、前記1つの再実行データを前記再実行キューに書き込むことの後に、前記再実行キュー処理ユニットは、
    各アプリケーションスレッドの前記識別子を前記時系列キューから削除するようにさらに構成される、請求項6乃至9のいずれか1項に記載のサーバ。
JP2016504452A 2013-03-26 2013-09-30 データベースにおいて再実行データを処理するための方法および装置 Pending JP2016517102A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310101317.X 2013-03-26
CN201310101317.XA CN103150149B (zh) 2013-03-26 2013-03-26 处理数据库重做数据的方法和装置
PCT/CN2013/084687 WO2014153940A1 (zh) 2013-03-26 2013-09-30 处理数据库重做数据的方法和装置

Publications (1)

Publication Number Publication Date
JP2016517102A true JP2016517102A (ja) 2016-06-09

Family

ID=48548251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016504452A Pending JP2016517102A (ja) 2013-03-26 2013-09-30 データベースにおいて再実行データを処理するための方法および装置

Country Status (5)

Country Link
US (1) US10387258B2 (ja)
EP (1) EP2945072A4 (ja)
JP (1) JP2016517102A (ja)
CN (1) CN103150149B (ja)
WO (1) WO2014153940A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150149B (zh) 2013-03-26 2015-11-25 华为技术有限公司 处理数据库重做数据的方法和装置
CN105912479B (zh) * 2016-04-07 2023-05-05 合肥锐世数字科技有限公司 一种并发数据的缓存方法及装置
US10282361B2 (en) * 2016-04-29 2019-05-07 Salesforce.Com, Inc. Transforming time series data points from concurrent processes
CN106341345B (zh) * 2016-08-18 2019-12-20 北京奇虎科技有限公司 一种并发请求的处理方法及装置
CN108009049B (zh) * 2017-11-28 2020-12-01 厦门市美亚柏科信息股份有限公司 Myisam存储引擎删除记录离线恢复方法、存储介质
CN108874588A (zh) * 2018-06-08 2018-11-23 郑州云海信息技术有限公司 一种数据库实例恢复方法和装置
CN109088950A (zh) * 2018-10-25 2018-12-25 珠海格力电器股份有限公司 数据传输方法、装置、系统和计算机可读存储介质
CN111259205B (zh) * 2020-01-15 2023-10-20 北京百度网讯科技有限公司 一种图数据库遍历方法、装置、设备及存储介质
CN112181902B (zh) * 2020-11-30 2021-08-31 阿里云计算有限公司 数据库的存储方法、装置及电子设备
CN113656444B (zh) * 2021-08-26 2024-02-27 友安云(厦门)数据科技有限公司 一种数据持久化方法、服务器及管理设备
CN115905268B (zh) * 2023-01-03 2023-09-29 北京力控元通科技有限公司 一种基于队列的电表数据处理方法、系统及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05316309A (ja) * 1992-05-08 1993-11-26 Matsushita Electric Ind Co Ltd ファクシミリ電子メールシステム
JPH08235042A (ja) * 1995-02-28 1996-09-13 N T T Data Tsushin Kk 複数ジャーナル一括取得方式
JPH09282296A (ja) * 1996-04-10 1997-10-31 Hitachi Ltd 多重化ノード間通信制御方式
JP2004287932A (ja) * 2003-03-24 2004-10-14 Bank Of Tokyo-Mitsubishi Ltd データベース更新処理システム、データベース更新のための更新データ入力方法、更新データ処理方法、およびプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996027157A1 (fr) 1995-02-28 1996-09-06 Ntt Data Communications Systems Corporation Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci
US7415466B2 (en) * 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
DE60233877D1 (de) * 2001-07-16 2009-11-12 Sap Ag Parallelisierte nur-redo-protokollierung und behebung für datenbanksysteme mit hochverfügbarem hauptspeicher
US6842848B2 (en) * 2002-10-11 2005-01-11 Sandbridge Technologies, Inc. Method and apparatus for token triggered multithreading
US7412460B2 (en) * 2003-06-19 2008-08-12 International Business Machines Corporation DBMS backup without suspending updates and corresponding recovery using separately stored log and data files
US7146386B2 (en) 2004-03-29 2006-12-05 Microsoft Corporation System and method for a snapshot query during database recovery
WO2007129287A1 (en) * 2006-05-09 2007-11-15 Fleetmatics Patents Limited A vehicle tracking system
CN100476738C (zh) * 2006-08-15 2009-04-08 杭州华三通信技术有限公司 访问临界区的方法和系统
US8650155B2 (en) * 2008-02-26 2014-02-11 Oracle International Corporation Apparatus and method for log based replication of distributed transactions using globally acknowledged commits
CN102195795B (zh) * 2010-03-19 2014-03-12 Tcl集团股份有限公司 智能小区日志系统及其日志记录方法
CN101794247A (zh) * 2010-03-26 2010-08-04 天津理工大学 嵌套事务模型下实时数据库故障恢复方法
US20110282850A1 (en) 2010-05-11 2011-11-17 Microsoft Corporation Concurrently Accessing Data
CN102945278B (zh) * 2012-11-09 2015-12-09 华为技术有限公司 一种数据库记录重做日志的方法和装置
CN103150149B (zh) * 2013-03-26 2015-11-25 华为技术有限公司 处理数据库重做数据的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05316309A (ja) * 1992-05-08 1993-11-26 Matsushita Electric Ind Co Ltd ファクシミリ電子メールシステム
JPH08235042A (ja) * 1995-02-28 1996-09-13 N T T Data Tsushin Kk 複数ジャーナル一括取得方式
JPH09282296A (ja) * 1996-04-10 1997-10-31 Hitachi Ltd 多重化ノード間通信制御方式
JP2004287932A (ja) * 2003-03-24 2004-10-14 Bank Of Tokyo-Mitsubishi Ltd データベース更新処理システム、データベース更新のための更新データ入力方法、更新データ処理方法、およびプログラム

Also Published As

Publication number Publication date
US10387258B2 (en) 2019-08-20
WO2014153940A1 (zh) 2014-10-02
EP2945072A4 (en) 2016-06-29
CN103150149B (zh) 2015-11-25
CN103150149A (zh) 2013-06-12
US20150355975A1 (en) 2015-12-10
EP2945072A1 (en) 2015-11-18

Similar Documents

Publication Publication Date Title
JP2016517102A (ja) データベースにおいて再実行データを処理するための方法および装置
CN107391628B (zh) 数据同步方法及装置
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
JP5270268B2 (ja) 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体
CN108139946B (zh) 用于在冲突存在时进行有效任务调度的方法
CN108572876B (zh) 一种读写锁的实现方法及装置
US20140282595A1 (en) Systems and Methods for Implementing Work Stealing Using a Configurable Separation of Stealable and Non-Stealable Work Items
US8190857B2 (en) Deleting a shared resource node after reserving its identifier in delete pending queue until deletion condition is met to allow continued access for currently accessing processor
US9170837B2 (en) Transaction concurrent execution control system, method and program for carrying out a control of concurrently executing a transaction, including measuring execution time from starting to ending of transaction execution
CN111459691A (zh) 共享内存的读写方法及装置
US9325722B2 (en) Apparatus, method, and computer-readable medium
CN110609807B (zh) 用于删除快照数据的方法、设备和计算机可读存储介质
US20120059997A1 (en) Apparatus and method for detecting data race
US11803447B2 (en) Transaction processing method, apparatus, and electronic device for blockchain
JP6442996B2 (ja) トランザクション処理装置、トラザクション処理方法、及びプログラム
US8341368B2 (en) Automatic reallocation of structured external storage structures
CN103853504A (zh) 一种缓存系统数据存取方法
CN107832121B (zh) 一种应用于分布式串行长事务的并发控制方法
US20180253462A1 (en) Executing transactions based on success or failure of the transactions
CN113986775B (zh) 一种risc-v cpu验证中页表项生成方法、系统及装置
US20140082305A1 (en) Providing usage statistics for virtual storage
KR20210058613A (ko) 단일 파일의 병렬 읽기/쓰기를 위한 락킹 방법 및 이를 구현하는 컴퓨팅 장치
WO2020107352A1 (zh) 日志序列号生成方法、装置及可读存储介质
CN104317737A (zh) 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法
CN117056363B (zh) 数据缓存方法、系统、设备以及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170725

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180306