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