(57)【特許請求の範囲】
【請求項１】
コンピュータシステムの内部メモリとして使用される不揮発性メモリを含む前記コンピュータシステム内に適用されるトランザクション処理方法であって
トランザクション処理要求を受信するステップであり、前記トランザクション処理要求は、トランザクションのトランザクションデータを搬送するステップと、
前記トランザクションの状態情報を前記不揮発性メモリに記録するステップであり、前記トランザクションの前記状態情報は、トランザクション状態と、前記トランザクション処理要求に従って前記トランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、前記トランザクション状態は未コミット状態であり、前記未コミット状態は、全ての前記トランザクションデータが前記不揮発性メモリに書き込まれているのではないことを示すステップと、
前記アドレスに従って前記トランザクションデータを前記不揮発性メモリに書き込むステップと、
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をコミット状態に変更するステップであり、前記コミット状態は、前記トランザクションの全ての前記トランザクションデータが前記不揮発性メモリに書き込まれているが、全ての前記トランザクションデータが前記コンピュータシステムの外部メモリに書き込まれているのではないことを示すステップと、
前記トランザクションデータを前記不揮発性メモリから前記コンピュータシステムの前記外部メモリに書き込むステップと、
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をバックアップ状態に変更するステップであり、前記バックアップ状態は、前記トランザクションの全ての前記トランザクションデータが前記コンピュータシステムの前記外部メモリに書き込まれていることを示すステップと
を含む方法。
【請求項２】
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をコミット状態に変更する前に、
前記コンピュータシステムがリスタートした場合、前記不揮発性メモリに記録された前記トランザクションの前記状態情報に従って、前記トランザクションの前記トランザクション状態が前記未コミット状態であると決定するステップと、
前記トランザクションの前記トランザクションデータ及び前記状態情報を削除するステップと
を更に含む、請求項１に記載の方法。
【請求項３】
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をコミット状態に変更した後に、
前記コンピュータシステムがリスタートした場合、前記不揮発性メモリに記録された前記トランザクションの前記状態情報に従って、前記トランザクションの前記トランザクション状態が前記コミット状態であると決定し、前記トランザクションデータを前記不揮発性メモリから前記コンピュータシステムの前記外部メモリに書き込むステップを更に含む、請求項１に記載の方法。
【請求項４】
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をバックアップ状態に変更した後に、
前記トランザクションの前記トランザクションデータを削除するステップを更に含む、請求項１に記載の方法。
【請求項５】
コンピュータシステムの内部メモリとして使用される不揮発性メモリを含む前記コンピュータシステム内に適用されるトランザクション処理装置であって、
トランザクション処理要求を受信するように構成された受信モジュールであり、前記トランザクション処理要求は、トランザクションのトランザクションデータを搬送する受信モジュールと、
前記トランザクションの状態情報を前記不揮発性メモリに記録するように構成された記録モジュールであり、前記トランザクションの前記状態情報は、トランザクション状態と、前記トランザクション処理要求に従って前記トランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、前記トランザクション状態は未コミット状態であり、前記未コミット状態は、全ての前記トランザクションデータが前記不揮発性メモリに書き込まれているのではないことを示す記録モジュールと、
前記アドレスに従って前記トランザクションデータを前記不揮発性メモリに書き込むように構成された内部メモリ書き込みモジュールと
を含み、
前記記録モジュールは、前記内部メモリ書き込みモジュールが前記トランザクションデータを前記不揮発性メモリに書き込んだ後に、前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をコミット状態に変更するように更に構成され、前記コミット状態は、前記トランザクションの全ての前記トランザクションデータが前記不揮発性メモリに書き込まれているが、全ての前記トランザクションデータが前記コンピュータシステムの外部メモリに書き込まれているのではないことを示し、
前記記録モジュールが前記トランザクションの前記トランザクション状態を前記コミット状態に変更した後に、前記トランザクションデータを前記不揮発性メモリから前記コンピュータシステムの前記外部メモリに書き込むように構成された外部メモリ書き込みモジュールを含み、
前記記録モジュールは、前記外部メモリ書き込みモジュールが前記トランザクションデータを前記コンピュータシステムの前記外部メモリに書き込んだ後に、前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をバックアップ状態に変更するように更に構成され、前記バックアップ状態は、前記トランザクションの全ての前記トランザクションデータが前記コンピュータシステムの前記外部メモリに書き込まれていることを示す装置。
【請求項６】
前記記録モジュールが前記トランザクションの前記トランザクション状態を前記コミット状態に変更する前に、前記コンピュータシステムがリスタートした場合、前記不揮発性メモリに記録された前記トランザクションの前記状態情報に従って、前記トランザクションの前記トランザクション状態が前記未コミット状態であると決定するように構成された状態決定モジュールと、
前記状態決定モジュールが前記トランザクションの前記トランザクション状態が前記未コミット状態であると決定した場合、前記トランザクションの前記トランザクションデータ及び前記状態情報を削除するように構成された削除モジュールと
を更に含む、請求項５に記載の装置。
【請求項７】
前記状態決定モジュールは、前記記録モジュールが前記トランザクションの前記トランザクション状態を前記コミット状態に変更した後に、前記コンピュータシステムがリスタートした場合、前記不揮発性メモリに記録された前記トランザクションの前記状態情報に従って、前記トランザクションの前記トランザクション状態が前記コミット状態であると決定し、前記トランザクションデータを前記不揮発性メモリから前記コンピュータシステムの前記外部メモリに書き込むように前記外部メモリ書き込みモジュールをトリガーするように更に構成される、請求項６に記載の装置。
【請求項８】
前記削除モジュールは、前記記録モジュールが前記トランザクションの前記トランザクション状態を前記バックアップ状態に変更した後に、前記トランザクションの前記トランザクションデータを削除するように更に構成される、請求項６又は７に記載の装置。
【請求項９】
プロセッサと、コンピュータシステムの内部メモリとして使用される不揮発性メモリとを含む前記コンピュータシステムであって、
前記不揮発性メモリは、データを記憶するように構成され、
前記プロセッサは、
トランザクション処理要求を受信するように構成され、前記トランザクション処理要求は、トランザクションのトランザクションデータを搬送し、
前記トランザクションの状態情報を前記不揮発性メモリに記録するように構成され、前記トランザクションの前記状態情報は、トランザクション状態と、前記トランザクション処理要求に従って前記トランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、前記トランザクション状態は未コミット状態であり、前記未コミット状態は、全ての前記トランザクションデータが前記不揮発性メモリに書き込まれているのではないことを示し、
前記アドレスに従って前記トランザクションデータを前記不揮発性メモリに書き込み、
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をコミット状態に変更するように構成され、前記コミット状態は、前記トランザクションの全ての前記トランザクションデータが前記不揮発性メモリに書き込まれているが、全ての前記トランザクションデータが前記コンピュータシステムの外部メモリに書き込まれているのではないことを示し、
前記トランザクションデータを前記不揮発性メモリから前記コンピュータシステムの前記外部メモリに書き込み、
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態をバックアップ状態に変更するように構成され、前記バックアップ状態は、前記トランザクションの全ての前記トランザクションデータが前記コンピュータシステムの前記外部メモリに書き込まれていることを示すコンピュータシステム。
【請求項１０】
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態を前記コミット状態に変更する前に、前記プロセッサは、
前記コンピュータシステムがリスタートした場合、前記不揮発性メモリに記録された前記トランザクションの前記状態情報に従って、前記トランザクションの前記トランザクション状態が前記未コミット状態であると決定し、
前記トランザクションの前記トランザクションデータ及び前記状態情報を削除するように更に構成される、請求項９に記載のコンピュータシステム。
【請求項１１】
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態を前記コミット状態に変更した後に、前記プロセッサは、
前記コンピュータシステムがリスタートした場合、前記不揮発性メモリに記録された前記トランザクションの前記状態情報に従って、前記トランザクションの前記トランザクション状態が前記コミット状態であると決定し、前記トランザクションデータを前記不揮発性メモリから前記コンピュータシステムの前記外部メモリに書き込むように更に構成される、請求項９に記載のコンピュータシステム。
【請求項１２】
前記トランザクション識別子に従って前記トランザクションの前記トランザクション状態を前記バックアップ状態に変更した後に、前記プロセッサは、
前記トランザクションの前記トランザクションデータを削除するように更に構成される、請求項９に記載のコンピュータシステム。
【請求項１３】
コンピュータシステムのプロセッサ上で実行された場合、前記コンピュータシステムに対して請求項１乃至４のうちいずれか１項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、トランザクション処理技術の分野に関し、特にトランザクション処理方法及び装置、並びにコンピュータシステムに関する。
【背景技術】
【０００２】
多くの大規模且つ主要なアプリケーションプログラムにおいて、コンピュータは、毎秒大量のタスクを実行する。サービス要求を完了するために複数のタスクが一緒に組み合わされる場合、サービス要求は、トランザクションと呼ばれることがある。トランザクションは、原子性及び一貫性を有する。
【０００３】
トランザクションの原子性及び一貫性を確保するために、既存のトランザクション処理においてログ先行書き込み（英文：Write-Ahead  Logging、略称WAL）方法が一般的に使用される。具体的には、既存のコンピュータシステムは、プロセッサと内部メモリと外部メモリとを含み、内部メモリはダイナミックランダムアクセスメモリ（英文：Dynamic  Random  Access  Memory、略称DRAM）であり、ログ領域は外部メモリ内に設定される。トランザクション処理要求を受信した場合、プロセッサは、まず、トランザクションのトランザクションデータをコンピュータシステムのキャッシュから内部メモリに書き込み、次に、外部メモリのログ領域に書き込み、内部メモリに書き込まれたトランザクションデータを書き込む。トランザクションの全てのトランザクションがログ領域に書き込まれた後に、プロセッサは、トランザクションをコミットするために、トランザクションデータを外部メモリに書き込む。
【０００４】
しかし、前述の既存のトランザクション処理方法における全てのトランザクションデータは、ログ領域に書き込まれる前に内部メモリに書き込まれる必要があり、トランザクションは、全てのデータがログ領域に書き込まれた後にのみコミットされることができる。すなわち、トランザクションデータは、トランザクション処理過程において２回書き込まれる必要があり、これは、低いトランザクション処理速度をもたらす。
【発明の概要】
【０００５】
この出願は、トランザクションデータ処理速度が増加し得るようなトランザクション処理方法及び装置、並びにコンピュータシステムを提供する。
【０００６】
第１の態様では、本発明の実施例は、トランザクション処理方法を提供し、この方法は、不揮発性メモリを含むコンピュータシステム内に適用され、この方法は、トランザクション処理要求を受信するステップであり、トランザクション処理要求は、トランザクションのトランザクションデータを搬送するステップと、トランザクションの状態情報を不揮発性メモリに記録するステップであり、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態であり、未コミット状態は、全てのトランザクションデータが不揮発性メモリに書き込まれているのではないことを示すステップと、アドレスに従ってトランザクションデータを不揮発性メモリに書き込むステップと、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更するステップであり、コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれているのではないことを示すステップと、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むステップと、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更するステップであり、バックアップ状態は、トランザクションの全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれていることを示すステップとを含む。
【０００７】
第１の態様を参照して、第１の態様の第１の可能な実施例では、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更する前に、この方法は、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態が未コミット状態であると決定するステップと、トランザクションのトランザクションデータ及び状態情報を削除するステップとを更に含む。
【０００８】
第１の態様又は第１の態様の第１の可能な実施例を参照して、第１の態様の第２の可能な実施例では、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更した後に、この方法は、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態がコミット状態であると決定し、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むステップを更に含む。
【０００９】
第１の態様又は第１の態様の第１若しくは第２の可能な実施例を参照して、第１の態様の第３の可能な実施例では、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更した後に、この方法は、トランザクションのトランザクションデータを削除するステップを更に含む。
【００１０】
第２の態様では、本発明の実施例は、トランザクション処理装置を提供し、この装置は、不揮発性メモリを含むコンピュータシステム内に適用され、この装置は、トランザクション処理要求を受信するように構成された受信モジュールであり、トランザクション処理要求は、トランザクションのトランザクションデータを搬送する受信モジュールと、トランザクションの状態情報を不揮発性メモリに記録するように構成された記録モジュールであり、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態であり、未コミット状態は、全てのトランザクションデータが不揮発性メモリに書き込まれているのではないことを示す記録モジュールと、アドレスに従ってトランザクションデータを不揮発性メモリに書き込むように構成された内部メモリ書き込みモジュールとを含み、記録モジュールは、内部メモリ書き込みモジュールがトランザクションデータを不揮発性メモリに書き込んだ後に、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更するように更に構成され、コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれているのではないことを示し、記録モジュールがトランザクションのトランザクション状態をコミット状態に変更した後に、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むように構成された外部メモリ書き込みモジュールを含み、記録モジュールは、外部メモリ書き込みモジュールがトランザクションデータをコンピュータの外部メモリに書き込んだ後に、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更するように更に構成され、バックアップ状態は、トランザクションの全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれていることを示す。
【００１１】
第２の態様を参照して、第２の態様の第１の可能な実施例では、この装置は、記録モジュールがトランザクションのトランザクション状態をコミット状態に変更する前に、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態が未コミット状態であると決定するように構成された状態決定モジュールと、状態決定モジュールがトランザクションのトランザクション状態が未コミット状態であると決定した場合、トランザクションのトランザクションデータ及び状態情報を削除するように構成された削除モジュールとを更に含む。
【００１２】
第２の態様第１の可能な実施例を参照して、第２の態様の第２の可能な実施例では、状態決定モジュールは、記録モジュールがトランザクションのトランザクション状態をコミット状態に変更した後に、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態がコミット状態であると決定し、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むように外部メモリ書き込みモジュールをトリガーするように更に構成される。
【００１３】
第２の態様又は第１の態様の第１若しくは第２の可能な実施例を参照して、第２の態様の第３の可能な実施例では、削除モジュールは、記録モジュールがトランザクションのトランザクション状態をバックアップ状態に変更した後に、トランザクションのトランザクションデータを削除するように更に構成される。
【００１４】
第３の態様では、本発明の実施例は、コンピュータシステムを提供し、コンピュータシステムは、プロセッサと不揮発性メモリとを含み、不揮発性メモリは、データを記憶するように構成され、プロセッサは、トランザクション処理要求を受信するように構成され、トランザクション処理要求は、トランザクションのトランザクションデータを搬送し、トランザクションの状態情報を不揮発性メモリに記録するように構成され、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態であり、未コミット状態は、全てのトランザクションデータが不揮発性メモリに書き込まれているのではないことを示し、アドレスに従ってトランザクションデータを不揮発性メモリに書き込み、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更するように構成され、コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれているのではないことを示し、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込み、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更するように構成され、バックアップ状態は、トランザクションの全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれていることを示す。
【００１５】
第３の態様を参照して、第３の態様の第１の可能な実施例では、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更する前に、プロセッサは、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態が未コミット状態であると決定し、トランザクションのトランザクションデータ及び状態情報を削除するように更に構成される。
【００１６】
第３の態様又は第３の態様の第１の可能な実施例を参照して、第３の態様の第２の可能な実施例では、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更した後に、プロセッサは、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態がコミット状態であると決定し、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むように更に構成される。
【００１７】
第３の態様又は第３の態様の第１若しくは第２の可能な実施例を参照して、第３の態様の第３の可能な実施例では、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更した後に、プロセッサは、トランザクションのトランザクションデータを削除するように更に構成される。
【００１８】
本発明の実施例において提供されるトランザクション処理方法では、不揮発性メモリが電源オフされたときにデータが失われないという特徴が使用され、トランザクションのトランザクションデータは、不揮発性メモリに書き込まれた後に外部メモリに直接書き込まれ、トランザクションデータは、ログ領域に書き込まれる必要はない。したがって、トランザクション処理過程が簡略化され、トランザクション処理速度が増加する。さらに、本発明の実施例では、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているか否か、或いは全てのトランザクションデータが外部メモリに書き込まれているか否かを識別するために、異なるトランザクション状態が不揮発性メモリ内に更に設定され、これにより、コンピュータシステムは、トランザクション状態に従って現在のトランザクションのトランザクションデータの書き込み状態を決定し得る。したがって、トランザクションの原子性及び一貫性が確保される。
【図面の簡単な説明】
【００１９】
本発明の実施例又は従来技術における技術的解決策をより明確に説明するために、以下に、実施例又は従来技術を説明するために必要な添付図面について簡単に説明する。明らかに、以下の説明における添付図面は、単に本発明のいくつかの実施例の添付図面に過ぎない。
【図１】本発明の実施例によるコンピュータシステムの概略構成図である。
【図２】本発明の実施例によるトランザクション処理方法のフローチャートである。
【図３Ａ】本発明の実施例による他のトランザクション処理方法のフローチャートである。
【図３Ｂ】本発明の実施例による他のトランザクション処理方法のフローチャートである。
【図４】本発明の実施例によるトランザクション処理装置の概略構成図である。
【図５】本発明の実施例による他のトランザクション処理装置の概略構成図である。
【発明を実施するための形態】
【００２０】
以下の説明では、限定ではなく例示のため、この出願の完全な理解を行うために特定のシステム構成、インタフェース及び技術のような特定の詳細が提供される。しかし、当業者は、この出願がこれらの特定の詳細なしに他の実施例において実施され得ることを認識するべきである。他の場合にも、この出願が不要な詳細によりあいまいにされることなく説明されるように、周知の装置、回路及び方法の詳細な説明は省略される。
【００２１】
この出願におけるトランザクション処理方法の理解を容易にするため、この方法を使用するコンピュータシステム及びトランザクションが最初に記載される。図１を参照すると、図１は、本発明の実施例によるコンピュータシステムの概略構成図である。図１に示すように、コンピュータシステム100は、プロセッサ110と、不揮発性メモリ120と、外部メモリ130とを含む。本発明のこの実施例では、トランザクションは、不揮発性メモリ120を使用することによりデータを外部メモリ130に書き込むためにプロセッサ110により実行される動作を含んでもよく、外部メモリに書き込まれるデータは、トランザクションのトランザクションデータである。
【００２２】
不揮発性メモリ（Non-volatile  Memory、NVM）120は、トランザクションのトランザクションデータ及び状態情報を一時的に記憶するように構成される。具体的には、データ領域121及びデータ状態領域122が不揮発性メモリ120内に設定されてもよい。データ領域121は、トランザクションのトランザクションデータを記憶するために使用され、データ状態領域122は、トランザクションの状態情報を記憶するために使用される。
【００２３】
本発明のこの実施例では、不揮発性メモリは、内部メモリが不揮発性メモリであることを意味する。具体的には、不揮発性メモリ120は、相変化メモリ（Phase  Change  memory、PCM）、抵抗変化型ランダムアクセスメモリ（Resistive  Random  Access  Memory、RRAM）、磁気ランダムアクセスメモリ（Magnetic  Random  Access  Memory、MRAM）、強誘電体ランダムアクセスメモリ（Ferroelectric  Random  Access  Memory、FRAM）等により表される次世代不揮発性メモリ（Non-Volatile  Memory、NVM）を含んでもよい。次世代NVMは、高いアクセス速度を有し、バイト（Byte）単位でアドレス指定し、ビット（bit）の単位でデータを不揮発性メモリに書き込むことができる。したがって、次世代不揮発性メモリは、メモリバスに接続され、CPUにより直接アクセスされる内部メモリとして使用されることができる。コンピュータシステム100が電源オフされた場合、不揮発性メモリ120内の情報は依然として存在する。
【００２４】
外部メモリ130は、トランザクションのトランザクションデータを永久的に記憶するように構成される。外部メモリ130は、ハードディスクドライブ（英文：Hard  Disk  Drive、略称HDD）、ソリッドステートドライブ（英：Solid  State  Drive、SDD）又は他のメモリでもよい。
【００２５】
プロセッサ110は、内部メモリ120を使用することによりトランザクションデータを外部メモリに書き込むために、この出願におけるトランザクション処理方法を実行するように構成される。プロセッサは、CPUを含んでもよく、或いは他の特定用途向け集積回路（Application  Specific  Integrated  Circuit、ASIC）又は本発明のこの実施例を実現するように構成された１つ以上の集積回路を含んでもよいことが理解され得る。
【００２６】
図２を参照すると、図２は、本発明の実施例によるトランザクション処理方法のフローチャートである。トランザクション処理方法は、図１に示すコンピュータシステム100内に適用され、コンピュータシステム100内のプロセッサ110により実行されるトランザクション処理方法は以下のステップを含んでもよい。
【００２７】
201.プロセッサは、トランザクション処理要求を受信し、トランザクション処理要求は、トランザクションのトランザクションデータを搬送する。
【００２８】
トランザクション処理要求は、ユーザにより入力されてもよく、或いはプロセッサにより実行される他のプログラム、例えば、ユーザにより入力された書き込み命令によりトリガーされてもよい。
【００２９】
トランザクション処理要求を受信した後に、プロセッサは、トランザクション処理要求に従ってトランザクション識別子及びアドレスをトランザクションに割り当てる。トランザクション識別子は、異なるトランザクションを区別するために使用される。アドレスは、トランザクションのトランザクションデータが不揮発性メモリに書き込まれるアドレスである。
【００３０】
202.プロセッサは、トランザクションの状態情報を不揮発性メモリに記録し、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態である。
【００３１】
トランザクション識別子及びアドレスをトランザクションに割り当てた後に、プロセッサは、トランザクションのための状態情報を生成する。トランザクションの状態情報は、トランザクション識別子とトランザクション状態とアドレスとを含んでもよい。トランザクション状態は、トランザクションデータの書き込み状態を示すために使用され、主に未コミット状態とコミット状態とバックアップ状態とに分類される。未コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているのではないことを示す。未コミット状態は、プロセッサが他のプログラムを実行した場合、或いはコンピュータシステムがリスタートした場合、トランザクションのトランザクションデータが使用されることができないことを示すために使用されてもよい。コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、全てのトランザクションデータが外部メモリに書き込まれているのではないことを示す。コミット状態は、プロセッサが他のプログラムを実行した場合、或いはコンピュータシステムがリスタートした場合、不揮発性メモリ内のトランザクションのトランザクションデータが使用されることができることを示すために使用されてもよい。バックアップ状態は、トランザクションの全てのトランザクションデータが外部メモリに書き込まれていることを示す。バックアップ状態は、プロセッサが他のプログラムを実行した場合、或いはコンピュータシステムがリスタートした場合、外部メモリ内のトランザクションのトランザクションデータが使用されることができることを示すために使用されてもよい。他の表現方式では、トランザクションのトランザクション状態がバックアップ状態である場合、これは、トランザクションの処理が完了していることを示す。
【００３２】
例えば、プロセッサ110は、トランザクションデータとトランザクション識別子とアドレスとをトランザクションの状態情報として使用するため、デュアル・インライン・メモリ・モジュール（英文：Dual-Inline-Memory-Modules、略称DIMM）インタフェース又はペリフェラル・コンポーネント・インターコネクト・エクスプレス（Peripheral  Component  Interconnect  Express、略称PCIe）インタフェースのようなインタフェースを使用することにより、トランザクションのトランザクションデータとトランザクション識別子とアドレスとを不揮発性メモリのデータ状態領域に書き込む。トランザクションのトランザクション識別子が第１のトランザクションであり、第１のトランザクションが４つのトランザクションデータを含む場合、第１のトランザクションの状態情報を記録するために以下の表１がデータ状態領域に生成される。
【表１】
0006401866.tif 000002
【００３３】
明らかに、他の実施例では、同じトランザクションの全てのトランザクションデータについて１つのみの状態情報が生成されてもよく、状態情報内のアドレスは、不揮発性メモリ内のトランザクションの全てのトランザクションデータのそれぞれのアドレスである。したがって、トランザクションの状態情報を記録する方式は、この出願では具体的には限定されない。実際の用途では、コンピュータシステムは、処理されている複数のトランザクションの状態情報を記録してもよい点に留意すべきである。
【００３４】
203.プロセッサは、アドレスに従ってトランザクションデータを不揮発性メモリに書き込む。
【００３５】
例えば、トランザクションの状態情報がデータ状態領域に記録された後に、第１のトランザクションの状態情報内のアドレスに従って、プロセッサは、DIMMインタフェース又はPCIeインタフェースのようなインタフェースを使用することにより、トランザクション処理要求で搬送された第１のトランザクションのトランザクションデータを不揮発性メモリのデータ領域に書き込む。
【００３６】
204.プロセッサは、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更する。
【００３７】
例えば、第１のトランザクションの全てのトランザクションデータを不揮発性メモリのデータ領域に書き込んだ後に、プロセッサは、トランザクション識別子が第１のトランザクションである状態情報を求めて、不揮発性メモリのデータ状態領域を検索し、以下の表２に示すように、第１のトランザクションの状態情報内のトランザクション状態をコミット状態に変更する。この場合、第１のトランザクションがコミットされる。
【表２】
0006401866.tif 000003
【００３８】
205.プロセッサは、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込む。
【００３９】
例えば、第１のトランザクションがコミットされた後に、プロセッサは、シリアル・アドバンスト・テクノロジー・アタッチメント（英文：Serial  Advanced  Technology  Attachment、略称SATA）インタフェース又はネットワークドライバ（英文：Network  Drivers）のようなインタフェースを使用することにより、第１のトランザクションのトランザクションデータを不揮発性メモリのデータ領域から外部メモリに書き込む。
【００４０】
206.プロセッサは、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更する。
【００４１】
例えば、第１のトランザクションの全てのトランザクションデータを外部メモリに書き込んだ後に、プロセッサは、トランザクション識別子が第１のトランザクションである状態情報を求めて、不揮発性メモリのデータ状態領域を検索し、以下の表３に示すように、第１のトランザクションの状態情報内のトランザクション状態をバックアップ状態に変更する。この場合、第１のトランザクションのトランザクションデータは、外部メモリに成功して書き込まれ、第１のトランザクションが終了する。
【表３】
0006401866.tif 000004
【００４２】
実際の用途を参照した説明は以下の通りである。ユーザは、コンピュータシステム内に新たなファイルAを生成し、ファイルAにおいて書き込み動作を実行する。この場合、プロセッサは、ユーザの書き込み動作命令を受信し、ファイルAを外部メモリのファイルシステムに書き込むトランザクションを処理する必要がある。具体的には、ユーザの書き込み動作を受信した場合、プロセッサは、トランザクション識別子及びアドレスをトランザクションに割り当て、トランザクションの状態情報を不揮発性メモリのデータ状態領域に記録し、状態情報内のトランザクション状態は、未コミット状態である。トランザクションの状態情報を生成した後に、プロセッサは、ファイルAを不揮発性メモリのデータ領域に書き込む。ファイルAを書き込んだ後に、プロセッサは、トランザクションの状態情報内のトランザクション状態をコミット状態に変更する。この場合、トランザクションがコミットされ、すなわち、ユーザの書き込み動作が実現される。この場合、プロセッサがファイルAを読み取る命令を受信した場合、プロセッサは、不揮発性メモリからファイルAを読み取ってもよいが、実際には、ファイルAは外部メモリのファイルシステムに書き込まれず、すなわち、ファイルAは、コンピュータシステムに永久的に記憶されることができない。したがって、トランザクションがコミットされた後に、データ領域内のファイルAは、外部メモリのファイルシステムに書き込まれる。この場合、トランザクションが終了する。
【００４３】
任意選択で、不揮発性メモリの記憶空間を節約するために、トランザクションのトランザクション状態をバックアップ状態に変更した後に、プロセッサは、不揮発性メモリ内のトランザクションのトランザクションデータを削除してもよく、不揮発性メモリ内のトランザクションの状態情報を更に削除してもよい。トランザクションのトランザクションデータ及び状態情報の双方が削除されるとき、プロセッサによりトランザクションのトランザクションデータを削除してトランザクションの状態情報を削除するシーケンスは限定されない。
【００４４】
或いは、不揮発性メモリが比較的十分な記憶空間を有する場合、トランザクションのトランザクション状態をバックアップ状態に変更した後に、プロセッサは、不揮発性メモリ内のトランザクションのトランザクションデータを削除しなくてもよく、これにより、トランザクションのトランザクションデータが後に使用される必要がある場合、トランザクションのトランザクションデータは、外部メモリから読み取られる必要はなく、内部メモリから直接読み取られてもよく、これは、読み取り速度を速める。
【００４５】
本発明のこの実施例では、不揮発性メモリが電源オフされたときにデータが失われないという特徴が使用され、トランザクションのトランザクションデータは、不揮発性メモリに書き込まれた後に外部メモリに直接書き込まれ、トランザクションデータは、ログ領域に書き込まれる必要はない。したがって、トランザクション処理過程が簡略化され、トランザクション処理速度が増加する。さらに、本発明のこの実施例では、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているか否か、或いは全てのトランザクションデータが外部メモリに書き込まれているか否かを識別するために、異なるトランザクション状態が不揮発性メモリ内に更に設定され、これにより、コンピュータシステムは、トランザクション状態に従って現在のトランザクションのトランザクションデータの書き込み状態を決定し得る。したがって、トランザクションの原子性及び一貫性が確保される。
【００４６】
さらに、前に記憶されたデータは、データが不揮発性メモリに書き込まれたときに消去される必要はなく、不揮発性メモリのデータ読み取り／書き込み速度は、一般的なDRAMのものより高い。したがって、不揮発性メモリが、トランザクションデータが書き込まれる内部メモリとして使用される場合、トランザクションデータを読み取る速度又は書き込む速度がかなり増加し、すなわち、トランザクション処理速度が更に増加する。
【００４７】
任意選択で、この出願のトランザクション処理方法では、トランザクション回復が更に実現されてもよく、すなわち、前述のトランザクション処理方法を実行する過程において、コンピュータシステムがリスタートした場合、プロセッサは、不揮発性メモリ内のトランザクションのトランザクション状態に従ってトランザクションを回復してもよい。
【００４８】
具体的には、図３Ａ及び図３Ｂを参照すると、図３Ａ及び図３Ｂは、本発明の実施例による他のトランザクション処理方法のフローチャートである。この実施例では、この方法は、不揮発性メモリを含むコンピュータシステム内に適用され、この方法は、コンピュータシステム内のプロセッサにより実行される。この方法は以下のステップを含む。
【００４９】
301.プロセッサは、トランザクション処理要求を受信し、トランザクション処理要求は、トランザクションのトランザクションデータを搬送する。
【００５０】
302.プロセッサは、トランザクションの状態情報を不揮発性メモリに記録し、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態である。
【００５１】
303.プロセッサは、アドレスに従ってトランザクションデータを不揮発性メモリに書き込む。
【００５２】
304.プロセッサは、コンピュータシステムがリスタートしたか否かを決定し、コンピュータシステムがリスタートした場合、ステップ305を実行し、コンピュータシステムがリスタートしていない場合、ステップ307を実行する。
【００５３】
305.プロセッサは、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態が未コミット状態であると決定する。
【００５４】
例えば、プロセッサが第１のトランザクションのトランザクションデータを不揮発性メモリに書き込むとき、コンピュータシステムが電源異常又はクラッシュの後にリスタートした場合、プロセッサは、不揮発性メモリ内の第１のトランザクションの状態情報に従って、第１のトランザクションのトランザクション状態が未コミット状態であると決定する。不揮発性メモリ内の第１のトランザクションの状態情報は、上記の表１に示されている。
【００５５】
306.プロセッサは、トランザクションのトランザクションデータ及びトランザクションの状態情報を削除する。
【００５６】
例えば、プロセッサは、第１のトランザクションのトランザクション状態が未コミット状態であると決定し、これは、コンピュータシステムがリスタートする前に、第１のトランザクションの全てのトランザクションデータが不揮発性メモリのデータ領域にアップデートされているのではないことを示す。したがって、不揮発性メモリ内の第１のトランザクションのトランザクションデータは、トランザクションの原子性に従って外部メモリにアップデートされることができない。したがって、プロセッサは、不揮発性メモリのデータ領域内の第１のトランザクションの全てのトランザクションデータを削除し、データ状態領域内の第１のトランザクションの状態情報を削除し、すなわち、上記の表１が削除され、これにより、トランザクションロールバックを実現する。
【００５７】
307.プロセッサは、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更する。
【００５８】
308.プロセッサは、コンピュータシステムがリスタートしたか否かを決定し、コンピュータシステムがリスタートした場合、ステップ309を実行し、コンピュータシステムがリスタートしていない場合、ステップ310を実行する。
【００５９】
309.プロセッサは、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態がコミット状態であると決定し、ステップ310を実行する。
【００６０】
例えば、プロセッサが第１のトランザクションのトランザクション状態をコミット状態に変更した後に、コンピュータシステムが電源異常又はクラッシュの後にリスタートした場合、プロセッサは、不揮発性メモリ内の第１のトランザクションの状態情報に従って、第１のトランザクションのトランザクション状態がコミット状態であると決定し、これはまた、コンピュータシステムがリスタートする前に、第１のトランザクションの全てのトランザクションデータが不揮発性メモリのデータ領域にアップデートされていることを示す。不揮発性メモリ内の第１のトランザクションの状態情報は、上記の表２に示されている。したがって、プロセッサは、トランザクションの一貫性に従ってステップ310を実行し、これにより、データ領域内の第１のトランザクションのトランザクションデータを外部メモリに書き込む。
【００６１】
310.プロセッサは、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込む。
【００６２】
311.プロセッサは、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更する。
【００６３】
312.プロセッサは、トランザクションのトランザクションデータを削除する。
【００６４】
プロセッサがトランザクションのトランザクション状態をバックアップ状態に変更した後に、コンピュータシステムがリスタートした場合、プロセッサは、不揮発性メモリ内のトランザクションの状態情報に従って、トランザクションのトランザクション状態がバックアップ状態であると決定し、これはまた、コンピュータシステムがリスタートする前に、トランザクションの全てのトランザクションデータが外部メモリにアップデートされていることを示す。不揮発性メモリ内のトランザクションの状態情報は、上記の表３に示されている。したがって、プロセッサは、トランザクションのトランザクションデータ及び状態情報を削除してもよく、これにより、不揮発性メモリの記憶空間を回収する。
【００６５】
図３Ａ及び図３Ｂに示すフローチャートは、この出願のトランザクション回復過程を説明するためにのみ使用されるが、この出願における方法のステップに対する限定として理解されるべきではない点に留意すべきである。実質的に、プロセッサは、コンピュータシステムがリスタートしたか否かを決定しなくてもよい。プロセッサにより実行される、図３Ａ及び図３Ｂにおいてコンピュータシステムがリスタートしたか否かを決定するステップは、コンピュータシステムの状態の説明を示しているだけであり、すなわち、この場合にコンピュータシステムがリスタートした場合、プロセッサが図３Ａ及び図３Ｂにおける「Yes」に対応するステップを実行し、コンピュータシステムがリスタートしていない場合、プロセッサが図３Ａ及び図３Ｂにおける「No」に対応するステップを実行することを示す。さらに、コンピュータシステムがリスタートしたか否かの状態は、ステップ303又はステップ307の後であることに限定されなくてもよく、プロセッサが図１に示すいずれかのステップを実行する前又は後に、或いは図１に示すいずれかのステップを実行する過程において現れてもよい。しかし、コンピュータシステムがリスタートするステップに拘わらず、この出願におけるプロセッサは、以下の原理に従って対応するトランザクション回復ステップを実行する。トランザクション識別子に従ってトランザクションのトランザクション状態がコミット状態に変更される前に、プロセッサは、コンピュータシステムがリスタートした場合、プロセッサは、トランザクションのトランザクション状態が未コミット状態であると決定し、トランザクション識別子に従ってトランザクションのトランザクション状態がコミット状態に変更された後に、コンピュータシステムがリスタートした場合、プロセッサは、トランザクションのトランザクション状態がコミット状態であると決定し、トランザクション回復ステップ310及び311を実行する。
【００６６】
この実施例では、不揮発性メモリが電源オフされたときにデータが失われないという特徴が使用され、トランザクションデータが不揮発性メモリに記憶され、これにより、コンピュータシステムがトランザクション処理過程においてリスタートした場合、不揮発性メモリ内のトランザクションのトランザクションデータが失われず、トランザクションのトランザクションデータは、不揮発性メモリから直接回復され得る。したがって、トランザクション回復速度が増加する。さらに、トランザクション状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているか否か、且つ全てのトランザクションデータが外部メモリに書き込まれているか否かを識別するために、不揮発性メモリ内に設定される。コンピュータシステムがトランザクション処理過程においてリスタートした場合、トランザクションのトランザクションデータの書き込み状態は、トランザクション状態に従って決定されてもよい。トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているのではない場合、トランザクションのトランザクションデータは、外部メモリに書き込まれず、トランザクションのトランザクションデータは直接削除される。トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、外部メモリに書き込まれていない場合にのみ、トランザクションデータは、外部メモリに書き込まれる。したがって、トランザクションの原子性及び一貫性が確保される。
【００６７】
図４を参照すると、図４は、本発明の実施例によるトランザクション処理装置の概略構成図である。この実施例では、この装置は、不揮発性メモリと外部メモリとを含むコンピュータシステム内に適用される。データ領域及びデータ状態領域は、不揮発性メモリ内に設定されてもよい。データ領域は、トランザクションのトランザクションデータを記憶するために使用され、データ状態領域は、トランザクションの状態情報を記憶するために使用される。この出願では、不揮発性メモリが電源オフされたときにデータが失われないという特徴が使用され、これにより、トランザクションデータ及び状態情報の信頼性が確保される。トランザクション処理装置420は、受信モジュール423と、記録モジュール421と、内部メモリ書き込みモジュール422と、外部メモリ書き込みモジュール424とを含む。
【００６８】
受信モジュール423は、トランザクション処理要求を受信するように構成され、トランザクション処理要求は、トランザクションのトランザクションデータを搬送する。
【００６９】
トランザクション処理要求は、ユーザにより入力されてもよく、或いはプロセッサにより実行される他のプログラム、例えば、ユーザにより入力された書き込み命令によりトリガーされてもよい。
【００７０】
トランザクション処理要求を受信した後に、受信モジュール423は、トランザクション処理要求に従ってトランザクション識別子及びアドレスをトランザクションに更に割り当ててもよい。トランザクション識別子は、異なるトランザクションを区別するために使用される。アドレスは、トランザクションのトランザクションデータが不揮発性メモリに書き込まれるアドレスである。
【００７１】
記録モジュール421は、トランザクションの状態情報を不揮発性メモリに記録するように構成され、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態である。
【００７２】
受信モジュール423が識別子及びアドレスをトランザクションに割り当てた場合、記録モジュール421は、トランザクションのための状態情報を生成する。トランザクションの状態情報は、トランザクション識別子とトランザクション状態とアドレスとを含んでもよい。トランザクション状態は、トランザクションのトランザクションデータの書き込み状態を示すために使用され、主に未コミット状態とコミット状態とバックアップ状態とに分類される。未コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているのではないことを示し、すなわち、未コミット状態は、コンピュータシステムが他のプログラムを実行した場合、或いはコンピュータシステムがリスタートした場合、トランザクションのトランザクションデータが使用されることができないことを示すために使用される。コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、全てのトランザクションデータがコンピュータシステムの外部メモリに書き込まれているのではないことを示し、すなわち、コミット状態は、コンピュータシステムが他のプログラムを実行した場合、或いはコンピュータシステムがリスタートした場合、トランザクションのトランザクションデータが使用されることができることを示すために使用される。バックアップ状態は、トランザクションの全てのトランザクションデータが外部メモリに書き込まれていることを示し、すなわち、バックアップ状態は、コンピュータシステムが他のプログラムを実行した場合、或いはコンピュータシステムがリスタートした場合、すなわち、トランザクションが終了した場合、外部メモリ内のトランザクションのトランザクションデータが使用されることができることを示すために使用される。
【００７３】
例えば、トランザクションのトランザクション識別子が第１のトランザクションであり、第１のトランザクションが４つのトランザクションデータを含む場合、第１のトランザクションの状態情報を記録するために上記の表１がデータ状態領域に生成される。
【００７４】
明らかに、他の実施例では、同じトランザクションの全てのトランザクションデータについて１つのみの状態情報が生成されてもよく、状態情報内のアドレスは、不揮発性メモリ内のトランザクションの全てのトランザクションデータのそれぞれのアドレスである。したがって、トランザクションの状態情報を記録する方式は、この出願では具体的には限定されない。
【００７５】
内部メモリ書き込みモジュール422は、アドレスに従ってトランザクションデータを不揮発性メモリに書き込むように構成される。
【００７６】
例えば、記録モジュール421がトランザクションの状態情報を記録した後に、内部メモリ書き込みモジュール422は、第１のトランザクションの状態情報内のアドレスに従って、トランザクション処理要求で搬送された第１のトランザクションのトランザクションデータを不揮発性メモリのデータ領域に書き込む。
【００７７】
記録モジュール421は、内部メモリ書き込みモジュール422がトランザクションデータを不揮発性メモリに書き込んだ後に、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更するように更に構成される。
【００７８】
例えば、内部メモリ書き込みモジュール422が第１のトランザクションの全てのトランザクションデータを不揮発性メモリのデータ領域に書き込んだ後に、記録モジュール421は、トランザクション識別子が第１のトランザクションである状態情報を求めて、不揮発性メモリのデータ状態領域を検索し、上記の表２に示すように、第１のトランザクションの状態情報内のトランザクション状態をコミット状態に変更する。この場合、第１のトランザクションがコミットされる。
【００７９】
外部メモリ書き込みモジュール424は、記録モジュール421がトランザクションのトランザクション状態をコミット状態に変更した後に、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むように構成される。
【００８０】
例えば、第１のトランザクションがコミットされた後に、外部メモリ書き込みモジュール424は、第１のトランザクションのトランザクションデータを不揮発性メモリのデータ領域から外部メモリに書き込む。
【００８１】
記録モジュール421は、外部メモリ書き込みモジュール424がトランザクションデータをコンピュータシステムの外部メモリに書き込んだ後に、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更するように更に構成される。
【００８２】
例えば、外部メモリ書き込みモジュール424が第１のトランザクションの全てのトランザクションデータを外部メモリに書き込んだ後に、記録モジュール421は、トランザクション識別子が第１のトランザクションである状態情報を求めて、不揮発性メモリのデータ状態領域を検索し、上記の表３に示すように、第１のトランザクションの状態情報内のトランザクション状態をバックアップ状態に変更する。この場合、第１のトランザクションのトランザクションデータは、外部メモリに成功して書き込まれ、第１のトランザクションの処理が終了する。
【００８３】
任意選択で、不揮発性メモリの記憶空間を節約するために、トランザクションのトランザクション状態がバックアップ状態に変更された後に、不揮発性メモリ内のトランザクションのトランザクションデータ及び状態情報は削除されてもよい。トランザクションのトランザクションデータを削除してトランザクションの状態情報を削除するシーケンスは限定されない。或いは、不揮発性メモリが比較的十分な記憶空間を有する場合、トランザクションのトランザクション状態がバックアップ状態に変更された後に、不揮発性メモリ内のトランザクションのトランザクションデータは削除されなくてもよく、これにより、トランザクションのトランザクションデータが後に使用される必要がある場合、トランザクションのトランザクションデータは、外部メモリから読み取られる必要はなく、内部メモリから直接読み取られてもよく、これは、読み取り速度を速める。
【００８４】
任意選択で、この出願のトランザクション処理装置は、トランザクション回復を更に実現してもよく、すなわち、前述のトランザクション処理方法を実行する過程において、コンピュータシステムがリスタートした場合、トランザクション処理装置は、不揮発性メモリ内のトランザクションのトランザクション状態に従ってトランザクションを回復してもよい。
【００８５】
具体的には、図５を参照すると、図５は、本発明の実施例による他のトランザクション処理装置の概略構成図である。この実施例では、前述の実施例におけるトランザクション処理装置420より最適に、トランザクション処理装置520は、状態決定モジュール525と、削除モジュール526とを更に含む。
【００８６】
状態決定モジュール525は、記録モジュール421がトランザクションのトランザクション状態を未コミット状態に変更する前に、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態が未コミット状態であると決定するように構成される。
【００８７】
例えば、内部メモリ書き込みモジュール422が第１のトランザクションのトランザクションデータを不揮発性メモリに書き込むとき、コンピュータシステムが電源異常又はクラッシュの後にリスタートした場合、状態決定モジュール525は、不揮発性メモリ内の第１のトランザクションの状態情報に従って、第１のトランザクションのトランザクション状態が未コミット状態であると決定する。不揮発性メモリ内の第１のトランザクションの状態情報は、上記の表１に示されている。
【００８８】
削除モジュール526は、状態決定モジュール525がトランザクションのトランザクション状態が未コミット状態であると決定した場合、トランザクションのトランザクションデータ及びトランザクションの状態情報を削除するように構成される。
【００８９】
例えば、削除モジュール526は、不揮発性メモリのデータ領域内の第１のトランザクションの全てのトランザクションデータを削除し、不揮発性メモリのデータ状態領域内の第１のトランザクションの状態情報を削除し、すなわち、上記の表１が削除され、これにより、トランザクションロールバックを実現する。
【００９０】
任意選択で、状態決定モジュール525は、記録モジュール421がトランザクションのトランザクション状態をコミット状態に変更した後に、コンピュータシステムがリスタートした場合、不揮発性メモリに記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態がコミット状態であると決定し、トランザクションデータを不揮発性メモリからコンピュータシステムの外部メモリに書き込むように外部メモリ書き込みモジュール424をトリガーするように更に構成される。
【００９１】
例えば、記録モジュール421が第１のトランザクションのトランザクション状態をコミット状態に変更した後に、コンピュータシステムが電源異常又はクラッシュの後にリスタートした場合、状態決定モジュール525は、不揮発性メモリ内の第１のトランザクションの状態情報に従って、第１のトランザクションのトランザクション状態がコミット状態であると決定し、不揮発性メモリ内の第１のトランザクションのトランザクションデータを外部メモリに書き込む。不揮発性メモリ内の第１のトランザクションの状態情報は、上記の表２に示されている。
【００９２】
任意選択で、不揮発性メモリの記憶空間を節約するために、記録モジュール421がトランザクションのトランザクション状態をバックアップ状態に変更した後に、削除モジュール526は、トランザクションのトランザクションデータを削除するように更に構成され、これにより、不揮発性メモリの記憶空間を回収する。
【００９３】
他の実施例では、不揮発性メモリが比較的十分な記憶空間を有する場合、トランザクション処理装置520は、トランザクションのトランザクション状態がバックアップ状態に変更された後に何も動作を実行しないことが理解され得る。
【００９４】
この出願は、コンピュータシステムを更に提供する。図１を参照すると、図１は、この出願におけるコンピュータシステムの実施例の概略構成図である。この実施例では、コンピュータシステム100は、プロセッサ110と、不揮発性メモリ120と、外部メモリ130とを含む。プロセッサ110は、DIMMインタフェース又はPCIeインタフェースのようなインタフェースを使用することにより、不揮発性メモリ120に接続されてもよく、不揮発性メモリ120は、SATAインタフェース又はネットワークドライブのようなインタフェースを使用することにより、外部メモリ130に接続されてもよい。
【００９５】
不揮発性メモリ120及び外部メモリ130の双方は、データを記憶するように構成される。具体的には、不揮発性メモリ120は、プロセッサ110により処理されるトランザクションのトランザクションデータ及び状態情報のようなプロセッサ110の処理データを一時的に記憶するように構成される。外部メモリ130は、プロセッサ110により処理されるトランザクションデータのようなコンピュータシステムのデータを永久的に記憶するように構成される。
【００９６】
プロセッサ110は、中央処理装置（Central  Processing  Unit、CPU）と呼ばれてもよく、トランザクション処理要求を受信するように構成され、トランザクション処理要求は、トランザクションのトランザクションデータを搬送し、トランザクションの状態情報を不揮発性メモリ120に記録するように構成され、トランザクションの状態情報は、トランザクション状態と、トランザクション処理要求に従ってトランザクションに割り当てられたトランザクション識別子及びアドレスとを含み、トランザクション状態は未コミット状態であり、未コミット状態は、全てのトランザクションデータが不揮発性メモリ120に書き込まれているのではないことを示し、アドレスに従ってトランザクションデータを不揮発性メモリ120に書き込み、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更するように構成され、コミット状態は、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているが、全てのトランザクションデータがコンピュータシステムの外部メモリ130に書き込まれているのではないことを示し、トランザクションデータを不揮発性メモリ120からコンピュータシステムの外部メモリ130に書き込み、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更するように構成され、バックアップ状態は、トランザクションの全てのトランザクションデータがコンピュータシステムの外部メモリ130に書き込まれていることを示す。
【００９７】
任意選択で、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更する前に、プロセッサ110は、コンピュータシステムがリスタートした場合、不揮発性メモリ120に記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態が未コミット状態であると決定し、トランザクションのトランザクションデータ及び状態情報を削除するように更に構成される。
【００９８】
任意選択で、トランザクション識別子に従ってトランザクションのトランザクション状態をコミット状態に変更した後に、プロセッサ110は、コンピュータシステムがリスタートした場合、不揮発性メモリ120に記録されたトランザクションの状態情報に従って、トランザクションのトランザクション状態がコミット状態であると決定し、トランザクションデータを不揮発性メモリ120からコンピュータシステムの外部メモリ130に書き込むように更に構成される。
【００９９】
任意選択で、トランザクション識別子に従ってトランザクションのトランザクション状態をバックアップ状態に変更した後に、プロセッサ110は、トランザクションのトランザクションデータを削除するように更に構成される。
【０１００】
任意選択で、不揮発性メモリ120は、データ領域121とデータ状態領域122とを含んでもよい。データ領域は、トランザクションのトランザクションデータを記憶するために使用され、データ状態領域は、トランザクションの状態情報を記憶するために使用される。
【０１０１】
本発明のこの実施例では、プロセッサ110は、集積回路チップでもよく、信号処理能力を有する。実現過程において、前述の方法におけるステップは、プロセッサ110内のハードウェアの集積論理回路又はソフトウェアの形式の命令を用いることによって完了してもよい。前述のプロセッサ110は、汎用プロセッサ、デジタルシグナルプロセッサ（digital  signal  processor、DSP）、特定用途向け集積回路（application-specific  integrated  circuit、ASIC）、フィールドプログラマブルゲートアレイ（field  programmable  gate  array、FPGA）若しくは他のプログラム可能論理コンポーネント、別個のゲート若しくはトランジスタ論理コンポーネント、又は別個のハードウェアコンポーネントでもよく、本発明の実施例に開示された方法、ステップ及び論理ブロック図を実現又は実行してもよい。汎用プロセッサはマイクロプロセッサでもよく、或いはプロセッサはいずれか従来のプロセッサ等でもよい。本発明の実施例を参照して開示された方法のステップは、ハードウェア復号プロセッサにより直接実行及び完了されてもよく、或いは復号プロセッサ内のハードウェアとソフトウェアとの組み合わせを使用することにより実行及び完了されてもよい。ソフトウェアモジュールは、ランダムアクセスメモリ、フラッシュメモリ、読み取り専用メモリ、プログラム可能読み取り専用メモリ、電気的消去可能プログラム可能メモリ又はレジスタのような当該分野において成熟した記憶媒体に位置してもよい。記憶媒体は、外部メモリ130に位置する。プロセッサ110は、外部メモリ130内の情報を読み取り、プロセッサのハードウェアと組み合わせて前述の方法におけるステップを完了する。
【０１０２】
前述の解決策では、不揮発性メモリが電源オフされたときにデータが失われないという特徴が使用され、トランザクションのトランザクションデータは、不揮発性メモリに書き込まれた後に外部メモリに直接書き込まれ、トランザクションデータは、ログ領域に書き込まれる必要はない。したがって、トランザクション処理過程が簡略化され、トランザクション処理速度が増加する。さらに、本発明の実施例では、トランザクションの全てのトランザクションデータが不揮発性メモリに書き込まれているか否か、或いは全てのトランザクションデータが外部メモリに書き込まれているか否かを識別するために、異なるトランザクション状態が不揮発性メモリ内に更に設定され、これにより、コンピュータシステムは、トランザクション状態に従って現在のトランザクションのトランザクションデータの書き込み状態を決定し得る。したがって、トランザクションの原子性及び一貫性が確保される。
【０１０３】
この出願で提供される複数の実施例において、開示のシステム、装置及び方法は、他の方式で実現されてもよいことが理解されるべきである。例えば、記載の装置の実施例は、単なる例である。例えば、モジュール又はユニットの分割は、単に論理的な機能分割であり、実際の実現では他の分割でもよい。例えば、複数のユニット又はコンポーネントは、他のシステムに結合又は統合されてもよく、或いはいくつかの機能は無視されてもよく、或いは実行されなくてもよい。さらに、表示又は議論された相互結合若しくは直接結合又は通信接続は、いくつかのインタフェースを使用することにより実現されてもよい。装置又はユニットの間の間接結合又は通信接続は、電子的、機械的又は他の形式で実現されてもよい。
【０１０４】
別々の部分として記載したユニットは、物理的に別々でもよく或いは別々でなくてもよく、ユニットとして表示された部分は、物理的なユニットでもよく或いは物理的なユニットでなくてもよく、１つの位置に位置してもよく、或いは複数のネットワークユニット上に割り当てられたものでもよい。ユニットの一部又は全部は、実施例の解決策の目的を達成するために、実際のニーズに従って選択されてもよい。
【０１０５】
さらに、この出願の実施例における機能ユニットは、１つの処理ユニットに統合されてもよく、或いはユニットのそれぞれが物理的に単独で存在してもよく、或いは２つ以上のユニットが１つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形式で実現されてもよく、或いはソフトウェア機能ユニットの形式で実現されてもよい。
【０１０６】
統合されたユニットがソフトウェア機能ユニットの形式で実現され、独立したプロダクトとして販売又は使用される場合、統合されたユニットは、コンピュータ読み取り可能記憶媒体に記憶されてもよい。このような理解に基づいて、この出願の技術的解決策は、本質的に、或いは、従来技術に寄与する部分又は技術的解決策の全部若しくは一部は、ソフトウェアプロダクトの形式で実現されてもよい。ソフトウェアプロダクトは、記憶媒体に記憶され、コンピュータデバイス（パーソナルコンピュータ、サーバ又はネットワークデバイスでもよい）又はプロセッサ（processor）に対してこの出願の実施例に記載の方法のステップの全部又は一部を実行するように命令するための複数の命令を含む。前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、読み取り専用メモリ（Read-Only  Memory、ROM）、ランダムアクセスメモリ（Random  Access  Memory、RAM）、磁気ディスク又は光ディスクのようなプログラムコードを記憶することができるいずれかの媒体を含む。
【図１】
0006401866.tif 000005
【図２】
0006401866.tif 000006
【図３Ａ】
0006401866.tif 000007
【図３Ｂ】
0006401866.tif 000008
【図４】
0006401866.tif 000009
【図５】
0006401866.tif 000010