(57)【要約】      （修正有）【課題】参照、更新の一方の実行中であっても、参照、更新の他方にかかる応答時間の短縮を実現可能とする排他制御方法と装置の提供。【解決手段】排他制御の必要な共有データ領域の管理情報１０１として排他制御に必要な更新手順用セマフォ１０２と、共有データ領域の新旧世代を管理するための世代管理用情報１０３を有し、世代管理用情報１０３は共有データ領域の世代情報の１つを指示し、世代毎に設けられる世代情報２０１として、参照数を計測する参照数計測用カウンタ２０２と、世代情報の更新用セマフォ２０３と、旧世代情報へのポインタ２０４と、共有データ領域の実体を指すポインタ２０５を有し、最新の共有データを更新する場合、最新の共有データ領域の複製を作成し、それに対応するあらたな世代情報を生成し、複製した共有データ領域上のデータを更新し、更新後の共有データ領域に対応する世代情報を最新として登録する。【選択図】図１
2006277634.tif 000002
【特許請求の範囲】
【請求項１】
排他制御の必要な共有データ領域を有する情報処理装置の排他制御方法であって、
前記共有データ領域について、参照用とは別に、更新用の共有データ領域を設ける工程と、
排他制御の必要な共有データ領域について世代管理を行う工程と、
を含む、ことを特徴とする排他制御方法。
【請求項２】
前記情報処理装置において、最新の共有データを更新する場合、最新の共有データ領域の複製を作成し、前記複製した共有データ領域に対応する新たな世代情報を生成する工程と、
前記複製した共有データ領域上のデータを更新し、更新後の前記共有データ領域に対応する世代情報を最新として登録する工程と、
を含む、ことを特徴とする請求項１記載の排他制御方法。
【請求項３】
前記情報処理装置は、排他制御の必要な共有データ領域の管理情報として、排他制御に必要な更新手順用セマフォと、共有データ領域の新旧世代を管理するための世代管理用情報と、
を有し、
前記世代管理用情報として、世代毎に設けられる共有データ領域の世代情報の１つを指示し、
前記世代情報は、共有データ領域へのポインタを有する、ことを特徴とする請求項１又は２記載の排他制御方法。
【請求項４】
前記情報処理装置は、世代毎に設けられる前記世代情報として、
参照数を計測する参照数計測用カウンタと、
世代情報の更新用セマフォと、
旧世代情報を指すポインタと、
共有データ領域の実体を指すポインタと、
を有する、ことを特徴とする請求項３記載の排他制御方法。
【請求項５】
前記共有データ領域の参照用のロック獲得手順として、
最新となる世代情報の更新用セマフォのロックを獲得し、
前記世代情報の参照数計測用カウンタをインクリメントし、
前記世代情報の共有データ領域を指すポインタを取得し、
前記世代情報の更新用セマフォのロックを解放し、
前記共有データ領域の参照用のロックを獲得したプロセスは、取得した共有データ領域を必要な期間、参照し続けることが可能とされる、ことを特徴とする請求項４記載の排他制御方法。
【請求項６】
前記共有データ領域の参照用ロック解放手順として、
解放対象となる領域に対応する世代情報の更新用セマフォのロックを獲得し、
前記世代情報の参照数計測用カウンタをデクリメントし、
前記参照数計測用カウンタが零値であり、かつ、解放対象となる共有データ領域が最新ではない、ことの判断結果の真偽を保存し、
解放対象となる共有データ領域に対応する世代情報の更新用セマフォのロックを解放し、
前記判断結果が真である場合、ロック解放対象である共有データ領域と、前記共有データ領域に対応する世代情報を削除し、前記判断結果が偽である場合、終了し、
プロセスが参照用に取得した共有データ領域のロックを解放する、ことを特徴とする請求項４又は５記載の排他制御方法。
【請求項７】
前記共有データ領域の更新手順として、
前記更新手順用セマフォのロックを獲得し、
前記参照用ロックの獲得手順により、最新の共有データ領域を取得し、
前記共有データ領域の複製を作成し、前記複製した共有データ領域に対応する世代情報を生成し、
前記複製した共有データ領域上のデータを更新し、
更新後の共有データ領域に対応する世代情報を最新として登録し、
前記参照用ロック解放手順により、旧世代の共有データ領域の参照状態を解除し、
更新手順用セマフォのロックを解放し、
前記共有データ領域の最新データを使って共有データ領域を更新可能としてなる、ことを特徴とする請求項４乃至６のいずれか一に記載の排他制御方法。
【請求項８】
排他制御を必要とする共有データ領域の排他制御を行う手段を備えた情報処理装置であって、
前記共有データ領域について、参照用とは別に、更新用の共有データ領域を設ける手段と、
排他制御の必要な共有データ領域について世代管理を行う手段と、
を備えている、ことを特徴とする情報処理装置。
【請求項９】
最新の共有データを更新する場合、最新の共有データ領域の複製を作成し、前記複製した共有データ領域に対応する新たな世代情報を生成する手段と、
前記複製した共有データ領域上のデータを更新し、更新後の前記共有データ領域に対応する世代情報を最新として登録する手段を備えている、ことを特徴とする請求項８記載の情報処理装置。
【請求項１０】
排他制御の必要な共有データ領域の管理情報として、排他制御に必要な更新手順用セマフォと、共有データ領域の新旧世代を管理するための世代管理用情報と、
を備え、
前記世代管理用情報は、世代毎に設けられる共有データ領域の世代情報の１つを指示し、
前記世代情報は、前記共有データ領域へのポインタを有する、ことを特徴とする請求項８又は９記載の情報処理装置。
【請求項１１】
世代毎に設けられる前記世代情報として、
参照数を計測する参照数計測用カウンタと、
世代情報の更新用セマフォと、
旧世代情報を指すポインタと、
共有データ領域の実体を指すポインタと、
を有する、ことを特徴とする請求項１０記載の情報処理装置。
【請求項１２】
前記共有データ領域の参照用のロックの獲得手順として、
最新となる世代情報の更新用セマフォのロックを獲得し、
前記世代情報の参照数計測用カウンタをインクリメントし、
前記世代情報の共有データ領域を指すポインタを取得し、
前記世代情報の更新用セマフォのロックを解放し、
前記共有データ領域の参照用のロックを獲得した前記プロセスは、取得した共有データ領域を必要な期間、参照し続けることが可能とされる、ことを特徴とする請求項１１記載の情報処理装置。
【請求項１３】
前記共有データ領域の参照用ロック解放手順として、
解放対象となる領域に対応する世代情報の更新用セマフォのロックを獲得し、
前記世代情報の参照数計測用カウンタをデクリメントし、
前記参照数計測用カウンタが零値であり、かつ、解放対象となる共有データ領域が最新ではない、ことの判断結果の真偽を保存し、
解放対象となる共有データ領域に対応する世代情報の更新用セマフォのロックを解放し、
前記判断結果が真である場合、ロック解放対象である、共有データ領域とそれに対応する世代情報を削除し、前記判断結果が偽である場合、終了し、
プロセスが参照用に取得した共有データ領域のロックを解放する、ことを特徴とする請求項１１又は１２記載の情報処理装置。
【請求項１４】
前記共有データ領域の更新手順として、
前記更新手順用セマフォのロックを獲得し、
前記参照用ロックの獲得手順により、最新の共有データ領域を取得し、
前記共有データ領域の複製を作成し、前記複製した共有データ領域に対応する世代情報を生成し、
前記複製した共有データ領域上のデータを更新し、
更新後の共有データ領域に対応する世代情報を最新として登録し、
前記参照用ロック解放手順により、旧世代の共有データ領域の参照状態を解除し、
更新手順用セマフォのロックを解放し、
プロセスは、共有データ領域を更新するときに、前記共有データ領域の最新データを使って更新可能としてなる、ことを特徴とする請求項１１乃至１３のいずれか一に記載の情報処理装置。
【請求項１５】
排他制御を必要とする共有データ領域の排他制御を行うコンピュータに、
前記共有データ領域について、参照用とは別に、更新用の共有データ領域を設ける処理と、
排他制御の必要な共有データ領域について世代管理を行う処理と、
を実行させるプログラム。
【請求項１６】
請求項１５記載のプログラムにおいて、最新の共有データを更新する場合、最新の共有データ領域の複製を作成し、前記複製した共有データ領域に対応する新たな世代情報を生成する処理と、
前記複製した共有データ領域上のデータを更新し、更新後の前記共有データ領域に対応する世代情報を最新として登録する処理と、
を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に排他制御方法と装置に関する。
【背景技術】
【０００２】
複数プロセスからの共有リソースへのアクセスに関し、参照アクセスのみの場合、排他制御は不要であるが１つでも更新アクセスが入ると排他制御が必要となる。例えば常に参照されるような共有データで、頻繁に更新が行われるような状況は、頻繁に発生している。排他制御機構は、共有データの一貫性を維持する為、参照、更新は、それぞれの獲得要求が通るまで、待たされる可能性があった。
【０００３】
従来より、「リードライトロック」と呼ばれる排他制御により、同時参照が可能となるように改善されているが、更新が関与するようなケースでは、実行中の処理が完了するまで、必ず待ち合わせが発生する。このため、応答時間が一定とならないことが多かった。リードライトロックと呼ばれるような排他制御では、参照時は、同時に複数のロック獲得要求を許可するが、更新時には、参照者も含めて、獲得要求が許可されるのは、唯、一のみとなる。そのため、更新時のロック中に、参照を行おうとしても、更新時のロックが解放されるまで、ロック獲得が許可されず待たされることとなる。
【０００４】
また、更新を行おうとする場合でも、全ての参照者（参照アクセスを行うプロセス）が、ロックを解放するまで、ロック獲得が許可されず待たされることとなる。
【０００５】
以上のことから、何らかの更新が行われる際には、更新側のプロセスだけでなく、参照側のプロセスにも、必ず、ロック獲得待ちが発生し、処理が滞る事態が発生することになる。このため、処理の効率化、高速化を困難としている。
【０００６】
なお、特許文献１には、シノニム機能を持たないデータベースであっても、更新と参照の排他に要する時間を軽減するデータベース排他制御システムとして、マスタレコードにその世代開始番号および世代終了番号を付加してマスタテーブルに格納するとともに、現在参照可能なマスタレコードの有効世代番号を世代管理テーブルに格納しておき、新たにマスタレコードをマスタテーブルに組み込む場合、マスタレコードの世代開始番号を前記有効世代番号よりも大きくして組み込み、その後にマスタテーブルへの参照を排除して正常終了すれば、マスタレコードの有効世代番号を有効世代番号以上の番号に更新し、排除を解除する構成が開示されている。また特許文献２には、ファイルをブロック単位に排他制御を行い、それまでの更新をロールバックする間、プログラムで更新中のブロックに対応する更新前のブロックを一時保持する保持手段に一時保持したブロックを用いて他のプログラムからの当該ロールバックの対象となるブロックへの参照・更新を可能とし、ロールバックの対象となるブロックの参照・更新をその終了を待たずに優先して行えるようにし、一つのファイルを複数のプログラムで同時に参照・更新する際のプログラムの処理効率を向上させるようにした構成が開示されている。
【０００７】
【特許文献１】特開２００２−１３２５６５号公報
【特許文献２】特開２００１−３４４１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、参照の実行中であっても、更新にかかる応答時間の短縮を実現可能とする排他制御方法と装置並びにプログラムを提供することにある。
【０００９】
本発明の他の目的は、更新の実行中であっても、参照にかかる応答時間の短縮を実現可能とする排他制御方法と装置並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本願で開示される発明は、上記目的を達成するため、概略以下の構成とされる。
【００１１】
本発明の１つのアスペクトに係る方法は、排他制御の必要な共有データ領域を有する情報処理装置の排他制御方法であって、排他制御の必要な前記共有データ領域について、参照用とは別に、独立して、更新用の共有データ領域を設け、更新中の参照を妨げないようにし、排他制御の必要な共有データ領域について世代管理を行う、ことを特徴とする。
【００１２】
本発明の他のアスペクトに係る装置は、排他制御の必要な共有データ領域の排他制御を行う排他制御処理手段を有する情報処理装置であって、排他制御の必要な前記共有データ領域について、参照用とは別に、更新用の共有データ領域を備えることで、更新中の参照を妨げないようにし、排他制御の必要な共有データ領域について世代管理を行う手段を備えている。
【００１３】
本発明において、前記情報処理装置は、最新の共有データを更新する場合、最新の共有データ領域の複製を作成し、それに対応するあらたな世代情報を生成し、複製した前記共有データ領域上のデータを更新し、更新後の前記共有データ領域に対応する世代情報を最新として登録する。
【００１４】
本発明において、前記情報処理装置は、排他制御の必要な共有データ領域の管理情報として、排他制御に必要な更新手順用セマフォと、共有データ領域の新旧世代を管理するための世代管理用情報と、を備え、前記世代管理用情報として、世代毎に設けられる共有データの世代情報の１つを指示し、前記世代情報は、共有データ領域へのポインタを有する構成としてもよい。
【００１５】
本発明において、前記情報処理装置は、世代毎に設けられる前記世代情報として、
参照数を計測する参照数計測用カウンタと、
世代情報の更新用セマフォと、
前の世代情報を指すポインタと、
共有データ領域の実体を指すポインタとを有する構成としてもよい。
【００１６】
本発明において、前記共有データ領域の参照用のロックの獲得手順として、最新となる世代情報の更新用セマフォのロックを獲得し、
前記世代情報の参照数計測用カウンタをインクリメントし、
前記世代情報の共有データ領域を指すポインタを取得し、
前記世代情報の更新用セマフォのロックを解放し、
前記共有データ領域の参照用のロックの獲得した前記プロセスは、取得した共有データ領域を必要な期間だけ、参照し続けることが可能とされる。
【００１７】
本発明において、前記共有データ領域の参照用ロック解放手順として、
解放対象となる領域に対応する世代情報の更新用セマフォのロックを獲得し、
前記世代情報の参照数計測用カウンタをデクリメントし、
前記参照数計測用カウンタが零値であり、かつ、解放対象となる共有データ領域が最新ではない、ことの判断結果の真偽を保存し、
解放対象となる共有データ領域に対応する世代情報の更新用セマフォのロックを解放し、
前記判断結果が真である場合、ロック解放対象である、共有データ領域とそれに対応する世代情報を削除し、前記判断結果が偽である場合、終了し、
参照用に取得した共有データ領域のロックを解放する。
【００１８】
本発明において、前記共有データ領域の更新手順として、
前記更新手順用セマフォのロックを獲得し、
前記参照用ロックの獲得手順により、最新の共有データ領域を取得し、
前記共有データ領域の複製を作成し、それに対応する世代情報を生成し、
複製した前記共有データ領域上のデータを更新し、
更新後の共有データ領域に対応する世代情報を最新として登録し、
前記参照用ロック解放手順により、旧世代の共有データ領域の参照状態を解除し、
更新手順用セマフォのロックを解放し、
前記共有データ領域の最新データを使って共有データ領域を更新可能としている。
【００１９】
本発明の他のアスペクトに係るコンピュータプログラムは、コンピュータで読み出し可能な媒体に記憶されるプログラムであって、排他制御を必要とする共有データ領域の排他制御を行うコンピュータに、前記共有データ領域について、参照用とは別に、更新用の共有データ領域を設ける処理と、排他制御の必要な共有データ領域について世代管理を行う処理と、を実行させるプログラムよりなる。
【００２０】
本発明に係るプログラムにおいて、最新の共有データを更新する場合、最新の共有データ領域の複製を作成し、前記複製した共有データ領域に対応するあらたな世代情報を生成する処理と、前記複製した共有データ領域上のデータを更新し、更新後の前記共有データ領域に対応する世代情報を最新として登録する処理とを前記コンピュータに実行させるようにしてもよい。
【発明の効果】
【００２１】
本発明によれば、参照の実行中であっても、排他制御で待たされることなく、更新にかかる応答時間の短縮を実現可能としている。
【００２２】
また本発明によれば、更新処理の実行中であっても、更新処理の完了を待つことなく、参照処理を開始できるので、参照にかかる応答時間の短縮が実現できる。
【発明を実施するための最良の形態】
【００２３】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照して以下に説明する。まず、本発明の基本的な動作原理を説明しておく。
【００２４】
本発明の基本的な原理としては、
・排他制御の必要な共有データ領域について、参照用とは、別に独立して、更新用にも用意し、更新中の参照を妨げないようにする。
【００２５】
・排他制御の必要な共有データ領域について、世代管理を行い、必要以上に、領域を持たないようにする。
【００２６】
かかる本発明を実現するために、本発明の一実施形態において、排他制御のために用意される情報について説明する。
【００２７】
排他制御が必要とされるデータの管理単位である管理情報として、
（A1）更新手順用のセマフォ；
（A2）共有データ領域の新旧世代を管理するための情報；
が必要となる。
【００２８】
このうち、更新手順用のセマフォは、排他制御に必要な管理情報である。
【００２９】
また、共有データ領域の新旧世代を管理するための情報は、従来技術であれば、共有データそのものとなるところを、本発明では、世代管理を行うために、セマフォと共有データとを分けて管理している。具体的には、共有データ領域の新旧世代を管理するための情報は、世代情報へのポインタとなる。
【００３０】
なお、セマフォとは、一般的に排他制御に使用されるもので、順序保証が求められる区間を、複数、同時に実行されることがないよう制御するためのデータ構造のことである。  同時に、ロックを獲得できるプロセスは唯一であり、一のプロセスがロック獲得中に、他のプロセスが新しいロックを獲得するには、獲得中のロックが解放されるまで待たされる。
【００３１】
また、本発明の一実施形態において、共有データそのものに付随する管理用情報として、好ましくは、以下の情報を有する。
【００３２】
世代毎に必要となる世代情報として、
（B1）参照数計測用カウンタ；
（B2）本世代情報の更新用セマフォ；
（B3）旧世代情報を指すポインタ；
（B4）共有データ領域の実体を指すポインタ；
が必要となる。
【００３３】
このうち、参照数計測用カウンタは、ロックを獲得したもの（プロセス）が存在しない場合、零値をとるものとする。これらの情報を使用して、排他制御の必要なデータを管理する。
【００３４】
なお、本発明において、参照については、複数の参照を同時に実行することが可能であるが、更新における同時実行数は１つとする。
【００３５】
本発明の一実施形態において、ロック獲得手順としては、参照用と更新用の２通り存在し、ロック獲得目的に応じて、情報処理装置の利用者が使い分けるものとする。
【００３６】
参照用のロックの獲得手順は、次の通りである（図４参照）。
【００３７】
ステップＳ１１：  最新となる世代情報の更新用セマフォのロックを獲得する。
【００３８】
ステップＳ１２：  同世代情報の参照数計測用カウンタをインクリメントする。
【００３９】
ステップＳ１３：  同世代情報の共有データ領域を指すポインタを取得する。
【００４０】
ステップＳ１４：  同世代情報の更新用セマフォのロックを解放する。
【００４１】
以上の手順により、取得した共有データ領域を必要な期間、参照し続けることが出来る。
【００４２】
参照用ロック解放手順は次の通りである（図５参照）。
【００４３】
ステップＳ２１：  解放対象となる領域に対応する世代情報の更新用セマフォのロックを獲得する。
【００４４】
ステップＳ２２：  同世代情報の参照数計測用カウンタをデクリメントする。
【００４５】
ステップＳ２３：  以下の判断を行い、判断結果を記憶部（不図示）に保存する。
「ステップＳ２２の処理の結果、参照数計測用カウンタが零値であり、かつ、解放対象となる共有データ領域が最新ではない」
【００４６】
ステップＳ２４：  解放対象となる共有データ領域に対応する世代情報の更新用セマフォのロックを解放する。
【００４７】
ステップＳ２５：  ステップＳ２３の判断結果が偽である場合、何もせずに終了となる。
【００４８】
一方、ステップＳ２３の判断結果が真である場合、ステップＳ２６に移行し、ロック解放対象である、共有データ領域とそれに対応する世代情報を削除する。
【００４９】
以上の手順により、参照用に取得した共有データ領域のロックを解放することが出来る。
【００５０】
また、本発明における更新用手順は次の通りである（図６参照）。
【００５１】
ステップＳ３１：  更新手順用セマフォのロックを獲得する。
【００５２】
ステップＳ３２：  前述した参照用ロック獲得手順（図４のステップＳ１１〜Ｓ１４）により、最新の共有データ領域を取得する。
【００５３】
ステップＳ３３：  共有データ領域の複製を作成し、それに対応する世代情報を生成する。
【００５４】
ステップＳ３４：  複製した共有データ領域上のデータを更新する。
【００５５】
ステップＳ３５：  更新後の共有データ領域に対応する世代情報を最新として登録する。
【００５６】
ステップＳ３６：  前述した参照用ロック解放手順（図５のステップＳ２１〜Ｓ２６）により、旧データの参照状態を解除する。
【００５７】
ステップＳ３７：  更新手順用セマフォのロックを解放する。
【００５８】
以上の手順により、共有データ領域の最新データを使って、共有データ領域を更新することができる。なお、上記図４乃至図６に示した処理手順は、情報処理装置（不図示）で実行されるプログラムにより実行される。以下実施例に即して説明する。
【実施例】
【００５９】
図１は、本実施例の情報処理装置における排他制御手段の関連情報の初期状態を示す図である。なお、図１は、排他制御手段の要部構成を示した図であり、既存の情報処理装置に実装可能であり、情報処理装置のＣＰＵ、メモリ等は示されていない。
【００６０】
管理用情報としては、管理情報１０１と世代情報２０１を備え、管理情報１０１は、更新手順用セマフォ１０２と、世代管理用情報１０３を備えている。世代情報２０１は、参照数計測用カウンタ２０２、更新用セマフォ２０３、旧世代情報へのポインタ２０４、共有データ領域の実体を指すポインタ２０５を備えている。
【００６１】
本実施例では、共有データ領域の参照は、複数プロセスによる同時実行が可能であるが、更新における同時実行数は、唯一としている。
【００６２】
初期状態としては、ロックを獲得したプロセスが、存在しない場合を想定する。
【００６３】
即ち、
・更新手順用セマフォ１０２は獲得されていない状態である。
【００６４】
・世代管理用情報１０３は世代情報２０１を指す。
【００６５】
・参照数計測用カウンタ２０２は零値である。
【００６６】
・更新用セマフォ２０３は獲得されていない状態である。
【００６７】
・旧世代情報へのポインタ２０４は指す対象が存在しない。
【００６８】
・共有データ領域の実体を指すポインタ２０５は、共有データ領域３０１を指すというのが初期状態である。
【００６９】
本実施例におけるロック獲得及び解放として、次の順序で行われるケースについて、実施例として説明する。
【００７０】
ステップ１：  参照用ロック獲得（１）
ステップ２：  参照用ロック獲得（２）
ステップ３：  更新用ロック
ステップ４：  参照用ロック獲得（３）
ステップ５：  参照用ロック解放（２）
ステップ６：  参照用ロック解放（１）
ステップ７：  参照用ロック解放（３）
【００７１】
なお、括弧内の数字は、ロック獲得と解放がそれぞれ対応することを表しており、参照用ロック解放（１）は、参照用ロック獲得（１）に対応している。
【００７２】
ステップ１の参照用ロック獲得（１）では、参照用ロック獲得手順に従って、世代情報２０１の更新、即ち、
・参照数計測用カウンタ２０２のインクリメント、及び、
・共有データ領域３０１の実体を指すポインタ２０５の返却、
が行われる。
【００７３】
次に、ステップ２において行われる参照用ロック獲得（２）では、同様に、参照用ロック獲得手順に従って、世代情報２０１の更新、即ち、
・参照数計測用カウンタ２０２のインクリメント、及び、
・共有データ領域３０１の実体を指すポインタ２０５の返却、
が行われる。
【００７４】
次に、ステップ３において行われる更新用ロックでは、更新用手順に従って、
・共有データ領域３１１（図２参照）と世代情報２１１（図２参照）の作成、及び、
・管理情報１０１の更新、
が行われる。
【００７５】
この時点で、図２に示す状態に置き換わることになる。即ち、世代管理用情報１０３は、最新となる世代情報２１１を指すように、旧世代情報へのポインタ２１４は、世代情報２０１を指すように再設定される。
【００７６】
次に、上記ステップ４において行われる参照用ロック獲得（３）では、参照用ロック獲得手順に従って、最新の世代情報２１１の更新、即ち、
・参照数計測用カウンタ２１２のインクリメント、及び、
・共有データ領域３１１の実体を指すポインタ２１５の返却、
が行われる。
【００７７】
次に、ステップ５において行われる参照用ロック解放（２）では、上記ステップ２において獲得したロックの解放を行う。
【００７８】
参照用ロック解放手順に従って、
・世代情報２０１の更新、即ち、参照数計測用カウンタ２０２のデクリメント、
が行われる。
【００７９】
この時点では、参照数計測用カウンタ２０２は零値ではないので、共有データ領域３０１と世代情報２０１の削除は行われない。
【００８０】
次に、上記ステップ６において行われる参照用ロック解放（１）では、上記ステップ１において獲得したロックの解放を行う。
【００８１】
参照用ロック解放手順に従って、世代情報２０１の更新、即ち、参照数計測用カウンタ２０２のデクリメントを行う。
【００８２】
ここで、
・参照数計測用カウンタ２０２はデクリメントの結果、カウント値は零値である、及び、
・世代情報２０１が最新でない、
ことから、共有データ領域３０１と世代情報２０１の削除も併せて行われる。この結果、図３に示す状態に置き換わることになる。
【００８３】
次に、ステップ７において行われる参照用ロック解放（３）では、ステップ４において獲得したロックの解放を行う。
【００８４】
参照用ロック解放手順に従って、世代情報２１１の更新、即ち、参照数計測用カウンタ２１２のデクリメントを行う。
【００８５】
この時点で、参照数計測用カウンタ２１２のカウント値は零値となるが、世代情報２１１が最新であることから、共有データ領域３１１と世代情報２１１の削除は行われない。
【００８６】
本実施例に示したように、参照の実行中であっても、排他制御で待たされることなく更新処理が続行できるので、更新にかかる応答時間の短縮が実現できる。また、逆のケース、即ち更新処理の実行中であっても、更新処理の完了を待つことなく、参照処理を開始できるので、参照にかかる応答時間の短縮が実現できる。
【００８７】
つまり、最小処理の応答性を、常に、一定のレベルに保ち、応答性能の向上と安定に寄与することが出来る。
【００８８】
本発明によれば、例えば、テーブル中の行単位でロックを行うリレーショナルデータベースのレコードを参照・更新するような場合に適用することができる。また、参照と更新の順序関係で強い制約がない場合には、より大きな効果を得ることが出来る。
【００８９】
以上本発明を上記実施形態に即して説明したが、本発明は上記実施形態の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【００９０】
【図１】本発明の一実施例を模式的に説明するための図である。
【図２】本発明の一実施例を模式的に説明するための図である。
【図３】本発明の一実施例を模式的に説明するための図である。
【図４】本発明における参照用ロック獲得手順の一例を示す流れ図である。
【図５】本発明における参照用ロック解放手順の一例を示す流れ図である。
【図６】本発明における更新用手順の一例を示す流れ図である。
【符号の説明】
【００９１】
１０１  管理情報
１０２  更新手順用セマフォ
１０３  世代管理用情報
２０１、２１１  世代情報
２０２、２１２  参照数計測用カウンタ
２０３、２１３  更新用セマフォ
２０４、２１４  旧世代情報へのポインタ
２０５、２１５  共有データ領域の実体を指すポインタ
３０１、３１１  共有データ領域
【図１】
2006277634.tif 000003
【図２】
2006277634.tif 000004
【図３】
2006277634.tif 000005
【図４】
2006277634.tif 000006
【図５】
2006277634.tif 000007
【図６】
2006277634.tif 000008