JP2009187403A - 情報管理装置およびコンピュータプログラム - Google Patents
情報管理装置およびコンピュータプログラム Download PDFInfo
- Publication number
- JP2009187403A JP2009187403A JP2008028146A JP2008028146A JP2009187403A JP 2009187403 A JP2009187403 A JP 2009187403A JP 2008028146 A JP2008028146 A JP 2008028146A JP 2008028146 A JP2008028146 A JP 2008028146A JP 2009187403 A JP2009187403 A JP 2009187403A
- Authority
- JP
- Japan
- Prior art keywords
- block
- file
- information
- data
- location information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】情報管理装置であって、ブロック単位で情報を記憶するブロック記憶部と、ブロックの場所を表す格納場所情報をファイルごとに記憶する格納場所情報記憶部と、ファイル内におけるブロックの挿入又は削除の要求を受けたとき、ブロック記憶部内において当該挿入又は削除の影響を受けるブロックのみを書き換えるとともに、当該挿入又は削除の要求に基づいて格納場所情報記憶部内の格納場所情報を書き換える情報管理部とを含んで構成される。
【選択図】図7
Description
ところで、初期の記憶装置は現在ほど大容量でなかったうえ、コンピュータで取り扱うファイルのサイズが現在ほど大きくはなかったため、ファイルシステムには専らファイルを管理するという基本的な機能が要求されていた。しかしながら、近年、記憶装置やコンピュータが取り扱うデータの大容量化が進み、従来のファイルシステムでは取り扱えない大きなファイルを扱う必要性が出てきたり、短時間で大量のファイルの入出力が必要になったりするなど、ファイルシステムがボトルネックになるような様々な問題が生じてきた。
菅谷 みどり、"Linuxファイルシステム技術解説"、[online]、平成15年5月20日、[平成19年11月30日検索]、インターネット(URL:http://www.atmarkit.co.jp/flinux/index/indexfiles/linuxfsindex.html)
図16及び図17は、既存のファイルシステムにおけるデータ変更時の処理を表す図である。図16及び図17において、各四角形はブロックを表す。ブロック中の“A(n)”はデータの内容を表す。そして、ブロックの上に位置する番号は、ブロックの番号を表す。
図16は、一つのブロックに相当するデータを削除する場合の処理を表す図である。図16に示す例では、当初、ファイルAを構成するデータが、ファイルシステム上で6つのブロックのデータA(0)、A(1)、・・・、A(5)に分割され、それぞれブロック番号が100から105までのブロックに格納されている。このような状態から、図16では、一つのブロックに相当するA(1)というデータが削除されるとする。この場合、A(2)は一度メモリに読み込まれ、もともとA(1)が格納されていた101のブロックに格納される。同様に、それ以降の順番の各データも一つずつ繰り上がったブロックにそれぞれ格納される。なお、その結果、105のブロックは空き状態となる。このように、削除の対象となったデータよりも後方の順番に該当するデータについては、その格納場所を移動する処理が生じる。
そこで本発明は、ブロック単位でファイルを管理するファイルシステムにおいて、データの削除又は挿入を実行する際の処理を効率化することのできる情報管理装置およびコンピュータプログラムを提供することを目的とする。
挿入又は削除するデータサイズがブロックサイズの倍数のときで且つ挿入又は削除するデータの先頭が記憶装置のブロックの境界と一致している場合は、処理を行う前にファイルを構成していたブロックを書き換える処理は必要ない。
また、挿入又は削除するデータサイズがブロックサイズの倍数のときで且つ挿入又は削除するデータの先頭が記憶装置のブロックの境界と一致していない場合は、処理を行う前にファイルを構成していたブロックのうち、挿入又は削除するデータの先頭が属するブロック以外はブロックを書き換える処理は必要ない。
したがって、変更される部分のデータサイズが異なる場合であっても、そのデータサイズの差がブロックサイズの倍数の場合には、つまりブロックサイズの整数倍に相当するデータの削除又は挿入を行なう場合には、変更箇所以外はブロックのデータ内容の実際の変更を行わずに、論理的にブロック移動することが可能となる。
なお、挿入の要求の場合に、情報管理部が、挿入の後のブロックの論理的順序に従って格納場所情報記憶部内の格納場所情報を書き換える処理と、ブロック記憶部内において当該挿入の影響を受けるブロックのみを書き換える処理の順序は、任意である。
このように構成された本発明によれば、ブロックの挿入処理を行なう際に、ファイルのデータにおいて当該挿入箇所よりも後方の順番に該当するブロックの順番を格納場所情報において挿入ブロック数分繰り下げるようにしているため、つまり格納場所情報の編集によって、ブロック挿入後のファイルの整合性が維持されるようにしているため、挿入箇所よりも後方の順番のブロックのデータそのものを実際に繰り下げるためのデータの移動を行なう必要がない。よって、挿入の対象となっているブロック以外のブロックについては、メモリへ読み込みやブロックへの書き込み処理が必要ない。このため、ブロックの挿入処理において、メモリへの読み込みやブロックへの書き込みに要していた時間を削減することにより、データの変更の処理を効率化することが可能となる。
なお、ブロックの挿入処理を行なう際に、挿入のために新たに必要となるブロックの格納場所の領域は、確保される。また、新たに割り当てられたブロックの場所に、挿入の要求を受けたブロックのデータが書き込まれる。
このように構成された本発明によれば、ブロックの削除処理を行なう際に、ファイルのデータにおいて当該削除箇所よりも後方の順番に該当するブロックの順番を格納場所情報において削除ブロック数分繰り上げるようにしているため、つまり格納場所情報の編集によって、ブロック削除後のファイルの整合性が維持されるようにしているため、削除箇所よりも後方の順番のブロックのデータそのものを実際に繰り上げるためのデータの移動を行なう必要がない。よって、削除の対象となっているブロック以外のブロックについては、メモリへ読み込みやブロックへの書き込み処理が必要ない。このため、ブロックの削除処理において、メモリへの読み込みやブロックへの書き込みに要していた時間を削減することにより、データの変更の処理を効率化することが可能となる。
なお、ブロックの削除処理を行なう際に、削除対象のブロックの格納場所の領域そのものは、解放される。
また、情報管理部10は、ファイルの実データをブロックサイズのデータに分割して管理する。こうして分割された複数のデータは、順番に並べられることにより、もとの一つのファイルのデータとなる。以下、この順番を表す番号を、説明の便宜上「ファイルブロック番号」と呼ぶ。また、各ブロックサイズに分割されたデータを「ブロックデータ」と呼ぶ。例えば、2つのブロックに分割されたファイルを構成する実データは、ファイルブロック番号0とファイルブロック番号1のブロックデータが、この順番に並ぶことにより構成される。そして、ファイルがどのシステムブロック番号にマッピングされたかを後述するように格納場所情報35に記録することによって、格納場所情報35を参照すればそのファイルの実データを元の順番で取り出す(再現する)ことができるようになっている。
ただし、ファイルシステム情報30やファイル情報34やディレクトリ情報37は、蓄積装置25とは別の記憶装置に記憶されても良い。ただしこの場合も、この別の記憶装置は、情報管理部10がアクセス可能な記憶装置であり、またファイルの実データと、ファイルシステム情報30やファイル情報34やディレクトリ情報37とは、関連付けてセットとして管理される。
図2(b)は、ファイル情報34の内容を示す図である。ファイル情報34は、ファイル毎に管理される。ファイル情報34は、各ファイルについての格納場所情報35やファイル属性情報36などを含む。格納場所情報35は、ファイルの実データの格納ブロック番号に関する情報を含む。具体的には、格納場所情報35は、各ファイルについて、各ファイルブロック番号の実データが格納されているシステムブロック番号についての情報を含む。ファイル属性情報36は、ファイルのサイズ、作成日時、アクセス権限などの情報を含む。
図2(c)は、ディレクトリ情報37の内容を示す図である。ディレクトリ情報37は、ファイル名とファイル情報番号とを対応付けるテーブルを有している。図示するデータ例では、ファイル名(1)はファイル情報番号(1)に対応し、ファイル名(2)はファイル情報番号(2)に対応し、また、以下同様である。
ファイルに対する入出力の際には、アプリケーション実行部APが指定するファイル名を基に、このディレクトリ情報37を参照することによって当該ファイル名に対応するファイル情報番号が特定され、そのファイル情報番号によって当該指定されたファイルのファイル情報34の場所を得ることができる。そして、そのように特定されたファイル情報34を用いて、格納場所の実データを読み出したり書き込んだりすることができる。
次に、情報管理部10の機能部の詳細について説明する。情報管理部10は、ファイル入出力部11、ブロック入出力部12、ブロック管理部13、ファイル情報管理部14及びファイル管理部15を含む。なお、以下の説明では、情報管理部10は、情報管理装置100のOSとしての機能の一つであるファイルシステムとしての機能を実行する機能部である。
ブロック入出力部12は、ファイル入出力部11によって指定されたシステムブロック番号に対応するファイルシステム上のブロックに対し、ブロック単位で書き込み処理や読み込み処理を行う。
ファイル情報管理部14は、ファイルシステム情報30内のファイル管理情報32を管理する。すなわち、ファイル管理情報32により、全ファイル情報34について、それが使用中か否かを管理する。例えば、ファイルの新規作成要求があれば、ファイル情報管理部14は、そのファイルに対するファイル情報34を割り当て、その結果をファイル管理情報32上で使用中として管理する。また、ファイル情報管理部14は、ファイルの削除要求があれば、そのファイルのファイル情報34を解放し、その結果をファイル管理情報32上で未使用として管理する。
また、ファイル管理部15は、既存のファイルに対して書き換え(書き込み)要求があるとき、そのファイル情報34のファイルサイズ情報やファイル更新時刻などを更新するとともに、ファイルサイズの変更に伴ってファイルの使用ブロック数に変更がある場合は、格納場所情報も更新する。使用ブロック数が減少する場合は、格納場所情報35内の使用しなくなるシステムブロック番号を削除して、そのシステムブロック番号を削除ブロック番号としてファイル入出力部11に返す。ファイル入出力部11はブロック管理部13にそのシステムブロック番号を渡し、それらのブロックを解放する。使用ブロック数が増加する場合は、追加ブロックが必要であるという情報をファイル入出力部11に返す。ファイル入出力部はブロック管理部13に問い合わせて空きブロックの中から必要なブロック数分のシステムブロック番号を受け取る。ファイル管理部15は、このシステムブロック番号を追加ブロック番号として受け取り、格納場所情報35に追加する。この追加ブロックの処理は1ブロックずつ行ってもよいし、複数ブロックまとめて行ってもよい。また、ファイル管理部15は、ファイルにアクセスしようとするアプリケーションプログラムの権限と、そのファイル属性情報36に記されたアクセス権限に関する情報とに基づいて、そのファイルへのアクセスを許可するか否か判断する。
また、ブロックデータの書き換え処理が発生した場合は、キャッシュメモリ管理部21は、所定のアルゴリズムに従って下位の記憶装置(例えば蓄積装置25)に対し書き換え処理の反映を行う。
キャッシュメモリ23は、高速にアクセス可能なメモリ装置を用いて構成される。例えば、キャッシュメモリ23は、SRAM(Static Random Access Memory)等を用いて構成される。
蓄積装置入出力部24は、蓄積装置25の種類に依存する制御コマンドなどを担当し、キャッシュメモリ管理部21が蓄積装置25の種類に依存することなく動作可能となるように機能する。
蓄積装置25は、一般的には不揮発性の記憶装置を用いて構成される。蓄積装置25は、例えばハードディスク装置や書き換え可能な光ディスク装置などを用いて構成されても良いし、コンピュータがリセットされたときに記録された情報が消去されても良い場合は揮発性の記憶装置である半導体メモリを用いて構成されても良い。蓄積装置25は、情報管理部10による書き込み処理を受け、ブロック単位で情報を記憶する(「ブロック記憶部」に相当する。)。また、蓄積装置25は、ファイルシステム情報30とファイル情報34とディレクトリ情報37を記憶する(「格納場所情報記憶部」に相当する。)。
〔ファイルopen〕
図3は、アプリケーション実行部APからファイルopen(ファイルを開く)の指示があった場合の、情報管理装置100の動作手順を示すフローチャートである。
アプリケーション実行部APからファイル名およびアクセスモード(書込モードまたは読出モード)を指定してファイルopenの指示が出されると(ステップS01)、ファイル入出力部11は、ファイル管理部15に対し、ファイルopen指示の対象となっているファイルが存在するか否か問い合わせる。ファイル管理部15は、ディレクトリ情報37により、指定されたファイル名の有無を確認する。ファイルが存在する場合(ステップS02−YES)、ファイル管理部15は、ディレクトリ情報37より該当するファイル情報番号を取得し、このファイル情報番号に対応するファイル情報34をファイル入出力部11へ渡す。これにより、ファイル入出力部11は、指示の対象となったファイルに関するファイル情報34を取得する(ステップS03)。
図4は、アプリケーション実行部APからファイルread(ファイルを読む)の指示があった場合の情報管理装置100の動作手順を示すフローチャートである。アプリケーション実行部APからファイルreadの指示が出されると(ステップS10)、ファイル入出力部11は、ファイル管理部15に対し、ファイルreadの指示の対象となっているファイルの実データが格納されているブロックのシステムブロック番号を問い合わせる。ファイル管理部15は、ファイル情報34に含まれる格納場所情報35に基づき、問い合わせの対象となっているシステムブロック番号を取得し、これをファイル入出力部11へ渡す。ファイル入出力部11は、これを受け取ることにより、システムブロック番号を特定する(ステップS11)。
図5は、アプリケーション実行部APからファイルremove(ファイルを消去)の指示があった場合の、情報管理装置100の動作手順を示すフローチャートである。アプリケーション実行部APからファイルremoveの指示が出されると(ステップS20)、ファイル入出力部11は、指定されたブロックデータが格納されているシステムブロック番号をファイル管理部15に問い合わせる。ファイル管理部15は、ファイル情報34内の格納場所情報35をもとに、システムブロック番号を取得し(ステップS21)、これをファイル入出力部11に返す。ファイル入出力部11は、ファイル管理部15から受け取ったシステムブロック番号に基づき、このシステムブロック番号に該当するブロックを解放することを、ブロック管理部13に指示する。そして、ブロック管理部13は、指示されたシステムブロック番号のブロックを解放する(ステップS22)。このとき、ファイル入出力部11は、ブロック入出力部12に対し、このブロックに係るブロックデータを削除することを指示するように構成されても良いし、特にこのような削除指示を行わないように構成されても良い。解放されたブロックは、ブロック管理部13によって、今後新たなブロック割り当て処理が行われる際に、割り当て対象の新規ブロックとして取り扱われる。その後、ファイル入出力部11は、ファイル情報管理部14に対し、このファイルに関するファイル情報34を解放することを指示する。そして、ファイル情報管理部14は、指示に従ってファイル情報34を解放する(ステップS23)。
図6は、アプリケーション実行部APからブロック削除の指示があった場合の、情報管理装置100の動作手順を示すフローチャートである。アプリケーション実行部APから、ファイル内のブロック削除の指示が出されると(ステップS30)、ファイル入出力部11は、指定されたブロックデータが格納されているシステムブロック番号をファイル管理部15に問い合わせる。ファイル管理部15は、ファイル情報34内の格納場所情報35をもとに、システムブロック番号を取得し、これをファイル入出力部11に返す。このとき、ファイル情報34内の格納場所情報35から該当ブロック番号を削除する(ステップS31)。ファイル入出力部11は、ファイル管理部15から受け取ったシステムブロック番号に基づき、このシステムブロック番号に該当するブロックを解放することを、ブロック管理部13に指示する。そして、ブロック管理部13は、指示されたシステムブロック番号のブロックを解放する(ステップS32)。
このとき、ファイル入出力部11は、ブロック入出力部12に対し、このブロックに係るブロックデータを削除することを指示するように構成されても良いし、特にこのような削除指示を行わないように構成されても良い。解放されたブロックは、ブロック管理部13によって、今後新たなブロック割り当て処理が行われる際に、割り当て対象の新規ブロックとして取り扱われる。
図7は、ブロック削除の処理における格納場所情報35の内容の遷移を示す図である。図7には、ファイルシステムにおけるブロックの状況及び格納場所情報35の内容を、6つのブロックデータで構成されたファイルAの実データがシステムブロック番号100〜105に順番に記録されている場合を例にとって示す。
図7において、上段に示される連続した6つの矩形は、それぞれファイルシステムにおけるブロックを示す。各ブロックの上に記載された番号は、各ブロックのシステムブロック番号を示す。各ブロックを表す矩形内に記載されたA(0)〜A(5)の文字列は、各ブロックに格納されたブロックデータを示す。ファイルAの実データは、A(0)〜A(5)が順に並ぶことによって構成される。
図7の下段には、ファイルAに係る格納場所情報35の内容を示す。図7における格納場所情報35は、ext2等のファイルシステムと同様に、ファイルブロック番号とシステムブロック番号とを1対1で対応付けて管理する。格納場所情報35の左側にある番号はファイルブロック番号を示し、右側にある番号は各ファイルブロック番号に対応する実データが格納されたブロックのシステムブロック番号を示す。以下、図7を用いて、ブロック削除の処理における格納場所情報35の遷移について説明する。なお、図7では、ファイルブロック番号1のブロックデータが削除される場合を例に示す。
この場合、削除の対象となったファイルブロック番号1以降の各ブロックデータが格納されるブロックは、削除処理前の状態と変わらない。すなわち、ファイル管理部15が格納場所情報35のみを変更することにより、削除の対象となったファイルブロック番号1以降のブロックデータそのものを移動させる処理が発生しない。本実施形態による情報管理装置100では、ブロックデータそのものを移動させる処理に代えて、上述の通り、ファイル管理部15が、ファイルAのファイル情報34の格納場所情報35において、ファイルブロック番号1〜5に対応付けられているシステムブロック番号を、それぞれ書き換える。
図8は、図7と同様に、ブロック削除の処理における格納場所情報35の内容の遷移を示す図である。ただし、図8では、格納場所情報35には、xfsやext4等のファイルシステムと同様に、エクステント方式が採用されている。エクステント方式では、格納場所情報35は、ファイルの第nブロックから連続するL個のブロックに係るブロックデータがファイルシステム上の第mブロックから連続するLブロックに格納されていることを、“n,L,m”として管理する。上述した“n”はファイルブロック番号に相当し、“m”はシステムブロック番号に相当する。このように、エクステント方式では、格納場所情報35は、連続するブロック毎に1セットの、格納場所に関する情報を有する。
図8の左側と右側には、それぞれ図7の場合と同様に、ファイルブロック番号1のブロックデータが削除される前と後の状態を示す。図8の左側の格納場所情報35では、上述した“n,L,m”のそれぞれが“0,6,100”として示される。即ち、図8の左側の格納場所情報35には、ファイルブロック番号0から連続する6つのブロックデータが、システムブロック番号100から連続する6つのブロックに格納されていることが示されている。
図9は、アプリケーション実行部APからブロック挿入の指示があった場合の、情報管理装置100の動作手順を示すフローチャートである。アプリケーション実行部APから、ファイル内にブロック挿入の指示が出されると(ステップS40)、ファイル入出力部11は、ブロック管理部13に対し、割り当て可能なブロックを取得するように指示する。割り当て可能なブロックが存在しない場合(ステップS41−NO)、ブロック管理部13は、ファイル入出力部11に対しエラーを出力する。そして、ファイル入出力部11は、アプリケーション実行部APに対しエラーを出力する(ステップS42)。
一方、割り当て可能なブロックが存在する場合(ステップS41−YES)、ブロック管理部13は、割り当て可能なブロックを、ブロック挿入処理の対象となっているファイルに対し新たに割り当てる(ステップS43)。また、ブロック管理部13は、新たに割り当てられたブロックのシステムブロック番号を、ファイル入出力部11に通知する。ファイル入出力部11は、この通知を受けると、ファイル管理部15に対し、ブロック挿入処理の対象となっているファイルに関するファイル情報34の格納場所情報35の挿入を指示した箇所に、新たに割り当てられたシステムブロック番号を追加するように指示する。この指示を受けたファイル管理部15は、ブロック挿入処理の対象となっているファイルのファイル情報34の格納場所情報35の挿入を指示した箇所に対し、新たに割り当てられたブロックのシステムブロック番号を追加する(ステップS44)。
図10は、ブロック挿入の処理における格納場所情報35の内容の遷移を示す図である。図10には、ブロックの状況及び格納場所情報35の内容を、5つのブロックデータで構成されたファイルAの実データがシステムブロック番号100〜104に順番に記録されている場合を例にとって示す。
図10の左側には、ファイルブロック番号1の位置に、A(5)のブロックデータが挿入される前の、ブロックの状況及び格納場所情報35の内容を示す。これに対し、図10の右側には、ファイルブロック番号1の位置にA(5)のブロックデータが挿入された後の、ブロックの状況及び格納場所情報35の内容を示す。このデータ挿入の際、ファイル管理部15は、格納場所情報35を後述するように変更するものの、挿入の対象となるファイルブロック番号1以降の各ブロックデータが格納されるブロックそのものを書き換える処理は必要ない。すなわち、挿入の対象となったファイルブロック番号1以降の各ブロックデータを、他のシステムブロック番号に係るブロックへ移動させる処理は発生しない。本発明による情報管理装置100では、ブロックデータそのものを移動させる処理に代えて、以下のような処理が実行される。
図11は、図10と同様に、ブロック挿入の処理における格納場所情報35の内容の遷移を示す図である。ただし、図11では、格納場所情報35には、図8と同様にエクステント方式が採用されている。
図11の左側と右側には、それぞれ図10の場合と同様に、ファイルブロック番号1のブロックデータが挿入される前と後の状態を示す。図10の左側の格納場所情報35では、上述した“n,L,m”のそれぞれが“0,5,100”として示される。即ち、図11の左側の格納場所情報35には、ファイルブロック番号0から連続する5つのブロックデータが、システムブロック番号100から連続する5つのブロックに格納されていることが示されている。
例えば、動画像データを取り扱う状況、特に放送局などにおいては、一つのファイルのサイズが数ギガバイト〜数十ギガバイトを超えることが一般的である。放送局において取り扱われる1時間番組のファイルの実データは50ギガバイト程度(100Mbpsで計算)である。従って、例えばブロックサイズが4096バイトの場合、ファイルを構成するブロックデータの数は1000万のオーダーに達する。このようなファイルにおいて、先頭に近いファイルブロック番号のブロックデータに対して1ブロック分に相当するデータの削除が実行された場合に、その後のファイルブロック番号に係る全てのブロックデータについて移動処理を実行すると、この処理に要する時間は相当なものとなる。例えば、上述したようにファイルサイズが50ギガバイト程度の場合、平均的にその半分のブロックデータについて移動処理が行われるとすると、書き換えが行われるデータ量は25ギガバイトとなる。これに対し、本発明による情報管理装置100では、このような移動処理が実行されず、格納場所情報35の書き換えが行われる。従って、上述したようにブロックデータ数が1200万程度の場合、格納場所情報を32bit(4バイト)とし平均的にその半分のブロックデータについて移動処理が行われるとすると、「1対1管理方式」では、書き換えが行われるデータ量は、600万×4=24メガバイトとなる。このように、従来移動処理に要していた時間を削減(上述した具体例の場合は約1/1000に削減)することが可能となる。さらに「エクステント方式」では、後述するように、数十バイト程度の変更で良いので、さらに短時間で格納場所情報35の書き換えが完了する。このような効果は、削除処理のみならず、挿入処理の場合も同様に奏される。
また、情報管理装置100において、図8や図11に示されるようなエクステント方式が採用された場合は、さらに処理時間を削減することが可能となる。1対1方式の場合、格納場所情報35において、削除や挿入の処理対象となったファイルブロック番号以降の全てのファイルブロック番号について、対応するシステムブロック番号を書き換える必要がある。このため、このような処理の対象となるブロック数に応じて、処理時間が増大する。これに対し、エクステント方式の場合は、連続しているブロックについては、一つ一つのブロックについて書き換えを行う必要がない。このため、エクステント方式が採用された場合、格納場所情報35の書き換えに要する時間を削減することが可能となる。
図12は、挿入又は削除するデータのサイズがブロックサイズの整数倍であり且つ挿入又は削除するデータの先頭位置がブロックの先頭と一致しない場合のデータを示す概略図である。
まずデータ削除について説明する。図12(a)は、削除前のファイルを示す。削除前のファイルは4ブロック(左から、0ブロック目、1ブロック目、2ブロック目、3ブロック目)で構成されており、このうち1ブロック目と2ブロック目にまたがっている、ハッチングで示した、ブロックサイズ分のデータが削除対象である。このデータを削除する場合、情報管理部10は、2ブロック目の削除対象以外のデータを1ブロック目の同じ場所に移動する(つまり、1ブロック目を書き換える)とともに、前述の削除処理を用いて2ブロック目を削除することにより、削除に影響しない0ブロック目と3ブロック目はデータの移動を行う必要がない。図12(b)は、削除後のファイルを示す。言い換えると、この一連の処理は、第1のステップにおいて図12(a)の2ブロック目を前述した処理方法によって削除するとともに、第2のステップにおいては当該2ブロック目に含まれていたデータの一部を用いて同図の1ブロック目のデータ内容の一部を書き換えている。ここでの第1のステップの削除処理は、当該削除の後のブロックの論理的順序に従うように格納場所情報を書き換えるものである。
なおここでは、削除対象のデータがブロックサイズの1倍の場合の例を説明したが、削除対象のデータがブロックサイズのn倍(nは2以上の整数)であっても同様の方法による削除が可能である。また、ここでは書き換えや削除対象のブロックの前後はそれぞれ1ブロックの場合の例を説明したが、それぞれ何ブロックであっても書き換えや削除対象ブロック以外は、削除の影響を受けない。
なおここでは、挿入対象のデータがブロックサイズの1倍の場合の例を示したが、挿入対象のデータがブロックサイズのn倍(nは2以上の整数)であっても同様の方法による挿入が可能である。また、ここでは書き換えや挿入対象のブロックの前後はそれぞれ1ブロックの場合の例を説明したが、それぞれ何ブロックであっても書き換えや挿入対象ブロック以外は、挿入の影響を受けない。
図13は、ファイルの編集前後でのデータサイズの差がブロックサイズの整数倍である場合のデータを示す概略図である。図13(a)は、編集前のファイルを示し、このファイルは4ブロック(左から、0ブロック目、1ブロック目、2ブロック目、3ブロック目)からなる。ここで、1ブロック目から2ブロック目に渡る、ハッチングの部分が編集対象のデータである。図13(b)は、この部分を編集した結果のファイルを示し、編集の結果として、ファイルのデータサイズはちょうど5ブロック分となっている。つまり編集前後でのデータサイズの差がブロックサイズの1倍である。図13(b)において、編集の影響を受けた箇所は、1ブロック目から3ブロック目に渡る、ハッチングの部分である。このような編集を行なう際に、上述したデータ挿入処理を利用することにより、当初ファイルの0ブロック目と3ブロック目は編集の影響を受けず、データの移動を行う必要がない。言い換えると、この一連の処理は、第1のステップにおいて図13(a)の1ブロック目と2ブロック目との間に新たなブロックを前述した処理方法によって挿入する(挿入されたブロックは図13(b)の2ブロック目であり、当該ブロックは、編集結果のデータを含むように書き込まれる)とともに、第2のステップにおいては編集結果のデータを用いて図13(b)の1ブロック目のデータ内容の一部および3ブロック目のデータ内容の一部を書き換えている。ここでの第1のステップの挿入処理は、当該挿入の影響を受けるブロックのみを書き換えるとともに、当該挿入の後のブロックの論理的順序に従うように格納場所情報を書き換えるものである。
なお、編集前後でのデータサイズの差がブロックサイズのn倍(nは2以上の整数)であっても同様である。
また、編集前のファイルが図13(b)で編集後のファイルが図13(a)の場合も、編集前後でのデータサイズの差がブロックサイズの整数倍であり、この場合には、上述したデータ削除処理を利用することにより、編集の影響を受けないデータの移動を行なう必要がない。言い換えると、この一連の処理は、第1のステップにおいて図13(b)の2ブロック目を前述した処理方法によって削除するとともに、第2のステップにおいては編集結果のデータをそれぞれ用いて図13(a)の1ブロック目のデータ内容の一部と2ブロック目のデータ内容の一部とを書き換えている。ここでの第1のステップの削除処理は、当該削除の後のブロックの論理的順序に従うように格納場所情報を書き換えるものである。
本発明による情報管理装置100は、MXF(Material eXchange Format:SMPTE 377M等)ファイルを取り扱う場面で適用されても良い。MXFは、ブロックデバイスへの記録も意識したフォーマットである。このため、例えば動画像の各フレームの先頭を、ファイルシステムにおけるブロックの先頭に位置合わせすることが可能である。言い換えれば、MXFでは、動画像のフレームの境界と、ファイルシステムにおけるブロックの境界とを一致させることが可能である。このため、変更の生じたフレームを含むブロックのみに対して変更処理を行うことが可能となる。従って、MXFでは、動画像のフレーム単位での書き換えが容易に実施可能である。
このようなMXFファイルを情報管理装置100で取り扱う場合、フレーム単位で削除や挿入の必要が生じた場合には、上述したブロックの削除処理や挿入処理を行うことにより、フレーム単位での削除・挿入を実現することができる。さらに、従来とは異なり、削除や挿入に伴う移動処理が不要であるため、このようなフレーム単位での削除や挿入の処理に要する時間を削減することが可能となる。
図14,15は、それぞれ本発明におけるブロック削除の処理(図6のフローチャート)、ブロック挿入の処理(図9のフローチャート)を実現するプログラムソースコードの具体例を示す図である。図14,15に示されたプログラムソースコードは、UNIX(登録商標)系OS上のアプリケーションプログラムによってこれらの処理を行うためのものである。図14は、ファイルAのファイルブロック番号1のブロックデータを削除するためのプログラムを示す。図15は、ファイルAのファイルブロック番号1に、“0”の値で埋めた1つのブロックデータを挿入するためのプログラムを示す。図14,15とも、説明を簡略化するため、エラー処理の記述は省略している。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
Claims (4)
- ブロック単位で情報を記憶するブロック記憶部と、
前記ブロックの場所を表す格納場所情報をファイルごとに記憶する格納場所情報記憶部と、
前記ファイル内におけるブロックの挿入又は削除の要求を受けたとき、当該挿入又は削除の後のブロックの論理的順序に従って前記格納場所情報記憶部内の前記格納場所情報を書き換えるとともに、ブロックの挿入の要求を受けた場合には前記ブロック記憶部内において当該挿入の影響を受けるブロックのみを書き換える情報管理部と、
を含んで構成されることを特徴とする情報管理装置。 - 前記情報管理部は、ブロックの挿入の要求を受けた場合、当該ファイルに対し新たに割り当てられたブロックの場所を挿入するブロックの場所として前記格納場所情報記憶部内の前記格納場所情報に追加し、前記ファイルのデータにおいて当該挿入箇所よりも後方の順番に該当するブロックの順番を前記格納場所情報において挿入ブロック数分繰り下げ、前記格納場所情報において当該ファイルに対し新たに割り当てられたブロックの場所に前記挿入の要求を受けたブロックのデータを書き込む、請求項1に記載の情報管理装置。
- 前記情報管理部は、ブロックの削除の要求を受けた場合、当該削除の対象となるブロックの場所を前記格納場所情報記憶部内の前記格納場所情報から削除し、前記ファイルのデータにおいて当該削除箇所よりも後方の順番に該当するブロックの順番を前記格納場所情報において削除ブロック数分繰り上げる、請求項1に記載の情報管理装置。
- ブロック単位で情報を記憶するブロック記憶部と、前記ブロックの場所を表す格納場所情報をファイルごとに記憶する格納場所情報記憶部とを含んで構成されるコンピュータに、
前記ファイル内におけるブロックの挿入又は削除の要求を受けたとき、
当該挿入又は削除の後のブロックの論理的順序に従って前記格納場所情報記憶部内の前記格納場所情報を書き換えるステップと
ブロックの挿入の要求を受けた場合には前記ブロック記憶部内において当該挿入の影響を受けるブロックのみを書き換えるステップと、
を実行させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008028146A JP2009187403A (ja) | 2008-02-07 | 2008-02-07 | 情報管理装置およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008028146A JP2009187403A (ja) | 2008-02-07 | 2008-02-07 | 情報管理装置およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009187403A true JP2009187403A (ja) | 2009-08-20 |
Family
ID=41070555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008028146A Pending JP2009187403A (ja) | 2008-02-07 | 2008-02-07 | 情報管理装置およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009187403A (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08255100A (ja) * | 1994-12-21 | 1996-10-01 | Yamaha Corp | ファイル管理システム及び方法 |
JP2001134475A (ja) * | 1999-11-01 | 2001-05-18 | Hitachi Ltd | ファイルシステム |
JP2002208222A (ja) * | 2001-01-09 | 2002-07-26 | Fujitsu Ltd | ファイルシステム及び記憶領域の管理方法 |
-
2008
- 2008-02-07 JP JP2008028146A patent/JP2009187403A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08255100A (ja) * | 1994-12-21 | 1996-10-01 | Yamaha Corp | ファイル管理システム及び方法 |
JP2001134475A (ja) * | 1999-11-01 | 2001-05-18 | Hitachi Ltd | ファイルシステム |
JP2002208222A (ja) * | 2001-01-09 | 2002-07-26 | Fujitsu Ltd | ファイルシステム及び記憶領域の管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8549051B2 (en) | Unlimited file system snapshots and clones | |
US5559957A (en) | File system for a data storage device having a power fail recovery mechanism for write/replace operations | |
US9430155B2 (en) | File index, metadata storage, and file system management for magnetic tape | |
US8392685B2 (en) | Arrangements for managing metadata of an integrated logical unit including differing types of storage media | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
US9785547B2 (en) | Data management apparatus and method | |
JP2009199625A (ja) | メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
US20070061540A1 (en) | Data storage system using segmentable virtual volumes | |
KR100703680B1 (ko) | 플래시 파일 시스템 | |
EP2669806B1 (en) | Storage system | |
JP4130808B2 (ja) | フォーマット方法 | |
JP2008090378A (ja) | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
US9063656B2 (en) | System and methods for digest-based storage | |
KR101102754B1 (ko) | 낸드 플래시 메모리 파일 시스템 및 낸드 플래시 메모리 시스템에서 파일 엑세스 방법 | |
JP2009187403A (ja) | 情報管理装置およびコンピュータプログラム | |
US20170115926A1 (en) | Information processing device, information processing method and program | |
JP2004030305A (ja) | ファイルシステム | |
EP2256648A1 (en) | Method for storing data files, method for reading data content, and data store | |
KR20190056087A (ko) | 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법 | |
JP4086600B2 (ja) | ロールバック可能fatファイルシステム及びプログラム | |
JP2005222531A (ja) | データ記録装置及びデータ記録方法 | |
JP2017146722A (ja) | ストレージ装置 | |
JP2014153873A (ja) | 情報処理装置、情報処理方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120417 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121002 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130402 |