(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】ファイルシステム及びファイルへのリンク方法、プログラム
(51)【国際特許分類】
G06F 16/13 20190101AFI20231212BHJP
【FI】
G06F16/13 200
(21)【出願番号】P 2022135003
(22)【出願日】2022-08-26
【審査請求日】2022-08-26
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】三輪 武史
【審査官】原 秀人
(56)【参考文献】
【文献】特開2006-107215(JP,A)
【文献】特開2003-337804(JP,A)
【文献】川合 英俊,離陸するか,OS/2 第2部 OS/2 1.2版の新ファイル・システム IFS機構を利用して高性能なファイル・システムを追加,日経バイト,日本,日経BP社,1990年02月01日,第68号,pp. 231-240
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ファイル
とリンクを互いに双方向に関連付け、前記リンクと他のリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築するリンク処理部
を備え、
前記リンク処理部は、
前記双方向リンクのために記憶する、前記ファイル
のリンク先の識別情報と、前記リンクのリンク先及びリンク元の識別情報
とを、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する、
ファイルシステム。
【請求項2】
前記所定の範囲内にあるリンクに、当該リンクの上層側の前記ファイル又は前記リンクに対する前記双方向リンクが設定されている、
請求項1に記載のファイルシステム。
【請求項3】
前記リンク処理部は、
前記双方向リンクが設定されている、当該リンクの上層側の前記ファイル又は前記リンクが保持する、前記ファイルの識別情報を当該リンクに対して通知する、
請求項1に記載のファイルシステム。
【請求項4】
前記双方向リンクが設定されている、当該リンクの上層側の前記ファイル又は前記リンクは、前記ファイルの識別情報を保持していて、
前記リンク処理部は、
当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、
請求項1に記載のファイルシステム。
【請求項5】
前記リンク処理部は、
前記ファイルの識別情報の変更に応じて、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、
請求項4に記載のファイルシステム。
【請求項6】
前記リンク処理部は、
当該リンクからの要求に応じて、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、
請求項4に記載のファイルシステム。
【請求項7】
当該リンクは、前記ファイルの識別情報を保持し、片方向リンクを用いることで前記ファイルを参照可能に構成されていて、
前記リンク処理部は、
前記片方向リンクが利用できない場合に、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、
請求項4に記載のファイルシステム。
【請求項8】
ファイル
とリンクを互いに双方向に関連付け、前記リンクと他のリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築し、
前記双方向リンクのために記憶する、前記ファイル
のリンク先の識別情報と、前記リンクのリンク先及びリンク元の識別情報
とを、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する、
ファイルへのリンク方法。
【請求項9】
コンピュータに、請求項8に記載のファイルへのリンク方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイルシステム及びファイルへのリンク方法、プログラムに関する。
【背景技術】
【0002】
コンピュータのファイルシステムにおいて、ファイル(ディレクトリ、フォルダを含む。)へアクセスするための識別情報(ファイル名、位置情報などを含む。)を、そのファイルに関連付けられる「リンク(別名、ショートカット、ハイパーリンク、等。)」に付与して、そのファイルにリンクする側で保持することで、そのファイルへのアクセスが容易になる(例えば、特許文献1参照。)。「リンク」に付与されたファイルへアクセスするための識別情報と、実際のファイルの識別情報との間に不整合が生じてしまうと、該リンクが利用不可能になり、そのファイルをアクセスできなくなるという問題点があった。例えば、ファイル名が変更されてしまった、ファイルが他のフォルダへ移動されてしまった、等の場合に、ファイルへアクセスするための識別情報(ファイル名、位置情報)と実際のファイルの識別情報との間に不整合が生じることがあった。
【0003】
ところで、ファイルの識別情報(ファイル名、位置情報)が変わってしまった場合でも、該リンクを利用可能とする手段が「双方向リンク」である。「双方向リンク」では、リンクを受ける側のファイルにも、リンクする側(リンク)の識別情報を記憶させる方法が利用される。ファイルの識別情報(ファイル名、位置情報)が変わる場合は、ファイルは該変化情報をリンクに通知し、リンク内の該ファイルに関する識別情報を書き変えることによって、以後も該リンクが利用可能となる。
【0004】
しかしながら、双方向リンクを用いると、ファイルが受けるリンクの識別情報を、該ファイルに夫々保存する必要があり、許容するリンクの個数に応じてファイルのデータサイズが増加してしまうという問題点がある。例えば、インターネットでは、1つのファイルやその他の情報に、非常に多くの利用者のコンピュータがリンクする場合があり、この双方向リンクを用いると、ファイルに記憶するデータサイズが膨大となってしまい、その情報を処理するための計算量も増加し、さらにネットワークを流れるデータ量も増大してしまうという問題点があった。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ファイルシステムにおいてファイルへのリンクに双方向リンクを用いる場合でも、ファイルのデータサイズの増大を抑制し、リンクを処理するための計算量の増大を抑制し、ネットワークを流れるデータ量の増大を抑制することが望まれる。これに対し、双方向リンクを用いたファイルシステム及びファイルのリンク方法に、この処理に係る負荷が過度に増大することがあった。
【0007】
本発明の目的の一例は、上述の課題を解決するためのファイルシステム及びファイルへのリンク方法、プログラムを提供することである。
【課題を解決するための手段】
【0008】
本発明の第1の態様によれば、ファイルシステムは、ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築するリンク処理部を備え、前記リンク処理部は、前記双方向リンクのために記憶する、前記ファイル又は前記リンクのリンク先及びリンク元の識別情報を、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する。
【0009】
本発明の第2の態様によれば、ファイルへのリンク方法は、ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築し、前記双方向リンクのために記憶する、前記ファイル又は前記リンクのリンク先及びリンク元の識別情報を、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する。
【0010】
本発明の第3の態様によれば、プログラムは、コンピュータに、第2の態様のファイルへのリンク方法を実行させる。
【発明の効果】
【0011】
本発明によれば、ファイルの双方向リンクをツリー状にすることで、ファイルの識別情報を分散して保管することができる。
【図面の簡単な説明】
【0012】
【
図1A】第1の実施形態に係るコンピュータの構成を示す概略ブロック図である。
【
図1B】本実施形態に係るコンピュータの処理を説明するための図である。
【
図1C】本実施形態のファイル構造を示す図である。
【
図2】本実施形態のファイル1の詳細を説明した図である。
【
図3】本実施形態のリンクA2の詳細を説明した図である。
【
図4】本実施形態のリンクC4の詳細を説明した図である。
【
図5】本実施形態のリンクE6の詳細を説明した図である。
【
図6】本実施形態の双方向リンクについて説明するための図である。
【
図7】第2の実施形態のコンピュータ100が参照するファイル構造320Aを示す図である。
【
図8】本実施形態のリンクC4Aの詳細を説明した図である。
【
図9】本実施形態の双方向リンクについて説明するための図である。
【
図10】第3の実施形態のコンピュータ100が参照するファイル構造320Bの構成を示す図である。
【
図11】本実施形態のリンクE6Bの詳細を説明した図である。
【
図12】本実施形態の各リンクにファイル1の識別情報を持たせる事例を説明した図である。
【
図13】第4の実施形態のファイル処理システム10の構成図である。
【
図14】第5の実施形態のファイルシステム700の構成例を示す図である。
【
図15】本実施形態のファイルへのリンク処理の手順の例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0014】
(第1の実施形態)
以下、第1の実施形態のファイルシステムについて、図を参照して説明する。
以下の説明において、以下の表記を用いて説明する。
コンピュータによって識別されるデータの塊は、ファイル又はデータセットと呼ばれることがある。以後、そのデータの塊を単にファイルと記載する。また、コンピュータはファイルを、記憶装置などの記憶領域に格納して利用する。ファイルの格納先は、記憶領域の中で論理的に規定され階層的な構造で構成されることがある。ファイルの格納先の位置情報はフォルダやディレクトリと呼ばれることがある。以後、その位置情報を単にディレクトリと記載する。
【0015】
コンピュータが記憶装置の中で扱うファイルとディレクトリを、その階層的な構造内の特定の位置に格納したまま、その階層的な構造内の別の位置から同ファイルとディレクトリを参照するための手段が提供されている。その手段は、ソフトリンク、ショートカット、エイリアス、シンボリックリンク、ジャンクション、クイックアクセス等の名称で呼ばれる。
【0016】
以後、記憶装置の中で扱うファイルとディレクトリを、別の場所から参照する手段を「リンク」と呼ぶ。別の場所とは、そのファイルとディレクトリに関連付けられた場所とは異なる場所である。
【0017】
リンクに関する情報には、例えば、ファイルとディレクトリに関する名前、位置情報、IDなどの識別情報が含まれる。この識別情報は、データサイズを比較的小さく構成できる。コンピュータが必要に応じてファイルの中身を読んだり書き込んだり、ファイルを操作したり、他の位置にあるファイルをその位置に移動したりする際にリンクを利用することで、ファイルの複製やディレクトリの複製を用いることなく、ファイルの情報を利用できる。
【0018】
以後、そのファイルの名前や位置情報、IDなどの情報を、識別情報と呼ぶ。このリンクという手段は、インターネットなどのネットワークを介した各種処理に利用されている。例えば、物理的に遠く離れた場所の記憶装置内にあるファイルあるいはその他の情報を、コンピュータが遠隔から利用するために、ハイパーテキストにおけるハイパーリンク、お気に入りやアクセス履歴という形で広く利用されている。
このリンクという手段は、片方向に参照可能な識別情報を用いるものであり、その識別情報が変わると利用できなくなることがあった。
【0019】
リンクにおいてファイルの識別情報が変わると利用が不可能になるという問題を解決する手段として双方向リンクがある。
双方向リンクは、双方向に参照を可能にするようにファイルの識別情報を構成する。例えば、リンクを受ける側(リンク先)のファイルに、リンクをする側(リンク元)の識別情報を記憶させる。識別情報が変わる場合には、識別情報が変わることを示す情報を用いて、リンクに係る識別情報を書き変えることによって、識別情報が変わった後も利用が可能になる。
【0020】
図1Aは、本実施形態に係るコンピュータの構成を示す概略ブロック図である。
図1Bは、本実施形態に係るコンピュータの処理を説明するための図である。
図1Aに示すコンピュータ100は、CPU200と、主記憶装置300と、補助記憶装置400と、インタフェース500と、を備える。コンピュータ100が備える、CPU200と、主記憶装置300と、補助記憶装置400と、インタフェース500について、その個数、容量、能力などに制限はなく、適宜複数のコンピュータ100に分散させてよい。
【0021】
例えば、上位要求処理部210、リンク処理部220などの各処理部が、コンピュータ100に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置400に記憶されている。CPU200は、プログラムを補助記憶装置400から読み出して主記憶装置300に展開し、当該プログラムに従って上記処理を実行する。また、CPU200は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置300に確保する。各装置と他の装置との通信は、インタフェース500が通信機能を有し、CPU200の制御に従って通信を行うことで実行される。
【0022】
例えば、上位要求処理部210がコンピュータ100に実装される場合、上位要求処理部210の動作は、プログラムの形式で補助記憶装置400に記憶されている。CPU200は、プログラムを補助記憶装置400から読み出して主記憶装置300のプログラム領域310に展開し、当該プログラムに従って上記処理を実行する。この上位要求処理部210は、アプリケーションプログラム、ブラウザ、OSの一部などを含めて形成されていてもよい。
【0023】
また、CPU200は、プログラムに従って、上位要求処理部210の処理のための記憶領域を主記憶装置300に確保する。上位要求処理部210と他の装置との通信は、インタフェース500が通信機能を有し、CPU200の制御に従って動作することで実行される。上位要求処理部210とユーザとのインタラクションは、インタフェース500が表示装置及び入力デバイスを備え、CPU200の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0024】
リンク処理部220がコンピュータ100に実装される場合、リンク処理部220及びその各部の動作は、プログラムの形式で補助記憶装置400に記憶されている。CPU200は、プログラムを補助記憶装置400から読み出して主記憶装置300に展開し、当該プログラムに従って上記処理を実行する。
【0025】
また、CPU200は、プログラムに従って、リンク処理部220の処理のための記憶領域を主記憶装置300に確保する。リンク処理部220と他の装置との通信は、インタフェース500が通信機能を有し、CPU200の制御に従って動作することで実行される。リンク処理部220とユーザとのインタラクションは、インタフェース500が表示装置及び入力デバイスを備え、CPU200の制御に従って各種画像の表示を行い、ユーザ操作を受け付けることで実行される。
【0026】
図1Cは、本実施形態のファイルシステム内のファイル構造320を示す図である。
ここではファイル構造320として、最も単純なツリー構造である二分木を例に説明するが、これに制限されることなく、多分木を用いても良い。
ファイル1は、コンピュータ100がファイルシステム内で利用する塊のデータである。
リンクA2、リンクB3、リンクC4、リンクD5、リンクE6、リンクF7は、ファイル1を、ファイル1が格納される場所(ディレクトリ)とは別の場所からアクセスするためのリンクである。
図1Cに示すように、ファイル1に係るリスト構造が形成されている。以下、ファイル1から各リンクまでのパスを列挙する。
【0027】
ファイル1=リンクB3、
ファイル1=リンクA2=リンクD5、
ファイル1=リンクA2=リンクC4=リンクE6、及び
ファイル1=リンクA2=リンクC4=リンクF7。
【0028】
図1Cには、例えば、ファイル1を親ノードにした、下記の関係を含むツリー構造が示されている。リンクA2、リンクB3、リンクC4、リンクD5、リンクE6、リンクF7は、上記の親ノードに対する子ノード群を形成する。このうち、親ノードを第1階層としたときに、子ノード群の中で、リンクA2とリンクB3が第2階層の子ノードにあたり、リンクC4とリンクD5が第3階層の孫ノードにあたり、リンクE6とリンクF7が第4階層のひ孫ノードにあたる。
【0029】
ファイル1、リンクA2、リンクB3、リンクC4、リンクD5、リンクE6、及びリンクF7の各ノードを繋ぐ双方向矢印が、ツリー構造の枝(ブランチ)になる。
【0030】
例えば、ファイル1とリンクA2間のブランチをBDL12で示し、ファイル1とリンクB3間のブランチをBDL13で示す。リンクA2とリンクC4間のブランチをBDL24で示し、リンクA2とリンクD5間のブランチをBDL25で示す。リンクC4とリンクE6間のブランチをBDL46で示し、リンクC4とリンクF7間のブランチをBDL47で示す。
【0031】
この
図1C中の各「リンク」は、ファイル1等の参照先を示す識別情報を含めて構成される。さらに、リンクは、識別情報に係る所望の参照先の情報を取得するために、その識別情報を用いた処理をコンピュータに実行させるためのソフトウエアプログラムの実行体を含めて構成されてよい。
【0032】
図2は、本実施形態のファイル1の詳細を説明した図である。
ファイル1は、コンテンツ情報11を持つ。例えば、コンテンツ情報11には、その中身ともいえる数値、文字、画像、動画などのコンテンツのデータが含まれる。
ファイル1は、リンクA2の名前や位置情報、ID等の識別情報12を持つ。
ファイル1は、さらにリンクB3の名前や位置情報、ID等の識別情報13を持つ。
以下、「リンクA2の名前や位置情報、ID等の識別情報12」のことを、単に「リンクA2の識別情報12」と呼ぶ。他のリンクについても、同様である。
【0033】
図3は、本実施形態のリンクA2の詳細を説明した図である。
リンクA2は、ファイル1の識別情報21を持つ。
リンクA2は、リンクC4の識別情報22を持つ。
リンクA2は、リンクD5の識別情報23を持つ。
なお、「ファイル1の識別情報21」には、「ファイル1の名前や位置情報、ID等の識別情報」が含まれる。「ファイル1の名前や位置情報、ID等の識別情報」のことを単に「ファイル1の識別情報INFO」という。
【0034】
図4は、本実施形態のリンクC4の詳細を説明した図である。
リンクC4は、リンクA2の識別情報41を持つ。
リンクC4は、リンクE6の識別情報42を持つ。
リンクC4は、リンクF7の識別情報43を持つ。
【0035】
図5は、本実施形態のリンクE6の詳細を説明した図である。
リンクE6は、リンクC4の識別情報61を持つ。
上記の各リンクは、双方向リストによって関連付けられる構造体として形成されている。
【0036】
なお、ファイル1には、これを参照する処理を含むファイル1のリンク処理P1(
図1B)が関連付けられている。
また、リンクA2には、これを参照する処理を実行するリンク処理PA2(
図1B)が関連付けられている。リンクB3には、これを参照する処理を実行するリンク処理PB3(
図1B)が関連付けられている。リンクC4には、これを参照する処理を実行するリンク処理PC4(
図1B)が関連付けられている。リンクD5には、これを参照する処理を実行するリンク処理PD5(
図1B)が関連付けられている。リンクE6には、これを参照する処理を実行するリンク処理PE6(
図1B)が関連付けられている。リンクF7には、これを参照する処理を実行するリンク処理PF7(
図1B)が関連付けられている。
【0037】
リンク処理PA2、リンク処理PB3、リンク処理PC4、リンク処理PD5、リンク処理PE6、リンク処理PF7の夫々は、要求に応じて生成され、リンク先に係る情報処理を終えたのちに消滅するプロセスであってもよく、リンク処理部220に恒久的に配置されているプロセスであってもよい。
【0038】
図6を参照して、本実施形態の双方向リンクについて説明する。
図6は、本実施形態の双方向リンクについて説明するための図である。
図6に、前述の
図1Bから
図5に示した双方向リンクの関係を纏めて示す。
図6に示す矢印は、参照関係があることを示す。矢印の元にあたるリンクの識別情報は、その矢印の先にあたるファイル又はリンクを参照するための識別情報を含む。この矢印は、矢印の先を参照可能であることを示す。
【0039】
なお、逆向きの矢印の組が設けられている場合、相互に参照関係がある双方向リンクが設定されていることを示す。逆向きの矢印の組が設けられていない場合、相互に参照関係がある双方向リンクが設定されていないことを示す。この
図6に示すファイル構造320の双方向リンクは、所定の範囲内で互いに隣接する階層のファイルとリンクとの間、又は所定の範囲内で互いに隣接する階層のリンクの間に設定されている。
【0040】
以下、リンクE6に係る処理が、ファイル1のコンテンツ情報11を利用する事例について説明する。以下、幾つかの場合に分けて、順に説明する。
【0041】
(リンクA2においてファイル1の識別情報21を利用可能な場合について)
まず、リンクA2におけるファイル1の識別情報21を利用可能な場合について例示する。このファイル1の識別情報21には、ファイル1をアクセス可能にする識別情報(ファイル1の識別情報INFOと呼ぶ。)が含まれている。ファイル1の識別情報INFOは、実際のファイル1の識別情報に相当する。以下、ファイル1の識別情報21に含まれるファイル1の識別情報INFOを利用する事例について示す。
例えば、CPU200は、上位要求処理部210として、ファイル構造320のリンクE6に対応するディレクトリにおける処理を実行中に、ファイル1の識別情報INFOを要求するためにリンクE6を参照する。リンクE6が上位要求処理部210から参照されると、CPU200は、これに応じてリンク処理PE6を実行する。リンク処理PE6の中で、CPU200は、リンクE6に保持されているリンクC4の識別情報61を使用して、そのリンク先のリンクC4に対してファイル1の識別情報INFOを要求する。
【0042】
リンクC4に対して、リンクE6のリンク処理PE6からファイル1の識別情報INFOが要求されると、CPU200は、リンク処理PC4を起動する。リンク処理PC4の中で、CPU200は、リンクC4に保持されているリンクA2の識別情報41を使用して、そのリンク先のリンクA2に対して、ファイル1の識別情報INFOを要求する。
【0043】
リンクA2に対して、リンクC4のリンク処理PC4からファイル1の識別情報INFOが要求されると、CPU200は、リンク処理PA2を起動する。リンク処理PA2の中で、CPU200は、リンクA2のファイル1の識別情報21に含まれるファイル1の識別情報INFOを、リンクC4に送る。
【0044】
CPU200は、リンクC4のリンク処理PC4の中で、リンクA2からファイル1の識別情報INFOを受け取ると、リンクE6にファイル1の識別情報INFOを送る。
【0045】
CPU200は、リンクE6のリンク処理PE6の中で、リンクC4からファイル1の識別情報INFOを受け取ると、そのファイル1の識別情報INFOを使用してファイル1をアクセスして、ファイル1のコンテンツ情報11を取得して利用できる。
【0046】
上記の手順によりCPU200は、リンクE6のリンク処理PE6による要求に応じて、ファイル1のコンテンツ情報11を取得できる。
【0047】
(ファイル1の識別情報が変わり、古い識別情報が利用できなくなる場合について)
次に、ファイル1の識別情報が変わった場合の動作を説明する。
ファイル1の実際の位置を示すファイル1の識別情報が変わったことによって、リンクA2が保持していたファイル1の識別情報21によってファイル1が利用できなくなる場合がある。
例えば、実際のファイル1の識別情報がINFO1からINFO2に変わった場合、ファイル1のリンク処理P1(
図1B)は、変わった後の識別情報INFO2と、その識別情報INFO2への変更要求とを、各リンクのリンク処理に対して送信する。リンク処理P1は、例えばリンクA2とリンクB3におけるファイル1の識別情報(INFO1)をINFO2に更新させる。
このときリンクA2のリンク処理PA2は、ファイル1の新たな識別情報INFO2を受け取ると、ファイル1の識別情報21に、その新たな識別情報INFO2を書き込み、更新させる。
リンクB3のリンク処理PB3についても同様である。
【0048】
上記のように、リンク処理P1からの通知先は、限定的であるが、双方向リンクが設定されているリンクに対して、識別情報の更新要求を通知できる。
このような手順に従い、ファイル1の識別情報(INFO2)を、各リンクに順に伝搬して、リンク内に保持する他のリンクの識別情報を、正しいファイル1の識別情報(例えば、INFO2)に更新させる。これによって、各リンクが利用可能なファイル1の識別情報INFOが実際のファイル1の識別情報から変化したとしても、各リンクで正しいファイル1の識別情報(例えば、INFO2)を利用することができ、ファイル1のコンテンツ情報11を利用することが可能になる。
【0049】
このように、ファイル1は、全てのリンクの識別情報を保持する必要はなく、ツリー構造が二分木であれば、分岐先の2つのリンクの識別情報を保持するだけで良い。代わりに、ツリー構造が多分木であれば、その枝の数に対応する個数のリンクの識別情報を保持するだけでよい。ファイル1は、予め定められた双方向リンクの個数と同数のリンクの識別情報を保持するだけでよい。
【0050】
上記の実施形態によれば、コンピュータ100(ファイルシステム)は、ファイル1又は各リンクを互いに双方向に関連付ける双方向リンクをツリー状に構築するリンク処理部220を備える。リンク処理部220は、双方向リンクのために記憶する、ファイル1又は各リンクからのリンク先及びリンク元の識別情報を、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する。これにより、コンピュータ100(ファイルシステム)は、双方向リンクを用いた処理に係る負荷が過度に増大することを抑制できる。
【0051】
なお、上記の所定の範囲内にあるリンクには、当該リンクの上層側のファイル1又はリンクに対する双方向リンクが設定されていてよい。
リンク処理部220は、その「双方向リンクが設定されている当該リンクの上層側」のファイル1が保持する、ファイル1の識別情報INFOを当該リンクに対して通知するとよい。
【0052】
双方向リンクが設定されている、当該リンクの上層側のファイル1又はリンクは、ファイル1の識別情報INFOを夫々保持している場合がある。
この場合、リンク処理部220は、当該リンクの上層側のファイル1又はリンクに保持されていたファイル1の識別情報INFOを当該リンクに対して通知するとよい。
また、この場合、リンク処理部220は、ファイル1の識別情報の変更に応じて、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報INFOを当該リンクに対して通知してもよい。
また、この場合、リンク処理部220は、当該リンクからの要求に応じて、当該リンクの上層側のファイル1又はリンクに保持されていたファイル1の識別情報INFOを当該リンクに対して通知してもよい。
【0053】
(第2の実施形態)
第2の実施形態では、
図7から
図9を参照して、特定の下位の階層の特定のリンクからファイル1を直接アクセスする場合について説明する。
【0054】
図7は、本実施形態のコンピュータ100が参照するファイル構造320Aの構成を示す図である。
ファイル構造320Aの構成は、前述のファイル構造320に対し、第3階層の特定のリンクから直接第1階層のファイル1をアクセス可能な点が付加されている点が異なる。第3階層のリンクには、リンクC4に代わるリンクC4Aが含まれる。ここで示す事例における第3階層の特定のリンクは1つであるが、この個数に制限はなく、適宜設定してよい。
【0055】
図8は、本実施形態のリンクC4Aの詳細を説明した図である。
リンクC4Aは、前述のリンクC4と同様に、リンクA2の識別情報41と、リンクE6の識別情報42と、リンクF7の識別情報43とを持つ。さらに、リンクC4Aは、ファイル1の識別情報44を持つ。
上記は、リンクC4Aを例示するものであるが、リンクD5、リンクE6、リンクF7などの他のリンクについてもリンクC4Aと同様に、ファイル1の識別情報を持つことができる。
【0056】
図9を参照して、本実施形態の双方向リンクについて説明する。
図9は、本実施形態の双方向リンクについて説明するための図である。
図9は、前述の
図6に代わるものである。
図9に、
図8のリンクC4Aを含めた双方向リンクの関係を纏めて示す。ファイル構造320Aでは、リンクC4Aから、ファイル1を参照するための片方向リンクが、前述の
図6に示したファイル構造320に対して付加されている。リンクC4Aからファイル1を参照する片方向リンクをL4A1で示す。
なお、リンクE6などの説明のリンクC4をリンクC4Aに読み替える。
【0057】
(リンクA2においてファイル1の識別情報21を利用可能で、リンクC4Aにおいてファイル1の識別情報44を利用可能な場合について)
リンクC4Aからファイル1を利用する場合の動作を説明する。
CPU200は、リンクC4Aが保持するファイル1の識別情報44を用いて、ファイル1をアクセスしてファイル1のコンテンツ情報11を利用する。
このように、実際のファイル1の識別情報が変化していない場合には、直接ファイル1のコンテンツ情報11の利用が可能である。
【0058】
(ファイル1の識別情報が変わり、古い識別情報が利用できなくなる場合について)
ファイル1の実際の位置を示すファイル1の識別情報がINFO1からINFO2に変わったことによって、リンクC4Aが保持していたファイル1の識別情報44(INFO1)が利用できなくなる。このような事象が生じた場合には、CPU200は、リンクC4Aに保持されているリンクA2の識別情報41を使用して、リンクA2に保持されているファイル1の識別情報を、リンクA2に対して要求して、更新されたファイル1の識別情報INFO2を取得するとよい。
【0059】
リンクC4AからリンクA2に対して、ファイル1の識別情報が要求されると、CPU200は、リンクA2に保持されているファイル1の識別情報21をファイル1の識別情報INFOとして、リンクC4Aに送る。
CPU200は、リンクC4Aのリンク処理PC4Aの中で、リンクA2からのファイル1の識別情報としてファイル1の識別情報INFO2を受け取ると、その識別情報を利用するとともに、ファイル1の識別情報44に正しい識別情報(実際のファイル1の識別情報としての識別情報INFO2)を書き込む。
【0060】
上記の通り実際のファイル1の識別情報がINFO1からINFO2に変わりファイル1の識別情報(INFO1)が利用できないものになったときには、CPU200は、ファイル1から双方向リンクが設定されているリンクA2とリンクB3に対して、変わった後の識別情報INFO2を送る。これにより、リンクA2とリンクB3とがそれぞれ保持するファイル1の識別情報が、正しい識別情報INFO2に更新される。
【0061】
このように、ファイル1の識別情報が変化してしまったとしても、変化した後のファイル1の識別情報(例えば、識別情報INFO2)を得る手段があるため、第3階層の特定のリンクからファイル1のコンテンツ情報11を利用することができる。
【0062】
上記の実施形態によれば、リンクC4Aは、ファイル1の識別情報を、ファイル1の識別情報44に保持する。ファイル1の識別情報44に保持するファイル1の識別情報に基づいて、ファイル1に対する片方向リンクを用いることで、リンクC4Aから、ファイル1を参照可能に構成されている。
リンク処理部220は、その片方向リンクが利用できない場合に、リンクC4Aの上層側のリンクA2に保持されていたファイル1の識別情報INFO2をリンクC4Aに対して通知する。これにより、リンクC4Aにおける「ファイル1の識別情報44」内の情報を識別情報INFO2に更新することができる。
【0063】
なお、リンクA2の場合には、その上層側のファイル1に保持されていたファイル1の識別情報をリンクA2に対して通知する。これにより、リンクA2における「ファイル1の識別情報21」内の情報を更新することができる。
【0064】
(第3の実施形態)
第3の実施形態では、
図10から
図12を参照して、特定の下位の階層の各リンクからファイル1を直接アクセスする場合について説明する。
【0065】
図10は、本実施形態のコンピュータ100が参照するファイル構造320Bの構成を示す図である。
ファイル構造320Bの構成は、前述のファイル構造320に対し、第3階層以下の各リンクから直接第1階層のファイル1をアクセス可能な点が付加されている点が異なる。第3階層以下のリンクには、リンクC4、リンクD5、リンクE6、リンクF7に代わるリンクC4B、リンクD5B、リンクE6B、リンクF7Bが含まれる。ここで示す事例では、第3階層以下の全てのリンクを対象にしているが、この個数に制限はなく、適宜設定してよい。
【0066】
図11を参照して、第3の実施形態の各リンクにファイル1の識別情報を持たせる方法について説明する。
図11は、本実施形態のリンクE6Bの詳細を説明した図である。
リンクE6Bは、リンクC4Bの識別情報61と、ファイル1の識別情報64とを持つ。
上記は、リンクE6Bを例示するものであるが、リンクC4B、リンクD5B、リンクF7Bなどの他のリンクについてもリンクE6Bと同様に、ファイル1の識別情報(INFO)を持つ。
【0067】
図12を参照して、本実施形態の双方向リンクについて説明する。
図12は、本実施形態の各リンクにファイル1の識別情報を持たせる事例を説明した図である。
図12は、前述の
図6、
図9に代わるものである。
図12に、
図9のリンクC4Aと同等のリンクC4B、リンクE6と同等のリンクE6Bなどを含めた双方向リンクの関係を纏めて示す。ファイル構造320Bでは、ファイル1を参照するための片方向リンクが、第3層と第4層のリンクに夫々付加されている。
なお、リンクC4Bからファイル1を参照する片方向リンクをL4B1で示し、リンクE6Bからファイル1を参照する片方向リンクをL6B1で示す。
なお、リンクE6などの説明のリンクC4をリンクC4Bに読み替える。
【0068】
(各リンクにおいてファイル1の識別情報INFOを利用可能な場合について)
CPU200が片方向リンクを用いて各リンクからファイル1を直接参照して、ファイル1のコンテンツ情報11を利用する場合の動作を説明する。
CPU200は、例えば、リンクC4Bが保持するファイル1の識別情報44を用いて、ファイル1をアクセスしてファイル1のコンテンツ情報11を利用する。リンクC4Bに限らず他のリンクも、リンクC4Bと同様に、夫々保持するファイル1の識別情報INFOを用いて、ファイル1をアクセスする。
このように、実際のファイル1の識別情報が変化していない場合には、ファイル1を直接参照して、ファイル1のコンテンツ情報11を利用できる。
【0069】
(ファイル1の識別情報が変わり、古い識別情報が利用できなくなる場合について)
実際の位置を示すファイル1の識別情報がINFO1からINFO2に変わったことによって、リンクC4Bがファイル1の識別情報44を用いて保持していたファイル1の識別情報(例えば、INFO1)によってファイル1が利用できなくなる場合がある。
【0070】
この
図12に示すように、各リンクは、それぞれファイル1の識別情報を持つ。このような事象が生じた場合には、例えば、CPU200は、ファイル1が保持する識別情報を用いて、各リンクにファイル1の識別情報を送って更新させるとよい。以下、ファイル1からリンクE6Bまでのパスを例示して、これについて説明する。
【0071】
CPU200は、ファイル1の識別情報が変わったとき、例えば、リンクA2とリンクC4BとリンクE6Bとに対して、変化した後の識別情報(例えば、INFO2)を送る。変化した後の識別情報には、ファイル1の実際の位置を示す識別情報INFO2が含まれる。この識別情報を用いることで、各リンクからファイル1を参照することが可能になる。
【0072】
CPU200は、リンクA2のリンク処理PA2の中で、ファイル1からその識別情報を受け取ると、ファイル1の識別情報21に受け取った識別情報INFO2を書き込み、リンクC4Bと、リンクD5Bにファイル1の識別情報INFO2を送る。
【0073】
CPU200は、リンクC4Bのリンク処理PC4Bの中で、リンクA2からファイル1の識別情報INFO2を受け取ると、ファイル1の識別情報44に受け取った識別情報INFO2を書き込み、リンクE6Bと、リンクF7Bにファイル1の識別情報INFO2を送る。
【0074】
CPU200は、リンクE6Bのリンク処理PE6Bの中で、リンクC4Bからファイル1の識別情報INFO2を受け取ると、ファイル1の識別情報64にファイル1の識別情報INFO2を書き込む。
【0075】
このようにして、各リンクのファイル1の識別情報が更新されることにより、各リンクは、ファイル1の正しい識別情報(識別情報INFO2)を取得して保持することができ、仮に実際のファイル1の識別情報が変化しても、ファイル1のコンテンツ情報11を利用することが可能となる。
【0076】
本実施形態によれば、リンク処理部220は、その「双方向リンクが設定されている当該リンクの上層側」のファイル1又は各リンクが夫々保持する、「ファイル1の識別情報」を当該リンクに対して通知するとよい。
【0077】
上記の場合、双方向リンクが設定されている、当該リンクの上層側のファイル1又はリンクは、ファイル1の識別情報を夫々保持している。
この場合、リンク処理部220は、当該リンクの上層側のファイル1又はリンクに保持されていたファイル1の識別情報を当該リンクに対して通知するとよい。
【0078】
(第4の実施形態)
図13を参照して、実施形態のファイル処理システム10について説明する。
図13は、本実施形態のファイル処理システム10の構成図である。
ファイル処理システム10は、コンピュータ100と、コンピュータ100Aから100Fとを備える。
【0079】
コンピュータ100と、100Aから100Fは、互いに独立して構成されているコンピュータであって、ネットワークNWを介して、互いに通信可能に接続されている。コンピュータ100Aから100Fには、互いに共通するファイルシステムが実装されている。
【0080】
例えば、コンピュータ100の記憶領域には、ファイル1が格納されている。コンピュータ100Aの記憶領域には、リンクA2が格納されている。コンピュータ100Bの記憶領域には、リンクB3が格納されている。コンピュータ100Cの記憶領域には、リンクC4が格納されている。コンピュータ100Dの記憶領域には、リンクD5が格納されている。コンピュータ100Eの記憶領域には、リンクE6が格納されている。コンピュータ100Fの記憶領域には、リンクF7が格納されている。
【0081】
コンピュータ100と、100Aから100Fは、前述の
図1Cに示したようなファイル構造で互いに関連付けられている。ファイル処理システム10は、ファイル1及び各リンクが、複数のコンピュータに分散配置される一例である。上記のように、ファイル処理システム10では、ファイル1及び各リンクが、複数のコンピュータに分散配置されている。コンピュータ100と、100Aから100Fは、共通のファイルシステムによって関連付けられているため、物理的なデータの配置によらずに、夫々が必要とする情報を取得することができる。これにより、コンピュータ100と、100Aから100Fにおいて、第1の実施形態で例示した1つのコンピュータ100に全てのデータが配置される場合と同様な論理的な接続が補償されることにより、第1の実施形態と同様に、双方向リンクを用いた処理に係る負荷が過度に増大することを抑制できる。
【0082】
(第5の実施形態)
図14を参照して、実施形態のファイルシステム700について説明する。
図14は、本実施形態のファイルシステム700の構成例を示す図である。
ファイルシステム700は、リンク処理部720を備える。
【0083】
かかる構成で、リンク処理部720は、ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築する。リンク処理部720は、双方向リンクのために記憶する、ファイル又はリンクのリンク先及びリンク元の識別情報を、ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する。これにより、双方向リンクを用いたファイルシステム700の処理の負荷を軽減させることができる。
【0084】
例えば、各双方向リンクのうち、所定の範囲内にあるリンクに対して、ファイル又はリンクのリンク先及びリンク元の識別情報が付与される。これによって、ファイル又はリンクを関連付ける範囲を、効率よく制限することができることから、双方向リンクを用いたファイルシステム700の処理の負荷を軽減させることができる。
【0085】
図15は、本実施形態のファイルへのリンク処理の手順の例を示すフローチャートである。
図15に示すファイルへのリンク方法は、ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築すること(ステップS71)と、双方向リンクのために記憶する、ファイル又はリンクのリンク先及びリンク元の識別情報を、ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与すること(ステップS72)とを含む。
【0086】
ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築すること(ステップS71)では、例えば、リンク処理部720は、関連するファイル又はリンクの組に識別情報を用いて双方向リンクを設定し、その双方向リンクをツリー状に構成する。
ファイル又はリンクのリンク先及びリンク元の識別情報を、ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与すること(ステップS72)では、例えば、リンク処理部720は、双方向リンクのために記憶する「リンク先及びリンク元の識別情報」を、ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与することによって、双方向リンクを用いたファイルシステム700の処理の負荷を軽減させることができる。
【0087】
なお、リンク処理部720が行う処理の全部又は一部を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0088】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0089】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【0090】
例えば、ファイルシステムは以下のように構成できる。
(付記1)
ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築するリンク処理部を備え、前記リンク処理部は、前記双方向リンクのために記憶する、前記ファイル又は前記リンクのリンク先及びリンク元の識別情報を、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与するファイルシステム。
【0091】
(付記2)
前記所定の範囲内にあるリンクに、当該リンクの上層側の前記ファイル又は前記リンクに対する前記双方向リンクが設定されている、付記1に記載のファイルシステム。
【0092】
(付記3)
前記リンク処理部は、前記双方向リンクが設定されている、当該リンクの上層側の前記ファイル又は前記リンクが保持する、前記ファイルの識別情報を当該リンクに対して通知する、付記1又は付記2に記載のファイルシステム。
【0093】
(付記4)
前記双方向リンクが設定されている、当該リンクの上層側の前記ファイル又は前記リンクは、前記ファイルの識別情報を保持していて、前記リンク処理部は、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、付記1から付記3の何れか1つに記載のファイルシステム。
【0094】
(付記5)
前記リンク処理部は、前記ファイルの識別情報の変更に応じて、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、付記4に記載のファイルシステム。
【0095】
(付記6)
前記リンク処理部は、当該リンクからの要求に応じて、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、付記4に記載のファイルシステム。
【0096】
(付記7)
当該リンクは、前記ファイルの識別情報を保持し、片方向リンクを用いることで前記ファイルを参照可能に構成されていて、前記リンク処理部は、前記片方向リンクが利用できない場合に、当該リンクの上層側の前記ファイル又は前記リンクに保持されていた前記ファイルの識別情報を当該リンクに対して通知する、付記4から付記6の何れか1つに記載のファイルシステム。
【符号の説明】
【0097】
1 ファイル
2 リンクA、3 リンクB、4、4A、4B リンクC、5、5B リンクD、6、6B リンクE、7、7B リンクF
10 ファイル処理システム(ファイルシステム)
100、100A、100B、100C、100D、100E、100F コンピュータ(ファイルシステム)
200 CPU
210 上位要求処理部
220、720 リンク処理部
300 主記憶装置
310 プログラム領域
320、320A、320B ファイル構造
700 ファイルシステム
【要約】
【課題】双方向リンクを用いたファイルシステムの処理の負荷を軽減させる。
【解決手段】ファイルシステムは、ファイル又はリンクを互いに双方向に関連付ける双方向リンクをツリー状に構築するリンク処理部を備え、前記リンク処理部は、前記双方向リンクのために記憶する、前記ファイル又は前記リンクのリンク先及びリンク元の識別情報を、前記ツリー状に形成されたツリー構造内で所定の範囲内にあるリンクに付与する。
【選択図】
図14