(57)【特許請求の範囲】
【請求項１】
データ群を記録する情報記録装置における情報記録方法であって、
前記情報記録装置は、
データの削除や検索の並行処理を保護する主ロック手段と、
データが格納されているファイル群を保持し、前記ファイル群のうちどのファイルの内容を検索すればよいかを特定する索引情報を保持し、ファイル識別子と削除予定フラグを少なくとも含む情報の並びである参照カウントリストを保持する記憶手段と、
参照カウントリストの並行操作を保護する副ロック手段と、
を具備し、
前記情報記録装置が、
（Ａ）主ロックを確保し、
（Ｂ）前記索引情報を用いて検索対象となるファイルの一覧を取得し、
（Ｃ）副ロックを確保し、
（Ｄ）一覧を取得した前記ファイルの識別子を前記参照カウントリストに追加し、
（Ｅ）前記索引情報を用いて検索対象となるファイルの一覧を取得し、一覧を取得した前記ファイルの識別子を前記参照カウントリストに追加した後、前記副ロックおよび前記主ロックを解放し、
（Ｆ）前記主ロックまたは前記副ロックを再度確保し、
（Ｇ）前記主ロックまたは前記副ロックを再度確保した後、前記ファイルのファイル識別子に対応する前記参照カウントリスト内の削除予定フラグがＯＮであるファイルを削除し、
（Ｈ）前記参照カウントリストから前記ファイルのファイル識別子に対応するエントリを削除し、
（Ｉ）前記副ロックまたは前記主ロックを解放し、
前記（Ａ）、（Ｂ）、（Ｃ）、または（Ｆ）の前のタイミング、または（Ｉ）の後のタイミングで削除対象のファイルが前記参照カウントリストに含まれるか否かを判別し、前記参照カウントリストに含まれている前記削除対象のファイル識別子に対応する削除予定フラグをＯＮにする、
ことを特徴とする情報記録方法。
【請求項２】
前記情報記録装置は、
第１チャンクを前記ファイル群として保持し、
一時プール、及び前記第１チャンクの索引情報であるチャンクプールを前記索引情報として保持し、
前記情報記録装置が、
前記一時プールから前記第１チャンクを生成し、
前記チャンクプールから前記第２チャンクを生成し、
前記チャンクプールから前記第２チャンクを生成する場合に前記第１チャンクのデータを削除する、
ことを特徴とする請求項１に記載の情報記録方法。
【請求項３】
前記情報記録装置が、
一時プールを検索して検索結果データを取得し、
前記チャンクプールを検索して第１チャンクのファイル一覧を取得し、
前記第２チャンクのファイル一覧を取得し、
前記検索結果データを取得し、前記第１チャンクファイル一覧を取得し、前記ファイルの識別子を前記参照カウントリストに追加し、前前記第２チャンクファイル一覧を取得した後に前記主ロックを解放し、
前記第１チャンクのファイル一覧を検索して検索結果データを取得し、
前記第２チャンクのファイル一覧を検索して検索結果データを取得する、
ことを特徴とする請求項２に記載の情報記録方法。
【請求項４】
データ群を記録する情報記録装置であって、
前記情報記録装置は、
情報削除部と、
情報検索部と、
データの削除や検索の並行処理を保護する主ロック手段と、
データが格納されているファイル群を保持し、前記ファイル群のうちどのファイルの内容を検索すればよいかを特定する索引情報を保持し、ファイル識別子と削除予定フラグを少なくとも含む情報の並びである参照カウントリストを保持する記憶手段と、
参照カウントリストの並行操作を保護する副ロック手段と、
を具備し、
前記情報検索部は、
主ロックを確保する主ロック確保手段と、
前記索引情報を用いて検索対象となるファイルの一覧を取得するファイル一覧取得手段と、
副ロックを確保する副ロック確保手段と、
一覧を取得した前記ファイルの識別子を前記参照カウントリストに追加する参照カウントリスト追加手段と、
前記参照カウントリスト追加手段が前記ファイルの識別子を前記参照カウントリストに追加した後、前記副ロックおよび前記主ロックを解放するロック解放手段と、
前記主ロックまたは前記副ロックを再度確保するロック再確保手段と、
前記ロック再確保手段により前記主ロックまたは前記副ロックを再度確保した後、前記ファイルのファイル識別子に対応する前記参照カウントリスト内の削除予定フラグがＯＮであるファイルを削除するファイル削除手段と、
前記参照カウントリストから前記ファイルのファイル識別子に対応するエントリを削除するエントリ削除手段と、
を具備し、
前記情報削除部は、
削除対象のファイルが前記参照カウントリストに含まれるか否かを判別する判別手段と、
前記参照カウントリストに含まれている前記削除対象のファイル識別子に対応する削除予定フラグをＯＮにする削除予定フラグ切替手段と、
を具備することを特徴とする情報記録装置。
【請求項５】
前記記憶手段は、
第１チャンクを前記ファイル群として保持し、一時プール、及び前記第１チャンクの索引情報であるチャンクプールを前記索引情報として保持し、
前記一時プールから前記第１チャンクを生成する第１のチャンク生成手段と、前記チャンクプールから前記第２チャンクを生成する第２のチャンク生成手段とを有する情報登録部をさらに具備し、
前記情報削除部は、前記チャンクプールから前記第２チャンクを生成する場合に前記第１チャンクのデータを削除する、
ことを特徴とする請求項４に記載の情報記録装置。
【請求項６】
該情報検索部は、
一時プールを検索して検索結果データを取得する第１の検索結果データ取得手段と、
前記チャンクプールを検索して第１チャンクのファイル一覧を取得する第１チャンクファイル一覧取得手段と、
前記第２チャンクのファイル一覧を取得する第２チャンクファイル一覧取得手段と、
前記第１チャンクのファイル一覧を検索して検索結果データを取得する第２の検索結果データ取得手段と、
前記第２チャンクのファイル一覧を検索して検索結果データを取得する第３の検索結果データ取得手段と、
をさらに具備し、
前記ロック解放手段は、前記第１の検索結果データ取得手段が前記検索結果データを取得し、前記第１チャンクファイル一覧取得手段が前記第１チャンクファイル一覧を取得し、前記参照カウントリスト追加手段が前記ファイルの識別子を前記参照カウントリストに追加し、前記第２チャンクファイル一覧取得手段が前記第２チャンクファイル一覧を取得した後に前記主ロックを解放することを特徴とする請求項５に記載の情報記録装置。
【請求項７】
データ群を記録する情報記録装置より実行されるプログラムであって、
前記情報記録装置は、
データの削除や検索の並行処理を保護する主ロック手段と、
データが格納されているファイル群を保持し、前記ファイル群のうちどのファイルの内容を検索すればよいかを特定する索引情報を保持し、ファイル識別子と削除予定フラグを少なくとも含む情報の並びである参照カウントリストを保持する記憶手段と、
参照カウントリストの並行操作を保護する副ロック手段と、
を具備し、
前記情報記録装置を、
主ロックを確保する主ロック確保手段と、
前記索引情報を用いて検索対象となるファイルの一覧を取得するファイル一覧取得手段と、
副ロックを確保する副ロック確保手段と、
一覧を取得した前記ファイルの識別子を前記参照カウントリストに追加する参照カウントリスト追加手段と、
前記参照カウントリスト追加手段が前記ファイルの識別子を前記参照カウントリストに追加した後、前記副ロックおよび前記主ロックを解放するロック解放手段と、
前記主ロックまたは前記副ロックを再度確保するロック再確保手段と、
前記ロック再確保手段により前記主ロックまたは前記副ロックを再度確保した後、前記ファイルのファイル識別子に対応する前記参照カウントリスト内の削除予定フラグがＯＮであるファイルを削除するファイル削除手段と、
前記参照カウントリストから前記ファイルのファイル識別子に対応するエントリを削除するエントリ削除手段と、
を具備する情報検索部と、
削除対象のファイルが前記参照カウントリストに含まれるか否かを判別する判別手段と、
前記参照カウントリストに含まれている前記削除対象のファイル識別子に対応する削除予定フラグをＯＮにする削除予定フラグ切替手段と、
を具備する情報削除部として動作させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサ情報データベースの構成法に関する。
【背景技術】
【０００２】
従来、センサの計測データのような情報、すなわちセンサ情報を効率的に記録することを目的として、チャンクと呼ばれるデータファイルを生成する方法ならびに装置（特許文献１）が提案されていた。
該文献には、情報記録装置が一時プール、第１チャンク、第２チャンク、および第１チャンクの索引情報であるチャンクプールを保持し、該情報記録装置は一時プールから第１チャンクへのチャンク生成手段ならびにチャンクプールから第２チャンクへのチャンク生成手段を有することが開示されている。このように２段階のチャンク生成を行う従来技術により、チャンクの生成を効率的に行うことができるため、大量のデータを効率的に記録し検索できる。
【０００３】
また、一般的に、複数ＣＰＵを有するコンピュータ等でマルチスレッドによる並行処理を正しく行うために、スレッド間で共有する変数等データをロックにより保護することが行われている。ロックの種類には排他ロックや読み書きロックなどがある。読み書きロックとは、データの読み込みは複数人が同時に行っても良いが、書き込みは同時に１人だけしか行えないように排他制御するロックである。また、これらのロックで保護する対象の考え方として、特定のデータに対してロック変数を割り付ける方法や、処理全体に１つだけロック変数を割り付けて処理開始から終了までを一括して保護する方法であるジャイアントロックがある。
【０００４】
２段階のチャンク生成を行う上記従来技術においては、並行処理の保護のため、読み書きロックを用いたジャイアントロックによる保護を行っていた。
一方、従来、スマートフォン等で用いる軽量な情報記録装置（非特許文献１）が提案されていた。該情報記録装置は、アーカイブファイルすなわちチャンクを生成する機能を有し、また、処理全体を保護するロックを検索処理の完了する以前に解放することで並行処理の可能度合いを高める手段を具備している。検索処理を完了する前にロックを解放すると、並行的に行われるデータ登録処理によってデータファイルの書き換えが起こり、そのために検索結果に矛盾を来す可能性が起きうる。該情報記録装置においては、これを防ぐため、一度切り出されたチャンクへの書き換えなどが起きないことを利用する。新たなデータの登録処理を並行して行うと、検索途中にチャンクが増加してしまうことが起きうるが、処理対象となるチャンク名の一覧を差分管理することで、当該増加を検知できるようにする手段が備わっている。これにより、検索結果にデータの抜け等の矛盾を来すことなく検索結果を返却することができていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−０１６１１２号公報
【非特許文献】
【０００６】
【非特許文献１】軽量化uTupleSpaceの設計と実装（柏木啓一郎ほか著、電子情報通信学会 ２０１３年総合大会、Ｂ−１９−３０、２０１３年３月）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
２段階のチャンク生成を行う従来技術においては、読み書きロックを用いたジャイアントロックによる保護を行っていたため、並行処理の可能度合いが低いという問題があった。
特に、大量のデータを記録している状況下では検索処理に長大な時間を要することがあり、その間に新たなデータ登録を行うことができないため、データの登録処理漏れに繋がってしまうという問題があった。
【０００８】
また、スマートフォン等で用いる軽量な情報記録装置の従来技術で用いられている並行処理の可能度合いを高める手法は、２段階のチャンク生成を行う情報記録装置に対してそのままでは適用できないという問題があった。
なぜならば、チャンク生成とは一時的な保管領域からデータをチャンクと呼ばれるファイルへと転記し、当該データを該保管領域から削除する動作だからである。特に、該２段階のチャンク生成において、チャンクプールから第２チャンクへのチャンク生成が問題となる。上記の従来手法において、当該手法を適用する前提は、一度切り出されたチャンクへの書き換えなどが起きないことが条件であった。しかし、該２段階のチャンク生成においては、一度切り出されたチャンクである第１チャンクが、チャンクプールから第２チャンクへのチャンク生成に伴って削除されなければならないため、上記前提が成り立たない。以上の理由により、従来手法を用いては、２段階のチャンク生成を行う情報記録装置の並行処理の可能度合いを高められないという問題があった。
【０００９】
本発明は、このような事情を考慮してなされたものであり、その目的は、２段階のチャンク生成方式による効率的なチャンク生成を行いつつ、データの登録および検索処理を並行に行うことができ、特に、長大な時間を要する検索処理の途中であってもデータ登録が短時間に完了できる特徴を有する情報記録方法、情報記録装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するためにこの発明の第１の観点は、以下のような構成要素を備えている。すなわち、情報記録方法は、データ群を記録する情報記録装置における情報記録方法であって、前記情報記録装置は、データの削除や検索の並行処理を保護する主ロック手段と、データが格納されているファイル群を保持し、前記ファイル群のうちどのファイルの内容を検索すればよいかを特定する索引情報を保持し、ファイル識別子と削除予定フラグを少なくとも含む情報の並びである参照カウントリストを保持する記憶手段と、参照カウントリストの並行操作を保護する副ロック手段と、を具備し、前記情報記録装置が、（Ａ）主ロックを確保し、（Ｂ）前記索引情報を用いて検索対象となるファイルの一覧を取得し、（Ｃ）副ロックを確保し、（Ｄ）一覧を取得した前記ファイルの識別子を前記参照カウントリストに追加し、（Ｅ）前記索引情報を用いて検索対象となるファイルの一覧を取得し、一覧を取得した前記ファイルの識別子を前記参照カウントリストに追加した後、前記副ロックおよび前記主ロックを解放し、（Ｆ）前記主ロックまたは前記副ロックを再度確保し、（Ｇ）前記主ロックまたは前記副ロックを再度確保した後、前記ファイルのファイル識別子に対応する前記参照カウントリスト内の削除予定フラグがＯＮであるファイルを削除し、（Ｈ）前記参照カウントリストから前記ファイルのファイル識別子に対応するエントリを削除し、（Ｉ）前記副ロックまたは前記主ロックを解放し、前記（Ａ）、（Ｂ）、（Ｃ）、または（Ｆ）の前のタイミング、または（Ｉ）の後のタイミングで削除対象のファイルが前記参照カウントリストに含まれるか否かを判別し、前記参照カウントリストに含まれている前記削除対象のファイル識別子に対応する削除予定フラグをＯＮにする。
【発明の効果】
【００１１】
以上述べたように、本発明によれば、２段階のチャンク生成方式による効率的なチャンク生成を行いつつ、データの登録および検索処理を並行に行うことができ、特に、長大な時間を要する検索処理の途中であってもデータ登録が短時間に完了できる特徴を有する情報記録方法、情報記録装置、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、一実施形態に係る情報記録装置の例を示す。
【図２】図２は、参照カウントリストが保持するデータの例を示す。
【図３】図３は、登録処理のフローの例を示す。
【図４】図４は、検索処理のフローの例を示す。
【図５】図５は、参照カウントリストの更新処理のフローの例を示す。
【図６】図６は、参照カウントリストが保持するデータの例を示す。
【図７】図７は、参照カウントリストが保持するデータの例を示す。
【図８】図８は、参照カウントリストが保持するデータの例を示す。
【発明を実施するための形態】
【００１３】
以下、図面を参照してこの発明に係わる実施形態を説明する。  
第１図は本実施の形態における装置構成を示す。情報記録装置１００はネットワーク１０１に接続され、情報登録部１１１と情報削除部１１２と情報検索部１１３を具備する。さらに、情報記録装置１００はデータ保持を行う一時プール１２１およびＳチャンクプール１２４を具備する。一時プール１２１は木構造によりデータを保持し、Ｓチャンクプール１２４は木構造によりＳチャンク１２３の荷札情報を保持する。なお荷札情報とは、Ｓチャンク１２３のコンテンツ概要を記した情報のことである。
【００１４】
さらに、情報記録装置１００は、Ｓチャンク１２３を保持するＳチャンク記憶装置１２２およびＬチャンク１２６を保持するＬチャンク記憶装置１２５および参照カウントリスト１１６および主ロック１１４および副ロック１１５を具備する。なお、Ｓチャンク１２３のうち記号Ｓ７、および、Ｌチャンク１２６のうち記号Ｌ０３が点線で記載されているのは、以下の説明において動作開始時にはこれらのファイルが存在しておらず、以下で説明する新たなデータの登録に伴って新規に作成されるファイルであることを表す。これらの具体的な作成手順は以下で詳細に述べる。
【００１５】
第１図に記載の用語と、本発明の用語との対応を示す。本発明における第１チャンクを本実施の形態においてはＳチャンク１２３と呼称し、本発明における第２チャンクを本実施の形態においてはＬチャンク１２６と呼称し、本発明におけるチャンクプールを本実施の形態においてはＳチャンクプール１２４と呼称する。Ｓチャンクプール１２４は、Ｓチャンク１２３の索引情報である。
【００１６】
本情報記録装置１００は、特許文献１に開示されている２段階のチャンク生成動作を行う。この詳細な手順は該文献に開示されており、容易に実施可能である。以下では、特に該従来技術からの差分に関して、詳細に述べることとする。
第２図は、参照カウントリスト１１６が保持するデータの例を示す。表形式でデータが保持され、本例では行２０４と行２０５の２つのエントリを持つ。カラム２０１はＳチャンク１２３のファイル名を、カラム２０２は参照数を、カラム２０３は削除フラグを示す。参照数は、同時に複数の検索が行われた場合に、重複個数を数えるために用いる。
【００１７】
本例においては、１つ目の検索処理が実行中であり、Ｓチャンク「Ｓ１」と「Ｓ２」に対してファイル読み込みが行われようとしていることを表している。これらデータの更新手順については以下で詳細に説明していく。
第３図は、登録処理のフローを表す。図中、手順３１３は、発生したＬチャンク生成３０７の対象データであるＳチャンク１２３の並びに対して、ループによって処理を行うことを表す。
【００１８】
第４図は、検索処理のフローを表す。また、手順４１４の詳細を第５図に示す。これらの図中、手順４０８および手順４５６は、Ｓチャンクプール１２４検索４０３において得られたＳチャンク１２３の並びに対して、ループによって処理を行うことを表す。また、Ｓチャンク検索４１２およびＬチャンク検索４１６は、大量のファイルアクセスを伴い、検索条件によっては長大な時間を要する場合がある処理手順である。
【００１９】
以下では、データの検索処理および登録処理が並行的に行われた場合を例にとって、これらの手順について具体的な動作を示していく。
まず、既に述べたように、第２図が示す例では、情報記録装置１００は該１つ目の検索処理を実行中である。この検索は大量のデータ候補を対象とし、長大な時間がかかるものとする。
【００２０】
次に、２つ目の検索処理がネットワーク１０１を通じて情報記録装置１００に要求されたとする。情報記録装置１００の情報検索部１１３は、第４図に示すフローに沿って以下のように処理を行う。フロー中、手順４０１から手順４０３、手順４１２、および手順４１６は、既に述べた従来技術と同様の処理内容であり、特許文献１に手順の詳細が開示されている。
【００２１】
まず、主ロック１１４を確保する手順４０１が実行される。主ロック１１４が読み書きロックである場合には、検索なので読み込みロックを確保する。次に、一時プール１２１の中を、該要求された検索条件で検索し、検索に合致するデータ集合を得る手順４０２が実行される。次に、Ｓチャンクプール１２４の中を検索し、荷札情報の集合を得る手順４０３が実行される。ここで、参照カウントリスト１１６の操作を保護するための副ロック１１５を取得する手順４０４が実行される。副ロック１１５は、排他ロックである。
【００２２】
そして、手順４０８によって、Ｓチャンクプール検索４０３において得られたＳチャンク１２３の並びに対して、手順４０５から手順４０７の処理を繰り返し行う。即ち、情報記録装置１００は、未処理のＳチャンク１２３があるか否か手順４０８で判断する。情報記録装置１００は、未処理のＳチャンク１２３があると判断した場合、手順４０５にループする。また、情報記録装置１００は、未処理のＳチャンク１２３が無いと判断した場合、手順４０９の処理に移行する。
【００２３】
情報記録装置１００は、該Ｓチャンク１２３が参照カウントリスト１１６に存在しているか否か手順４０５で判断する。情報記録装置１００は、Ｓチャンク１２３が参照カウントリスト１１６に存在していると判断した場合、手順４０７で該Ｓチャンク１２３に対応する参照数に１を加算する。また、情報記録装置１００は、Ｓチャンク１２３が参照カウントリスト１１６に存在していないと判断した場合、手順４０６で該Ｓチャンク１２３を参照カウントリスト１１６に追加する。追加するエントリには、該Ｓチャンク１２３のファイル名と、参照数すなわち値１と、参照フラグとしてＮＯという値を記載する。
【００２４】
次に、副ロック１１５を解放する手順４０９が実行される。次に、該要求された検索条件で検索処理を行う必要があるＬチャンク１２６のファイル名一覧を取得する手順４１０が実行される。本実施の形態においては、単純に、その時点でＬチャンク記憶装置１２５内に存在する全てのＬチャンク１２６のファイル名を得る。次に、主ロック１１４を解放する手順４１１が実行される。
【００２５】
以上で主ロック１１４が解放されるので、これ以降、別のスレッドは、データの登録処理や検索処理を並行して実行できるようになる。
さらに、Ｓチャンクプール検索４０３で得られたＳチャンク１２３の並びに対して、個々のＳチャンク１２３のファイルを読み取り、該要求された検索条件で合致するデータを検索する手順４１２が実行される。次に、再度、副ロック１１５を確保して手順４１３が実行され、参照カウントリスト更新手順４１４すなわち第５図に示すフローで以下の処理を行う。
【００２６】
手順４５６によって、Ｓチャンクプール検索４０３において得られたＳチャンク１２３の並びに対して、手順４５１から手順４５５の処理を繰り返し行う。即ち、情報記録装置１００は、未処理のＳチャンク１２３があるか否か手順４５６で判断する。情報記録装置１００は、未処理のＳチャンク１２３があると判断した場合、手順４５１にループする。また、情報記録装置１００は、未処理のＳチャンク１２３が無いと判断した場合、処理を終了する。
【００２７】
まず、該Ｓチャンク１２３に対応する参照カウントリスト１１６内のエントリの、参照数列２０２から１を減じる手順４５１が実行される。その結果、情報記録装置１００は、参照数が０であるか否か手順４５２で判断する。さらに、情報記録装置１００は、該エントリの削除フラグ列２０３がＹＥＳであるか否か手順４５３で確認する。該削除フラグがＹＥＳであれば、該エントリに記載されたファイル名列２０１のＳチャンク１２３を削除する手順４５４が実行される。そして、削除フラグがＹＥＳであるかＮＯであるかに関わらず、該エントリを参照カウントリスト１１６から削除する手順４５５が実行される。
【００２８】
次に、副ロック１１５を解放する手順４１５が実行される。最後に、さらに、Ｌチャンクファイル名取得４１０で得られたＬチャンク１２６の並びに対して、個々のＬチャンク１２６のファイルを読み取り、該要求された検索条件で合致するデータを検索する手順４１６が実行される。以上で検索処理は終了であり、情報記録装置１００は上記手順で得られた全ての検索結果のデータを要求元に返却する。
【００２９】
なお、手順４１３及び手順４１５で確保または解放されるロックは、本実施の形態においては副ロック１１５としたが、主ロック１１４であってもよい。
ここで、説明のための例示として、例えば該２つ目の検索処理では、Ｓチャンクプール検索４０３によって「Ｓ２」と「Ｓ５」という２つのＳチャンク１２３が検索対象として得られたと仮定する。この場合、主ロック１１４の解放手順４１１までを実行した時点での、参照カウントリスト１１６が保持するデータを第６図に示す。Ｓ２とＳ５のうち、Ｓ２は行２０５として元々存在していたので参照数を２とし、Ｓ５は新規エントリとして行２０６に追加される。
【００３０】
上記示した一連の手順において、特に処理時間を要するのは、大量のファイルアクセスを伴うＳチャンク検索４１２およびＬチャンク検索４１６である。これらの手順以前に手順４１１で主ロック１１４が解放されているため、これらの手順（例えばＳチャンク検索４１２およびＬチャンク検索４１６）を実行している間に並行して、情報記録装置１００は他のデータ登録などの処理を行うことができる。
【００３１】
ここでは、説明のため、該２つ目の検索処理においてＳチャンク検索４１２に今しばらくの処理時間を要し、その間に、新たに、データ登録処理がネットワーク１０１を通じて情報記録装置１００に要求されたとする。情報記録装置１００の情報登録部１１１は、第３図に示すフローに沿って以下のように処理を行う。フロー中、手順３０２から手順３０８は、既に述べた従来技術と同様の処理内容であり、特許文献１に手順の詳細が開示されている。
【００３２】
まず、主ロック１１４を確保する手順３０１が実行される。主ロック１１４が読み書きロックである場合には、登録なので書き込みロックを確保する。次に、一時プール１２１に対して、登録対象データを登録する手順３０２が実行される。
ここで、一時プール１２１内のコンテンツ量が予め設定した閾値を超えた場合には手順３０３、及び手順３０４以降が実行される。すなわち、Ｓチャンク記憶装置１２２内に一時プール１２１内のデータの部分集合を記載した新たなＳチャンク１２３のファイルを作成する手順３０４が実行される。ここでは第１図の記号Ｓ７のファイルが作成されたものとする。次に、該データのサブセットを一時プール１２１から削除する手順３０５が実行される。そして、該Ｓチャンク記号Ｓ７のコンテンツ概要を記した情報である荷札情報をＳチャンクプール１２４へ登録する手順３０６が実行される。
【００３３】
ここで、Ｓチャンクプール１２４内のコンテンツ量が予め設定した閾値を超えた場合には手順３０７、及び手順３０８以降が実行される。すなわち、Ｌチャンク記憶装置１２５内にＳチャンクプール１２４内の荷札情報の部分集合に対応するＳチャンク１２３の部分集合のファイル内容を記載した新たなＬチャンク１２６のファイルを作成する手順３０８が実行される。ここでは、該Ｓチャンク１２３の部分集合として記号Ｓ２およびＳ４およびＳ５からなる３つのＳチャンク１２３が処理対象になったものとし、これら３つのファイル内容を記載した記号Ｌ０３のファイルが作成されたものとする。次に、副ロック１１５を確保する手順３０９が実行される。副ロック１１５は排他ロックである。
【００３４】
そして、情報記録装置１００の情報削除部１１２は、手順３１３によって、該Ｓチャンク１２３の部分集合に対して、手順３１０から手順３１２の処理を繰り返し行う。即ち、情報記録装置１００は、部分集合内で未処理のＳチャンク１２３があるか否か手順３１３で判断する。情報記録装置１００は、部分集合内に未処理のＳチャンク１２３があると判断した場合、手順３１０にループする。また、情報記録装置１００は、部分集合内に未処理のＳチャンク１２３が無いと判断した場合、手順３１４の処理に移行する。
【００３５】
情報記録装置１００は、手順３１０で該Ｓチャンク１２３が参照カウントリスト１１６に存在しているか否か判断する。Ｓチャンク１２３が参照カウントリスト１１６に存在していると判断した場合、情報記録装置１００は、手順３１２で該Ｓチャンク１２３に対応する削除フラグにＹＥＳを設定する。また、Ｓチャンク１２３が参照カウントリスト１１６に存在していないと判断した場合、情報記録装置１００は、手順３１１でＳチャンク１２３のファイルを削除する。
【００３６】
上記手順３１０から３１３の処理結果の参照カウントリスト１１６が保持するデータを第７図に示す。ここでは、第６図に示されるデータを保持する参照カウントリスト１１６に対してＳ２およびＳ４およびＳ５に関して処理を行うのであるから、参照カウントリスト１１６に存在するＳ２およびＳ５に関しては削除フラグ２０３がＹＥＳとなり、参照カウントリスト１１６に存在しないＳ４に関しては当該ファイルが削除される。
【００３７】
次に、情報記録装置１００の情報登録部１１１は、手順３１４で副ロック１１５を解放し、最後に、手順３１５で主ロック１１４を解放して処理終了となる。
ここでは、説明のため、該データ登録処理が以上示した一連の手順により完了した後、該２つ目の検索処理が完了したとする。この動作例においては、手順４１３以降が、第７図に示されるデータを保持する参照カウントリスト１１６に対して実行される。ここでは、該２つ目の検索処理では、Ｓチャンクプール検索４０３によって「Ｓ２」と「Ｓ５」という２つのＳチャンク１２３が検索対象として得られていたのであるから、Ｓ２に関しては参照カウントリスト１１６内の参照数２０２が２であるため１を減じて値１となり、Ｓ５に関しては参照カウントリスト１１６内の参照数２０２が１であるため１を減じて値０となり、かつ、削除フラグ２０３がＹＥＳであるため、ファイルＳ５が削除される。
【００３８】
上記の処理が完了した結果として参照カウントリスト１１６が保持するデータを第８図に示す。ここでは、第７図に示されるデータを保持する参照カウントリスト１１６に対してＳ２及びＳ５に関して処理が行われる。ファイルＳ２は、参照カウントリスト１１６内の参照数２０２が２であるため、１が減じられた結果値が１になる。また、ファイルＳ５は、参照カウントリスト１１６内の参照数２０２が１であるため、１が減じられた結果値が０になる。尚且つ、ファイルＳ５は、削除フラグ２０３がＹＥＳである。この為ファイルＳ５は、削除される。さらに、ファイルＳ５は、前記処理により参照数２０２が０になったため、情報記録装置１００が参照カウントリスト１１６からファイルＳ５に該当する行を削除する。
【００３９】
上記の処理手順の意味は以下の通りである。該データ登録処理において、本来はＳ２およびＳ４およびＳ５を削除すべきであるが、Ｓ２およびＳ５については並行して検索に用いられているため削除されてはならず、そのために削除を遅延する。該２つ目の検索処理が完了した段階で、Ｓ５についてはこれを用いている並行的な処理は存在しないため、この時点で削除する。なお、Ｓ２については、該１つ目の検索処理でも用いられているため、該検索処理が完了した時点で削除される。
【００４０】
以上示したように、データの検索処理において、長大な時間のかかる可能性のあるＳチャンク検索４１２およびＬチャンク検索４１６は、主ロック１１４を解放した状態で処理がなされるため、その間に情報記録装置１００は他のデータ登録やデータ検索の要求を並行して行うことができる。またこのため、特に、データ検索中であってもデータ登録を迅速に完了することができ、データの取りこぼし等が発生しないという効果が得られる。
【００４１】
本実施の形態に示した手順で得られる効果は、非特許文献１で示されるスマートフォン等で用いる軽量な情報記録装置１００の従来技術において開示されている手順を用いては、達成することができない。なぜならば、該従来技術は、登録されたデータが削除されないことを前提とし、検索結果を登録の古いものから順に返すという要求条件を満たすために工夫がなされたものだからである。本発明は、既に示したように２段階のチャンク生成を対象としており、Ｓチャンク１２３を削除してＬチャンク１２６を生成することが必要となるため、特にＳチャンク１２３の登録と検索の並行処理に関して該従来技術の前提にあてはまらず、従ってこれを適用することができないため、上記示した新たな一連の手順を発明したものである。
【００４２】
一方、本発明が対象とする装置においては、検索結果を登録の古いものから順に返すという特段の要求条件は存在しないため、該従来技術のような特段の工夫は必要とされず、具体的にはＬチャンク１２６の登録手順３０８と検索手順４１０および手順４１６の並行処理に関しては特段の配慮は不要であり、手順４１０でファイル名を取得した後に手順４１１で主ロック１１４を解放して並行処理を許可するだけの簡素な手順で良い。これは生成されたＬチャンク１２６が削除されることはないという本情報記録装置１００の特性を利用したものである。
【００４３】
本実施の形態が、特にＳチャンク１２３の登録と検索の並行処理に関して上記示した一連の手順により効果を得られるのは、２段階のチャンク生成という本情報記録装置１００の特性のうち特に以下の２つの特性を活用していることが大きく寄与している。１つは、データの検索において、時間のかかるＳチャンク１２３のファイルアクセスを伴う検索処理手順４１２に先だって、検索処理の対象となるファイルの集合を、手順４０３によって木構造を用いて事前に高速に取得することができることが挙げられる。このため、手順４０３と手順４１２の間に手順４１１のようにして主ロック１１４を解放することができる。この結果、情報記録装置１００は、主ロック１１４を確保した状態の時間を最小限に留めることができる。
【００４４】
いま１つは、データの登録において、手順３１１での削除処理の対象が、本情報記録装置１００が扱う個々のデータ単位ではなく、Ｓチャンク１２３のファイル単位であることが挙げられる。仮に、２段階のチャンク生成を採用せず、一時プール１２１からＬチャンク１２６を直接生成すると仮定した場合には、Ｌチャンク１２６生成のために削除する対象は、一時プール１２１内に蓄積されている個々のデータであり、特定のファイルを丸ごと削除するといった手順は採用できない。本実施の形態においては、Ｌチャンク１２６は複数のＳチャンク１２３のファイルの内容を記載したものであり、削除はファイル単位で行われるため、当該ファイルが並行する他のデータ検索処理で使われているか否かを参照カウントリスト１１６を用いて効果的に判定でき、ファイル削除を遅延することによって、データ登録とデータ検索との並行動作を可能とした。
【００４５】
なお、本実施の形態においても一時プール１２１からＳチャンク１２３の生成に関してはファイル単位の削除が採用できないという問題が存在し、このためこれらの処理中には主ロック１１４を解放できないという問題が存在するが、これは大きな問題とはならない。なぜなら、２段階のチャンク生成においては、一時プール１２１のサイズを小さく抑えることができるという利点があるため、一時プール１２１に関する検索処理は瞬時に終了するため、並行動作を阻害しないからである。
【００４６】
このように、本実施の形態においては、削除予定のファイルを記憶しておき不要になった時点で削除するという一般的手法を、２段階のチャンク生成と組み合わせることによって、２段階のチャンク生成の各種特性を活用することができ、顕著な効果を得ることができる。
【００４７】
なお、本実施の形態においては、参照カウントリスト１１６は表形式でデータを保持した。本発明の範囲はこれに限るものではなく、木構造やリストやハッシュや連想配列などを用いてもよい。また、参照カウントリスト１１６のようなデータを別途準備するのではなく、例えばファイル名やiノード等の各ファイルに付随する領域に、削除フラグに相当する情報を保持してもよい。
【００４８】
また、本実施の形態において、データ検索処理における一時プール１２１とＳチャンク１２３とＬチャンク１２６からの検索手順は、第４図に示した順序に限るものではなく、任意の順序でよい。特に、主ロック１１４を確保している間であれば、他の並行する処理が割り込んで処理結果が左右されるおそれはないため、検索結果の意味が変わらない範囲において任意の順序に並べ替えてもよい。
【００４９】
なお、この発明は上記実施形態に限定されるものではない。例えば、本発明の装置はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。また、この発明の要旨を逸脱しない範囲で上記実施形態を種々変形して実施可能である。
【００５０】
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５１】
１００…情報記録装置、１０１…ネットワーク、１１１…情報登録部、１１２…情報削除部、１１３…情報検索部、１１４…主ロック、１１５…副ロック、１１６…参照カウントリスト、１２１…一時プール、１２２…Ｓチャンク記憶装置、１２３…Ｓチャンク、１２４…Ｓチャンクプール、１２５…Ｌチャンク記憶装置、１２６…Ｌチャンク。
【図１】
0005909467.tif 000002
【図２】
0005909467.tif 000003
【図３】
0005909467.tif 000004
【図４】
0005909467.tif 000005
【図５】
0005909467.tif 000006
【図６】
0005909467.tif 000007
【図７】
0005909467.tif 000008
【図８】
0005909467.tif 000009