JP2008090378A - ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 - Google Patents
ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 Download PDFInfo
- Publication number
- JP2008090378A JP2008090378A JP2006267590A JP2006267590A JP2008090378A JP 2008090378 A JP2008090378 A JP 2008090378A JP 2006267590 A JP2006267590 A JP 2006267590A JP 2006267590 A JP2006267590 A JP 2006267590A JP 2008090378 A JP2008090378 A JP 2008090378A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- file system
- file
- target
- request
- 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.)
- Withdrawn
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】ファイルシステムの組み合わせでキャッシュ化を実現することにより、効率的にキャッシュ管理を行い得るハイブリッドファイルシステム等を提供すること。
【解決手段】高速デバイス用のキャッシュファイルシステム23および低速デバイス用のターゲットファイルシステム22へのデータ入出力を制御するハイブリッドファイルシステム21であって、ファイル、ディレクトリまたはフォルダ単位でキャッシュ対象を指定しておき、ユーザアプリケーション11からアクセス要求された要求ファイルがキャッシュ対象であるか否かを判別して、当該要求ファイルがキャッシュ対象であると判別した場合、キャッシュファイルシステム23およびターゲットファイルシステム22間で要求ファイルの入出力制御を行うと共に、キャッシュ対象でないと判別した場合、ターゲットファイルシステム22のみと要求ファイルの入出力制御を行う。
【選択図】図1
【解決手段】高速デバイス用のキャッシュファイルシステム23および低速デバイス用のターゲットファイルシステム22へのデータ入出力を制御するハイブリッドファイルシステム21であって、ファイル、ディレクトリまたはフォルダ単位でキャッシュ対象を指定しておき、ユーザアプリケーション11からアクセス要求された要求ファイルがキャッシュ対象であるか否かを判別して、当該要求ファイルがキャッシュ対象であると判別した場合、キャッシュファイルシステム23およびターゲットファイルシステム22間で要求ファイルの入出力制御を行うと共に、キャッシュ対象でないと判別した場合、ターゲットファイルシステム22のみと要求ファイルの入出力制御を行う。
【選択図】図1
Description
2つのファイルシステムを組み合わせてキャッシュ管理を行うハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
従来、使用頻度の高いデータを高速デバイスに格納しておくことで、低速デバイスへのアクセス回数を軽減し処理速度を向上させる、いわゆる「キャッシュ」が知られている。このキャッシュに用いられる高速デバイス(以下、「キャッシュメモリ」と称する)は、ファイルシステムにより管理され、通常データまたはブロック単位で読み書きを行う(例えば、特許文献1)。
特開平7−84886号公報
図10は、従来のファイルシステムによるキャッシュ管理を示す図である。同図に示すように、通常、ファイルシステム103は、バーチャルファイルシステム102(ファイルシステム103を統一的に扱うための層)と共にオペレーティングシステム110の一機能として提供されるものである。例えば、ユーザアプリケーション101からアクセス要求(読み出し要求/書き込み要求)があると、バーチャルファイルシステム102は、部分的に要求を処理し、残りの処理の要求を適当なファイルシステム103(ext3、FAT、nfsなど)に出力する。アクセス要求を取得したファイルシステム103は、キャッシュメモリ104を利用して所定のキャッシュ処理を行い、デバイスドライバ105(HDD、CF、Networkなど)に対してデータの入出力を行う。デバイスドライバ105は、デバイス106へのインターフェースとして機能し、対応するデバイス106と、データの読み出し処理および書き込み処理を行う。
このように、従来は、1台のコンピュータ100に、キャッシュ管理を行うファイルシステム103を複数搭載することはあるものの、各ファイルシステム103でキャッシュ管理を行うことが一般的であり、キャッシュ管理を行わないファイルシステムを搭載するといった発想はなかった。つまり、ファイルシステムを組み合わせた形でキャッシュ管理を行うといったことは為されていなかった。
ところで、キャッシュに用いられるキャッシュメモリ104は、通常少容量であるため、これを管理するファイルシステム103は、新しいデータを書き込む際に、キャッシュメモリ104の空き領域を確認し、空き領域がない場合には古いデータを消去して新しいデータを書き込むといった処理を必要とする。特に、データの書き換えをブロック単位で行うフラッシュメモリをキャッシュメモリ104として用いた場合は、データの書き換えが頻繁に発生すると、処理速度向上を目的とするはずのキャッシュに時間がかかってしまうといった問題がある。
本発明は、このような問題点に鑑み、ファイルシステムの組み合わせでキャッシュ化を実現することにより、効率的にキャッシュ管理を行い得るハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体を提供することを目的とする。
本発明のハイブリッドファイルシステムは、キャッシュメモリとして用いられる高速デバイス用のキャッシュファイルシステム、および主記憶装置として用いられる低速デバイス用のターゲットファイルシステムへのデータ入出力を制御するハイブリッドファイルシステムであって、ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定するキャッシュ対象指定手段と、キャッシュ対象指定手段による指定結果を記憶するキャッシュ対象記憶手段と、キャッシュ対象記憶手段を参照し、ユーザアプリケーションからアクセス要求された要求ファイルがキャッシュ対象であるか否かを判別するキャッシュ判別手段と、要求ファイルがキャッシュ対象であると判別した場合、キャッシュファイルシステムおよびターゲットファイルシステム間で要求ファイルの入出力制御を行うと共に、キャッシュ対象でないと判別した場合、ターゲットファイルシステムのみと要求ファイルの入出力制御を行うキャッシュ制御手段と、を備えたことを特徴とする。
本発明のキャッシュ制御方法は、キャッシュメモリとして用いられる高速デバイス用のキャッシュファイルシステム、および主記憶装置として用いられる低速デバイス用のターゲットファイルシステムへのデータ入出力を制御するハイブリッドファイルシステムのキャッシュ制御方法であって、ハイブリッドファイルシステムが、ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定するステップと、ユーザアプリケーションからアクセス要求された要求ファイルがキャッシュ対象として指定されているか否かを判別するステップと、要求ファイルがキャッシュ対象であると判別した場合、キャッシュファイルシステムおよびターゲットファイルシステム間で要求ファイルの入出力制御を行うと共に、キャッシュ対象でないと判別した場合、ターゲットファイルシステムのみと要求ファイルの入出力制御を行うステップと、を実行することを特徴とする。
これらの構成によれば、高速デバイス用のキャッシュファイルシステムと低速デバイス用のターゲットファイルシステムとの2つのファイルシステムを組み合わせて用いるため、ファイルアクセスの高速化を図ることができる。また、ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定することにより、キャッシュ対象を絞ることができる。つまり、無駄なキャッシュ処理を省くことで、効率的なキャッシュ化を実現でき、さらにファイルアクセスを高速化できる。
なお、キャッシュ対象がディレクトリまたはフォルダ単位で指定された場合、それらに含まれるファイル全てをキャッシュ対象として指定されたものとして扱う。
また、キャッシュファイルシステムとしては、従来のファイルシステム(1つのファイルシステムでキャッシュ管理を行うもの)を用いることが好ましい。この構成によれば、本発明の汎用性を高めることができる。
なお、キャッシュ対象がディレクトリまたはフォルダ単位で指定された場合、それらに含まれるファイル全てをキャッシュ対象として指定されたものとして扱う。
また、キャッシュファイルシステムとしては、従来のファイルシステム(1つのファイルシステムでキャッシュ管理を行うもの)を用いることが好ましい。この構成によれば、本発明の汎用性を高めることができる。
上記のハイブリッドファイルシステムにおいて、キャッシュ制御手段がキャッシュ制御を行うための情報であって、ターゲットファイルシステムからキャッシュファイルシステムへのファイル複製に関する複製要求情報を含む管理情報を記憶する管理情報記憶手段と、キャッシュファイルシステムとターゲットファイルシステムとの同期をとるための同期処理を定期的に実行する同期制御手段と、をさらに備え、キャッシュ制御手段は、ユーザアプリケーションからオープン処理が要求され、要求ファイルがキャッシュ対象であり、且つキャッシュファイルシステムに未キャッシュの場合、キャッシュファイルシステムに対してオープン処理を要求すると共に、管理情報記憶手段における要求ファイルの複製要求情報を「複製要求あり」に更新し、同期制御手段は、管理情報記憶手段を参照して複製要求情報が「複製要求あり」のファイルが存在する場合、ターゲットファイルシステムから該当するファイルを読み出して、キャッシュファイルシステムに書き込み、その後複製要求情報を「複製済み」に更新することが好ましい。
この構成によれば、ユーザアプリケーションからオープン処理が要求されたときに同期処理を行う(該当するファイルを、ターゲットファイルシステムからキャッシュファイルシステムに書き込む)のではなく、定期的に同期処理を行うことで、効率的にキャッシュ処理を行うことができる。すなわち、一般的にファイルの書き込みには時間がかかるが、同期制御手段によってバックグランドで処理させることで、見かけのファイルアクセスを高速化することができる。
上記のハイブリッドファイルシステムにおいて、管理情報記憶手段は、管理情報として、キャッシュ済みファイルのライトバック状況に関するライトバック情報をさらに記憶し、キャッシュ制御手段は、ユーザアプリケーションからクローズ処理が要求され、要求ファイルがキャッシュ対象であり、且つキャッシュファイルシステムにキャッシュ済みの場合、キャッシュファイルシステムに対してクローズ処理を要求すると共に、管理情報記憶手段における要求ファイルのライトバック情報を「ライトバック要求あり」に更新し、同期制御手段は、管理情報記憶手段を参照してライトバック情報が「ライトバック要求あり」のファイルが存在する場合、キャッシュファイルシステムから該当するファイルを読み出して、ターゲットファイルシステムに書き込み、その後ライトバック情報を「ライトバック済み」に更新することが好ましい。
この構成によれば、ユーザアプリケーションからクローズ処理が要求されたときに同期処理を行う(該当するファイルを、キャッシュファイルシステムからターゲットファイルシステムに書き込む)のではなく、定期的に同期処理を行うことで、見かけのファイルアクセスを高速化することができる。また、ターゲットファイルシステムに書き込む同期処理を、定期的に行うことで、ターゲットファイルシステムへの書き込み回数を減らすことができる。これにより、書き換え回数に制限のあるデバイス(コンパクトフラッシュ(登録商標)など)を用いる場合、デバイス寿命の延命を図ることができる。
上記のハイブリッドファイルシステムにおいて、キャッシュファイルシステムに未キャッシュのファイルを一時的に記憶する一時記憶手段と、キャッシュファイルシステムに対する書き込みを非同期に行う非同期書き込み手段と、をさらに備え、管理情報記憶手段は、管理情報として、一時記憶手段からキャッシュファイルシステムへのキャッシュ要求に関するキャッシュ要求情報をさらに記憶し、キャッシュ制御手段は、要求ファイルがキャッシュ対象であり、且つ未キャッシュの場合、ターゲットファイルシステムから要求ファイルを読み出して一時記憶手段に書き込むと共に管理情報記憶手段における当該要求ファイルのキャッシュ要求情報を「要求あり」に更新し、非同期書き込み手段は、管理情報記憶手段を参照してキャッシュ要求情報が「要求あり」のファイルが存在する場合、一時記憶手段から該当するファイルを読み出して、キャッシュファイルシステムに書き込み、その後キャッシュ要求情報を「キャッシュ済み」に更新することが好ましい。
この構成によれば、キャッシュファイルシステムへの書き込みを、一時記憶手段を介して非同期に行うため、ターゲットファイルシステムから読み出したものをその都度キャッシュファイルシステムに書き込む場合と比較して、効率的にキャッシュ処理を行うことができる。つまり、一時記憶手段を利用することで、ファイルの書き込みを待たずに、ユーザアプリケーションに処理を戻すことができ、書き込みに要する時間を短縮できる。また、ファイルサイズが大きなファイルの場合、部分的にキャッシュを行うことが考えられるが、そのような場合であっても一時記憶手段を利用することで容易に管理できるといった利点もある。
上記のハイブリッドファイルシステムにおいて、ターゲットファイルシステムのディレクトリ構成またはフォルダ構成をキャッシュファイルシステムに複製する構成複製手段をさらに備えていることが好ましい。
この構成によれば、ターゲットファイルシステムとキャッシュファイルシステムで、共通のディレクトリ構成またはフォルダ構成を用いるため、効率的にファイルアクセスを行うことができる。
本発明のオペレーティングシステムは、上記のハイブリッドファイルシステムと、ハイブリッドファイルシステムの上位層として機能するバーチャルファイルシステムと、キャッシュファイルシステムと、ターゲットファイルシステムと、を有することを特徴とする。
本発明の記録媒体は、コンピュータに、上記のキャッシュ制御方法における各ステップを実行させるためのプログラムを記録したものであることを特徴とする。
これらを用いることにより、効率的にキャッシュ管理を行い得るハイブリッドファイルシステムを提供することができ、ファイルアクセスの高速化を図ることができる。
以下、添付の図面を参照して、本発明の一実施形態に係るハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体について説明する。図1は、本発明のハイブリッドファイルシステム21を適用した情報処理システム1の簡易ブロック図である。同図に示すように、情報処理システム1は、情報処理装置であるコンピュータ10と、記憶装置として機能するデバイス16と、から成る。デバイス16は、主記憶装置として用いられる低速デバイス(例えば、USB接続のコンパクトフラッシュ(登録商標)やハードディスクなど)を適用可能である。
コンピュータ10は、デバイス16からのデータ読み出し要求やデバイス16へのデータ書き込み要求を発信するユーザアプリケーション11と、基本ソフトウェアであるオペレーティングシステム(以下、「OS」と称する)12と、デバイス16へのインターフェースを司るデバイスドライバ13と、を有している。
また、OS12は、バーチャルファイルシステム(仮想ファイルシステム)20、ハイブリッドファイルシステム21、ターゲットファイルシステム22、キャッシュファイルシステム23、キャッシュメモリ24および従来型のファイルシステム構成30を有している。
バーチャルファイルシステム20は、ファイルシステムを抽象化するための層であり、従来型のものを適用可能である。ハイブリッドファイルシステム21は、本発明の主要部を成すものであり、ターゲットファイルシステム22およびキャッシュファイルシステム23を組み合わせたキャッシュ管理方式を提供する。
ターゲットファイルシステム22は、低速デバイス用のファイルシステムであり、本実施形態ではデバイス16のデータ様式をサポートする。キャッシュファイルシステム23は、高速デバイス用のファイルシステムであり、本実施形態ではキャッシュメモリ24のデータ様式をサポートする。なお、キャッシュメモリ24としては、不揮発性メモリやバックアップ電池を備えた揮発性メモリを適用可能である。
従来型のファイルシステム構成30は、ファイルシステム33およびキャッシュメモリ34から成る。ファイルシステム33は、従来型のファイルシステム、すなわち1つのファイルシステムでキャッシュ管理を行うものを指す。
なお、キャッシュファイルシステム23としては、上記の従来型のファイルシステム33と同様の構成のものを用いることが好ましい。この構成によれば、本発明の汎用性を高めることができる。
上記の構成により、例えば、ユーザアプリケーション11が書き込み要求を発信すると、バーチャルファイルシステム20は、部分的に要求を処理し、残りの処理の要求をハイブリッドファイルシステム21または従来型のファイルシステム33に出力する。バーチャルファイルシステム20がいずれのファイルシステムを選択するかは、予め指定されている情報(Linuxの場合、「/etc/fstab」ファイル)に基づいて決定する。この情報は、テキストファイルであり、変更・追加・削除が可能となっている。なお、いずれのファイルシステムを選択するかの情報は、起動用ファイルではなく、ユーザが途中でGUIを利用して設定するようにしても良い。
ハイブリッドファイルシステム21が書き込み要求を取得すると、ターゲットファイルシステム22およびキャッシュファイルシステム23を組み合わせたキャッシュ処理を行い(詳細については後述する)、最終的にターゲットファイルシステム22が、デバイスドライバ13を介して、ファイルデータをデバイス16に書き込む。
次に、図2を参照し、ハイブリッドファイルシステム21の制御構成について説明する。同図に示すように、ハイブリッドファイルシステム21は、キャッシュ対象指定手段410、キャッシュ対象記憶手段420、管理情報記憶手段430、一時記憶手段440、キャッシュ判別手段450、キャッシュ制御手段460、同期制御手段470、非同期書き込み手段480および構成複製手段490を有している。なお、各手段の括弧書きは、後述する各種動作の説明図(図6ないし図9)との対応関係を示すものである。
キャッシュ対象指定手段410は、ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定するものである。具体的には、図3に示す後述のフィルタデータテーブル42の内容を指定する。なお、ディレクトリまたはフォルダ単位でキャッシュ対象が指定された場合、それらに所属するファイル全てがキャッシュ対象として指定されたものとして扱う。
キャッシュ対象記憶手段420は、キャッシュ対象指定手段410による指定結果を記憶するものであり、フィルタデータテーブル42によって実現される。図3は、フィルタデータテーブル42に記録されるフィルタデータの構成を示す図である。同図に示すように、フィルタデータは、フィルタデータテーブル42内で採番・管理される通番と、複数の指定があった場合の優先度を指定するための優先順位と、フィルタリングをするファイル名、ディレクトリ名またはフォルダ名である対象名称と、キャッシュタイプの属性と、に関する情報から成る。
キャッシュタイプの属性は、「0:キャッシュをする(デフォルト)」、「1:キャッシュを全くしない」、「2:強制的にキャッシュする(キャッシュメモリ24に空きがない場合は、ライトバックをして空きを作る)」、「3:キャッシュするがライトバックしない」、のいずれかを指定可能となっている。なお、「0:キャッシュをする」が指定された場合は、大容量ファイルや空きエリアが十分にない場合、キャッシュを行わない。また、「1:キャッシュを全くしない」に指定されているファイルは、キャッシュファイルシステム23によってキャッシュされることなく、ターゲットファイルシステム22とのみデータの入出力が行われる。
なお、キャッシュ対象指定手段410は、上記の内容以外にも、大容量ファイルをどのように扱うかについて指定しても良い。例えば、キャッシュファイルシステム23のサイズのnn%を閾値とした場合、ファイルサイズがそのnn%を超えた場合に大容量ファイルと判定し、大容量ファイルと判定した場合はディレクトリ構成またはフォルダ構成のみを更新するようにしても良い。
また、「2:強制的にキャッシュする」に指定された場合のライトバックの方式として、例えば、rsync方式による一定間隔同期、更新頻度、および非同期エリア(キャッシュファイルシステム23上でターゲットファイルシステム22に対して同期をとっていない領域)の状況(全体のnn%)等を指定しても良い。この非同期エリアの状況を指定することで、(本実施形態では、定期的にファイル同期を行う構成となっているが)連続して大量の書き込みがあった場合などアクセス性能が劣化しないように空きエリアを確保でき、他のファイル書き込み動作時に、一旦同期をとって空きエリアを確保するといった処理の回数を少なくすることができる。
図2の説明に戻る。管理情報記憶手段430は、ハイブリッドファイルシステム21がキャッシュ処理を行うための各種情報を記憶するものであり、後述のコントロールデータテーブル43によって実現される。図4は、コントロールデータテーブル43に記録されるコントロールデータの構成を示す図である。同図に示すように、コントロールデータは、コントロールデータテーブル43内で採番・管理される通番と、キャッシュしているファイル名、ディレクトリ名またはフォルダ名である対象名称と、キャッシュタイプの属性と、に関する情報を有する。キャッシュタイプの属性は、フィルタデータテーブル42と同内容である。
また、コントロールデータは、キャッシュの状態(「0:全キャッシュ」、「1:部分キャッシュ」、「−1:フラッシュ」のいずれか)と、ターゲットファイルシステム22からキャッシュファイルシステム23への複製要求と、キャッシュファイルシステム23からターゲットファイルシステム22への復元要求と、キャッシュファイルシステム23からターゲットファイルシステム22およびフラッシュデータへのフラッシュ要求と、キャッシュファイルシステム23からターゲットファイルシステム22へのライトバック要求と、後述のバッファデータテーブル44からキャッシュファイルシステム23へのキャッシュ要求と、に関する情報を有する。複製要求、復元要求、フラッシュ要求、ライトバック要求およびキャッシュ要求については、「0:不要/完了(要求済み)」、「1:要求(要求あり)」、「2:実行中」、「−1:エラー」のいずれかを記憶する。
なお、ライトバック要求(ライトバック情報)は、復元要求およびフラッシュ要求とリンクしている。すなわち、キャッシュされているファイルで復元要求が発生し、一定時間以上更新がないファイルデータは、後述のキャッシュ制御手段460によりライトバック要求が設定される(「1:要求」となる)。また、キャッシュされているファイルでフラッシュ要求が発生しているファイルデータも、ライトバック要求が設定される。
さらに、コントロールデータは、キャッシュデータの優先順位と、アクセス要求が発生する毎にカウントアップされるアクセス回数と、アクセスが発生したアクセス時刻と、ターゲットファイルシステム22のファイルディスクリプタ(ファイルサイズ、登録日など)であるターゲット情報と、キャッシュファイルシステム23のファイルディスクリプタであるキャッシュ情報と、バッファデータテーブル44へのポインタであるバッファポインタと、に関する情報を有する。
なお、キャッシュデータの優先順位については、最新アクセス状況、アクセス回数、ファイルサイズ等によって、後述のキャッシュ制御手段460が動的に優先順位を決定する。また、バッファポインタは、キャッシュ状態がフラッシュ済みとなった場合、次回アクセス時に該当するファイルのデータが削除されることとなる。
再び図2の説明に戻る。一時記憶手段440は、未キャッシュのファイルを一時的に記憶するものであり、バッファデータテーブル44によって実現される。図5は、バッファデータの構成を示す図である。同図に示すように、バッファデータは、バッファデータテーブル44内で採番・管理される通番と、キャッシュファイルシステム23にデータを書き込むためのファイルディスクリプタであるデータ情報と、キャッシュファイルシステム23に書き込むデータと、に関する情報を有する。
キャッシュ判別手段450は、キャッシュ対象記憶手段420を参照し、ユーザアプリケーション11からアクセス要求(オープン処理要求)されたファイルがキャッシュ対象であるか否かを判別するものであり、後述のキャッシュフィルタ45によって実現される。
キャッシュ制御手段460は、キャッシュ判別手段450によりアクセス要求されたファイルがキャッシュ対象であると判別した場合、キャッシュファイルシステム23およびターゲットファイルシステム22間でファイルデータの入出力制御を行う。また、キャッシュ対象でないと判別した場合は、ターゲットファイルシステム22のみとファイルデータの入出力制御を行う。なお、キャッシュ制御手段460の詳細については、これを実現するキャッシュコントローラ46の動作にて後述する。
同期制御手段470は、キャッシュファイルシステム23とターゲットファイルシステム22との同期をとるための同期処理を定期的に実行するものであり、後述のキャッシュシンクロナイザ47によって実現される。同期制御手段470は、ユーザアプリケーション11からのオープン処理の要求、またはクローズ処理の要求をトリガにして、管理情報記憶手段430に記憶されている複製要求情報や、ライトバック要求情報を参照し、その参照結果に基づいて同期処理を実行する。
非同期書き込み手段480は、キャッシュファイルシステム23またはターゲットファイルシステム22に対する書き込みを非同期に行うものであり、後述のキャッシュライタ48によって実現される。例えば、管理情報記憶手段430(キャッシュデータテーブル43)を参照して、キャッシュ要求情報が「1:要求」のファイルが存在する場合、一時記憶手段440から該当するファイルを読み出して、キャッシュファイルシステム23に書き込む。このように、一時記憶手段440を利用することで、ファイルの書き込みを待たずに、ユーザアプリケーション11に処理を戻すことができ、ファイルアクセスを高速化できる。
構成複製手段490は、キャッシュファイルシステム23を組み込んだ段階で、ターゲットファイルシステム22のディレクトリ構成またはフォルダ構成をキャッシュファイルシステム23に複製するものである。これにより、ターゲットファイルシステム22とキャッシュファイルシステム23のディレクトリ構成またはフォルダ構成を共通化できるため、効率的にファイルアクセスを行うことができる。
次に、図6ないし図9を参照し、ハイブリッドファイルシステム21における各種動作について説明する。図6は、オープン動作を説明する図である。同図に示すように、ユーザアプリケーション11からオープン処理が要求されると(S11)、キャッシュフィルタ45は、フィルタデータテーブル42を参照して、要求されたファイルがキャッシュ対象であるか否かを判別する。ここで、キャッシュ対象でないと判定した場合は、ターゲットファイルシステム22にオープン処理要求を出力する(S12)。ターゲットファイルシステム22は、当該要求に対してキャッシュフィルタ45に返り値(Info)を出力する(S13)。キャッシュフィルタ45は、取得した返り値をユーザアプリケーション11に出力する(S14)。
一方、キャッシュフィルタ45は、ユーザアプリケーション11からオープン処理要求されたファイルがキャッシュ対象であると判定した場合、キャッシュコントローラ46にオープン要求を渡す。キャッシュコントローラ46は、コントロールデータテーブル43を参照して、オープン処理要求されたファイルがキャッシュ済みであるか否かを判別する。キャッシュコントローラ46は、ここでキャッシュ済みであると判定した場合、キャッシュファイルシステム23に対してオープン処理を要求する(S15)と共に、状態を更新する(コントロールデータテーブル43のアクセス回数を更新し、キャッシュ情報を記録する)。キャッシュファイルシステム23は、当該オープン処理の要求に対してキャッシュコントローラ46に返り値を出力する(S16)。また、キャッシュコントローラ46は、オープン処理要求されたファイルが未キャッシュであると判定した場合、ターゲットファイルシステム22にオープン処理要求を出力する(S12)。
続いて、キャッシュコントローラ46による新規ファイルデータのキャッシュ化について説明する。キャッシュコントローラ46は、キャッシュファイルシステム23に対してオープン処理(新規作成)を要求すると(S15)、コントロールデータテーブル43のアクセス回数を更新し、ターゲット情報およびキャッシュ情報を記録する。さらに、キャッシュコントローラ46は、コントロールデータテーブル43に、複製要求を設定する(「1:要求」にする)。
続いて、キャッシュシンクロナイザ47によるオープン処理時の同期処理について説明する。キャッシュシンクロナイザ47は、定期的に(例えば10秒毎に)コントロールデータテーブル43を参照し、複製要求を確認する。ここで、複製要求されたファイルが存在する場合は、該当ファイルの複製要求情報を「2:実行中」にする。さらに、キャッシュシンクロナイザ47は、該当するファイルデータをターゲットファイルシステム22から読み出し(S17)、キャッシュファイルシステム23に対して読み出したファイルデータを書き込む(S18)。これらの処理が完了すると、キャッシュシンクロナイザ47は、該当ファイルの複製要求情報を「0:不要/完了」にする。
これ以降、該当ファイルに対してのアクセスは、キャッシュファイルシステム23上で可能となる。すなわち、従来型のファイルシステムを利用したキャッシュファイルシステム23で、高速なファイルアクセスを行うことができる。
なお、Create処理(ファイルを新規に作成する動作)については、上記のオープン処理と類似しているため、説明を省略する。また、キャッシュファイルシステム23の容量が不足している場合は、優先度の低いキャッシュデータをフラッシュし、空きを作るといった処理を行う。
次に、図7を参照し、読み出し動作について説明する。同図に示すように、ユーザアプリケーション11から読み出し処理が要求されると(S21)、キャッシュコントローラ46は、コントロールデータテーブル43を参照して、要求されたファイルがキャッシュ対象であるか否かを判別し、キャッシュ対象でないと判定した場合、ターゲットファイルシステム22に読み出し要求を出力する(S22)。当該読み出し要求に対して出力されたファイルデータは(S23)、キャッシュコントローラ46によりユーザアプリケーション11に出力される(S24)。
また、キャッシュコントローラ46は、キャッシュ対象であると判定した場合、さらにコントロールデータテーブル43を参照して、要求されたファイルがキャッシュ済みであるか否かを判別する。通常、オープン処理で同期が行われている場合は、キャッシュ済みであるので、キャッシュコントローラ46は、キャッシュファイルシステム23に読み出し要求を出力し(S25)、状態を更新する(コントロールデータテーブル43のアクセス回数を更新する)。また、キャッシュコントローラ46は、当該要求に対して読み出されたファイルデータを取得し(S26)、ユーザアプリケーション11に出力する(S24)。
ここで、オープン処理で同期が行われていない場合に、非同期でキャッシュ読み出しを行う処理について説明する(点線部200参照)。まず、キャッシュコントローラ46は、要求されたファイルがキャッシュ済みでないと判定した場合、ターゲットファイルシステム22からファイルデータを読み出し(S22)、当該ファイルデータをバッファデータテーブル44に格納する(S27)と共に、状態を更新する(コントロールデータテーブル43に、キャッシュ要求を記録し、キャッシュ情報を追加する)。
続いて、キャッシュライタ48は、定期的に(なるべく短い間隔で)コントロールデータテーブル43を参照し、キャッシュ要求を確認する。ここでキャッシュ要求があった場合、キャッシュライタ48は、該当ファイルのキャッシュ要求情報を「2:実行中」にすると共に、該当するファイルデータをバッファデータテーブル44から読み出し(S28)、キャッシュファイルシステム23に対して読み出したファイルデータを書き込む(S29)。これらの処理が完了すると、キャッシュライタ48は、該当ファイルのキャッシュ要求情報を「0:不要/完了」にし、バッファデータテーブル44から該当ファイルを削除する。
なお、ターゲットファイルシステム22から読み出したファイルデータを、その都度キャッシュするといった方法(S23とS27間の点線矢印参照)も可能である。
次に、図8を参照し、書き込み動作について説明する。同図に示すように、ユーザアプリケーション11から書き込み処理が要求されると(S31)、キャッシュコントローラ46は、コントロールデータテーブル43を参照して、要求されたファイルがキャッシュ対象であるか否かを判別し、キャッシュ対象でないと判定した場合、ターゲットファイルシステム22にファイルデータを書き込む(S32)。また、キャッシュ対象であると判定した場合は、キャッシュファイルシステム23にファイルデータを書き込み(S33)、状態を更新する(コントロールデータテーブル43のアクセス回数を更新する)。
ここで、非同期でキャッシュ書き込みを行う処理について説明する(点線部300参照)。まず、キャッシュコントローラ46は、書き込み要求されたファイルデータをバッファデータテーブル44に格納する(S34)と共に、情報を更新する(コントロールデータテーブル43に、キャッシュ要求を記録し、キャッシュ情報を追加または更新する)。
続いて、キャッシュライタ48は、定期的に(なるべく短い間隔で)コントロールデータテーブル43を参照し、キャッシュ要求を確認する。ここでキャッシュ要求があった場合、キャッシュライタ48は、該当ファイルのキャッシュ要求情報を「2:実行中」にすると共に、該当するファイルデータをバッファデータテーブル44から読み出し(S35)、読み出した当該ファイルデータをキャッシュファイルシステム23に対して書き込む(S36)。これらの処理が完了すると、キャッシュライタ48は、該当ファイルのキャッシュ要求情報を「0:不要/完了」にし、バッファデータテーブル44から該当ファイルを削除する。
なお、キャッシュファイルシステム23の容量が不足している場合は、オープン処理時と同様に、優先度の低いキャッシュデータをフラッシュし、空きを作るといった処理を行う。また、ターゲットファイルシステム22またはキャッシュファイルシステム23がバッファ機能を有している場合、上記点線部300の処理は省略可能である。
次に、図9を参照し、ファイル同期動作(クローズ動作)について説明する。同図に示すように、ユーザアプリケーション11からクローズ処理が要求されると(S41)、キャッシュコントローラ46は、コントロールデータテーブル43を参照して、要求されたファイルがキャッシュ対象であるか否かを判別し、キャッシュ対象でないと判定した場合、ターゲットファイルシステム22に対してクローズ処理を要求する(S42)。また、キャッシュ対象であると判定した場合、キャッシュファイルシステム23に対してクローズ処理を要求し(S43)、状態を更新する(コントロールデータテーブル43の復元要求を「1:要求」にする)。
続いて、キャッシュシンクロナイザ47によるクローズ処理時の同期処理について説明する。キャッシュシンクロナイザ47は、定期的に(例えば10秒毎に)コントロールデータテーブル43を参照し、ライトバック要求を確認する。上記のとおり、キャッシュ済みのファイルで復元要求が発生し、一定時間以上更新がないものは、ライトバック要求情報が「1:要求あり」となる。また、キャッシュ済みのファイルでフラッシュ要求が発生しているものも、ライトバック要求情報が「1:要求あり」となる。したがって、これらの要因によってライトバック要求が発生している場合、キャッシュシンクロナイザ47は、コントロールデータテーブル43の優先順位情報にしたがって、以下の手順でライトバック処理を実行する。
まず、キャッシュシンクロナイザ47は、該当ファイルのライトバック要求情報を(復元要求情報またはフラッシュ要求情報と共に)、「2:実行中」にする。さらに、キャッシュシンクロナイザ47は、該当するファイルデータをキャッシュファイルシステム23から読み出し(S44)、読み出したファイルデータをターゲットファイルシステム22に書き込む(S45)。これらの処理が完了すると、キャッシュシンクロナイザ47は、該当ファイルのライトバック要求情報を(復元要求情報またはフラッシュ要求情報と共に)、「0:不要/完了」にする。
なお、ターゲットファイルシステム22への書き込み時(S45)には、書き込み容量を削減するために、rsync方式などの差分法を用いることが好ましい。また、フラッシュ要求に基づいてライトバック処理を行った場合、キャッシュシンクロナイザ47は、書き込み処理後に、キャッシュファイルシステム23に対して該当ファイルの削除を行う。
以上、説明したとおり、本実施形態によれば、キャッシュファイルシステム23およびターゲットファイルシステム22の2つのファイルシステムを組み合わせてキャッシュ管理を行うため、ファイルアクセスの高速化を図ることができる。また、ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定することにより、キャッシュ対象を絞ることができる。つまり、無駄なキャッシュ処理を省くことができ、さらにファイルアクセスを高速化できる。
また、ユーザアプリケーション11からのオープン処理またはクローズ処理の要求をトリガにして、定期的に同期処理を行うことで、効率的にキャッシュ処理を行うことができる。すなわち、一般的にファイルの書き込みには時間がかかるが、キャッシュシンクロナイザ47によってバックグランドで処理させることで、見かけのアクセス時間を高速化することができる。また、コントロールデータテーブル43により作成・更新・削除などのファイル状態を管理しながら、定期的にターゲットファイルシステム22に書き込む同期処理を行うことで、連続的に書き込み処理が行われた場合(例えば、動作ログを毎秒記録しているような場合)でも、一定間隔(例えば10秒毎)でしか実際に書き込みが行われないため、ターゲットファイルシステム22への書き込み回数を減らすことがでるといった利点もある。特に書き換えに対して回数制約のあるデバイス16を用いる場合、有効である。
また、キャッシュライタ48は、バッファデータテーブル44を介してキャッシュファイルシステム23への書き込みを行うため、ターゲットファイルシステム22から読み出したものをその都度キャッシュファイルシステム23に書き込む場合と比較して、効率的にキャッシュ処理を行うことができる。つまり、バッファデータテーブル44を利用することで、ファイルの書き込みを待たずに、ユーザアプリケーション11に処理を戻すことができる。また、ファイルサイズが大きなファイルの場合、キャッシュの状態を「1:部分キャッシュ」とすることが考えられるが、そのような場合であってもバッファデータテーブル44を利用することで容易に管理できる。
なお、上記の実施形態では、キャッシュシンクロナイザ47による読み書き処理には、バッファを利用しない構成で説明したが、バッファを利用することで、よりファイルアクセスを高速化させることも可能である。
また、上記の例に示した、情報処理システム1、ハイブリッドファイルシステム21またはOS12の各構成要素(各機能)をプログラムとして提供することも可能である。また、そのプログラムを各種記録媒体(CD−ROM、フラッシュROM、メモリカード等)に格納して提供することも可能である。すなわち、これらのプログラムおよび記録媒体も、本発明の権利範囲に含まれる。
また、上記の実施形態によらず、ハイブリッドファイルシステム21のシステム構成や処理工程など、本発明を逸脱しない範囲で適宜変更が可能である。
1…情報処理システム 10…コンピュータ 11…ユーザアプリケーション 12…OS 13…デバイスドライバ 16…デバイス 20…バーチャルファイルシステム 21…ハイブリッドファイルシステム 22…ターゲットファイルシステム 23…キャッシュファイルシステム 24…キャッシュメモリ 42…フィルタデータテーブル 43…コントロールデータテーブル 44…バッファデータテーブル 45…キャッシュフィルタ 46…キャッシュコントローラ 47…キャッシュシンクロナイザ 48…キャッシュライタ
Claims (8)
- キャッシュメモリとして用いられる高速デバイス用のキャッシュファイルシステム、および主記憶装置として用いられる低速デバイス用のターゲットファイルシステムへのデータ入出力を制御するハイブリッドファイルシステムであって、
ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定するキャッシュ対象指定手段と、
前記キャッシュ対象指定手段による指定結果を記憶するキャッシュ対象記憶手段と、
前記キャッシュ対象記憶手段を参照し、ユーザアプリケーションからアクセス要求された要求ファイルがキャッシュ対象であるか否かを判別するキャッシュ判別手段と、
前記要求ファイルがキャッシュ対象であると判別した場合、前記キャッシュファイルシステムおよび前記ターゲットファイルシステム間で前記要求ファイルの入出力制御を行うと共に、キャッシュ対象でないと判別した場合、前記ターゲットファイルシステムのみと前記要求ファイルの入出力制御を行うキャッシュ制御手段と、を備えたことを特徴とするハイブリッドファイルシステム。 - 前記キャッシュ制御手段がキャッシュ制御を行うための情報であって、前記ターゲットファイルシステムから前記キャッシュファイルシステムへのファイル複製に関する複製要求情報を含む管理情報を記憶する管理情報記憶手段と、
前記キャッシュファイルシステムと前記ターゲットファイルシステムとの同期をとるための同期処理を定期的に実行する同期制御手段と、をさらに備え、
前記キャッシュ制御手段は、
前記ユーザアプリケーションからオープン処理が要求され、前記要求ファイルがキャッシュ対象であり、且つ前記キャッシュファイルシステムに未キャッシュの場合、
前記キャッシュファイルシステムに対してオープン処理を要求すると共に、前記管理情報記憶手段における前記要求ファイルの前記複製要求情報を「複製要求あり」に更新し、
前記同期制御手段は、
前記管理情報記憶手段を参照して前記複製要求情報が「複製要求あり」のファイルが存在する場合、前記ターゲットファイルシステムから該当するファイルを読み出して、前記キャッシュファイルシステムに書き込み、その後前記複製要求情報を「複製済み」に更新することを特徴とする請求項1に記載のハイブリッドファイルシステム。 - 前記管理情報記憶手段は、
前記管理情報として、キャッシュ済みファイルのライトバック状況に関するライトバック情報をさらに記憶し、
前記キャッシュ制御手段は、
前記ユーザアプリケーションからクローズ処理が要求され、前記要求ファイルがキャッシュ対象であり、且つ前記キャッシュファイルシステムにキャッシュ済みの場合、
前記キャッシュファイルシステムに対してクローズ処理を要求すると共に、前記管理情報記憶手段における前記要求ファイルの前記ライトバック情報を「ライトバック要求あり」に更新し、
前記同期制御手段は、
前記管理情報記憶手段を参照して前記ライトバック情報が「ライトバック要求あり」のファイルが存在する場合、前記キャッシュファイルシステムから該当するファイルを読み出して、前記ターゲットファイルシステムに書き込み、その後前記ライトバック情報を「ライトバック済み」に更新することを特徴とする請求項2に記載のハイブリッドファイルシステム。 - 前記キャッシュファイルシステムに未キャッシュのファイルを一時的に記憶する一時記憶手段と、
前記キャッシュファイルシステムに対する書き込みを非同期に行う非同期書き込み手段と、をさらに備え、
前記管理情報記憶手段は、
前記管理情報として、前記一時記憶手段から前記キャッシュファイルシステムへのキャッシュ要求に関するキャッシュ要求情報をさらに記憶し、
前記キャッシュ制御手段は、
前記要求ファイルがキャッシュ対象であり、且つ前記未キャッシュの場合、
前記ターゲットファイルシステムから前記要求ファイルを読み出して前記一時記憶手段に書き込むと共に前記管理情報記憶手段における当該要求ファイルの前記キャッシュ要求情報を「要求あり」に更新し、
前記非同期書き込み手段は、
前記管理情報記憶手段を参照して前記キャッシュ要求情報が「要求あり」のファイルが存在する場合、前記一時記憶手段から該当するファイルを読み出して、前記キャッシュファイルシステムに書き込み、その後前記キャッシュ要求情報を「キャッシュ済み」に更新することを特徴とする請求項1ないし3のいずれか1項に記載のハイブリッドファイルシステム。 - 前記ターゲットファイルシステムのディレクトリ構成またはフォルダ構成を前記キャッシュファイルシステムに複製する構成複製手段をさらに備えていることを特徴とする請求項1ないし4のいずれか1項に記載のハイブリッドファイルシステム。
- 請求項1ないし5のいずれか1項に記載のハイブリッドファイルシステムと、
前記ハイブリッドファイルシステムの上位層として機能するバーチャルファイルシステムと、
前記キャッシュファイルシステムと、
前記ターゲットファイルシステムと、を有することを特徴とするオペレーティングシステム。 - キャッシュメモリとして用いられる高速デバイス用のキャッシュファイルシステム、および主記憶装置として用いられる低速デバイス用のターゲットファイルシステムへのデータ入出力を制御するハイブリッドファイルシステムのキャッシュ制御方法であって、
前記ハイブリッドファイルシステムが、
ファイル、ディレクトリまたはフォルダ単位で、キャッシュ対象を指定するステップと、
ユーザアプリケーションからアクセス要求された要求ファイルがキャッシュ対象として指定されているか否かを判別するステップと、
前記要求ファイルがキャッシュ対象であると判別した場合、前記キャッシュファイルシステムおよび前記ターゲットファイルシステム間で前記要求ファイルの入出力制御を行うと共に、キャッシュ対象でないと判別した場合、前記ターゲットファイルシステムのみと前記要求ファイルの入出力制御を行うステップと、を実行することを特徴とするキャッシュ制御方法。 - コンピュータに、請求項7に記載のキャッシュ制御方法における各ステップを実行させるためのプログラムを記録した記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006267590A JP2008090378A (ja) | 2006-09-29 | 2006-09-29 | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006267590A JP2008090378A (ja) | 2006-09-29 | 2006-09-29 | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008090378A true JP2008090378A (ja) | 2008-04-17 |
Family
ID=39374504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006267590A Withdrawn JP2008090378A (ja) | 2006-09-29 | 2006-09-29 | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008090378A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011086181A (ja) * | 2009-10-16 | 2011-04-28 | Fanuc Ltd | 不揮発性メモリ保護機能を備えた情報処理装置 |
JP2011109261A (ja) * | 2009-11-13 | 2011-06-02 | Ricoh Co Ltd | ルータ装置、通信方法、及び通信プログラム |
JP2013511091A (ja) * | 2009-11-16 | 2013-03-28 | シマンテック コーポレーション | 構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング |
JP2015535355A (ja) * | 2012-08-31 | 2015-12-10 | フュージョン−アイオー・インコーポレーテッド | 適応持続性システム、方法、インタフェース |
JP2016162168A (ja) * | 2015-03-02 | 2016-09-05 | 株式会社メガチップス | キャッシュファイルシステム |
CN112667161A (zh) * | 2020-12-25 | 2021-04-16 | 北京科银京成技术有限公司 | 文件系统的数据处理方法、装置、设备及介质 |
-
2006
- 2006-09-29 JP JP2006267590A patent/JP2008090378A/ja not_active Withdrawn
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011086181A (ja) * | 2009-10-16 | 2011-04-28 | Fanuc Ltd | 不揮発性メモリ保護機能を備えた情報処理装置 |
JP2011109261A (ja) * | 2009-11-13 | 2011-06-02 | Ricoh Co Ltd | ルータ装置、通信方法、及び通信プログラム |
JP2013511091A (ja) * | 2009-11-16 | 2013-03-28 | シマンテック コーポレーション | 構成可能なキャッシュマップに基づいた選択的ファイルシステムキャッシング |
JP2015535355A (ja) * | 2012-08-31 | 2015-12-10 | フュージョン−アイオー・インコーポレーテッド | 適応持続性システム、方法、インタフェース |
JP2016162168A (ja) * | 2015-03-02 | 2016-09-05 | 株式会社メガチップス | キャッシュファイルシステム |
CN112667161A (zh) * | 2020-12-25 | 2021-04-16 | 北京科银京成技术有限公司 | 文件系统的数据处理方法、装置、设备及介质 |
CN112667161B (zh) * | 2020-12-25 | 2023-11-10 | 北京科银京成技术有限公司 | 文件系统的数据处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8135677B2 (en) | File management system and method | |
US6694413B1 (en) | Computer system and snapshot data management method thereof | |
JP4581518B2 (ja) | スナップショット取得方法 | |
US8392685B2 (en) | Arrangements for managing metadata of an integrated logical unit including differing types of storage media | |
JP4199993B2 (ja) | スナップショット取得方法 | |
JP4837378B2 (ja) | データの改竄を防止する記憶装置 | |
KR100790991B1 (ko) | 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법 | |
US9778860B2 (en) | Re-TRIM of free space within VHDX | |
JPH04233639A (ja) | ファイル管理システム | |
JP2006048641A (ja) | 長期間データアーカイブ用ファイルサーバ | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
WO2011121746A1 (ja) | ファイルサーバ装置、及びストレージシステムの管理方法、並びにプログラム | |
JP2003280964A (ja) | スナップショット取得方法、ストレージシステム及びディスク装置 | |
JP2008146408A (ja) | データ記憶装置、そのデータ再配置方法、プログラム | |
JP2008090378A (ja) | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 | |
JP4755244B2 (ja) | 情報生成方法、情報生成プログラム及び情報生成装置 | |
JP2015090655A (ja) | LTFS(LinearTapeFileSystem)によって実現するWORMカートリッジのサポート | |
JPH11120057A (ja) | ファイルバックアップ方法 | |
JP4394467B2 (ja) | ストレージシステム、サーバ装置及び先行コピーデータ生成方法 | |
JP2007128448A (ja) | ファイルシステム及びファイル情報処理方法 | |
JP2008269520A (ja) | 記録装置及び記録方法 | |
JP2006323462A (ja) | ファイルコピー装置およびファイルコピー方法 | |
US20060143423A1 (en) | Storage device, data processing method thereof, data processing program thereof, and data processing system | |
JP2004030305A (ja) | ファイルシステム | |
JP6644427B2 (ja) | Fatファイルシステム及びそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20091201 |