"トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する代表キー決定部と、前記整合性を保持する対象であることを識別するための整合対象情報を、前記レコード群の各レコードに対応するログのうち、前記代表キーに対応する代表ログ以外のログである従属ログに付加して更新するログ編集部と、前記レコード群の各レコードに対する更新情報を、前記代表ログに書き込んで更新するログ更新部と、前記代表ログに書き込まれた前記更新情報を、前記レコード群の各レコードに反映させて更新するレコード更新部と、を備えることを特徴とするトランザクション処理装置。前記整合対象情報は、トランザクション処理中であることを識別するための処理中識別情報であり、前記ログ編集部は、前記処理中識別情報を前記代表ログに付加して更新する、ことを特徴とする請求項1記載のトランザクション処理装置。前記整合対象情報は、前記代表キーを特定するための代表キー識別情報であり、前記ログ更新部は、前記代表キー決定部により前記代表キーが決定された場合に、前記代表ログに前記従属ログの内容を書き加えて更新する、ことを特徴とする請求項1記載のトランザクション処理装置。前記代表キー決定部は、決定した前記代表ログに対して既に前記代表キー識別情報が付加されている場合には、既に付加されている前記代表キー識別情報で特定されるキーを、前記代表キーに決定し直す、ことを特徴とする請求項3記載のトランザクション処理装置。前記ログ更新部は、前記従属ログに対して既に前記代表キー識別情報が付加されている場合には、既に付加されている前記代表キー識別情報に対応するログの内容を前記従属ログの内容として、前記代表ログに書き加えて更新する、ことを特徴とする請求項3または4記載のトランザクション処理装置。前記ログおよび前記レコードは、物理的に複数の記憶領域から構成されるKVSKeyValueStoreに格納される、ことを特徴とする請求項1~5のいずれか1項に記載のトランザクション処理装置。前記ログ編集部、前記ログ更新部および前記レコード更新部は、CASCompareandSwap命令を用いて前記KVSの前記ログを更新する、ことを特徴とする請求項6記載のトランザクション処理装置。トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する代表キー決定ステップと、前記整合性を保持する対象であることを識別するための整合対象情報を、前記レコード群の各レコードに対応するログのうち、前記代表キーに対応する代表ログ以外のログである従属ログに付加して更新するログ編集ステップと、前記レコード群の各レコードに対する更新情報を、前記代表ログに書き込んで更新するログ更新ステップと、前記代表ログに書き込まれた前記更新情報を、前記レコード群の各レコードに反映させて更新するレコード更新ステップと、を含むことを特徴とするトランザクション処理方法。請求項8に記載の各ステップをコンピュータに実行させるためのトランザクション処理プログラム。ところで、KVSでは、単一のレコードに対するデータ操作についてはアトミック性がサポートされている。したがって、KVSを用いてトランザクション処理を実行する場合に、アトミック性を担保しようとすると、単一のレコードごとにトランザクション処理を実行することになるため、処理効率が低下してしまう。また、上記非特許文献1には、複数のレコード群に対するアクセス権を管理する方法が開示されているが、この方法では、管理ノードをさらに設けなければならない上、トランザクション処理を行う前段階の処理として、アクセス権を管理ノードに集約するための処理を管理ノードと他のノードとの間で行う必要があり、構成が複雑になる。本発明は、上述した課題を解決するためになされたものであり、キーと値とのペアで構成されるレコードを管理する環境下でトランザクション処理を実行する場合であっても、簡易な構成で、複数のレコードに対するトランザクション処理を行うことができるトランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラムを提供することを目的の一例とする。本発明の一側面であるトランザクション処理装置は、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する代表キー決定部と、前記整合性を保持する対象であることを識別するための整合対象情報を、前記レコード群の各レコードに対応するログのうち、前記代表キーに対応する代表ログ以外のログである従属ログに付加して更新するログ編集部と、前記レコード群の各レコードに対する更新情報を、前記代表ログに書き込んで更新するログ更新部と、前記代表ログに書き込まれた前記更新情報を、前記レコード群の各レコードに反映させて更新するレコード更新部と、を備える。本発明の一側面であるトランザクション処理方法は、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する代表キー決定ステップと、前記整合性を保持する対象であることを識別するための整合対象情報を、前記レコード群の各レコードに対応するログのうち、前記代表キーに対応する代表ログ以外のログである従属ログに付加して更新するログ編集ステップと、前記レコード群の各レコードに対する更新情報を、前記代表ログに書き込んで更新するログ更新ステップと、前記代表ログに書き込まれた前記更新情報を、前記レコード群の各レコードに反映させて更新するレコード更新ステップと、を含む。本発明の一側面であるトランザクション処理プログラムは、上記トランザクション処理方法に含まれる各ステップをコンピュータに実行させる。本発明によれば、キーと値とのペアで構成されるレコードを管理する環境下でトランザクション処理を実行する場合であっても、簡易な構成で、複数のレコードに対するトランザクション処理を行うことができる。以下、添付図面を参照して、本発明に係るトランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラムの好適な実施形態について説明する。実施形態を説明する前に、WALWriteAheadLoggingについて説明する。WALは、一般的なリレーショナルデータベースシステムにおけるトランザクション処理手法の一つであり、データベースに対してデータを変更する前に、変更内容をログトランザクションログに書き出す手法である。WALは、アトミック性を確保して実行され、ログを永続的な記憶装置に書き込むという特徴を有する。このようなWALをトランザクション処理に採用することで、トランザクションのACIDAtomicityConsistencyIsolationDurability特性のうち、AAtomicityとDDurabilityとを実現できる。WALを採用するトランザクション処理では、2種類のデータを更新することになる。一つはログの更新であり、もう一つは実データの更新である。これら2種類のデータは、永続的な記憶装置に書き込まれるタイミングが異なる。ログは、トランザクションのコミット時に書き込まれ、実データは、チェックポイント時に書き込まれる。実データをチェックポイント時に書き込むことで、永続的な記憶装置として一般的に用いられる低速なハードディスクへのアクセス回数を減らすことができる。本願発明は、このようなWALを、KVSを用いてトランザクション処理を行う環境に採用し、以下に記載する各種の仕組みを加えることで、複数のレコードに対するトランザクション処理を可能とした。以下に、このような特徴を有する本願発明の実施形態について説明する。第1実施形態まず、図1を参照して、第1実施形態におけるトランザクション処理装置の機能構成について説明する。トランザクション処理装置10は、機能的には、例えば、トランザクション処理部11と、レコード更新部12とを有する。KVS20は、単一レコードに対する操作のアトミック性と、単一レコードに対するCASCompareandSwap命令とを備えるデータベースである。KVS20は、キーと値とのペアで構成されるレコードを管理し、複数のサーバ装置に分散して構築される。本実施形態におけるログは、実際のレコードと同様に、キーと値とのペアで構成される。ログは、各レコードの最新の内容を保持し、実際のレコードとは別にKVS20に格納される。例えば、KVS20に、レコードとして、key,value=key1,10が格納されており、このレコードに対応するログとして、key,value=WALkey1,20が格納されている場合には、key1の最新の内容は、20となる。ログのキーkeyには、例えば、WALのログであることを示す識別子WALに、そのログに対応するレコードのキーkey1の属性値を付加したデータが格納される。ログの値valueには、例えば、そのログに対応するレコードの値と、versionとが格納される。versionには、現在のログのバージョンを示す値が格納される。ログを新たに生成したときには、versionに1が格納され、ログを更新したときには、versionに格納されている値がインクリメントされる。また、ログが後述する従属ログである場合には、ログの値valueに、後述する処理中識別情報がさらに格納される。KVS20は、複数のサーバ装置に分散して構築されるが、一つのログは、その内容が複数のサーバ装置に分散して格納されるのではなく、いずれか一つのサーバ装置にまとめて格納される。つまり、一つのログは、その内容の全てが物理的に同一の記憶領域内にまとめて格納される。ここで、トランザクション処理装置10は、物理的には、例えば、CPUCentralProcessingUnitと、記憶装置と、入出力インターフェースとを含んで構成される。記憶装置には、例えば、CPUで処理されるプログラムおよびデータを記憶するROMReadOnlyMemoryやHDDHardDiskDrive、主として制御処理のための各種作業領域として使用されるRAMRandomAccessMemory等が含まれる。これらの要素は、互いにバスを介して接続されている。CPUが、ROMに記憶されたプログラムを実行し、入出力インターフェースを介して受信される命令や、RAMに展開されるデータを処理することで、トランザクション処理装置10における各部の機能を実現することができる。図1に示すトランザクション処理部11は、アプリケーションから受信する処理要求にしたがって処理を実行する。処理要求には、例えば、クエリが含まれる。トランザクション処理部11は、代表キー決定部111と、ログ編集部112と、ログ更新部113とを含む。代表キー決定部111は、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する。代表キーを決定する方法として、例えば、最初に指定したキーを代表キーに決定する方法や、辞書的に最も若いキーを代表キーに決定する方法、ランダムに選択したキーを代表キーに決定する方法等を採用することができる。代表キー決定部111は、代表キーのレコードに対応するログを代表ログとする。代表キー決定部111は、上記レコード群の各レコードに対応するログのうち、代表ログ以外のログを従属ログとする。ログ編集部112は、代表ログおよび従属ログをKVS20から取得する。ログ編集部112は、トランザクション処理中であることを識別するための処理中識別情報を、KVS20から取得した従属ログに付加し、CAS命令を用いてKVS20の従属ログを更新する。なお、従属ログに付加する情報は、処理中識別情報には限定されず、整合性を保持する対象であることを識別するための情報整合対象情報であればよい。ここで、CAS命令によるログの更新は、例えば以下の手順で実行することができる。最初に、KVS20からログを取得した時に、ログのversionの値を一時的に記憶する。続いて、KVS20のログを更新する時に、KVS20に記憶されているログのversionの値と、上記一時的に記憶したversionの値とを比較する。続いて、比較したversionの値が同じである場合に、KVS20のログを更新し、ログの更新を成功とする。一方、比較したversionの値が異なる場合には、KVS20のログを更新せずに、ログの更新を失敗とする。ログを更新する際にCAS命令を用いることで、以下の理由により、ログデータの一貫性を保持することができる。まず、比較したversionの値が同じである場合には、他のトランザクションがKVS20のログを更新していないことを意味する。したがって、この場合には、KVS20のログを更新してもデータの一貫性が保持されることになる。一方、比較したversionの値が異なる場合には、そのトランザクションが処理をしている間に他のトランザクションがKVS20のログを更新したことを意味する。したがって、この場合には、KVS20のログの更新を中止することでデータの一貫性が保持されることになる。ログ編集部112は、KVS20からログを取得する際に、ログが存在しない場合には、以下のように処理する。最初に、トランザクションの対象となるレコードを、get命令を用いてKVS20から取得する。続いて、create命令を用いてKVS20にログを生成する。続いて、上記取得したレコードの複製を、上記生成したログに、set命令またはCAS命令を用いて格納する。なお、ログをKVS20に生成するタイミングは、任意に設定することができる。例えば、KVS20にレコードを生成する際に、そのレコードのログをKVS20に生成することとしてもよい。ログをKVS20に生成する際には、set命令またはCAS命令を用いることができる。ログ更新部113は、KVS20から取得した代表ログおよび従属ログに含まれるデータ各レコードの値をクエリに応じて更新updateし、その更新後の内容を代表ログに書き込む。ログ更新部113は、代表ログに書き込んだ更新後の内容で、KVS20の代表ログを更新する。KVS20の代表ログを更新する際には、CAS命令を用いる。レコード更新部12は、トランザクション処理が終了した後に、KVS20から代表ログを取得し、代表ログに書き込まれた更新情報に基づいて、レコード群に含まれるKVS20の各レコードを更新する。レコード更新部12は、KVS20の各ログの内容を、更新後の最新の各レコードの内容で書き換え更新する。KVS20の各ログを書き換え更新する際には、CAS命令を用いる。各ログを書き換え更新することで、各ログから処理中識別情報を削除することができる。なお、各ログから処理中識別情報を削除する方法は、CAS命令を用いてKVS20のログを更新することには限定されず、例えば、delete命令を用いてログをKVS20から削除することとしてもよい。また、レコード更新部12による更新処理は、トランザクションが終了した後の任意のタイミングで実行することができる。次に、図2および図3を参照して、第1実施形態におけるトランザクション処理装置10の動作について説明する。本動作例では、アプリケーションがRecord1およびRecord2に整合性を要求する場合について説明する。また、Record1およびRecord2に対応するログを、それぞれログ1およびログ2とする。また、Record1およびRecord2のキーをそれぞれ、key1およびkey2とする。最初に、アプリケーションが、トランザクション処理部11に、begin命令を送信する図3ステップS201と、トランザクション処理部11は、トランザクション開始処理を実行する図2ステップS101。ここで、図4図3も適宜参照を参照して、上記ステップS101で実行されるトランザクション開始処理の内容を詳細に説明する。最初に、トランザクション処理部11の代表キー決定部111は、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーの中から、代表キーを決定する図4ステップS301。ここでは、key1が代表キーに決定されたこととする。続いて、トランザクション処理部11のログ編集部112は、代表ログを取得するためのget命令をKVS20に送信し図3ステップS202、代表ログであるログ1をKVS20から取得する図4ステップS302。続いて、トランザクション処理部11のログ編集部112は、取得した代表ログがロック中であるか否かを判定する図4ステップS303。ログがロック中であるか否かは、ログに処理中識別情報が書き込まれているか否かで判定する。つまり、ログに処理中識別情報が書き込まれている場合には、ロック中であり、ログに処理中識別情報が書き込まれていない場合には、ロック中ではないと判定する。代表ログに処理中識別情報が書き込まれている場合としては、その代表ログが既に他のレコード群の従属ログになっている場合等が該当する。上記ステップS303の判定で代表ログがロック中であると判定された場合ステップS303;YESに、トランザクション処理部11は、トランザクション開始処理の失敗を通知し図4ステップS310、トランザクション開始処理を終了する。なお、この場合、トランザクション開始処理を終了させずに、所定時間待機した後に、上記ステップS302に処理を移行し、KVS20から代表ログを取得するステップから再開してもよい。一方、上記ステップS303の判定で代表ログがロック中ではないと判定された場合ステップS303;NOに、トランザクション処理部11のログ編集部112は、未取得の従属ログが存在するか否かを判定する図4ステップS304。この判定がNOである場合ステップS304;NOに、トランザクション処理部11は、トランザクション開始処理の成功を通知し図4ステップS311、トランザクション開始処理を終了する。一方、上記ステップS304の判定で未取得の従属ログが存在すると判定された場合ステップS304;YESに、トランザクション処理部11のログ編集部112は、従属ログを取得するためのget命令をKVS20に送信し図3ステップS203、従属ログであるログ2をKVS20から取得する図4ステップS305。続いて、トランザクション処理部11のログ編集部112は、取得した従属ログがロック中であるか否かを判定する図4ステップS306。この判定がYESである場合ステップS306;YESには、処理を後述するステップS309に移行する。一方、上記ステップS306の判定で従属ログがロック中ではないと判定された場合ステップS306;NOに、トランザクション処理部11のログ編集部112は、取得した従属ログに処理中識別情報を付加し、CAS命令を用いてKVS20の従属ログを更新する図4ステップS307、図3ステップS204。続いて、トランザクション処理部11のログ編集部112は、上記ステップS307の更新が成功したか否かを判定する図4ステップS308。この判定がYESである場合ステップS308;YESには、処理を上述したステップS304に移行する。一方、上記ステップS308の判定で更新が失敗したと判定された場合ステップS308;NOに、トランザクション処理部11のログ編集部112は、上記ステップS307で既に更新した従属ログがあれば、その従属ログを元の状態に戻し図4ステップS309、トランザクション開始処理の失敗を通知する図4ステップS310。そして、トランザクション開始処理を終了する。図4の説明から図2および図3の説明に戻る。図2のステップS101でのトランザクション開始処理が終了すると、アプリケーションは、トランザクション開始処理が成功したか否かを判定する図2ステップS102。この判定がNOである場合ステップS102;NOには、本動作を終了する。一方、上記ステップS102の判定でトランザクション開始処理が成功したと判定された場合ステップS102;YESに、トランザクション処理部11のログ更新部113は、KVS20から取得した各ログに含まれるデータをクエリに応じて更新し、その更新後の内容を代表ログに書き込む図2ステップS103。続いて、アプリケーションおよびトランザクション処理部11は、コミット処理を実行する図2ステップS104。コミット処理は、例えば以下の手順で行う図3参照。最初に、アプリケーションは、更新を確定するために、commit命令をトランザクション処理部11に送信する図3ステップS206。続いて、トランザクション処理部11のログ更新部113は、CAS命令を用いて代表ログであるKVS20のログ1を更新する図3ステップS207。CAS命令が成功すると、トランザクション処理部11のログ更新部113は、更新が成功したことを示す応答をアプリケーションに送信する図3ステップS208。なお、CAS命令が失敗した場合には、ログ1が他のトランザクションによって書き換えられていたことを意味するため、トランザクション処理部11のログ更新部113は、更新が失敗したことを示す応答をアプリケーションに送信する。図2の説明に戻る。上記ステップS104のコミット処理に続いて、アプリケーションおよびトランザクション処理部11は、トランザクション終了処理を実行し図2ステップS105、本動作を終了する。トランザクション終了処理は、例えば以下の手順で行う図3参照。最初に、アプリケーションは、トランザクション処理を終了するために、end命令をトランザクション処理部11に送信する図3ステップS209。続いて、トランザクション処理部11は、代表ログの内容を各レコードに反映させるために、reflect命令をレコード更新部12に送信する図3ステップS210。続いて、レコード更新部12は、get命令をKVS20に送信し図3ステップS211、KVS20からログ1を取得する。続いて、レコード更新部12は、Record1を更新するために、set命令をKVS20に送信し図3ステップS212、Record2を更新するために、set命令をKVS20に送信する図3ステップS213。続いて、レコード更新部12は、更新後のRecord1の内容でログ1を書き換えるために、CAS命令を用いてKVS20のログ1を更新する図3ステップS214。続いて、レコード更新部12は、更新後のRecord2の内容でログ2を書き換えるために、CAS命令を用いてKVS20のログ2を更新する図3ステップS215。上述したように、第1実施形態におけるトランザクション処理装置10によれば、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーから代表キーを決定することができ、代表キーに対応する代表ログ以外の従属ログに対して、CAS命令を用いて処理中識別情報を付加することができる。これにより、他のトランザクションによる従属ログへのアクセスを制限することが可能となる。また、第1実施形態におけるトランザクション処理装置10によれば、レコード群の各レコードに対する更新情報を、KVS20の代表ログにCAS命令を用いて書き込むことができ、代表ログに書き込んだ更新情報を、KVS20にあるレコード群の各レコードにCAS命令を用いて書き込むことができる。これにより、レコード群の各レコードに対する更新情報を、単一の代表ログで管理して各レコードに反映することができるため、複数のレコードに対して整合性を保持したままデータ更新することが可能となる。それゆえに、第1実施形態におけるトランザクション処理装置10によれば、KVSを用いてトランザクション処理を実行する場合であっても、簡易な構成で、複数のレコードに対するトランザクション処理を行うことができる。第1実施形態の変形例なお、上述した第1実施形態におけるトランザクション処理装置10では、従属ログに処理中識別情報を付加して他のトランザクション処理を排他している悲観的並行性制御が、代表ログには処理中識別情報を付加せず、他のトランザクション処理を排他していない楽観的並行性制御。したがって、例えば、図3のステップS207のCAS命令が失敗する可能性がある。そこで、代表ログにも処理中識別情報を付加して他のトランザクション処理を排他することとしてもよい。この変形例におけるトランザクション処理装置10の動作について、図5および図6を参照して説明する。図5は、上述した図3に対応するシーケンスチャートである。図5が図3と異なるのは、図3のステップS202とステップS203との間に、ステップS401が追加されている点である。図6は、上述した図4に対応するフローチャートである。図6が図4と異なるのは、図4のステップS303とステップS304との間に、ステップS501およびステップS502が追加されている点である。以下においては、上述した第1実施形態と相違する点について説明する。図6に示すトランザクション開始処理におけるステップS303の判定で代表ログがロック中ではないと判定された場合ステップS303;NOに、トランザクション処理部11のログ編集部112は、取得した代表ログに処理中識別情報を付加し、CAS命令を用いてKVS20の代表ログを更新する図6ステップS501、図5ステップS401。続いて、トランザクション処理部11のログ編集部112は、上記ステップS501の更新が成功したか否かを判定する図6ステップS502。この判定がYESである場合ステップS502;YESには、処理を上述したステップS304に移行する。一方、上記ステップS502の判定で更新が失敗したと判定された場合ステップS502;NOに、トランザクション処理部11のログ編集部112は、トランザクション開始処理の失敗を通知する図6ステップS310。そして、トランザクション開始処理を終了する。この変形例によれば、代表ログに対してもトランザクション処理中であることを識別するための処理中識別情報を、CAS命令を用いて付加することができる。これにより、他のトランザクションによる代表ログおよび従属ログへのアクセスを制限することが可能となる。第2実施形態本発明の第2実施形態について説明する。第2実施形態におけるトランザクション処理装置10の構成は、図1に示す第1実施形態におけるトランザクション処理装置10の構成と同様である。上述した第1実施形態におけるトランザクション処理装置10は、トランザクション処理中の従属ログに処理中識別情報を付加して、他のトランザクション処理を排他する悲観的並行性制御を採用している。これに対して、第2実施形態におけるトランザクション処理装置10は、楽観的並行性制御を採用する点で、第1実施形態におけるトランザクション処理装置10と相違する。具体的に、第2実施形態では、トランザクション処理中の従属ログに代表キーを特定するための代表キー識別情報を付加して、他のトランザクションがログをたどって処理を継続できるようにし、先にコミット処理を完了させたトランザクションの結果がKVS20に反映され、後からコミット処理を行ったトランザクションが失敗するという楽観的並行性制御を採用している。これに伴い、トランザクション処理部11に含まれる代表キー決定部111、ログ編集部112、およびログ更新部113の機能の一部が相違する。以下においては、第1実施形態との相違点に主眼を置いて説明する。図2および図7を参照して、第2実施形態におけるトランザクション処理装置10の動作について説明する。本動作例では、上述した第1実施形態の動作例と同様に、アプリケーションがRecord1およびRecord2に整合性を要求する場合について説明する。また、Record1およびRecord2に対応するログを、それぞれログ1およびログ2とする。また、Record1およびRecord2のキーをそれぞれ、key1およびkey2とする。図7は、上述した第1実施形態における図3に対応するシーケンスチャートである。図7が図3と異なるのは、図3のステップS204に替えて、ステップS601およびステップS602が追加されている点である。第2実施形態のトランザクション処理装置10では、図2に示す各処理のうち、ステップS101におけるトランザクション開始処理の内容が、上述した第1実施形態のトランザクション処理装置10と相違する。したがって、以下においては、第2実施形態のトランザクション開始処理について、図8および図9を参照して説明する。最初に、トランザクション処理部11の代表キー決定部111は、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーの中から、代表キーを決定する図8ステップS701。ここでは、key1が代表キーに決定されたこととする。続いて、トランザクション処理部11のログ編集部112は、代表ログを取得するためのget命令をKVS20に送信し図7ステップS202、代表ログであるログ1をKVS20から取得する図8テップS702。続いて、トランザクション処理部11のログ編集部112は、取得した代表ログに、既に代表キー識別情報が書き込まれているか否かを判定する図8ステップS703。代表ログに代表キー識別情報が書き込まれている場合としては、その代表ログが既に他のレコード群の従属ログになっている場合等が該当する。上記ステップS703の判定で代表ログに代表キー識別情報が書き込まれていると判定された場合ステップS703;YESには、処理を上記ステップS701に移行する。そして、トランザクション処理部11の代表キー決定部111は、書き込まれている代表キー識別情報に対応する代表キーを、新たな代表キーとして決定し直す。この代表キーをたどる処理は、取得した代表ログに代表キー識別情報が書き込まれている間、繰り返される。これにより、最上位の代表キーを代表キーとして選定することができる。一方、上記ステップS703の判定で代表ログに代表キー識別情報が書き込まれていないと判定された場合ステップS703;NOに、トランザクション処理部11のログ編集部112は、未取得の従属ログが存在するか否かを判定する図8ステップS704。この判定がYESである場合ステップS704;YESに、トランザクション処理部11のログ編集部112は、従属ログを取得するためのget命令をKVS20に送信し図7ステップS203、従属ログであるログ2をKVS20から取得する図8ステップS705。続いて、トランザクション処理部11のログ編集部112は、取得した従属ログに、既に代表キー識別情報が書き込まれているか否かを判定する図8ステップS706。従属ログに代表キー識別情報が書き込まれている場合としては、その従属ログが既に他のレコード群の従属ログになっている場合等が該当する。上記ステップS706の判定で従属ログに代表キー識別情報が書き込まれていると判定された場合ステップS706;YESに、トランザクション処理部11のログ編集部112は、書き込まれている代表キー識別情報に対応する代表ログを、上記ステップS705または前回のステップS708で取得した従属ログに代替させる従属ログとしてKVS20から取得する図8ステップS708。そして、処理を上述したステップS706に移行する。一方、上記ステップS706の判定で従属ログに代表キー識別情報が書き込まれていないと判定された場合ステップS706;NOに、トランザクション処理部11のログ編集部112は、上記ステップS705またはステップS708で取得した従属ログの内容を、上記ステップS702で取得した代表ログに付加して書き込むステップS707。そして、処理を上述したステップS704に移行する。一方、上記ステップS704の判定で未取得の従属ログが存在しないと判定された場合ステップS704;YESに、トランザクション処理部11のログ編集部112は、CAS命令を用いてKVS20の代表ログを更新する図9ステップS709、図7ステップS601。続いて、トランザクション処理部11のログ編集部112は、上記ステップS709の更新が成功したか否かを判定する図9ステップS710。この判定がNOである場合ステップS710;NOに、トランザクション処理部11は、トランザクション開始処理の失敗を通知し図9ステップS715、トランザクション開始処理を終了する。一方、上記ステップS710の判定で更新が成功したと判定された場合ステップS710;YESに、トランザクション処理部11のログ編集部112は、未更新の従属ログが存在するか否かを判定する図9ステップS711。この判定がNOである場合ステップS711;NOに、トランザクション処理部11は、トランザクション開始処理の成功を通知し図9ステップS716、トランザクション開始処理を終了する。一方、上記ステップS711の判定で未更新の従属ログが存在すると判定された場合ステップS711;YESに、トランザクション処理部11のログ編集部112は、上記ステップS705またはステップS708で取得した従属ログに、上記ステップS701で決定した代表キーの代表キー識別情報を付加し、CAS命令を用いてKVS20の従属ログを更新する図9ステップS712、図7ステップS602。続いて、トランザクション処理部11のログ編集部112は、上記ステップS712の更新が成功したか否かを判定する図9ステップS713。この判定がYESである場合ステップS713;YESには、処理を上述したステップS711に移行する。一方、上記ステップS713の判定で更新が失敗したと判定された場合ステップS713;NOに、トランザクション処理部11のログ編集部112は、既に更新したログがあれば、その更新したログを元の状態に戻し図9ステップS714、トランザクション開始処理の失敗を通知する図9ステップS715。そして、トランザクション開始処理を終了する。上述したように、第2実施形態におけるトランザクション処理装置10によれば、トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーから代表キーを決定することができ、代表キーに対応する代表ログ以外の従属ログに対して、CAS命令を用いて代表キー識別情報を付加することができる。これにより、他のトランザクションによる従属ログへのアクセスを制限することが可能となる。また、第2実施形態におけるトランザクション処理装置10によれば、従属ログの内容をKVS20の代表ログにCAS命令を用いて書き加えることができ、レコード群の各レコードに対する更新情報を、KVS20の代表ログにCAS命令を用いて書き込むことができ、さらに、代表ログに書き込んだ更新情報を、KVS20にあるレコード群の各レコードにCAS命令を用いて書き込むことができる。これにより、レコード群の各レコードに対する更新情報を、単一の代表ログで管理して各レコードに反映することができるため、複数のレコードに対して整合性を保持したままデータ更新することが可能となる。また、第2実施形態におけるトランザクション処理装置10によれば、代表キーに決定された代表ログが既に他のレコード群の従属ログとして設定されている場合には、既にログに書き込まれている代表キー識別情報をたどっていくことで、最上位のログを探索し、そのログに対応するキーを代表キーとして決定することが可能となる。また、第2実施形態におけるトランザクション処理装置10によれば、従属ログが既に他のレコード群の従属ログとして設定されている場合には、既にログに書き込まれている代表キー識別情報をたどっていくことで、従属ログの最上位にあたるログを探索し、そのログの内容を代表ログに書き加えることが可能となる。それゆえに、第2実施形態におけるトランザクション処理装置10によれば、KVSを用いてトランザクション処理を実行する場合であっても、簡易な構成で、複数のレコードに対するトランザクション処理を行うことができる。なお、上述した各実施形態は、単なる例示に過ぎず、各実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。例えば、上述した各実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明は以下に限定されない。付記1トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する代表キー決定部と、前記整合性を保持する対象であることを識別するための整合対象情報を、前記レコード群の各レコードに対応するログのうち、前記代表キーに対応する代表ログ以外のログである従属ログに付加して更新するログ編集部と、前記レコード群の各レコードに対する更新情報を、前記代表ログに書き込んで更新するログ更新部と、前記代表ログに書き込まれた前記更新情報を、前記レコード群の各レコードに反映させて更新するレコード更新部と、を備えることを特徴とするトランザクション処理装置。付記2前記整合対象情報は、トランザクション処理中であることを識別するための処理中識別情報であり、前記ログ編集部は、前記処理中識別情報を前記代表ログに付加して更新する、ことを特徴とする付記1記載のトランザクション処理装置。付記3前記整合対象情報は、前記代表キーを特定するための代表キー識別情報であり、前記ログ更新部は、前記代表キー決定部により前記代表キーが決定された場合に、前記代表ログに前記従属ログの内容を書き加えて更新する、ことを特徴とする付記1記載のトランザクション処理装置。付記4前記代表キー決定部は、決定した前記代表ログに対して既に前記代表キー識別情報が付加されている場合には、既に付加されている前記代表キー識別情報で特定されるキーを、前記代表キーに決定し直す、ことを特徴とする付記3記載のトランザクション処理装置。付記5前記ログ更新部は、前記従属ログに対して既に前記代表キー識別情報が付加されている場合には、既に付加されている前記代表キー識別情報に対応するログの内容を前記従属ログの内容として、前記代表ログに書き加えて更新する、ことを特徴とする付記3または4記載のトランザクション処理装置。付記6前記ログおよび前記レコードは、物理的に複数の記憶領域から構成されるKVSKeyValueStoreに格納される、ことを特徴とする付記1~5のいずれか1に記載のトランザクション処理装置。付記7前記ログ編集部、前記ログ更新部および前記レコード更新部は、CASCompareandSwap命令を用いて前記KVSの前記ログを更新する、ことを特徴とする付記6記載のトランザクション処理装置。付記8トランザクション処理で整合性を保持する対象となるレコード群の各レコードのキーのうち、いずれか一つを代表キーに決定する代表キー決定ステップと、前記整合性を保持する対象であることを識別するための整合対象情報を、前記レコード群の各レコードに対応するログのうち、前記代表キーに対応する代表ログ以外のログである従属ログに付加して更新するログ編集ステップと、前記レコード群の各レコードに対する更新情報を、前記代表ログに書き込んで更新するログ更新ステップと、前記代表ログに書き込まれた前記更新情報を、前記レコード群の各レコードに反映させて更新するレコード更新ステップと、を含むことを特徴とするトランザクション処理方法。付記9付記8に記載の各ステップをコンピュータに実行させるためのトランザクション処理プログラム。"