上述した従来のファイルシステムによると、ファイルAのコピーをファイルBとして作成する場合に、ファイルAのファイル本体をコピーしてファイルBのファイル本体を作成する処理が実行される。従って、ファイルAのファイル本体のデータ量が大きい場合には、ファイル本体をコピーするための所要時間が長くなるため、コピー処理中のシステム応答速度の低下を招き、ユーザビリティが低下する。また、同一内容の複数のファイル本体が記憶媒体に記憶されるため、ファイルAのファイル本体のデータ量が大きい場合には、記憶媒体の記憶容量が大きく消費される。
本発明はかかる問題を解決するために成されたものであり、ファイルのコピーに要する所要時間を短縮でき、また、ファイルのコピーに伴う記憶容量の消費を抑制でき、さらに、コピー元のファイルやコピー先のファイルの内容が変更された場合であってもその変更内容を簡易かつ確実に管理することが可能な、ファイルシステム、ファイル管理方法、半導体記憶装置、情報処理装置、及びプログラムを得ることを目的とする。
本発明の第1の態様に係るファイルシステムは、所定の記憶媒体に記憶されたファイルに対する要求を処理する要求処理部と、ファイルを処理するファイル処理部と、ファイルに関する情報を管理するファイル情報管理部と、を備え、記憶媒体に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、第2のファイルを変更する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第1の態様に係るファイルシステムによれば、記憶媒体に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第2のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮できるとともに、ファイルのコピーに伴う記憶容量の消費を抑制できる。しかも、第2のファイルを変更する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理する。従って、コピー先のファイルである第2のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
本発明の第2の態様に係るファイルシステムは、第1の態様に係るファイルシステムにおいて特に、第1のファイルを変更する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、変更前の第1のファイルのファイル本体と変更後の第1のファイルのファイル本体との差分を示す第2の差分情報を作成し、第2の差分情報と第1のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第2の態様に係るファイルシステムによれば、第1のファイルを変更する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、変更前の第1のファイルのファイル本体と変更後の第1のファイルのファイル本体との差分を示す第2の差分情報を作成し、第2の差分情報と第1のファイルのファイル識別情報とを関連付けて管理する。従って、コピー元のファイルである第1のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
本発明の第3の態様に係るファイルシステムは、第1又は第2の態様に係るファイルシステムにおいて特に、変更後の第2のファイルをコピーして第3のファイルを作成する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第3のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、第1の差分情報をコピーして第3の差分情報を作成し、第3の差分情報と第3のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第3の態様に係るファイルシステムによれば、変更後の第2のファイルをコピーして第3のファイルを作成する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第3のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、第1の差分情報をコピーして第3の差分情報を作成し、第3の差分情報と第3のファイルのファイル識別情報とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第3のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮でき、また、ファイルのコピーに伴う記憶容量の消費を抑制できる。
本発明の第4の態様に係るファイルシステムは、第1〜第3のいずれか一つの態様に係るファイルシステムにおいて特に、第2のファイルの所定領域のデータを読み出す内容の要求を前記要求処理部が取得した場合、前記ファイル処理部は、当該所定領域が第1のファイルと第2のファイルとの差分箇所に対応しているか否かを第1の差分情報に基づいて判別し、当該所定領域が当該差分箇所に対応していない場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出して、そのデータを第2のファイルの当該所定領域のデータとして出力し、当該所定領域が当該差分箇所に対応している場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出し、そのデータと第1の差分情報とをマージすることによって作成したデータを、第2のファイルの当該所定領域のデータとして出力することを特徴とするものである。
第4の態様に係るファイルシステムによれば、ファイル処理部は、所定領域が差分箇所に対応していない場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出して、そのデータを第2のファイルの当該所定領域のデータとして出力する。一方、当該所定領域が当該差分箇所に対応している場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出し、そのデータと第1の差分情報とをマージすることによって作成したデータを、第2のファイルの当該所定領域のデータとして出力する。これにより、第2のファイルの所定領域のデータを適切に出力することが可能となる。
本発明の第5の態様に係るファイルシステムは、第1〜第3のいずれか一つの態様に係るファイルシステムにおいて特に、第2のファイルの所定領域のデータを読み出す内容の要求を前記要求処理部が取得した場合、前記ファイル処理部は、当該所定領域が第1のファイルと第2のファイルとの差分箇所に対応しているか否かを第1の差分情報に基づいて判別し、当該所定領域が当該差分箇所に対応していない場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出して、そのデータを第2のファイルの当該所定領域のデータとして出力し、当該所定領域が当該差分箇所に対応している場合には、第1の差分情報に含まれている当該所定領域に対応するデータ、あるいは第1の差分情報とは別に記憶されている当該所定領域に対応するデータを、第2のファイルの当該所定領域のデータとして出力することを特徴とするものである。
第5の態様に係るファイルシステムによれば、ファイル処理部は、所定領域が差分箇所に対応していない場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出して、そのデータを第2のファイルの当該所定領域のデータとして出力する。一方、当該所定領域が当該差分箇所に対応している場合には、第1の差分情報に含まれている当該所定領域に対応するデータ、あるいは第1の差分情報とは別に記憶されている当該所定領域に対応するデータを、第2のファイルの当該所定領域のデータとして出力する。これにより、第2のファイルの所定領域のデータを適切に出力することが可能となる。しかも、当該所定領域に対応するデータは、第1の差分情報に含まれており、あるいは第1の差分情報とは別に記憶されている。そのため、当該所定領域のデータを読み出す際に、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出す処理や、そのデータと第1の差分情報とをマージする処理は不要となる。従って、当該所定領域のデータを高速に読み出すことが可能となる。
本発明の第6の態様に係るファイルシステムは、第1〜第5のいずれか一つの態様に係るファイルシステムにおいて特に、ファイルアクセスに関する所定の条件を満たす場合、前記ファイル処理部は、第1のファイルのファイル本体と第1の差分情報とをマージすることによって第2のファイルのファイル本体を作成して記憶媒体に記憶し、前記ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを削除し、第2のファイルのファイル識別情報と第2のファイルのファイル本体とを関連付けて管理することを特徴とするものである。
第6の態様に係るファイルシステムによれば、ファイル処理部は、第1のファイルのファイル本体と第1の差分情報とをマージすることによって第2のファイルのファイル本体を作成して記憶媒体に記憶する。従って、以降の第2のファイルの読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とをマージする処理が不要となるため、読み出しの所要時間を短縮することが可能となる。
本発明の第7の態様に係るファイルシステムは、第6の態様に係るファイルシステムにおいて特に、前記ファイル処理部は、第1のファイルのファイル本体と第1の差分情報とをマージする処理を、所定の空き時間に実行することを特徴とするものである。
第7の態様に係るファイルシステムによれば、ファイル処理部は、第1のファイルのファイル本体と第1の差分情報とをマージする処理を、所定の空き時間に実行する。従って、マージの処理が完了するまで他のファイルアクセスが待たされるという事態を回避できるため、ユーザビリティを向上することが可能となる。
本発明の第8の態様に係るファイルシステムは、第6又は第7の態様に係るファイルシステムにおいて特に、前記ファイル処理部は、第1のファイルのファイル本体を記憶媒体上でコピーすることによって新たなファイル本体を作成し、その新たなファイル本体を記憶媒体からメモリ上に読み出すとともに第1の差分情報をメモリ上に読み出し、メモリ上で両者をマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体を記憶媒体に書き込むことを特徴とするものである。
第8の態様に係るファイルシステムによれば、ファイル処理部は、第1のファイルのファイル本体を記憶媒体上でコピーすることによって新たなファイル本体を作成し、その新たなファイル本体を記憶媒体からメモリ上に読み出すとともに第1の差分情報をメモリ上に読み出し、メモリ上で両者をマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体を記憶媒体に書き込む。従って、コピーによって新たなファイル本体を早期に作成でき、第2のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを早期に削除できるため、第1のファイルの変更を早期に開始することが可能となる。また、順に適用すべき複数の第1の差分情報が存在する場合には、コピーによって作成した新たなファイル本体に対して複数の第1の差分情報を順に適用することにより、第2のファイルのファイル本体を簡易かつ確実に作成することが可能となる。
本発明の第9の態様に係るファイルシステムは、第6又は第7の態様に係るファイルシステムにおいて特に、前記ファイル処理部は、第1のファイルのファイル本体を記憶媒体からメモリ上に読み出すとともに第1の差分情報をメモリ上に読み出し、メモリ上で両者をマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体を記憶媒体に書き込むことを特徴とするものである。
第9の態様に係るファイルシステムによれば、ファイル処理部は、第1のファイルのファイル本体を記憶媒体からメモリ上に読み出すとともに第1の差分情報をメモリ上に読み出し、メモリ上で両者をマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体を記憶媒体に書き込む。従って、第1のファイルのファイル本体を記憶媒体上でコピーすることによって新たなファイル本体を作成するという処理が不要となるため、第2のファイルのファイル本体の作成に要する所要時間を短縮することが可能となる。
本発明の第10の態様に係るファイルシステムは、第6〜第9のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル処理部は、第2のファイルへのアクセス数に関連して予め設定された所定の条件を満たす場合に、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行することを特徴とするものである。
第10の態様に係るファイルシステムによれば、ファイル処理部は、第2のファイルへのアクセス数に関連して予め設定された所定の条件を満たす場合に、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、単位時間あたりのアクセス数、トータルのアクセス数、又は連続アクセス数等に関する条件を予め設定しておくことにより、第2のファイルへのアクセス頻度が高い場合等には、第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、第2のファイルのファイル本体を作成することができる。その結果、以降の第2のファイルの読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
本発明の第11の態様に係るファイルシステムは、第6〜第10のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル処理部は、第2のファイルへのアクセス所要時間に関連して予め設定された所定の条件を満たす場合に、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行することを特徴とするものである。
第11の態様に係るファイルシステムによれば、ファイル処理部は、第2のファイルへのアクセス所要時間に関連して予め設定された所定の条件を満たす場合に、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、第1のファイルのファイル本体と第1の差分情報とのマージに要する所要時間が長い場合等には、第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、第2のファイルのファイル本体を作成することができる。その結果、以降の第2のファイルの読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
本発明の第12の態様に係るファイルシステムは、第6〜第11のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル処理部は、アクセス数に関連して予め設定された所定の条件を満たす特定領域が第2のファイルに含まれている場合に、当該特定領域を対象として、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行することを特徴とするものである。
第12の態様に係るファイルシステムによれば、ファイル処理部は、アクセス数に関連して予め設定された所定の条件を満たす特定領域が第2のファイルに含まれている場合に、当該特定領域を対象として、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、単位時間あたりのアクセス数、トータルのアクセス数、又は連続アクセス数等に関する条件を予め設定しておくことにより、アクセス頻度が高い特定領域が第2のファイルに含まれている場合等に、当該特定領域を対象として第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、当該特定領域に対応する第2のファイルのファイル本体を作成することができる。その結果、以降の特定領域の読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
本発明の第13の態様に係るファイルシステムは、第6〜第12のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル処理部は、アクセス所要時間に関連して予め設定された所定の条件を満たす特定領域が第2のファイルに含まれている場合に、当該特定領域を対象として、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行することを特徴とするものである。
第13の態様に係るファイルシステムによれば、ファイル処理部は、アクセス所要時間に関連して予め設定された所定の条件を満たす特定領域が第2のファイルに含まれている場合に、当該特定領域を対象として、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、第1のファイルのファイル本体と第1の差分情報とのマージに要する所要時間が長い特定領域が第2のファイルに含まれている場合等には、当該特定領域を対象として第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、当該特定領域に対応する第2のファイルのファイル本体を作成することができる。その結果、以降の特定領域の読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
本発明の第14の態様に係るファイルシステムは、第1〜第13のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル情報管理部が第1のファイルのファイル識別情報及び第2のファイルのファイル識別情報の双方を第1のファイルのファイル本体に関連付けて管理している状況において、第1のファイルを削除する内容の要求を前記要求処理部が取得した場合には、前記ファイル情報管理部は、第1のファイルのファイル識別情報を削除することを特徴とするものである。
第14の態様に係るファイルシステムによれば、第1のファイルを削除する内容の要求を要求処理部が取得した場合には、ファイル情報管理部は、第1のファイルのファイル識別情報を削除する。これにより、第2のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを維持したまま第1のファイルを適切に削除することが可能となる。
本発明の第15の態様に係るファイルシステムは、第14の態様に係るファイルシステムにおいて特に、第1のファイルのファイル識別情報に差分情報が関連付けられている場合には、前記ファイル情報管理部は、第1のファイルのファイル識別情報とともに当該差分情報を削除することを特徴とするものである。
第15の態様に係るファイルシステムによれば、第1のファイルのファイル識別情報に差分情報が関連付けられている場合には、ファイル情報管理部は、第1のファイルのファイル識別情報とともに当該差分情報を削除する。これにより、当該差分情報と第1のファイルのファイル本体との関連付けを適切に削除することが可能となる。
本発明の第16の態様に係るファイルシステムは、第1〜第15のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル情報管理部が第1のファイルのファイル識別情報及び第2のファイルのファイル識別情報の双方を第1のファイルのファイル本体に関連付けて管理している状況において、第2のファイルを削除する内容の要求を前記要求処理部が取得した場合には、前記ファイル情報管理部は、第2のファイルのファイル識別情報を削除することを特徴とするものである。
第16の態様に係るファイルシステムによれば、第2のファイルを削除する内容の要求を要求処理部が取得した場合には、ファイル情報管理部は、第2のファイルのファイル識別情報を削除する。これにより、第1のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを維持したまま第2のファイルを適切に削除することが可能となる。
本発明の第17の態様に係るファイルシステムは、第16の態様に係るファイルシステムにおいて特に、第2のファイルのファイル識別情報に差分情報が関連付けられている場合には、前記ファイル情報管理部は、第2のファイルのファイル識別情報とともに当該差分情報を削除することを特徴とするものである。
第17の態様に係るファイルシステムによれば、第2のファイルのファイル識別情報に差分情報が関連付けられている場合には、ファイル情報管理部は、第2のファイルのファイル識別情報とともに当該差分情報を削除する。これにより、当該差分情報と第1のファイルのファイル本体との関連付けを適切に削除することが可能となる。
本発明の第18の態様に係るファイルシステムは、第2〜第17のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル情報管理部が第1の差分情報及び第2の差分情報の双方を管理している状況において、前記ファイル処理部が第2の差分情報と第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体が更新された場合には、前記ファイル情報管理部は、当該ファイル本体の更新内容に応じて第1の差分情報を更新することを特徴とするものである。
第18の態様に係るファイルシステムによれば、ファイル処理部が第2の差分情報と第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体が更新された場合には、ファイル情報管理部は、当該ファイル本体の更新内容に応じて第1の差分情報を更新する。これにより、更新前の第1のファイルのファイル本体をコピーすることによって新たなファイル本体を記憶媒体上に作成する場合と比較すると、記憶容量の消費を抑制することが可能となる。また、第2のファイルを読み出す際には、更新後の第1の差分情報と更新後の第1のファイルのファイル本体とをマージすることによって、第2のファイルを適切に作成することが可能となる。
本発明の第19の態様に係るファイルシステムは、第18の態様に係るファイルシステムにおいて特に、前記ファイル情報管理部は、更新前の第1の差分情報と更新前の第1のファイルのファイル本体とをマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体と更新後の第1のファイルのファイル本体との差分に基づいて、更新後の第1の差分情報を作成することを特徴とするものである。
第19の態様に係るファイルシステムによれば、ファイル情報管理部は、更新前の第1の差分情報と更新前の第1のファイルのファイル本体とをマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体と更新後の第1のファイルのファイル本体との差分に基づいて、更新後の第1の差分情報を作成する。これにより、順に適用すべき複数の第1の差分情報が存在する場合であっても、更新後の第1の差分情報は一つに集約されるため、以降の第2のファイルの読み出し要求に対して、読み出しの所要時間を短縮することが可能となる。
本発明の第20の態様に係るファイルシステムは、第18の態様に係るファイルシステムにおいて特に、前記ファイル情報管理部は、第2の差分情報と更新前の第1の差分情報とに基づいて、更新後の第1の差分情報を作成することを特徴とするものである。
第20の態様に係るファイルシステムによれば、ファイル情報管理部は、第2の差分情報と更新前の第1の差分情報とに基づいて、更新後の第1の差分情報を作成する。差分情報のデータ量はファイル本体のデータ量より小さいのが通常であるため、いずれもデータ量の小さい第2の差分情報と更新前の第1の差分情報とに基づいて更新後の第1の差分情報を作成することにより、その作成に要する所要時間を短縮することが可能となる。
本発明の第21の態様に係るファイルシステムは、第2〜第20のいずれか一つの態様に係るファイルシステムにおいて特に、前記ファイル情報管理部が第1の差分情報及び第2の差分情報の双方を管理している状況において、前記ファイル処理部が第1の差分情報と第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体が更新された場合には、前記ファイル情報管理部は、当該ファイル本体の更新内容に応じて第2の差分情報を更新することを特徴とするものである。
第21の態様に係るファイルシステムによれば、ファイル処理部が第1の差分情報と第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体が更新された場合には、ファイル情報管理部は、当該ファイル本体の更新内容に応じて第2の差分情報を更新する。これにより、更新前の第1のファイルのファイル本体をコピーすることによって新たなファイル本体を記憶媒体上に作成する場合と比較すると、記憶容量の消費を抑制することが可能となる。また、第1のファイルを読み出す際には、更新後の第2の差分情報と更新後の第1のファイルのファイル本体とをマージすることによって、第1のファイルを適切に作成することが可能となる。
本発明の第22の態様に係るファイルシステムは、第21の態様に係るファイルシステムにおいて特に、前記ファイル情報管理部は、更新前の第2の差分情報と更新前の第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体を作成し、作成した第1のファイルのファイル本体と更新後の第1のファイルのファイル本体との差分に基づいて、更新後の第2の差分情報を作成することを特徴とするものである。
第22の態様に係るファイルシステムによれば、ファイル情報管理部は、更新前の第2の差分情報と更新前の第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体を作成し、作成した第1のファイルのファイル本体と更新後の第1のファイルのファイル本体との差分に基づいて、更新後の第2の差分情報を作成する。これにより、順に適用すべき複数の第2の差分情報が存在する場合であっても、更新後の第2の差分情報は一つに集約されるため、以降の第1のファイルの読み出し要求に対して、読み出しの所要時間を短縮することが可能となる。
本発明の第23の態様に係るファイルシステムは、第21の態様に係るファイルシステムにおいて特に、前記ファイル情報管理部は、第1の差分情報と更新前の第2の差分情報とに基づいて、更新後の第2の差分情報を作成することを特徴とするものである。
第23の態様に係るファイルシステムによれば、ファイル情報管理部は、第1の差分情報と更新前の第2の差分情報とに基づいて、更新後の第2の差分情報を作成する。差分情報のデータ量はファイル本体のデータ量より小さいのが通常であるため、いずれもデータ量の小さい第1の差分情報と更新前の第2の差分情報とに基づいて更新後の第2の差分情報を作成することにより、その作成に要する所要時間を短縮することが可能となる。
本発明の第24の態様に係るファイル管理方法は、(A)所定の記憶媒体に記憶されたファイルに対する要求を処理するステップと、(B)ファイルを処理するステップと、(C)ファイルに関する情報を管理するステップと、を備え、前記ステップ(A)において、記憶媒体に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を取得した場合、前記ステップ(C)において、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、前記ステップ(A)において、第2のファイルを変更する内容の要求を取得した場合、前記ステップ(C)において、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第24の態様に係るファイル管理方法によれば、ステップ(A)において、記憶媒体に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を取得した場合、ステップ(C)において、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第2のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮できるとともに、ファイルのコピーに伴う記憶容量の消費を抑制できる。しかも、ステップ(A)において、第2のファイルを変更する内容の要求を取得した場合、ステップ(C)において、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理する。従って、コピー先のファイルである第2のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
本発明の第25の態様に係る半導体記憶装置は、ファイルシステムと記憶部とを備え、前記ファイルシステムは、前記記憶部に記憶されたファイルに対する要求を処理する要求処理部と、ファイルを処理するファイル処理部と、ファイルに関する情報を管理するファイル情報管理部と、を有し、前記記憶部に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、第2のファイルを変更する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第25の態様に係る半導体記憶装置によれば、記憶部に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第2のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮できるとともに、ファイルのコピーに伴う記憶容量の消費を抑制できる。しかも、第2のファイルを変更する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理する。従って、コピー先のファイルである第2のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
本発明の第26の態様に係る情報処理装置は、ファイルシステムと記憶部とを備え、前記ファイルシステムは、前記記憶部に記憶されたファイルに対する要求を処理する要求処理部と、ファイルを処理するファイル処理部と、ファイルに関する情報を管理するファイル情報管理部と、を有し、前記記憶部に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、第2のファイルを変更する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第26の態様に係る情報処理装置によれば、記憶部に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第2のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮できるとともに、ファイルのコピーに伴う記憶容量の消費を抑制できる。しかも、第2のファイルを変更する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理する。従って、コピー先のファイルである第2のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
本発明の第27の態様に係るプログラムは、コンピュータを、所定の記憶媒体に記憶されたファイルに対する要求を処理する要求処理部と、ファイルを処理するファイル処理部と、ファイルに関する情報を管理するファイル情報管理部と、として機能させるためのプログラムであって、第1のファイルをコピーして第2のファイルを作成する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理し、第2のファイルを変更する内容の要求を前記要求処理部が取得した場合、前記ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理することを特徴とするものである。
第27の態様に係るプログラムによれば、記憶媒体に記憶されている第1のファイルをコピーして第2のファイルを作成する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第2のファイルのファイル識別情報と第1のファイルのファイル本体とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第2のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮できるとともに、ファイルのコピーに伴う記憶容量の消費を抑制できる。しかも、第2のファイルを変更する内容の要求を要求処理部が取得した場合、ファイル情報管理部は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理する。従って、コピー先のファイルである第2のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
本発明によれば、ファイルのコピーに要する所要時間を短縮でき、また、ファイルのコピーに伴う記憶容量の消費を抑制でき、さらに、コピー元のファイルやコピー先のファイルの内容が変更された場合であってもその変更内容を簡易かつ確実に管理することが可能となる。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
図1は、本発明の実施の形態に係るファイルシステム1を備える情報処理装置100の構成を簡略化して示す図である。情報処理装置100は、ファイルシステム1と、データ処理の作業領域であるワークメモリ2と、プログラム5が格納されたメモリ3と、ハードディスク等の任意の記憶媒体4(記憶部)とを備えている。情報処理装置100は、例えばパーソナルコンピュータであり、ファイルシステム1は、CPU(Central Processing Unit)等のデータ処理装置によって実行されるOS(Operating System)の機能の一部として実装されている。
図2は、本発明の実施の形態に係るファイルシステム1を備える半導体メモリ300の構成例を簡略化して示す図である。半導体メモリ300は、ホストコンピュータ200に着脱自在なメモリカード等であり、ファイルシステム1の機能は半導体メモリ300に実装されている。半導体メモリ300は、図1と同様のファイルシステム1、ワークメモリ2、及びメモリ3と、フラッシュメモリ等の任意の記憶媒体4とを備えている。なお、ファイルシステム1の機能は、半導体メモリ300ではなくホストコンピュータ200に実装されていてもよい。
図3は、ファイルシステム1が有する機能を示す図である。ファイルシステム1は、要求処理部11、ファイル処理部12、ファイル情報管理部13、及びアクセス解析部14を備えている。つまり、データ処理装置がメモリ3からプログラム5を読み出して実行することにより、データ処理装置は、要求処理部11、ファイル処理部12、ファイル情報管理部13、及びアクセス解析部14として機能する。換言すれば、プログラム5は、情報処理装置100又は半導体メモリ300に搭載されるコンピュータを、要求処理部11、ファイル処理部12、ファイル情報管理部13、及びアクセス解析部14として機能させるためのプログラムである。
図4は、ファイルシステム1が処理するファイル20を示す図である。ファイル20は、ファイル名30等の任意のファイル識別情報と、映像、音声、及びテキスト等のデータを含むファイル本体40とを有している。ファイル本体40は記憶媒体4に記憶される。ファイル名30とファイル本体40とは互いに関連付けられており、その関連付けに関する情報等を含むファイル情報は、ファイル情報管理部13によって管理される。
<ファイルのコピー及び変更>
図5は、ファイルのコピー及び変更処理のシーケンスを示す図である。図5の(A)に例示するように、ファイル名30X及びファイル本体40Xを有するファイル20Xが、記憶媒体4に記憶されている。
ファイルのコピー処理に関し、要求処理部11は、ファイル20Xをコピーしてファイル20Yを作成する内容の要求を、ファイルシステム1より上位層(アプリケーションプログラム等)から取得する。
次にファイル情報管理部13は、図5の(B)に例示するように、ファイル20Yのファイル名30Yを作成して、ファイル名30Yとファイル本体40Xとを関連付ける。その際、ファイル処理部12は、ファイル本体40Yの作成のためにファイル本体40Xをコピーするという処理を実行しない。従って、ファイル名30Xとファイル名30Yとが、共通のファイル本体40Xに関連付けられる。
ファイルの変更処理に関し、要求処理部11は、ファイル20Yを変更する内容の要求を、上位層から取得する。ここで、ファイルの変更には、データの書き換え、データの追加、一部のデータの削除、データの並び替え等の処理が含まれる。
次にファイル情報管理部13は、図5の(C)に例示するように、ファイル20Yの変更の前後の差分を示す差分情報50Yを作成する。具体的に差分情報50Yは、変更前のファイル本体40Y(つまり記憶媒体4に記憶されているファイル本体40X)に対する、変更後のファイル本体40Yの差分を示す情報である。差分情報50Yには、ファイル20Y内の変更データの位置(例えばファイルの先頭からのアドレスのオフセット値)、変更データの内容、及び変更データのサイズ等に関する情報が含まれる。なお、差分情報50Yは、メモリ3内に記憶してもよいし、記憶媒体4内に記憶してもよい。ファイル情報管理部13は、差分情報50Yをファイル名30Yに関連付けて管理する。ファイルのコピー処理の場合と同様に、ファイル処理部12は、変更後のファイル本体40Yの作成のためにファイル本体40Xをコピーするという処理を実行しない。
図6は、図5の(B)の状態からファイル20Xを変更した状況を示す図である。要求処理部11は、ファイル20Xを変更する内容の要求を上位層から取得する。ファイル情報管理部13は、ファイル20Xの変更の前後の差分を示す差分情報50Xを作成する。差分情報50Xは、変更前のファイル本体40Xに対する変更後のファイル本体40Xの差分を示す情報である。ファイル情報管理部13は、差分情報50Xをファイル名30Xに関連付けて管理する。上記と同様に、ファイル処理部12は、変更後のファイル本体40Xの作成のためにファイル本体40Xをコピーするという処理を実行しない。
図7は、図5の(C)の状態からファイル20Yをコピーした状況を示す図である。要求処理部11は、ファイル20Yをコピーしてファイル20Zを作成する内容の要求を、上位層から取得する。
次にファイル情報管理部13は、ファイル20Zのファイル名30Zを作成して、ファイル名30Zとファイル本体40Xとを関連付ける。その際、ファイル処理部12は、ファイル本体40Zの作成のためにファイル本体40Xをコピーするという処理を実行しない。
また、ファイル名30Yには差分情報50Yが関連付けられているため、ファイル情報管理部13は、差分情報50Yをコピーして差分情報50Zを作成し、作成した差分情報50Zをファイル名30Zに関連付けて管理する。
<ファイルの読み出し>
図8は、ファイル20Yを模式的に示す図である。図5の(C)に示したようにコピー後に変更されたことにより、ファイル20Yは、ファイル本体40Xと同一内容の非変更領域R1と、ファイル本体40Xとの差分箇所である変更領域R2とを有している。
要求処理部11は、ファイル20Yの指定された領域(以下「所定領域」と称す)のデータを読み出す内容の要求を、上位層から取得する。読み出し要求には、ファイル20Y内のデータの位置(例えばファイルの先頭からのアドレスのオフセット値)が含まれている。
次にファイル処理部12は、差分情報50Yを参照してアドレスを比較することにより、当該所定領域は変更領域R2に対応しているか否かを判別する。具体的に、ファイル処理部12は、読み出し要求に含まれている当該所定領域のアドレスと、差分情報50Yに含まれているアドレスとが重複する場合には、当該所定領域は変更領域R2に対応していると判別する。一方、読み出し要求に含まれている当該所定領域のアドレスと、差分情報50Yに含まれているアドレスとが重複しない場合には、当該所定領域は変更領域R2に対応していない(つまり非変更領域R1に対応している)と判別する。そして、ファイル処理部12は、当該所定領域が変更領域R2に対応していない場合には、ファイル本体40Xから当該所定領域に相当するデータを読み出して、そのデータをファイル20Yの当該所定領域のデータとして出力する。
一方、当該所定領域が変更領域R2に対応している場合には、ファイル本体40Xから当該所定領域に相当するデータを読み出し、そのデータと差分情報50Yに含まれているデータとをマージする。そして、マージによって作成したデータを、ファイル20Yの当該所定領域のデータとして出力する。なお、後述するように、部分的な事前マージ又は部分的なファイル編集によって変更領域R2の本体データが作成され、当該本体データが差分情報50Y内又は差分情報50Yとは別の領域(メモリ3内又は記憶媒体4内)に記憶されている場合がある。この状況において、当該所定領域が変更領域R2に対応している場合には、ファイル処理部12は、差分情報50Yに含まれている当該所定領域に対応する本体データ、あるいは差分情報50Yとは別に記憶されている当該所定領域に対応する本体データを、ファイル20Yの当該所定領域のデータとして出力する。
なお、データの追加や一部のデータの削除等が行われたことによって、ファイル20Xのサイズとファイル20Yのサイズとが異なる場合であっても、上記と同様の手法によってファイルの読み出しを実行することが可能である。また、差分情報が関連付けられていないファイル(つまりコピー後に変更されていないファイル)を読み出す際には、差分情報の参照やデータのマージ等の処理は省略することができ、ファイル本体40Xから読み出したデータをそのまま出力すればよい。
<ファイルの事前マージ>
上記の通り、ファイルを読み出す際に所定領域が変更領域に対応している場合には、読み出し処理の実行中にデータのマージを行う必要がある。従って、差分情報の増大に起因してオーバーヘッドが大きくなってきた場合には、読み出し処理の所要時間が長くなる。そこで、そのような場合には以下に述べる事前マージを行うことが望ましい。
図9は、事前マージのシーケンスを示す図である。図5の(C)に例示したように、ファイル名30Xにファイル本体40Xが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられているものとする。
ファイル20Yが変更される度に、新たな差分情報50Yが蓄積される。アクセス解析部14は、差分情報50Yの合計のデータサイズが所定のしきい値を超えた場合に、事前マージの実行を要求する。なお、差分情報50Yの合計の個数が所定のしきい値を超えた場合に、事前マージの実行を要求してもよい。また、変更内容毎に異なるパラメータを事前に設定しておき、全ての差分情報50Yに関して合計したパラメータ値が所定のしきい値を超えた場合に、事前マージの実行を要求してもよい。
あるいは、ファイル20Yへのアクセス数(読み出しアクセス数及び/又は書き込みアクセス数)に関連する所定の条件を予め設定しておき、当該所定の条件を満たす場合に事前マージを実行してもよい。例えば、単位時間あたりのアクセス数、トータルのアクセス数、又は連続アクセス数等に関するしきい値を予め設定しておき、アクセス解析部14は、アクセス数等がしきい値を超えた場合に事前マージの実行を要求する。なお、事前マージは、ファイル単位で行ってもよいし、ファイル内の領域単位で行ってもよい。例えば、ファイル20Y内の特定領域にアクセスが集中し、その特定領域についてはアクセス数に関する上記所定の条件が満たされ、他の領域については条件が満たされない場合には、その特定領域のみを対象として事前マージ(つまり部分的な事前マージ)を実行してもよい。
あるいは、ファイル20Yへのアクセス所要時間(読み出しアクセス所要時間及び/又は書き込みアクセス所要時間)に関連する所定の条件を予め設定しておき、当該所定の条件を満たす場合に事前マージを実行してもよい。例えば、アクセス所要時間に関するしきい値を予め設定しておき、アクセス解析部14は、ファイル20Yへのアクセス時間を実測することにより、アクセス所要時間の実測値がしきい値を超えた場合に事前マージの実行を要求する。なお、上記と同様に、事前マージは、ファイル単位で行ってもよいし、ファイル内の領域単位で行ってもよい。例えば、ファイル20Y内の特定領域のみに関してアクセス所要時間が大きくなり、その特定領域についてはアクセス所要時間に関する上記所定の条件が満たされ、他の領域については条件が満たされない場合には、その特定領域のみを対象として事前マージ(つまり部分的な事前マージ)を実行してもよい。
また、事前マージの実行に起因するユーザビリティの低下を防止すべく、事前マージは、システムの空き時間に行うことが望ましい。例えば、ユーザ操作が一定時間以上継続して行われていない期間、記憶媒体4へのアクセスが一定時間以上継続して行われていない期間、ファイルアクセスが一定時間以上継続して行われていない期間、又はシャットダウン処理の実行期間に、事前マージを行うことが望ましい。アクセス解析部14は、このような所定の空き時間に、事前マージの実行を要求する。
以下、事前マージのシーケンスについて詳細に説明する。要求処理部11は、ファイル20Yの事前マージを実行する内容の要求を、アクセス解析部14から取得する。
次にファイル処理部12は、図9の(A)に例示するように、元のファイル本体40Xを記憶媒体4上でコピーすることによって新たなファイル本体40Xを作成する。
次にファイル情報管理部13は、図9の(B)に例示するように、ファイル名30Yと元のファイル本体40Xとの関連付けを削除する。
次にファイル処理部12は、図9の(C)に例示するように、新たなファイル本体40Xを記憶媒体4からワークメモリ2上に読み出すとともに、差分情報50Yをワークメモリ2上に読み出す。そして、ワークメモリ2上で両者をマージすることによってファイル20Yのファイル本体40Yを作成し、作成したファイル本体40Yを記憶媒体4に書き込む。つまり、新たなファイル本体40Xをファイル本体40Yによって上書きする。また、ファイル情報管理部13は、ファイル名30Yとファイル本体40Yとを関連付けて管理する。なお、事前マージによって差分情報50Yは削除される。
なお、ファイル本体40Xのデータサイズに対してワークメモリ2の記憶容量が十分である場合には、新たなファイル本体40Xを作成して記憶媒体4に書き込む処理(図9の(A))を省略することもできる。この場合、ファイル処理部12は、元のファイル本体40Xを記憶媒体4からワークメモリ2上に読み出すとともに、差分情報50Yをワークメモリ2上に読み出す。そして、ワークメモリ2上で両者をマージすることによってファイル20Yのファイル本体40Yを作成し、作成したファイル本体40Yを記憶媒体4に書き込む。
図10は、事前マージに伴う差分情報の更新処理のシーケンスを示す図である。図10の(A)に例示するように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられているものとする。
この状況で、ファイル処理部12が差分情報50Xとファイル本体40Xとをマージすることによって、ファイル本体40Xがファイル本体40X1に更新された場合には、ファイル情報管理部13は、図10の(B)に例示するように、ファイル本体40Xの更新内容に応じて差分情報50Yを差分情報50Y1に更新する。つまり、ファイル情報管理部13は、ファイル本体40X1と差分情報50Y1とをマージすることによってファイル本体40Y(つまりファイル本体40Xと差分情報50Yとをマージしたもの)が正しく再現されるよう、差分情報50Yを差分情報50Y1に更新する。なお、差分情報50Xとファイル本体40Xとのマージが完了した後、差分情報50Xは削除される。
なお、ファイル本体40Xのサイズが小さく、記憶媒体4の記憶容量の消費が特に問題とならない場合には、更新前のファイル本体40Xをコピーすることによって新たなファイル本体40Xを作成し、その新たなファイル本体40Xと差分情報50Yとをファイル名30Yに関連付けて管理してもよい。
差分情報50Y1の作成手法の第1の例として、ファイル情報管理部13は、更新前の差分情報50Yと更新前のファイル本体40Xとをマージすることによってファイル本体40Yを作成し、作成したファイル本体40Yと更新後のファイル本体40X1との差分に基づいて、更新後の差分情報50Y1を作成する。つまり、ファイル本体40Yを再現し、ファイル本体40Yとファイル本体40X1とを比較することにより、両者の差分箇所を示す差分情報50Y1を作成する。なお、差分情報50Y1の作成が完了した後、ファイル本体40Yは削除される。
差分情報50Y1の作成手法の第2の例として、ファイル情報管理部13は、差分情報50Xと更新前の差分情報50Yとに基づいて、更新後の差分情報50Y1を作成する。つまり、ファイル本体40Yとファイル本体40X1との比較を行うのではなく、更新前の差分情報50Yに、差分情報50Xの逆特性を示す差分情報(差分情報50Xの適用による影響をキャンセルするための差分情報)を加えることによって、更新後の差分情報50Y1を作成する。
図11は、事前マージに伴う差分情報の更新処理のシーケンスを示す図である。図11の(A)に例示するように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられているものとする。
この状況で、ファイル処理部12が差分情報50Yとファイル本体40Xとをマージすることによって、ファイル本体40Xがファイル本体40X2に更新された場合には、ファイル情報管理部13は、図11の(B)に例示するように、ファイル本体40Xの更新内容に応じて差分情報50Xを差分情報50X1に更新する。つまり、情報管理部13は、ファイル本体40X2と差分情報50X1とをマージすることによって、ファイル本体40Xと差分情報50Xとをマージしたものが正しく再現されるよう、差分情報50Xを差分情報50X1に更新する。差分情報50X1の作成手法は、上記と同様である。なお、差分情報50Yとファイル本体40Xとのマージが完了した後、差分情報50Yは削除される。
図12は、部分的な事前マージ及びそれに伴う差分情報の更新処理の第1の例を示す図である。図12の(A)に例示するように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている状況を想定する。この状況で、要求処理部11が、ファイル20Yの部分的な事前マージを実行する内容の要求を、アクセス解析部14から取得したものとする。
まずファイル処理部12は、図12の(B)に例示するように、部分的な事前マージの実行対象である差分情報50Yの一部(以下「差分情報50Y1」と称す)と、ファイル本体40Xとをマージすることによって、ファイル本体40Xをファイル本体40X1に更新する。
次にファイル情報管理部13は、ファイル本体40Xの更新内容に応じて差分情報50Xを差分情報50X1に更新する。つまり、ファイル情報管理部13は、ファイル本体40X1と差分情報50X1とをマージすることによって、ファイル本体40Xと差分情報50Xとをマージしたものが正しく再現されるよう、差分情報50Xを差分情報50X1に更新する。また、ファイル情報管理部13は、差分情報50Yから差分情報50Y1を除いた差分情報50Y2を作成し、差分情報50Yを差分情報50Y2に更新する。
図13は、部分的な事前マージ及びそれに伴う差分情報の更新処理の第2の例を示す図である。図12の(A)に例示したように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている状況を想定する。この状況で、要求処理部11が、ファイル20Yの部分的な事前マージを実行する内容の要求を、アクセス解析部14から取得したものとする。
まずファイル処理部12は、図13の(A)に例示するように、元のファイル本体40Xを記憶媒体4上でコピーすることによって新たなファイル本体40Xを作成する。次にファイル情報管理部13は、ファイル名30Yと元のファイル本体40Xとの関連付けを削除する。
次にファイル処理部12は、図13の(B)に例示するように、部分的な事前マージの実行対象である差分情報50Y1と、新たなファイル本体40Xとをマージすることによって、新たなファイル本体40Xをファイル本体40X1に更新する。
次にファイル情報管理部13は、差分情報50Yから差分情報50Y1を除いた差分情報50Y2を作成し、差分情報50Yを差分情報50Y2に更新する。
図14は、部分的な事前マージ及びそれに伴う差分情報の更新処理の第3の例を示す図である。図12の(A)に例示したように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている状況を想定する。この状況で、要求処理部11が、ファイル20Xを削除する内容の要求を上位層から取得するとともに、ファイル20Yの部分的な事前マージを実行する内容の要求をアクセス解析部14から取得したものとする。
まずファイル情報管理部13は、図14の(A)に例示するように、ファイル20Xのファイル名30X及び差分情報50Xを管理対象から削除する。
次にファイル処理部12は、図14の(B)に例示するように、部分的な事前マージの実行対象である差分情報50Y1と、ファイル本体40Xとをマージすることによって、ファイル本体40Xをファイル本体40X1に更新する。
次にファイル情報管理部13は、差分情報50Yから差分情報50Y1を除いた差分情報50Y2を作成し、差分情報50Yを差分情報50Y2に更新する。
図15は、部分的な事前マージ及びそれに伴う差分情報の更新処理の第4の例を示す図である。図12の(A)に例示したように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている状況を想定する。この状況で、要求処理部11が、ファイル20Yの部分的な事前マージを実行する内容の要求を、アクセス解析部14から取得したものとする。
まずファイル処理部12は、図15に例示するように、部分的な事前マージの実行対象である差分情報50Y1と、ファイル本体40Xの対応領域とをマージすることによって、部分マージ領域の本体データ60Yを作成する。図15の例において、本体データ60Yは、差分情報50Yとは別の領域(メモリ3内又は記憶媒体4内)に記憶される。次にファイル情報管理部13は、本体データ60Yをファイル名30Yに関連付けて管理する。
なお、ファイル20Yの読み出し処理において、読み出し対象である所定領域が部分マージ領域に対応している場合には、ファイル処理部12は、差分情報50Yとは別に記憶されている当該所定領域に対応する本体データ60Yを、ファイル20Yの当該所定領域のデータとして出力する。また、読み出し対象である所定領域が、部分マージ領域ではない変更領域に対応している場合には、ファイル処理部12は、ファイル本体40Xから当該所定領域に相当するデータを読み出し、そのデータと差分情報50Yに含まれているデータとをマージする。そして、マージによって作成したデータを、ファイル20Yの当該所定領域のデータとして出力する。
また、ファイル20Yをコピーする場合には、差分情報50Yとともに本体データ60Yもコピーされる。また、ファイル20Yを削除する場合には、ファイル名30Yとともに差分情報50Y及び本体データ60Yも削除される。
なお、図16の変形例に示すように、ファイル情報管理部13は、差分情報50Yから差分情報50Y1を除いた差分情報50Y2を作成し、差分情報50Yを差分情報50Y2に更新してもよい。この変形例において、読み出し対象である所定領域が、部分マージ領域ではない変更領域に対応している場合には、ファイル処理部12は、ファイル本体40Xから当該所定領域に相当するデータを読み出し、そのデータと差分情報50Y2に含まれているデータとをマージする。そして、マージによって作成したデータを、ファイル20Yの当該所定領域のデータとして出力する。
図17は、部分的な事前マージ及びそれに伴う差分情報の更新処理の第5の例を示す図である。図12の(A)に例示したように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている状況を想定する。この状況で、要求処理部11が、ファイル20Yの部分的な事前マージを実行する内容の要求を、アクセス解析部14から取得したものとする。
ファイル処理部12は、図17に例示するように、部分的な事前マージの実行対象である差分情報50Y1と、ファイル本体40Xの対応領域とをマージすることによって、部分マージ領域の本体データ60Yを作成する。図17の例において、本体データ60Yは、差分情報50Y内に含めて記憶される。
なお、ファイル20Yの読み出し処理において、読み出し対象である所定領域が部分マージ領域に対応している場合には、ファイル処理部12は、差分情報50Yに含まれている当該所定領域に対応する本体データ60Yを、ファイル20Yの当該所定領域のデータとして出力する。
図18は、部分的なファイル編集及びそれに伴う差分情報の更新処理の例を示す図である。図12の(A)に例示したように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている状況を想定する。この状況で、要求処理部11が、ファイル20Yの部分的な編集を実行する内容の要求を、上位層から取得したものとする。以下の例では、ファイル20Y内の特定領域のデータを、新たな本体データ70Yに置換する内容の要求を取得したものとする。
図18に例示するように、本体データ70Yは、差分情報50Y内に含めて記憶される。また、差分情報50Yには、本体データ70Yとともに、ファイル20Y内における本体データ70Yの位置(例えばファイルの先頭からのアドレスのオフセット値)、及び本体データ70Yのサイズ等に関する情報も記憶される。但し、図15,16に示したように、本体データ70Yは、差分情報50Yとは別の領域(メモリ3内又は記憶媒体4内)に記憶されてもよい。
ファイル20Yの読み出し処理において、読み出し対象である所定領域が当該特定領域に対応している場合には、ファイル処理部12は、差分情報50Yに含まれている当該所定領域に対応する本体データ70Yを、ファイル20Yの当該所定領域のデータとして出力する。
<ファイルの削除>
図19は、ファイルの削除処理のシーケンスを示す図である。図19の(A)に例示するように、ファイル名30Xにファイル本体40Xが関連付けられており、ファイル名30Yにファイル本体40Xと差分情報50Yとが関連付けられている。
この状況で、要求処理部11が、ファイル20Yを削除する内容の要求を上位層から取得したものとする。この場合、ファイル情報管理部13は、図19の(B)に例示するように、ファイル20Yのファイル名30Yを管理対象から削除する。これにより、ファイル名30Yとファイル本体40Xとの関連付けが削除される。また、削除対象のファイル名30Yに差分情報50Yが関連付けられている場合には、ファイル情報管理部13は、ファイル名30Yとともに差分情報50Yを管理対象から削除する。
図20は、ファイルの削除処理のシーケンスを示す図である。図20の(A)に例示するように、ファイル名30Xにファイル本体40Xと差分情報50Xとが関連付けられており、ファイル名30Yにファイル本体40Xが関連付けられている。
この状況で、要求処理部11が、ファイル20Xを削除する内容の要求を上位層から取得したものとする。この場合、ファイル情報管理部13は、図20の(B)に例示するように、ファイル20Xのファイル名30Xを管理対象から削除する。これにより、ファイル名30Xとファイル本体40Xとの関連付けが削除される。また、削除対象のファイル名30Xに差分情報50Xが関連付けられている場合には、ファイル情報管理部13は、ファイル名30Xとともに差分情報50Xを管理対象から削除する。
なお、ファイル名及び差分情報の削除処理においては、記憶領域を初期化することによってデータ自体を消去してもよく、あるいは、データ自体は消去せずに、削除状態を示すフラグを削除対象のデータに付加してもよい。
また、ファイル本体に一つのファイル名のみが関連付けられている場合(つまりファイル名とファイル本体とが一対一で関連付けられている場合)には、ファイル名(及び差分情報)とともにファイル本体を削除してもよい。
<まとめ>
本実施の形態に係るファイルシステム1によれば、記憶媒体4に記憶されている第1のファイル(ファイル20X)をコピーして第2のファイル(ファイル20Y)を作成する内容の要求を要求処理部11が取得した場合、ファイル情報管理部13は、第2のファイルのファイル識別情報(ファイル名30Y)と第1のファイルのファイル本体(ファイル本体40X)とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第2のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮できるとともに、ファイルのコピーに伴う記憶容量の消費を抑制できる。しかも、第2のファイルを変更する内容の要求を要求処理部11が取得した場合、ファイル情報管理部13は、第1のファイルのファイル本体と変更後の第2のファイルのファイル本体との差分を示す第1の差分情報(差分情報50Y)を作成し、第1の差分情報と第2のファイルのファイル識別情報とを関連付けて管理する。従って、コピー先のファイルである第2のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、第1のファイルを変更する内容の要求を要求処理部11が取得した場合、ファイル情報管理部13は、変更前の第1のファイルのファイル本体と変更後の第1のファイルのファイル本体との差分を示す第2の差分情報(差分情報50X)を作成し、第2の差分情報と第1のファイルのファイル識別情報とを関連付けて管理する。従って、コピー元のファイルである第1のファイルの内容が変更された場合であっても、その変更内容を簡易かつ確実に管理することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、変更後の第2のファイルをコピーして第3のファイル(ファイル20Z)を作成する内容の要求を要求処理部11が取得した場合、ファイル情報管理部13は、第3のファイルのファイル識別情報(ファイル名30Z)と第1のファイルのファイル本体とを関連付けて管理し、第1の差分情報をコピーして第3の差分情報(差分情報50Z)を作成し、第3の差分情報と第3のファイルのファイル識別情報とを関連付けて管理する。従って、第1のファイルのファイル本体をコピーして第3のファイルのファイル本体を作成する必要がないため、ファイルのコピーに要する所要時間を短縮でき、また、ファイルのコピーに伴う記憶容量の消費を抑制できる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、所定領域が差分箇所(変更領域R2)に対応していない場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出して、そのデータを第2のファイルの当該所定領域のデータとして出力する。一方、当該所定領域が当該差分箇所に対応している場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出し、そのデータと第1の差分情報とをマージすることによって作成したデータを、第2のファイルの当該所定領域のデータとして出力する。これにより、第2のファイルの所定領域のデータを適切に出力することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、所定領域が差分箇所(変更領域R2)に対応していない場合には、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出して、そのデータを第2のファイルの当該所定領域のデータとして出力する。一方、当該所定領域が当該差分箇所に対応している場合には、第1の差分情報に含まれている当該所定領域に対応するデータ、あるいは第1の差分情報とは別に記憶されている当該所定領域に対応するデータを、第2のファイルの当該所定領域のデータとして出力する。これにより、第2のファイルの所定領域のデータを適切に出力することが可能となる。しかも、当該所定領域に対応するデータは、第1の差分情報に含まれており、あるいは第1の差分情報とは別に記憶されている。そのため、当該所定領域のデータを読み出す際に、第1のファイルのファイル本体から当該所定領域に相当するデータを読み出す処理や、そのデータと第1の差分情報とをマージする処理は不要となる。従って、当該所定領域のデータを高速に読み出すことが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、第1のファイルのファイル本体と第1の差分情報とをマージすることによって第2のファイルのファイル本体(ファイル本体40Y)を作成して記憶媒体4に記憶する。従って、以降の第2のファイルの読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とをマージする処理が不要となるため、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、第1のファイルのファイル本体と第1の差分情報とをマージする処理を、所定の空き時間に実行する。従って、マージの処理が完了するまで他のファイルアクセスが待たされるという事態を回避できるため、ユーザビリティを向上することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、第1のファイルのファイル本体を記憶媒体4上でコピーすることによって新たなファイル本体を作成し、その新たなファイル本体を記憶媒体3からメモリ(ワークメモリ2)上に読み出すとともに第1の差分情報をメモリ上に読み出し、メモリ上で両者をマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体を記憶媒体4に書き込む。従って、コピーによって新たなファイル本体を早期に作成でき、第2のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを早期に削除できるため、第1のファイルの変更を早期に開始することが可能となる。また、順に適用すべき複数の第1の差分情報が存在する場合には、コピーによって作成した新たなファイル本体に対して複数の第1の差分情報を順に適用することにより、第2のファイルのファイル本体を簡易かつ確実に作成することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、第1のファイルのファイル本体を記憶媒体4からメモリ上に読み出すとともに第1の差分情報をメモリ上に読み出し、メモリ上で両者をマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体を記憶媒体4に書き込む。従って、第1のファイルのファイル本体を記憶媒体4上でコピーすることによって新たなファイル本体を作成するという処理が不要となるため、第2のファイルのファイル本体の作成に要する所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、第2のファイルへのアクセス数に関連して予め設定された所定の条件を満たす場合に、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、単位時間あたりのアクセス数、トータルのアクセス数、又は連続アクセス数等に関する条件を予め設定しておくことにより、第2のファイルへのアクセス頻度が高い場合等には、第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、第2のファイルのファイル本体を作成することができる。その結果、以降の第2のファイルの読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、第2のファイルへのアクセス所要時間に関連して予め設定された所定の条件を満たす場合に、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、第1のファイルのファイル本体と第1の差分情報とのマージに要する所要時間が長い場合等には、第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、第2のファイルのファイル本体を作成することができる。その結果、以降の第2のファイルの読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、アクセス数に関連して予め設定された所定の条件を満たす特定領域が第2のファイルに含まれている場合に、当該特定領域を対象として、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、単位時間あたりのアクセス数、トータルのアクセス数、又は連続アクセス数等に関する条件を予め設定しておくことにより、アクセス頻度が高い特定領域が第2のファイルに含まれている場合等に、当該特定領域を対象として第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、当該特定領域に対応する第2のファイルのファイル本体を作成することができる。その結果、以降の特定領域の読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12は、アクセス所要時間に関連して予め設定された所定の条件を満たす特定領域が第2のファイルに含まれている場合に、当該特定領域を対象として、第1のファイルのファイル本体と第1の差分情報とをマージする処理を実行する。従って、第1のファイルのファイル本体と第1の差分情報とのマージに要する所要時間が長い特定領域が第2のファイルに含まれている場合等には、当該特定領域を対象として第1のファイルのファイル本体と第1の差分情報とのマージを空き時間等に実行することによって、当該特定領域に対応する第2のファイルのファイル本体を作成することができる。その結果、以降の特定領域の読み出し要求に対しては、第2のファイルのファイル本体から目的のデータを読み出せば足り、第1のファイルのファイル本体と第1の差分情報とを毎回マージする必要がないため、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、第1のファイルを削除する内容の要求を要求処理部11が取得した場合には、ファイル情報管理部13は、第1のファイルのファイル識別情報を削除する。これにより、第2のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを維持したまま第1のファイルを適切に削除することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、第1のファイルのファイル識別情報に差分情報が関連付けられている場合には、ファイル情報管理部13は、第1のファイルのファイル識別情報とともに当該差分情報を削除する。これにより、当該差分情報と第1のファイルのファイル本体との関連付けを適切に削除することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、第2のファイルを削除する内容の要求を要求処理部11が取得した場合には、ファイル情報管理部13は、第2のファイルのファイル識別情報を削除する。これにより、第1のファイルのファイル識別情報と第1のファイルのファイル本体との関連付けを維持したまま第2のファイルを適切に削除することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、第2のファイルのファイル識別情報に差分情報が関連付けられている場合には、ファイル情報管理部13は、第2のファイルのファイル識別情報とともに当該差分情報を削除する。これにより、当該差分情報と第1のファイルのファイル本体との関連付けを適切に削除することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12が第2の差分情報と第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体が更新された場合には、ファイル情報管理部13は、当該ファイル本体の更新内容に応じて第1の差分情報を更新する。これにより、更新前の第1のファイルのファイル本体をコピーすることによって新たなファイル本体を記憶媒体4上に作成する場合と比較すると、記憶容量の消費を抑制することが可能となる。また、第2のファイルを読み出す際には、更新後の第1の差分情報と更新後の第1のファイルのファイル本体とをマージすることによって、第2のファイルを適切に作成することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル情報管理部13は、更新前の第1の差分情報と更新前の第1のファイルのファイル本体とをマージすることによって第2のファイルのファイル本体を作成し、作成した第2のファイルのファイル本体と更新後の第1のファイルのファイル本体との差分に基づいて、更新後の第1の差分情報を作成する。これにより、順に適用すべき複数の第1の差分情報が存在する場合であっても、更新後の第1の差分情報は一つに集約されるため、以降の第2のファイルの読み出し要求に対して、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル情報管理部13は、第2の差分情報と更新前の第1の差分情報とに基づいて、更新後の第1の差分情報を作成する。差分情報のデータ量はファイル本体のデータ量より小さいのが通常であるため、いずれもデータ量の小さい第2の差分情報と更新前の第1の差分情報とに基づいて更新後の第1の差分情報を作成することにより、その作成に要する所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル処理部12が第1の差分情報と第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体が更新された場合には、ファイル情報管理部13は、当該ファイル本体の更新内容に応じて第2の差分情報を更新する。これにより、更新前の第1のファイルのファイル本体をコピーすることによって新たなファイル本体を記憶媒体4上に作成する場合と比較すると、記憶容量の消費を抑制することが可能となる。また、第1のファイルを読み出す際には、更新後の第2の差分情報と更新後の第1のファイルのファイル本体とをマージすることによって、第1のファイルを適切に作成することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル情報管理部13は、更新前の第2の差分情報と更新前の第1のファイルのファイル本体とをマージすることによって第1のファイルのファイル本体を作成し、作成した第1のファイルのファイル本体と更新後の第1のファイルのファイル本体との差分に基づいて、更新後の第2の差分情報を作成する。これにより、順に適用すべき複数の第2の差分情報が存在する場合であっても、更新後の第2の差分情報は一つに集約されるため、以降の第1のファイルの読み出し要求に対して、読み出しの所要時間を短縮することが可能となる。
また、本実施の形態に係るファイルシステム1によれば、ファイル情報管理部13は、第1の差分情報と更新前の第2の差分情報とに基づいて、更新後の第2の差分情報を作成する。差分情報のデータ量はファイル本体のデータ量より小さいのが通常であるため、いずれもデータ量の小さい第1の差分情報と更新前の第2の差分情報とに基づいて更新後の第2の差分情報を作成することにより、その作成に要する所要時間を短縮することが可能となる。