JP2013127748A - 情報処理装置、データ記憶方法及びプログラム - Google Patents
情報処理装置、データ記憶方法及びプログラム Download PDFInfo
- Publication number
- JP2013127748A JP2013127748A JP2011277556A JP2011277556A JP2013127748A JP 2013127748 A JP2013127748 A JP 2013127748A JP 2011277556 A JP2011277556 A JP 2011277556A JP 2011277556 A JP2011277556 A JP 2011277556A JP 2013127748 A JP2013127748 A JP 2013127748A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- information
- data
- processing target
- update history
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
Abstract
【課題】オブジェクトストレージをより利用し易くすることができる情報処理装置を提供する。
【解決手段】情報処理装置は、オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられる度に、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納する(S104)と共に、処理対象ファイルに関する更新履歴オブジェクトに、部分データの処理対象ファイル内での位置及びサイズを示す情報と、部分データオブジェクトのオブジェクトストレージへの格納順及びオブジェクト名を示すSEQ番号とを含むエクステント管理情報を追加する(S105)。
【選択図】図3
【解決手段】情報処理装置は、オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられる度に、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納する(S104)と共に、処理対象ファイルに関する更新履歴オブジェクトに、部分データの処理対象ファイル内での位置及びサイズを示す情報と、部分データオブジェクトのオブジェクトストレージへの格納順及びオブジェクト名を示すSEQ番号とを含むエクステント管理情報を追加する(S105)。
【選択図】図3
Description
本発明は、オブジェクトストレージにファイルを記憶する技術に関する。
周知のように、オブジェクトストレージと呼ばれる、ファイルをオブジェクトとして保存するストレージが実用化されている。また、オブジェクトストレージにおけるデータのオブジェクトへのマッピング法としては、s3fsのように、ファイルをオブジェクトへマッピングする方法や、hadoop s3fs (hadoopは、Apache Software Foundationの商標)のように、ブロック(ファイルの一部)をオブジェクトへマッピングする方法が知られている。
しかしながら、ファイルをオブジェクトへマッピングする方法では、ファイルの一部のみを書き換えたい場合にも、ファイル全体を書き換えざるを得ない。また、ブロックをオブジェクトへマッピングする方法では、ブロックが固定長のため、ワークロードによっては、ブロックサイズが大き過ぎて無駄に領域を割り付けることになってしまったり、逆に小さ過ぎてバックエンドとの通信のオーバーヘッドが無視できなくなってしまうといったデメリットが生じてしまう。
本発明は、1つの側面では、オブジェクトストレージをより利用し易くすることができる技術を提供することにある。
開示の技術の一態様の情報処理装置は、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納すると共に、処理対象ファイルに関する更新履歴情報に、当該部分データの処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、新たなオブジェクトのオブジェクト名を示す名称情報と、新たなオブジェクトのオブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求制御部と、
オブジェクトストレージから読み出すべき、処理対象ファイルの一部を成す読出対象データの処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、オブジェクトストレージから読出対象データを読み出して出力する読出要求制御部と、
を備える。
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納すると共に、処理対象ファイルに関する更新履歴情報に、当該部分データの処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、新たなオブジェクトのオブジェクト名を示す名称情報と、新たなオブジェクトのオブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求制御部と、
オブジェクトストレージから読み出すべき、処理対象ファイルの一部を成す読出対象データの処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、オブジェクトストレージから読出対象データを読み出して出力する読出要求制御部と、
を備える。
また、開示の技術の一態様のデータ記憶方法は、コンピュータが、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納すると共に、処理対象ファイルに関する更新履歴情報に、当該部分データの処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、新たなオブジェクトのオブジェクト
名を示す名称情報と、新たなオブジェクトのオブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する。
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納すると共に、処理対象ファイルに関する更新履歴情報に、当該部分データの処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、新たなオブジェクトのオブジェクト
名を示す名称情報と、新たなオブジェクトのオブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する。
また、開示の技術の一態様のプログラムは、コンピュータに、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納すると共に、処理対象ファイルに関する更新履歴情報に、当該部分データの処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、新たなオブジェクトのオブジェクト名を示す名称情報と、新たなオブジェクトのオブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求応答処理と、
オブジェクトストレージから読み出すべき、処理対象ファイルの一部を成す読出対象データの処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、オブジェクトストレージから読出対象データを読み出して出力する読出要求応答処理と、
を実行させる。
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとしてオブジェクトストレージに格納すると共に、処理対象ファイルに関する更新履歴情報に、当該部分データの処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、新たなオブジェクトのオブジェクト名を示す名称情報と、新たなオブジェクトのオブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求応答処理と、
オブジェクトストレージから読み出すべき、処理対象ファイルの一部を成す読出対象データの処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、オブジェクトストレージから読出対象データを読み出して出力する読出要求応答処理と、
を実行させる。
1実施態様によれば、オブジェクトストレージにより利用し易くすることが出来る。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
《第1実施形態》
まず、図1及び図2を用いて、本発明の第1実施形態に係る情報処理装置10の構成及び使用形態を説明する。
まず、図1及び図2を用いて、本発明の第1実施形態に係る情報処理装置10の構成及び使用形態を説明する。
図1に示してあるように、第1実施形態に係る情情報処理装置10は、オブジェクトストレージ50と何台かのクライアント60とに接続される装置である。
オブジェクトストレージ50(以下、ストレージ50とも表記する)は、各種データ(ファイル)をオブジェクトとして記憶する,インターネット上のオブジェクトストレージである。情報処理装置10は、オブジェクトの一部(オブジェクトとして記憶されているデータの一部)の書換は出来ないが、オブジェクトの一部の読出は可能な、HTTP(HyperText Transfer Protocol)によりアクセスするストレージ50に接続される。
情報処理装置10と接続される各クライアント60は、ストレージ50にファイルを保存するユーザが使用するコンピュータである。
情報処理装置10は、コンピュータ60に、ファイルシステム20を含むOS(Operating System)30と、幾つかのアプリケーションプログラム35(以下、アプリ35とも表記する)とを、インストールした装置である。
ファイルシステム20は、本情報処理装置10を実現するために開発したファイルシステム(物理デバイス上のデータを“ファイル”として扱えるようにするための、OSの一部として機能するプログラム)である。
OS30は、既存のUNIX(The Open Groupの登録商標)系OSである。アプリ35は、ファイルの一部分を成すデータの書込/読出をOS30(ファイルシステム20)に対して要求する,POSIX(Portable Operating System Interface)ベースのプログラム(データベースプログラム等)である。尚、アプリ35も既存のプログラムである。また、アプリ35が書込/読出を要求するデータは、そのファイルオフセット(ファイル先頭を原点としたオフセット)が、所定値(以下、ブロックサイズと表記する)の整数倍となっており、そのサイズもブロックサイズの整数倍となっているデータである。
情報処理装置10として機能させるコンピュータ60は、ストレージ50及び各クライアント60との間で通信を行えるものであれば良い。従って、コンピュータ60としては、例えば、図2に示したようなハードウェア構成を有するコンピュータを使用することが出来る。すなわち、コンピュータ60としては、例えば、CPU(Central Processing Unit)61、ノースブリッジ、サウスブリッジ、RAM(Random Access Memory)、HD
D(Hard Disk Drive)、NA(Network Adapter)等を備えたものを使用することが出来
る。そして、そのような構成を有するコンピュータ60のHDDに、ファイルシステム20を含むOS30と、幾つかのアプリ35とを記憶させることにより、情報処理装置10が実現される。
D(Hard Disk Drive)、NA(Network Adapter)等を備えたものを使用することが出来
る。そして、そのような構成を有するコンピュータ60のHDDに、ファイルシステム20を含むOS30と、幾つかのアプリ35とを記憶させることにより、情報処理装置10が実現される。
次に、情報処理装置10の機能(動作)を説明する。尚、以下で説明する各処理の実際の実行主体は、各プログラムを実行するCPU61である。ただし、以下では、プログラムを主語として(プログラムに従ったCPU61のことを、プログラムと表記することにより)、各処理の内容を説明する。
情報処理装置10の運用開始時には、ユーザや情報処理装置10の管理者によって、各ユーザ用のバケット又は全ユーザ共用のバケットをストレージ50内に作成する作業が行われる。この作業は、各種情報を、クライアント60の入力装置又は情報処理装置10の入力装置を通じてストレージ50に設定することにより行われる。
その後、各ユーザにより、ストレージ50内(ストレージ50内の自分用又は共用のバ
ケット内)に新ファイルを作成する作業や、ストレージ50内のファイルを参照、更新する作業が行われる。すなわち、自分用又は共用のバケットのパケット名及び処理するファイルのファイル名の情報処理装置10(アプリ35)への入力操作を伴う各種作業が各ユーザにより行われる。
ケット内)に新ファイルを作成する作業や、ストレージ50内のファイルを参照、更新する作業が行われる。すなわち、自分用又は共用のバケットのパケット名及び処理するファイルのファイル名の情報処理装置10(アプリ35)への入力操作を伴う各種作業が各ユーザにより行われる。
或るユーザが新ファイルの作成を指示した場合(その旨がアプリ35から通知された場合)、ファイルシステム20は、一般的なUNIX系ファイルシステムと同様に、新ファイルのinode番号を決定し、決定したinode番号と新ファイルのファイル名との対応関係を記憶する。
また、アプリ35は、或るファイル(以下、処理対象ファイルと表記する)の一部のデータのストレージ50への書込が必要になった場合には、以下の情報を含むデータ書込要求と、当該データ(以下、処理対象エクステントと表記する)とを、ファイルシステム20に対して出力する。
・処理対象ファイルの記憶に使用すべきバケットのパケット名(ユーザにより入力されているパケット名:以下、処理対象バケット名と表記する)
・処理対象ファイルのファイル名(ユーザにより入力されているファイル名:以下、処理対象ファイル名と表記する)
・処理対象エクステントのファイルオフセット
・処理対象エクステントのサイズ
・処理対象ファイルの記憶に使用すべきバケットのパケット名(ユーザにより入力されているパケット名:以下、処理対象バケット名と表記する)
・処理対象ファイルのファイル名(ユーザにより入力されているファイル名:以下、処理対象ファイル名と表記する)
・処理対象エクステントのファイルオフセット
・処理対象エクステントのサイズ
データ書込要求及び処理対象エクステントを受け取ったファイルシステム20(ファイルシステム20に従って書込要求制御部として機能しているCPU61)は、図3に示した手順の書込要求応答処理を実行する。
すなわち、ファイルシステム20は、まず、処理対象エリアに関する更新履歴オブジェクトをストレージ50から読み出すことにより、処理対象エリアに関する更新履歴情報を取得する(ステップS101)。
ここで、エリアとは、ファイルオフセットが規定値(例えば、16MB)の整数倍となる箇所(境界)で区切ったファイルの範囲のことである。また、処理対象エリアとは、処理対象エクステント(ストレージ50内に記憶すべきデータ)が含まれる,処理対象ファイルのエリアのことである。尚、各エリアには、ファイル内での位置(順番)を示すエリア番号が割り当てられている。
処理対象エリアに関する更新履歴オブジェクトとは、処理対象エリアに関する更新履歴情報(詳細は後述)についての、以下のオブジェクト名が付けられているオブジェクトのことである。
<処理対象バケット名>_<処理対象ファイルのinode番号>_<処理対象エリアのエリア番号>
<処理対象バケット名>_<処理対象ファイルのinode番号>_<処理対象エリアのエリア番号>
尚、既に説明したように、ファイルシステム20が受け取るデータ書込要求には、処理対象ファイルのinode番号(以下、処理対象inode番号と表記する)及び処理対象エリアのエリア番号(処理対象エリア番号と表記する)が含まれていない。そのため、ステップ101の処理時、ファイルシステム20は、処理対象ファイル名から処理対象inode番号を特定(検索)し、処理対象エクステントのファイルオフセットから処理対象エリア番号を特定(算出)する。そして、ファイルシステム20は、特定した各番号と処理対象パケット名とを用いて、ストレージ50に対するHTTPリクエスト(GETリクエスト)を生成してインターネット上に送信する。
ただし、処理対象ファイルの或るエリアに関する更新履歴オブジェクトは、処理対象ファイルの当該エリア内のデータについての書込が初めて行われたときに、ストレージ50内に作成(格納)されるオブジェクトとなっている。従って、今回、受け取ったデータ書込要求が、処理対象エリアに関する初めてのデータ書込要求であった場合、ファイルシステム20は、処理対象エリアに関する更新履歴情報(更新履歴オブジェクト)をストレージ50から取得できない。
処理対象エリアに関する更新履歴情報を取得できなかった場合(ステップS102;NO)、ファイルシステム20は、ステップS111及びS112の処理を行う。
すなわち、この場合(ステップS102;NO)、ファイルシステム20は、まず、処理対象エクステント(ストレージ50に書き込むべきデータ)を、以下の名称のエクステントオブジェクトとしてストレージ50内に格納する(ステップS111)。
<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<最小SEQ番号>
<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<最小SEQ番号>
ここで、最小SEQ番号とは、予め定められている,SEQ番号の最小値(例えば、“1”)のことである。
次いで、ファイルシステム20は、ステップS112にて、以下の処理を行う。
まず、ファイルシステム20は、“1”を表すエクステント数に、今回、格納したエクステントオブジェクトの名称に使用したSEQ番号と処理対象エクステントのファイルオフセット及びサイズとを含むエクステント管理情報を続けた更新履歴情報をRAM上に用意する。すなわち、ファイルシステム20は、図4Aに示した構成(データ構造)を有する更新履歴情報をRAM上に用意する。
次いで、ファイルシステム20は、用意した更新履歴情報を、“<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>”というオブジェクト名の更新履歴オブジェクトとしてストレージ50に格納する。
そして、ファイルシステム20は、ステップS112の処理及びこの書込要求応答処理(図3の処理)を終了する。
一方、処理対象エリアに関する更新履歴情報をストレージ50から取得できた場合(ステップS102;YES)、ファイルシステム20は、ステップS103以降の処理を開始する。尚、後述するように(ステップS105参照)、更新履歴情報(更新履歴オブジェクト)は、データ書込要求毎にエクステント管理情報が追加される情報となっている。従って、ステップS103以降の各処理時に参照/更新される更新履歴情報は、通常、図4Bに示したように、複数のエクステント管理情報を含むものである。
処理対象エリアに関する更新履歴情報をストレージ50から取得できた場合(ステップS102;YES)、ファイルシステム20は、まず、当該更新履歴情報に基づき、処理対象エクステント用SEQ番号を求める処理(ステップS103)を行う。このステップS103の処理で求められる処理対象エクステント用SEQ番号は、処理対象エクステントについてのエクステントオブジェクトのオブジェクト名の一部として使用されるSEQ番号である。ステップS103の処理では、更新履歴情報(図4A、図4B参照)に含まれるいずれのSEQ番号よりも大きな値(本実施形態では、更新履歴情報中のSEQ番号の最大値+1)が、処理対象エクステント用SEQ番号として求められる。
処理対象エクステント用SEQ番号を求めたファイルシステム20は、処理対象エクステントを、以下のオブジェクト名を有するエクステントオブジェクトとしてストレージ50に格納する(ステップS104)。
<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<処理対象エクステント用SEQ番号>
<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<処理対象エクステント用SEQ番号>
尚、ファイルシステム20がストレージ50に格納するオブジェクトは、<バケット名>_<inode番号>_<エリア番号>という名称、又は、<バケット名>_<inode番号>_<エリア番号>_<SEQ番号>という名称のオブジェクトだけである。従って、このステップS104及び上記したステップS111では、処理対象エクステントが、既存のオブジェクトの代わりのオブジェクトとしてではなく、新たなオブジェクトとして、ストレージ50に格納される。
ステップS104の処理を終えたファイルシステム20は、更新履歴情報の末尾に、処理対象エクステント用SEQ番号と処理対象エクステントのファイルオフセット及びサイズとからなるエクステント管理情報を追加する(ステップS105)。さらに、ファイルシステム20は、エクステント管理情報を追加した更新履歴情報のエクステント数を“1”インクリメントする(ステップS105)。
その後、ファイルシステム20は、内容を変更した更新履歴情報を、<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>という名称の更新履歴オブジェクトとしてストレージ50に格納する(ステップS105)。
尚、このステップS105の処理が行われるのは、<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>という名称のオブジェクトが読み出せ得た場合(ステップS102;YES)である。従って、ステップS105では、処理対象エリアに関するストレージ50内の更新履歴オブジェクトが、「エクステント管理情報を追加し、エクステント数を“1”インクリメントした更新履歴情報」のオブジェクトに変更される(書き換えられる)ことになる。
ステップS105の処理を終えたファイルシステム20(ファイルシステム20に従ってマージ処理部として機能しているCPU61)は、マージ処理(ステップS106;詳細は後述)を行ってから、書込要求応答処理を終了する。
次に、データ読出要求に対するファイルシステム20の動作を説明する。
アプリ35は、処理対象ファイルの一部のデータ(以下、読出対象データと表記する)のストレージ50からの読出が必要になった場合には、以下の情報を含むデータ読出要求をファイルシステム20に対して出力する。
・処理対象バケット名(処理対象ファイルが記憶されているバケットのパケット名)
・処理対象ファイル名(処理対象ファイルのファイル名)
・読出対象データのファイルオフセット
・読出対象データのサイズ
・処理対象バケット名(処理対象ファイルが記憶されているバケットのパケット名)
・処理対象ファイル名(処理対象ファイルのファイル名)
・読出対象データのファイルオフセット
・読出対象データのサイズ
このデータ読出要求を受け取ったファイルシステム20(ファイルシステム20に従って、読出要求制御部として機能しているCPU61)は、図5に示した手順の読出要求応答処理を実行する。尚、この図5及び以下の説明において、末尾オフセットとは、読出対象データの末尾(末端)データのファイルオフセットのことである。
すなわち、データ読出要求を受け取ったファイルシステム20は、まず、処理対象エリ
アに関する更新履歴情報(以下、単に更新履歴情報と表記する)をストレージ50から取得する(ステップS201)。尚、このステップS201の処理は、ステップS101の処理と同内容の処理である。また、流れ図(図5)への表記は省略してあるが、更新履歴情報をストレージ50から取得できなかった場合、ファイルシステム20は、読出対象データが存在しない旨(いわゆるENOENTエラー)をアプリ35に通知してから読出要求応答処理を終了する。
アに関する更新履歴情報(以下、単に更新履歴情報と表記する)をストレージ50から取得する(ステップS201)。尚、このステップS201の処理は、ステップS101の処理と同内容の処理である。また、流れ図(図5)への表記は省略してあるが、更新履歴情報をストレージ50から取得できなかった場合、ファイルシステム20は、読出対象データが存在しない旨(いわゆるENOENTエラー)をアプリ35に通知してから読出要求応答処理を終了する。
ステップS201の処理を終えたファイルシステム20は、以降の処理で使用(参照/更新)する各種変数を初期化する(ステップS202)。具体的には、ファイルシステム20は、Nに、“0”を設定してから、読出サイズ#N(つまり、読出サイズ#0)に、“0”を設定する(ステップS202)。さらに、ファイルシステム20は、開始位置オフセット#N(つまり、開始位置オフセット#0)、注目オフセットに、それぞれ、読み出し対象データのファイルオフセット(図5では、読出対象データオフセット)を設定する(ステップS202)。
その後、ファイルシステム20は、更新履歴情報(ストレージ50から取得済みの処理対象エリアに関する更新履歴情報)から、注目オフセットのデータを含む最新のエクステントオブジェクトに関するエクステント管理情報を検索する(ステップS203)。
尚、既に説明した書込要求応答処理(図3)の内容から明らかなように、或るエクステント管理情報中のSEQ番号は、対応する(当該SEQ番号及び処理対象inode番号等にて特定される)エクステントオブジェクトの格納順を示している。また、或るエクステント管理情報中のファイルオフセット及びサイズは、対応するエクステントオブジェクトが保持しているデータの処理対象ファイル内での範囲(位置及び長さ)を示している。従って、ステップS203で実際に行われる処理は、注目オフセットが、ファイルオフセット〜ファイルオフセット+サイズの間に入る,SEQ番号が最も大きなエクステント管理情報を更新履歴情報から検索する処理である。尚、流れ図への表記は省略してあるが、上記条件を満たすエクステント管理情報を更新履歴情報から検索できなかった場合、ファイルシステム20は、読出対象データが存在しない旨をアプリ35に通知してから読出要求応答処理を終了する。
ステップS203の処理を終えたファイルシステム20は、読出サイズ#N、注目オフセットに、それぞれ、ブロックサイズを加算する(ステップS204)。その後、ファイルシステム20は、ブロックサイズ加算後の注目オフセットが末尾オフセット(読出対象データの末尾データのファイルオフセット)未満であるか否かを判断する(ステップS205)。
注目オフセットが末尾オフセット未満であった場合(ステップS205;YES)、ファイルシステム20は、再度、注目オフセットのデータを含む最新のエクステントオブジェクトに関するエクステント管理情報を更新履歴情報から検索する(ステップS206)。尚、このステップでの検索に失敗した場合にも、ファイルシステム20は、読出対象データが存在しない旨をアプリ35に通知してから読出要求応答処理を終了する。
ステップS206の処理を終えたファイルシステム20は、検索したエクステント管理情報が、前回、検索したエクステント管理情報と同一であるか否かを判断し、同一であった場合(ステップS207;YES)には、ステップS204以降の処理を開始する。
一方、今回、検索したエクステント管理情報が、前回、検索したエクステント管理情報と異なっていた場合(ステップS207;NO)、ファイルシステム20は、前回、検索したエクステント管理情報中のSEQ番号をエクステント指定値#Nとして記憶してから
、Nに“1”を加算する(ステップS208)。さらに、ファイルシステム20は、このステップS208において、その時点における注目オフセットの値を開始位置オフセット#Nとして記憶する処理、及び、“0”を読出サイズ#Nとして記憶する処理も行う。
、Nに“1”を加算する(ステップS208)。さらに、ファイルシステム20は、このステップS208において、その時点における注目オフセットの値を開始位置オフセット#Nとして記憶する処理、及び、“0”を読出サイズ#Nとして記憶する処理も行う。
そして、ステップS208の処理を終えたファイルシステム20は、ステップS204以降の処理を開始する。
ファイルシステム20は、ブロックサイズ加算後の注目オフセットが末尾オフセット以上となった場合(ステップS205;NO)には、今回、検索したエクステント管理情報中のSEQ番号をエクステント指定値#Nとして記憶する(ステップS209)。
続くステップS210にて、ファイルシステム20は、0からNまでのそれぞれのn値に対して、<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<エクステント指定値#n>という名称のエクステントオブジェクトの,開始位置オフセット#n及び読出サイズ#nが示している部分のデータを、ストレージ50から読み出す処理を行う。より具体的には、ファイルシステム20は、上記情報に基づき、いわゆる範囲リクエスト(部分的GETリクエスト)を、“N+1”回、生成・送信すると共に、各リクエストに対する応答データを受信する処理を行う。
そして、ファイルシステム20は、読み出した各データ(受信した各応答データ)を繋げたデータ(つまり、読出対象データ)をアプリ35に返送してから、ステップS210の処理及び読出要求応答処理を終了する。
ここで、ここまで説明した書込要求応答処理及び読出要求応答処理の内容を、図6を用いて、より具体的に説明しておくことにする。尚、図6及び以下の説明において、エリアXとは、エリア番号Xが割り当てられているエリアのことである。
既に説明したように(図3参照)、ファイルシステム20は、或るデータの書込要求を受け取った場合、そのデータがストレージ50内に既に記憶されているデータの更新データであるか否か等をチェックすることなく、そのデータを、ストレージ50への格納順(エリア単位の格納順)を示すSEQ番号を含む名称のエクステントオブジェクトとしてストレージ50に格納する。
従って、例えば、処理対象ファイルのエリアX内の,図6に示した範囲のデータA〜Dの書込がこの順に行われた場合、データAについては、SEQ番号1を含む名称のエクステントオブジェクトがストレージ50に格納(作成)される。また、データBについては、SEQ番号2を含む名称のエクステントオブジェクトがストレージ50内に格納され、データCについては、SEQ番号3を含む名称のエクステントオブジェクトがストレージ50内に格納される。そして、データDについては、SEQ番号4を含む名称のエクステントオブジェクトがストレージ50内に格納される。
また、ファイルシステム20は、或るデータについてのエクステントオブジェクトをストレージ50内に作成した際には、そのデータが含まれるエリアに関する更新履歴オブジェクトに、既に説明した内容のエクステント管理情報を追加する。
従って、データA〜Dのエクステントオブジェクトがストレージ50に格納されている場合、エリアXに関する更新履歴オブジェクト(更新履歴情報)には、以下の4つのエクステント管理情報が含まれている。
・SEQ番号1とデータAのファイルオフセット(図6におけるOF0)及びサイズが設定されているエクステント管理情報A
・SEQ番号2とデータBのファイルオフセット(図6におけるOF6)及びサイズが設定されているエクステント管理情報B
・SEQ番号3とデータCのファイルオフセット(図6におけるOF3)及びサイズが設定されているエクステント管理情報C
・SEQ番号4とデータDのファイルオフセット(図6におけるOF0)及びサイズが設定されているエクステント管理情報D
・SEQ番号1とデータAのファイルオフセット(図6におけるOF0)及びサイズが設定されているエクステント管理情報A
・SEQ番号2とデータBのファイルオフセット(図6におけるOF6)及びサイズが設定されているエクステント管理情報B
・SEQ番号3とデータCのファイルオフセット(図6におけるOF3)及びサイズが設定されているエクステント管理情報C
・SEQ番号4とデータDのファイルオフセット(図6におけるOF0)及びサイズが設定されているエクステント管理情報D
そのような状況下、OF3から6ブロック分のデータ(図6における“読出対象データ”の読出要求を受け取った場合、ファイルシステム20は、以下の処理を行う。
ファイルシステム20は、まず、エリアXに関する更新履歴情報を取得する(図5のステップ200)。
次いで、ファイルシステム20は、以下の設定を行う(ステップS202)。
・N ← 0
・開始位置オフセット#0 ← OF3(読出対象データのファイルオフセット)
・読出サイズ#0 ← 0
・注目オフセット ← OF3(読出対象データのファイルオフセット)
・N ← 0
・開始位置オフセット#0 ← OF3(読出対象データのファイルオフセット)
・読出サイズ#0 ← 0
・注目オフセット ← OF3(読出対象データのファイルオフセット)
そして、ファイルシステム20は、更新履歴情報から、注目オフセットが、ファイルオフセット〜ファイルオフセット+サイズの間に入る、SEQ番号が最も大きなエクステント管理情報を検索する(ステップS203)。更新履歴情報が上記内容のものであり、注目オフセットがOF3である場合、「注目オフセットが、ファイルオフセット〜ファイルオフセット+サイズの間に入るエクステント管理情報」は、エクステント管理情報A、C及びDである。そして、エクステント管理情報A、C及びD中の、SEQ番号が最も大きなエクステント管理情報は、エクステント管理情報Dであるため、ステップS203では、エクステント管理情報Dが検索される。
続くステップS204において、ファイルシステム20は、それまで“0”であった読出サイズ#0を、ブロックサイズに変更し、それまでOF3であった注目オフセットを、OF4に変更する。
そして、注目オフセット(=OF4)が、末尾オフセット(=OF9−1)よりも小さいため(ステップS205;YES)、ファイルシステム20は、ステップS206の処理を実行する。
更新履歴情報が上記内容のものであり、注目オフセットがOF4である場合も、「注目オフセットが、ファイルオフセット〜ファイルオフセット+サイズの間に入るエクステント管理情報」は、エクステント管理情報A、C及びDである。そして、エクステント管理情報A、C及びD中の、SEQ番号が最も大きなエクステント管理情報は、エクステント管理情報Dであるため、ステップS206では、エクステント管理情報Dが検索される。
前回、検索されたエクステント管理情報も、エクステント管理情報Dであるため(ステップS207;YES)、ファイルシステム20は、読出サイズ#0を、2×ブロックサイズに変更し、注目オフセットを、OF5に変更する(ステップS204)。
そして、注目オフセット(=OF5)が末尾オフセットよりも小さいため(ステップS205;YES)、ファイルシステム20は、ステップS206の処理を実行する。更新履歴情報が上記内容のものであり、注目オフセットがOF5である場合、「注目オフセットが、ファイルオフセット〜ファイルオフセット+サイズの間に入るエクステント管理情
報」はエクステント管理情報Cだけとなる。従って、ステップS206の処理で、エクステント管理情報Cが検索される。
報」はエクステント管理情報Cだけとなる。従って、ステップS206の処理で、エクステント管理情報Cが検索される。
そして、前回、検索されたエクステント管理情報Dと異なるエクステント管理情報Cが検索されたため(ステップS207;NO)、ファイルシステム20は、ステップS208にて、以下の設定を行う。
・エクステント指定値#0 ← 4(前回の検索結果中のSEQ番号)
・N ← 1(=N+1)
・開始位置オフセット#1 ← OF5(その時点における注目オフセット)
・読出サイズ#1 ← 0
・エクステント指定値#0 ← 4(前回の検索結果中のSEQ番号)
・N ← 1(=N+1)
・開始位置オフセット#1 ← OF5(その時点における注目オフセット)
・読出サイズ#1 ← 0
その後、ファイルシステム20は、ステップS204に戻って、同様の処理を繰り返す。そして、ブロックサイズ加算後の注目オフセット≧末尾オフセットとなるのは、注目オフセット=OF9となったときであるため、ステップS209の処理が完了すると、ファイルシステム20が以下の情報を保持している状況が実現されることになる。
−−−−−−−−−−−−−−−−−−−−−−−−−−
N :2
エクステント指定値#0 :4
開始位置オフセット#0 :OF3
読出サイズ#0 :2×ブロックサイズ
エクステント指定値#1 :3
開始位置オフセット#1 :OF5
読出サイズ#1 :2×ブロックサイズ
エクステント指定値#2 :3
開始位置オフセット#2 :OF7
読出サイズ#2 :2×ブロックサイズ
−−−−−−−−−−−−−−−−−−−−−−−−−−
−−−−−−−−−−−−−−−−−−−−−−−−−−
N :2
エクステント指定値#0 :4
開始位置オフセット#0 :OF3
読出サイズ#0 :2×ブロックサイズ
エクステント指定値#1 :3
開始位置オフセット#1 :OF5
読出サイズ#1 :2×ブロックサイズ
エクステント指定値#2 :3
開始位置オフセット#2 :OF7
読出サイズ#2 :2×ブロックサイズ
−−−−−−−−−−−−−−−−−−−−−−−−−−
このように(図6も参照されたい。)、上記手順で求められるエクステント指定値#n(n=0〜N)は、開始位置オフセット#nから始まる,サイズが読出サイズ#nの最新データを保持しているエクステントオブジェクトの名称中のSEQ番号となる。
従って、0からNまでのそれぞれのn値に対して、エクステント指定値#nを含む名称のエクステントオブジェクトの,開始位置オフセット#n及び読出サイズ#nが示している部分のデータをストレージ50から読み出し、読み出した各データをアプリ35に返送すれば(ステップS210)、アプリ35からのデータ読出要求に応答できることになる。
次に、書込要求応答処理(図3)のステップS106で行われるマージ処理の内容を説明する。尚、以下の説明において、更新履歴情報とは、ステップS105の処理で内容が更新された,処理対象エリアに関する更新履歴情報のことである。また、ブロックとは、ファイルオフセットがブロックサイズの整数倍となる箇所(境界)で区切ったファイルの範囲のことである。
図7に、マージ処理の流れ図を示す。
このマージ処理は、更新履歴オブジェクトの読出/書込が効率的に行えるようにすることと、無駄なエクステントオブジェクトをストレージ50内から削除することとを、目的とした処理である。
図7に示してあるように、マージ処理を開始したファイルシステム20は、まず、更新履歴情報中のエクステント数が、エクステント数閾値(図7では、閾値)以上であるか否かを判断する(ステップS301)。
エクステント数閾値は、更新履歴オブジェクトの読出/書込が効率的に行えなくるエクステント数の下限値として予め設定されている値である。このエクステント数閾値の値は、例えば、以下の手順で求めることが出来る。
まず、情報処理装置10(コンピュータ60)を用いて、各種サイズのオブジェクトのストレージ50への書込/ストレージ50からの読出を行うことにより、オブジェクトサイズxとスループットとの関係を示すオブジェクトサイズ・スループット曲線を得る。すると、図8に示したような形状のオブジェクトサイズ・スループット曲線μ(x)が得られる。
すなわち、ストレージ50のμ(x)は、オブジェクトサイズxが一定の値に到達するまでは、スループットが上昇し続けるが、オブジェクトサイズxが一定の値を超えると、スループットが限界値μ0に近づくものとなる。
このμ(x)の形状は、オブジェクトサイズxが一定の値に到達するまでは、効率が良くなるが、オブジェクトサイズが一定の値を超えると、オブジェクトサイズxが大きくなるにつれ、レイテンシが悪くなることを意味するものである。
従って、頻繁に読み書きされる更新履歴オブジェクトのサイズは、スループットが、限界値μ0の90%(μ1)程度となるサイズ以下であることが望ましいことになる。そして、更新履歴オブジェクトのサイズは、ほぼ、エクステント管理情報数×1つのエクステント管理情報のサイズである(図4B参照)。そのため、κ1、又は κ1以上の,ブロックサイズの整数倍の最小値κ2を、1つのエクステント管理情報のサイズで割った値を算出し、算出結果の整数化等を行えば、エクステント数閾値を求めることが出来る。
図7に戻って、マージ処理の説明を続ける。
エクステント数がエクステント数閾値未満であった場合(ステップS301;NO)、ファイルシステム20は、特に処理を行うことなく、このマージ処理(及び図3の書込要求応答処理)を終了する。
一方、エクステント数がエクステント数値以上であった場合(ステップS301;YES)、ファイルシステム20は、更新履歴情報に基づき、1つのオブジェクトにマージ可能なエクステントオブジェクト群を全て特定すると共に、特定した各エクステントオブジェクト群のマージに必要な情報を用意する(ステップS302)。その後、ファイルシステム20は、用意した情報に基づき、特定した各エクステントオブジェクト群毎に、そのエクステントオブジェクト群をマージしたエクステントオブジェクトをストレージ50に格納する(ステップS303)。
以下、ステップS302、S303の内容をさらに具体的に説明する。尚、以下の説明において、データ範囲とは、エクステント管理情報中のファイルオフセット及びサイズが示している,処理対象ファイルの範囲のことである。
ファイルシステム20は、ステップS302にて、処理対象エリアのブロック毎に、以下の〔1〕及び〔2〕(2a又は2b)の処理を行う。
〔1〕更新履歴情報から、処理対象となっているブロック(以下、処理対象ブロックと表記する)がそのデータ範囲に含まれるエクステント管理情報を検索。
〔2a〕検索に失敗した場合には、規定値(例えば、“−1”)を処理対象ブロックの状態値(処理対象ブロックのファイルオフセットに対応づけられた状態値)として記憶。
〔2b〕1つ以上のエクステント管理情報が検索できた場合には、当該1つ以上のエクステント管理情報中のSEQ番号の最大値を処理対象ブロックの状態値として記憶すると共に、各エクステント管理情報中のSEQ番号を、要削除SEQ番号として記憶。
〔2a〕検索に失敗した場合には、規定値(例えば、“−1”)を処理対象ブロックの状態値(処理対象ブロックのファイルオフセットに対応づけられた状態値)として記憶。
〔2b〕1つ以上のエクステント管理情報が検索できた場合には、当該1つ以上のエクステント管理情報中のSEQ番号の最大値を処理対象ブロックの状態値として記憶すると共に、各エクステント管理情報中のSEQ番号を、要削除SEQ番号として記憶。
尚、上記した〔2b〕の処理中の要削除SEQ番号の記憶処理は、処理対象ブロックに関連づけることなく行われる処理であると共に、同じSEQ番号が既に要削除SEQ番号として記憶されていた場合には省略される処理である。
また、ファイルシステム20は、ステップS303にて、以下の処理を行う。
まず、ファイルシステム20は、ステップS302の処理で得ている各ブロックに関する状態値に基づき、状態値が規定値とはなっていない(つまり、状態値がSEQ番号となっている)連続したブロック群を全て特定する。尚、この処理時、ファイルシステム20は、“隣接するブロックと状態値が異なる1ブロック”も、“状態値が規定値とはなっていない連続したブロック群”として特定する。
次いで、ファイルシステム20は、特定したブロック群毎に、『状態値が示している各データをストレージ50から読み込み、読み込んだ各データを繋げたデータを、新たなエクステントオブジェクトとしてストレージ50に格納する処理』を行う。
以下、この処理(以下、マージオブジェクト格納処理と表記する)の内容を、具体例に基づき、説明する。
例えば、データの書き込み状況が図6に示したようなものであった場合、ステップS302の処理で求められる各ブロックに関する状態値は、以下の値となる。
4、4、4、4、4、3、3、2、2、2、2、2、規定値(例えば、−1)、…
尚、先頭の“4”が、ファイルオフセットがOF0のブロックの状態値である。
4、4、4、4、4、3、3、2、2、2、2、2、規定値(例えば、−1)、…
尚、先頭の“4”が、ファイルオフセットがOF0のブロックの状態値である。
ファイルシステム20は、この結果から、状態値が規定値とはなっていない連続したブロック群(以下、データ連続ブロック群と表記する)として、状態値が4、4、4、4、4、3、3、2、2、2、2、2となっている12個のブロック群を特定する。尚、ファイルシステム20は、図6に示していない範囲のブロックについても、データ連続ブロック群を特定する。
そして、ファイルシステム20は、そのようにして特定したデータ連続ブロック群毎に、以下の内容のマージオブジェクト格納処理を行う。
或るデータ連続ブロック群に対するマージオブジェクト格納処理を開始したファイルシステム20は、まず、当該データ連続ブロック群を、状態値が同じ連続した,幾つかのオブジェクト同一ブロック群に区分する。尚、ファイルシステム20は、“隣接するブロックと状態値が異なる1ブロック”も、オブジェクト同一ブロック群として取り扱って、データ連続ブロック群を、幾つかのオブジェクト同一ブロック群に区分する。
従って、上記した12個のブロックからなるデータ連続ブロック群は、以下の3つのオブジェクト同一ブロック群に区分される。
・状態値が『4、4、4、4、4』のブロック(ファイルオフセットがOF0〜OF4の
5ブロック)からなる第1オブジェクト同一ブロック群
・状態値が『3、3』のブロック(ファイルオフセットがOF5〜OF6の2ブロック)からなる第2オブジェクト同一ブロック群
・状態値が『2、2、2、2、2』のブロック(ファイルオフセットがOF7〜OF11の5ブロック)からなる第3オブジェクト同一ブロック群
・状態値が『4、4、4、4、4』のブロック(ファイルオフセットがOF0〜OF4の
5ブロック)からなる第1オブジェクト同一ブロック群
・状態値が『3、3』のブロック(ファイルオフセットがOF5〜OF6の2ブロック)からなる第2オブジェクト同一ブロック群
・状態値が『2、2、2、2、2』のブロック(ファイルオフセットがOF7〜OF11の5ブロック)からなる第3オブジェクト同一ブロック群
次いで、ファイルシステム20は、オブジェクト同一ブロック群毎に、そのオブジェクト同一ブロック群が示しているデータをストレージ50から読み出す処理を行う。
すなわち、ファイルシステム20は、上記した第1オブジェクト同一ブロック群については、SEQ番号4(及び処理対象inode番号等)にて識別されるエクステントオブジェクト内の,ファイルオフセットOF0からの5ブロック分のデータをストレージ50から読み出す。また、ファイルシステム20は、上記した第2オブジェクト同一ブロック群については、SEQ番号3にて識別されるエクステントオブジェクト内の,ファイルオフセットOF7からの2ブロック分のデータをストレージ50から読み出す。さらに、ファイルシステム20は、上記した第3オブジェクト同一ブロック群については、SEQ番号2にて識別されるエクステントオブジェクト内の,ファイルオフセットOF7からの5ブロック分のデータをストレージ50から読み出す。
その後、ファイルシステム20は、ストレージ50から読み出した各データを繋げたデータを、以下のオブジェクト名を有するエクステントオブジェクトとしてストレージ50に格納する。
<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<既存のSEQ番号の最大値+1>
<処理対象バケット名>_<処理対象inode番号>_<処理対象エリア番号>_<既存のSEQ番号の最大値+1>
尚、既存のSEQ番号とは、更新履歴情報中のSEQ番号、及び、今回のステップS303の処理にて既に行っているマージオブジェクト格納処理時に使用したSEQ番号のことである。
そして、ファイルシステム20は、或る(1つの)データ連続ブロック群に対するマージオブジェクト格納処理を終了する。
ステップS303の処理(何回かのマージオブジェクト格納処理を含む処理)を終えたファイルシステム20は、ステップS303の処理でストレージ50内に追加した各オブジェクトに関するエクステント管理情報を更新履歴情報に追加する(ステップS304)。尚、既に説明(定義)したように、このステップS304でエクステント管理情報が追加される更新履歴情報は、ファイルシステム20がストレージ50から取得し、内容を変更した更新履歴情報である。
また、ステップS304にて、ファイルシステム20は、マージにより不要となった各エクステントオブジェクトに関するエクステント管理情報(SEQ番号=要削除SEQ番号となっているエクステント管理情報)を更新履歴情報から削除する。
尚、このステップS304におけるエクステント管理情報の削除は、更新履歴情報中の,削除すべきエクステント管理情報を、エクステント管理情報ではないことが分かる情報(以下、非使用領域情報と表記する)に書き換えることにより行われる。また、ステップS304におけるエクステント管理情報の追加は、更新履歴情報に非使用領域情報が含まれる場合には,非使用領域情報をエクステント管理情報に書き換えることによって行われ、更新履歴情報に非使用領域情報が含まれない場合には、更新履歴情報の末尾にエクステント管理情報を追加することによって行われる。
さらに、ファイルシステム20は、更新履歴情報中のエクステント数に、“追加した更新履歴情報数−削除した更新履歴情報数”(この値は、負の値)を加算する処理も行う(ステップS304)。
その後、ファイルシステム20は、ストレージ50内の、処理対象エリアに関する更新履歴オブジェクトを、内容を更新した更新履歴情報のオブジェクトに変更する(ステップS305)。そして、ファイルシステム20は、マージにより不要となった各エクステントオブジェクト(各要削除SEQ番号で識別されるエクステントオブジェクト)をストレージ50から削除(ステップS306)してから、このマージ処理(及び図3の書込要求応答処理)を終了する。
以上、詳細に説明したように、本実施形態に係る情報処理装置10(ファイルシステム20)は、各ユーザが、ストレージ50を、あたかも、オブジェクトの一部分の書き換えが可能なストレージとして利用できる環境を実現できるものとなっている。従って、本実施形態に係る情報処理装置10(ファイルシステム20)を用いておけば、ファイルをオブジェクトへマッピングした場合やブロックをオブジェクトにマッピングした場合に生ずる不具合が生じない形でストレージ50を利用できることになる。また、情報処理装置10(ファイルシステム20)を用いておけば、ストレージ50を、記憶可能なファイルサイズの制限がないストレージとして利用できることにもなる。
また、本実施形態に係る情報処理装置10(ファイルシステム20)は、マージ処理を行う機能を有している。従って、本実施形態に係る情報処理装置10(ファイルシステム20)によれば、ストレージ50の記憶容量が過度に無駄に使用されることを防止できることにもなる。
《第2実施形態》
本発明の第2実施形態に係る情報処理装置は、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、以下では、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第2実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明することにする。
本発明の第2実施形態に係る情報処理装置は、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、以下では、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第2実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明することにする。
図9に、本実施形態に係る情報処理装置10内のファイルシステム20(以下、第2ファイルシステム20と表記する)が実行するマージ処理の流れ図を示す。
この図9に示してあるように、マージ処理を開始した第2ファイルシステム20は、まず、今回の書込により不要となったオブジェクトサイズを特定して処理対象エリアに関する総不要オブジェクトサイズβに加算する処理(ステップS400)を行う。
ここで、今回の書込により不要となったオブジェクトサイズとは、今回の書込が行われる前は、不要ではなかったが、今回の書込により不要となった、幾つかのエクステントオブジェクトの部分の合計サイズのことである。
また、総不要オブジェクトサイズβとは、第2ファイルシステム20が、エリア(及びファイル)毎に管理している、総不要オブジェクトサイズ(ストレージ50内の、更新データが存在するデータの総サイズ)を表す数値情報のことである。
尚、第2ファイルシステム20は、或るエリア内のデータが書込が初めて行われたときに、そのエリアに関する総不要オブジェクトサイズβを“0”に初期化する。また、情報
処理装置10が再起動された場合、第2ファイルシステム20は、再起動後に初めて或るエリアに関する更新履歴情報を取得した際に、取得した更新履歴情報を解析することによりそのエリアに関する総不要オブジェクトサイズを特定する。そして、第2ファイルシステム20は、特定結果をそのエリアに関する総不要オブジェクトサイズβに設定する。
処理装置10が再起動された場合、第2ファイルシステム20は、再起動後に初めて或るエリアに関する更新履歴情報を取得した際に、取得した更新履歴情報を解析することによりそのエリアに関する総不要オブジェクトサイズを特定する。そして、第2ファイルシステム20は、特定結果をそのエリアに関する総不要オブジェクトサイズβに設定する。
ステップS400の処理を終えた第2ファイルシステム20は、総不要オブジェクトサイズβが、総不要オブジェクトサイズ閾値(図9では、“閾値”)を超えているか否かを判断する(ステップS401)。ここで、総不要オブジェクトサイズ閾値とは、情報処理装置10の入力装置の操作により第2ファイルシステム20に対して設定される値(管理者用が変更可能な値)のことである。尚、総不要オブジェクトサイズ閾値を、他の条件によって変わる値(例えば、エクステントオブジェクトの最大サイズの10倍)としておくことも出来る。
βが総不要オブジェクトサイズ閾値未満であった場合(ステップS401;NO)、第2ファイルシステム20は、特に処理を行うことなく、このマージ処理を終了する。
一方、βが総不要オブジェクトサイズ閾値以上であった場合(ステップS401;YES)、第2ファイルシステム20は、ステップ402〜S406にて、それぞれ、ステップ302〜S306(図7)と同じ処理を行う。
そして、ステップS406の処理を終えた第2ファイルシステム20は、βを現状を表す値(つまり、“0”)に更新(ステップS407)してから、このマージ処理を終了する。
以上、説明したように、本実施形態に係る情報処理装置10(ファイルシステム20)は、マージ処理の内容のみが上記した第1実施形態に係る情報処理装置10(ファイルシステム20)と異なるものとなっている。そして、図9に示した内容/手順のマージ処理でも、ストレージ50の記憶容量が過度に無駄に使用されることを防止できる。従って、この第2実施形態に係る情報処理装置10(ファイルシステム20)も、第1実施形態に係る情報処理装置10(ファイルシステム20)と同様の作用効果を奏するものとなっていると言うことが出来る。
《第3実施形態》
本発明の第3実施形態に係る情報処理装置も、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、第2実施形態に関する説明時と同様に、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第3実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明することにする。
本発明の第3実施形態に係る情報処理装置も、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、第2実施形態に関する説明時と同様に、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第3実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明することにする。
図10に、第3実施形態に係る情報処理装置10内のファイルシステム20(以下、第3ファイルシステム20と表記する)が実行するマージ処理の流れ図を示す。
この図10に示してあるように、マージ処理を開始した第3ファイルシステム20は、第2ファイルシステム20と同様に、まず、今回の書込により不要となったオブジェクトサイズを処理対象エリアに関する総不要オブジェクトサイズβに加算する(ステップS500)。ただし、第3ファイルシステムは、このステップS500にて、処理対象エリアに関する総オブジェクトサイズαに、今回格納したオブジェクトサイズ(正確には、今回、オブジェクトとしてストレージ50に記憶した処理対象エクステントのサイズ)を加算する処理も行う。
ここで、総オブジェクトサイズαとは、第3ファイルシステム20が、エリア(及びファイル)毎に管理している、ストレージ50にオブジェクトとして記憶したエクステントデータの総サイズのことである。第3ファイルシステム20は、或るエリア内のデータの書込が初めて行われたときに、そのエリアに関する総オブジェクトサイズαを“0”に初期化する。また、情報処理装置10が再起動された場合、第3ファイルシステム20は、再起動後に初めて或るエリアに関する更新履歴情報を取得した際に、取得した更新履歴情報中の各サイズの総和を算出する。そして、第3ファイルシステム20は、算出結果をそのエリアに関する総オブジェクトサイズαとして記憶する。
ステップS500の処理を終えた第3ファイルシステム20は、β/α(βをαで割った値)が、割合閾値(図10では、“閾値”;例えば、0.9)を超えているか否かを判断する(ステップS501)。この割合閾値も、上記した総不要オブジェクトサイズ閾値と同様に、情報処理装置10の入力装置の操作により第3ファイルシステム20に対して設定される値(管理者用が変更可能な値)である。
β/αが割合閾値未満であった場合(ステップS501;NO)、第3ファイルシステム20は、特に処理を行うことなく、このマージ処理を終了する。
一方、β/αが割合閾値以上であった場合(ステップS501;YES)、第3ファイルシステム20は、ステップ502〜S506にて、それぞれ、ステップ302〜S306(図7)と同じ処理を行う。
そして、ステップS506の処理を終えた第3ファイルシステム20は、α、βを現状を表す値に更新(ステップS507)してから、このマージ処理を終了する。
以上、説明したように、本実施形態に係る情報処理装置10(ファイルシステム20)も、マージ処理の内容のみが上記した第1実施形態に係る情報処理装置10(ファイルシステム20)と異なるものとなっている。そして、図10に示した内容/手順のマージ処理でも、ストレージ50の記憶容量が過度に無駄に使用されることを防止できる。従って、この第3実施形態に係る情報処理装置10(ファイルシステム20)も、第1実施形態に係る情報処理装置10(ファイルシステム20)と同様の作用効果を奏するものとなっていると言うことが出来る。
《第4実施形態》
本発明の第4実施形態に係る情報処理装置も、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第4実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明する。
本発明の第4実施形態に係る情報処理装置も、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第4実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明する。
図11に、第4実施形態に係る情報処理装置10内のファイルシステム20(以下、第4ファイルシステム20と表記する)が実行するマージ処理の流れ図を示す。
図11に示してあるように、このマージ処理を開始した第4ファイルシステム20は、まず、処理対象エリア用の、ブロック毎の重複度を記憶可能な重複度テーブルの、今回の各書込ブロックに関する重複度を、“1”インクリメントする(ステップS600)。
重複度テーブルは、第4ファイルシステム20が、エリア(及びファイル)毎に管理している『1つのエリア内の各ブロックについて重複度を記憶できるテーブル』(RAM上
の情報群)である。尚、或るブロックの重複度とは、そのブロックのデータを保持しているエクステントオブジェクト数のことである。また、第4ファイルシステム20は、或るエリア内のデータの書込が初めて行われたときに、そのエリアに関する、各重複度として“0”を記憶させた重複度テーブルを用意する。さらに、情報処理装置10が再起動された場合、第4ファイルシステム20は、再起動後に初めて或るエリアに関する更新履歴情報を取得した際に、取得した更新履歴情報を解析することにより、各ブロックの重複度を求め、各重複度として求めた値を記憶させた重複度テーブルを用意する。
の情報群)である。尚、或るブロックの重複度とは、そのブロックのデータを保持しているエクステントオブジェクト数のことである。また、第4ファイルシステム20は、或るエリア内のデータの書込が初めて行われたときに、そのエリアに関する、各重複度として“0”を記憶させた重複度テーブルを用意する。さらに、情報処理装置10が再起動された場合、第4ファイルシステム20は、再起動後に初めて或るエリアに関する更新履歴情報を取得した際に、取得した更新履歴情報を解析することにより、各ブロックの重複度を求め、各重複度として求めた値を記憶させた重複度テーブルを用意する。
ステップS600の処理を終えた第4ファイルシステム20は、値を更新したいずれかの重複度が、管理者等により自システム20に設定されている重複度閾値(例えば、10)以上となっているか否かを判断する(ステップS601)。
いずれかの重複度も重複度閾値以上とはなっていなかった場合(ステップS601;NO)、第5ファイルシステム20は、特に処理を行うことなく、このマージ処理を終了する。
一方、いずれかの重複度が重複度閾値以上となっていた場合(ステップS601;YES)、第4ファイルシステム20は、ステップS602〜S606にて、それぞれ、ステップ302〜S306(図7)と同じ処理を行う。
その後、第4ファイルシステム20は、処理対象エリアに関する重複度テーブルを、現状を表すもの(各ブロックについての重複度が、“0”又は“1”となっているもの)に更新(ステップS607)してから、このマージ処理を終了する。
以上、説明したように、本実施形態に係る情報処理装置10(ファイルシステム20)も、マージ処理の内容のみが上記した第1実施形態に係る情報処理装置10(ファイルシステム20)と異なるものとなっている。そして、図11に示した内容/手順のマージ処理でも、ストレージ50の記憶容量が過度に無駄に使用されることを防止できる。従って、この第4実施形態に係る情報処理装置10(ファイルシステム20)も、第1実施形態に係る情報処理装置10(ファイルシステム20)と同様の作用効果を奏するものとなっていると言うことが出来る。
《第5実施形態》
本発明の第5実施形態に係る情報処理装置も、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、以下では、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第5実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明することにする。
本発明の第5実施形態に係る情報処理装置も、第1実施形態に係る情報処理装置10内のファイルシステム20を、上記したものとは異なる内容のマージ処理を行うものに置き換えた装置である。そのため、以下では、第1実施形態の情報処理装置10の説明時に用いたものと同じ符号を用いて、第5実施形態に係る情報処理装置10内のファイルシステム20が実行するマージ処理の内容のみを説明することにする。
図12に、第5実施形態に係る情報処理装置10内のファイルシステム20(以下、第5ファイルシステム20と表記する)が実行するマージ処理の流れ図を示す。
図12に示してあるように、このマージ処理を開始した第5ファイルシステム20は、まず、第3ファイルシステム20がステップS500(図10)にて行うものと同内容の処理を、ステップS701にて行う。
次いで、第5ファイルシステム20は、第4ファイルシステム20がステップS600(図11)にて行うものと同内容の処理を、ステップS702にて行う。
要するに、第5ファイルシステム20は、マージ処理時、まず、処理対象エリアに関す
る総オブジェクトサイズα、総不要オブジェクトサイズβ、重複度テーブルを、現状を表すものに更新する処理(ステップS701、S702)を行う。
る総オブジェクトサイズα、総不要オブジェクトサイズβ、重複度テーブルを、現状を表すものに更新する処理(ステップS701、S702)を行う。
次いで、第5ファイルシステム20は、開始条件が満たされているか否かを判断する(ステップS703)。
ここで、開始条件とは、以下の条件1〜4のいずれかが満たされるという条件のことである。
・条件1:エクステント数≧エクステント数閾値
・条件2:β≧総不要オブジェクトサイズ閾値
・条件3:β/α≧割合閾値
・条件4:いずれかの重複度≧重複度閾値
・条件1:エクステント数≧エクステント数閾値
・条件2:β≧総不要オブジェクトサイズ閾値
・条件3:β/α≧割合閾値
・条件4:いずれかの重複度≧重複度閾値
尚、エクステント数閾値、総不要オブジェクトサイズ閾値、割合閾値、重複度閾値とは、いずれも、情報処理装置10の入力装置を操作することにより、第5ファイルシステム20に対して設定できる情報のことである。
そして、第5ファイルシステム20は、開始条件が満たされていなかった場合(ステップS703;NO)には、特に処理を行うことなく、このマージ処理を終了する。
一方、開始条件が満たされていた場合(ステップS703;YES)、つまり、条件1〜4のいずれかが満たされていた場合、第5ファイルシステム20は、ステップS703〜S707にて、それぞれ、ステップ302〜S306(図7)と同じ処理を行う。
そして、ステップS707の処理を終えた第4ファイルシステム20は、処理対象エリアに関するα、β、更新重複度テーブルを、現状を表すものに更新(ステップS709)してから、このマージ処理を終了する。
以上の説明から明らかなように、この第5実施形態に係る情報処理装置10(ファイルシステム20)は、ステップ703〜S708の処理(実際のマージ処理)が開始される条件が、 他の各実施形態に係る情報処理装置10(ファイルシステム20)よりも多い
ものとなっている。従って、この第5実施形態に係る情報処理装置10(ファイルシステム20)は、幾つかの閾値を過度に大きな値に設定してしまっても特に問題が生じない装置(プログラム)となっていると言うことが出来る。
ものとなっている。従って、この第5実施形態に係る情報処理装置10(ファイルシステム20)は、幾つかの閾値を過度に大きな値に設定してしまっても特に問題が生じない装置(プログラム)となっていると言うことが出来る。
《変形形態》
上記した各実施形態に係る情報処理装置10(ファイルシステム20)に対しては、各種の変形を行うことが出来る。
上記した各実施形態に係る情報処理装置10(ファイルシステム20)に対しては、各種の変形を行うことが出来る。
例えば、各実施形態に係る情報処理装置10(ファイルシステム20)を、ストレージ50内の更新履歴オブジェクトを書き換えた後、ストレージ50にエクステントオブジェクトを格納する装置(プログラム)に変形することが出来る。ただし、そのように各実施形態に係る情報処理装置10(ファイルシステム20)を変形すると、更新履歴オブジェクトの書き換え直後に何らかの理由によりストレージ50へのアクセスが行えなくなった場合に、更新履歴オブジェクト(更新履歴情報)では存在することになっているエクステントオブジェクトがストレージ50内に存在しないといった状況が発生してしまうことになる。一方、エクステントオブジェクトの格納後に、更新履歴オブジェクトを書き換えるようにしておけば、エクステントオブジェクトの格納直後にストレージ50へのアクセスが行えなくなっても上記のような状況が発生することはない。従って、エクステントオブジェクトの格納と、更新履歴オブジェクトの書き換えの順番は、各実施形態と同順にして
おくことが望ましい。
おくことが望ましい。
また、各実施形態に係る情報処理装置10(ファイルシステム20)を、各エリア(及び各ファイル)に関する更新履歴情報が情報処理装置10内に記憶されるものに変形することも出来る。ただし、そのように変形する場合、更新履歴情報が失われてしまうことがないようにしておく必要が生ずる。従って、各実施形態のように、更新履歴情報も、オブジェクトとしてストレージ50に記憶されるようにしておいた方が良い。
また、エクステント管理情報は、対応するエクステントオブジェクトのファイル名と、そのエクステントオブジェクトのストレージ50への格納順と、そのエクステントオブジェクトが処理対象ファイルのどの部分のデータのオブジェクトであるかが分かる情報であれば良いものである。従って、各実施形態に係る情報処理装置10(ファイルシステム20)を、エクステントオブジェクトのファイル名をSEQ番号とは無関係に決定し、決定したファイル名も含むエクステント管理情報を更新履歴情報(更新履歴情報オブジェクト)に追加する装置(プログラム)に変形することも出来る。
また、第4実施形態に係る情報処理装置10(ファイルシステム20)を、“重複度閾値−重複度”に相当する重複度余裕値を各ブロック(及び各ファイル)毎に管理し、或るブロックの重複度余裕値が“0”になったときに、ステップ602以降の処理を開始するものに変形することも出来る。
各実施形態に係るファイルシステム20を、ユーザ空間で動作するプログラム(アプリ35としての機能も有するプログラム等)に変形することも出来る。さらに、書込要求応答処理/読出要求応答処理/マージ処理の内容(手順)に、この欄で説明したものとは異なる変形を加えても良いことは、当然のことである。
以上、開示した技術に関し、更に以下の付記を開示する。
(付記1) オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求制御部と、
前記オブジェクトストレージから読み出すべき、前記処理対象ファイルの一部を成す読出対象データの前記処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と前記処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する読出要求制御部と、
を備えることを特徴とする情報処理装置。
(付記1) オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求制御部と、
前記オブジェクトストレージから読み出すべき、前記処理対象ファイルの一部を成す読出対象データの前記処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と前記処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する読出要求制御部と、
を備えることを特徴とする情報処理装置。
(付記2) 前記書込要求制御部は、
前記部分データを、前記オブジェクトストレージへの格納順を示す格納順情報をその名称に含む新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、前記名称情報を含まないオブジェクト管理情報を追加する
ことを特徴とする付記1に記載の情報処理装置。
前記部分データを、前記オブジェクトストレージへの格納順を示す格納順情報をその名称に含む新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、前記名称情報を含まないオブジェクト管理情報を追加する
ことを特徴とする付記1に記載の情報処理装置。
(付記3) 前記書込要求制御部は、
前記部分データを、新たなオブジェクトとして前記オブジェクトストレージに格納した
後に、前記オブジェクト管理情報を前記処理対象ファイルに関する前記更新履歴情報に追加する
ことを特徴とする付記1又は2に記載の情報処理装置。
前記部分データを、新たなオブジェクトとして前記オブジェクトストレージに格納した
後に、前記オブジェクト管理情報を前記処理対象ファイルに関する前記更新履歴情報に追加する
ことを特徴とする付記1又は2に記載の情報処理装置。
(付記4) 前記書込要求制御部は、
前記部分データが与えられると、オブジェクトとして記憶されている前記処理対象ファイルに関する更新履歴情報を前記オブジェクトストレージから読み出し、読み出した更新履歴情報に前記オブジェクト管理情報を追加してから、オブジェクトストレージ内の前記処理対象ファイルに関する更新履歴情報についてのオブジェクトを、前記オブジェクト管理情報を追加した更新履歴情報についてのオブジェクトに書き換え、
前記読出要求制御部は、
前記読出対象範囲情報が与えられると、オブジェクトとして記憶されている前記処理対象ファイルに関する更新履歴情報を前記オブジェクトストレージから読み出し、与えられた読出対象範囲情報と読み出した更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する
ことを特徴とする付記1から3のいずれか一項に記載の情報処理装置。
前記部分データが与えられると、オブジェクトとして記憶されている前記処理対象ファイルに関する更新履歴情報を前記オブジェクトストレージから読み出し、読み出した更新履歴情報に前記オブジェクト管理情報を追加してから、オブジェクトストレージ内の前記処理対象ファイルに関する更新履歴情報についてのオブジェクトを、前記オブジェクト管理情報を追加した更新履歴情報についてのオブジェクトに書き換え、
前記読出要求制御部は、
前記読出対象範囲情報が与えられると、オブジェクトとして記憶されている前記処理対象ファイルに関する更新履歴情報を前記オブジェクトストレージから読み出し、与えられた読出対象範囲情報と読み出した更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する
ことを特徴とする付記1から3のいずれか一項に記載の情報処理装置。
(付記5) 前記処理対象ファイルに関する前記更新履歴情報に基づき、前記オブジェクトストレージに記憶されている、前記処理対象ファイル内の同範囲のデータを含む複数のオブジェクトの特定を試み、
前記処理対象ファイル内の同範囲のデータを含む複数のオブジェクトを特定できた場合に、当該複数のオブジェクトをマージしたオブジェクトを前記オブジェクトストレージに格納すると共に特定した各オブジェクトを前記オブジェクトストレージから消去し、
前記処理対象ファイルに関する前記更新履歴情報に対して、特定した各オブジェクトに関するオブジェクト管理情報を消去する処理と前記複数のオブジェクトをマージしたオブジェクトに関するオブジェクト管理情報を追加する処理とを行う
マージ処理部を、さらに、備える
ことを特徴とする付記1から4のいずれか一項に記載の情報処理装置。
前記処理対象ファイル内の同範囲のデータを含む複数のオブジェクトを特定できた場合に、当該複数のオブジェクトをマージしたオブジェクトを前記オブジェクトストレージに格納すると共に特定した各オブジェクトを前記オブジェクトストレージから消去し、
前記処理対象ファイルに関する前記更新履歴情報に対して、特定した各オブジェクトに関するオブジェクト管理情報を消去する処理と前記複数のオブジェクトをマージしたオブジェクトに関するオブジェクト管理情報を追加する処理とを行う
マージ処理部を、さらに、備える
ことを特徴とする付記1から4のいずれか一項に記載の情報処理装置。
(付記6) 前記マージ処理部は、
前記処理対象ファイルに関する前記更新履歴情報中のオブジェクト管理情報数が規定値以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
前記処理対象ファイルに関する前記更新履歴情報中のオブジェクト管理情報数が規定値以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
(付記7) 前記マージ処理部は、
更新データのオブジェクトの格納により不要となったデータの総サイズが、規定サイズ以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
更新データのオブジェクトの格納により不要となったデータの総サイズが、規定サイズ以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
(付記8) 前記マージ処理部は、
更新データのオブジェクトの格納により不要となったデータの総サイズの、格納済みのオブジェクトの総サイズとの割合が、規定割合以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
更新データのオブジェクトの格納により不要となったデータの総サイズの、格納済みのオブジェクトの総サイズとの割合が、規定割合以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
(付記9) 前記マージ処理部は、
同一範囲のデータを保持したオブジェクトの数が規定数以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
同一範囲のデータを保持したオブジェクトの数が規定数以上となったときに、機能する
ことを特徴とする付記5に記載の情報処理装置。
(付記10) コンピュータにより実行されるデータ記憶方法であって、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与
えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する
ことを特徴とするデータ記憶方法。
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与
えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する
ことを特徴とするデータ記憶方法。
(付記11) コンピュータに、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求応答処理と、
前記オブジェクトストレージから読み出すべき、前記処理対象ファイルの一部を成す読出対象データの前記処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と前記処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する読出要求応答処理と、
を実行させることを特徴とするプログラム。
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求応答処理と、
前記オブジェクトストレージから読み出すべき、前記処理対象ファイルの一部を成す読出対象データの前記処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と前記処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する読出要求応答処理と、
を実行させることを特徴とするプログラム。
Claims (7)
- オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求制御部と、
前記オブジェクトストレージから読み出すべき、前記処理対象ファイルの一部を成す読出対象データの前記処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、該読出対象範囲情報と前記処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する読出要求制御部と、
を備えることを特徴とする情報処理装置。 - 前記書込要求制御部は、
前記部分データを、前記オブジェクトストレージへの格納順を示す格納順情報をその名称に含む新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、前記名称情報を含まないオブジェクト管理情報を追加する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記書込要求制御部は、
前記部分データを、新たなオブジェクトとして前記オブジェクトストレージに格納した後に、前記オブジェクト管理情報を前記処理対象ファイルに関する前記更新履歴情報に追加する
ことを特徴とする請求項1又は2に記載の情報処理装置。 - 前記書込要求制御部は、
前記部分データが与えられると、オブジェクトとして記憶されている前記処理対象ファイルに関する更新履歴情報を前記オブジェクトストレージから読み出し、読み出した更新履歴情報に前記オブジェクト管理情報を追加してから、オブジェクトストレージ内の前記処理対象ファイルに関する更新履歴情報についてのオブジェクトを、前記オブジェクト管理情報を追加した更新履歴情報についてのオブジェクトに書き換え、
前記読出要求制御部は、
前記読出対象範囲情報が与えられると、オブジェクトとして記憶されている前記処理対象ファイルに関する更新履歴情報を前記オブジェクトストレージから読み出し、与えられた読出対象範囲情報と読み出した更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する
ことを特徴とする請求項1から3のいずれか一項に記載の情報処理装置。 - 前記処理対象ファイルに関する前記更新履歴情報に基づき、前記オブジェクトストレージに記憶されている、前記処理対象ファイル内の同範囲のデータを含む複数のオブジェクトの特定を試み、
前記処理対象ファイル内の同範囲のデータを含む複数のオブジェクトを特定できた場合に、当該複数のオブジェクトをマージしたオブジェクトを前記オブジェクトストレージに格納すると共に特定した各オブジェクトを前記オブジェクトストレージから消去し、
前記処理対象ファイルに関する前記更新履歴情報に対して、特定した各オブジェクトに関するオブジェクト管理情報を消去する処理と前記複数のオブジェクトをマージしたオブ
ジェクトに関するオブジェクト管理情報を追加する処理とを行う
マージ処理部を、さらに、備える
ことを特徴とする請求項1から3のいずれか一項に記載の情報処理装置。 - コンピュータにより実行されるデータ記憶方法であって、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する
ことを特徴とするデータ記憶方法。 - コンピュータに、
オブジェクトストレージに記憶すべき、処理対象ファイルの一部を成す部分データが与えられると、当該部分データを新たなオブジェクトとして前記オブジェクトストレージに格納すると共に、前記処理対象ファイルに関する更新履歴情報に、当該部分データの前記処理対象ファイル内での位置及びサイズを示すデータ範囲情報と、前記新たなオブジェクトのオブジェクト名を示す名称情報と、前記新たなオブジェクトの前記オブジェクトストレージへの格納順を示す格納順情報とを含むオブジェクト管理情報を追加する書込要求応答処理と、
前記オブジェクトストレージから読み出すべき、前記処理対象ファイルの一部を成す読出対象データの前記処理対象ファイルの位置及びサイズを示す読出対象範囲情報が与えられると、当該読出対象範囲情報と前記処理対象ファイルに関する更新履歴情報中の各オブジェクト管理情報とに基づき、前記オブジェクトストレージから前記読出対象データを読み出して出力する読出要求応答処理と、
を実行させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011277556A JP2013127748A (ja) | 2011-12-19 | 2011-12-19 | 情報処理装置、データ記憶方法及びプログラム |
US13/664,497 US20130159360A1 (en) | 2011-12-19 | 2012-10-31 | Information processing apparatus, data storage method and computer-readable recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011277556A JP2013127748A (ja) | 2011-12-19 | 2011-12-19 | 情報処理装置、データ記憶方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013127748A true JP2013127748A (ja) | 2013-06-27 |
Family
ID=48611280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011277556A Ceased JP2013127748A (ja) | 2011-12-19 | 2011-12-19 | 情報処理装置、データ記憶方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130159360A1 (ja) |
JP (1) | JP2013127748A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9773004B2 (en) * | 2014-10-24 | 2017-09-26 | Netapp, Inc. | Methods for replicating data and enabling instantaneous access to data and devices thereof |
US10824737B1 (en) * | 2017-02-22 | 2020-11-03 | Assa Abloy Ab | Protecting data from brute force attack |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009522659A (ja) * | 2005-12-29 | 2009-06-11 | アマゾン・テクノロジーズ・インコーポレーテッド | ウェブサービスクライアントインターフェースを有する分散型ストレージシステム |
WO2010079713A1 (ja) * | 2009-01-08 | 2010-07-15 | 日本電気株式会社 | 分散ファイル名前解決システム、分散ファイル名前解決方法、及び分散ファイル名前解決用プログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001101044A (ja) * | 1999-09-29 | 2001-04-13 | Toshiba Corp | トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム |
JP3992263B2 (ja) * | 2000-03-30 | 2007-10-17 | 株式会社日立製作所 | データベース−ファイル連携方法 |
KR100904758B1 (ko) * | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법 |
KR100929371B1 (ko) * | 2009-03-18 | 2009-12-02 | 한국과학기술원 | 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법 |
US9419801B2 (en) * | 2009-05-12 | 2016-08-16 | Infrascale Inc. | System and method for transmitting needed portions of a data file between networked computers |
JP5346253B2 (ja) * | 2009-08-24 | 2013-11-20 | 株式会社日立ソリューションズ | ファームウェア更新システム、及び情報機器、並びにプログラム |
WO2012050935A2 (en) * | 2010-09-28 | 2012-04-19 | Fusion-Io, Inc. | Apparatus, system, and method for data transformations within a data storage device |
TWI436212B (zh) * | 2011-07-21 | 2014-05-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US8661068B1 (en) * | 2011-09-29 | 2014-02-25 | Emc Corporation | Managing global metadata caches in data storage systems |
-
2011
- 2011-12-19 JP JP2011277556A patent/JP2013127748A/ja not_active Ceased
-
2012
- 2012-10-31 US US13/664,497 patent/US20130159360A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009522659A (ja) * | 2005-12-29 | 2009-06-11 | アマゾン・テクノロジーズ・インコーポレーテッド | ウェブサービスクライアントインターフェースを有する分散型ストレージシステム |
WO2010079713A1 (ja) * | 2009-01-08 | 2010-07-15 | 日本電気株式会社 | 分散ファイル名前解決システム、分散ファイル名前解決方法、及び分散ファイル名前解決用プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20130159360A1 (en) | 2013-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896102B2 (en) | Implementing secure communication in a distributed computing system | |
JP6373328B2 (ja) | メモリ管理での重複排除のための参照ブロックの参照セットへの集約 | |
US10417186B2 (en) | File migration method and apparatus, and storage device | |
US8112463B2 (en) | File management method and storage system | |
CN109977077B (zh) | 模型文件存储方法、装置、可读存储介质和计算机设备 | |
US20190073372A1 (en) | Creating Snapshots Of A Storage Volume In A Distributed Storage System | |
JP5895099B2 (ja) | 移行先ファイルサーバ及びファイルシステム移行方法 | |
CN111492354A (zh) | 不可变存储装置中的数据库元数据 | |
US10891074B2 (en) | Key-value storage device supporting snapshot function and operating method thereof | |
CN104239575A (zh) | 一种虚拟机镜像文件存储、分发方法及装置 | |
JP2009205333A (ja) | 計算機システム、ストレージ装置及びデータ管理方法 | |
JP5650982B2 (ja) | ファイルの重複を排除する装置及び方法 | |
JP2008217209A (ja) | 差分スナップショット管理方法、計算機システム及びnas計算機 | |
JP2016513306A (ja) | データ格納方法、データストレージ装置、及びストレージデバイス | |
WO2016143095A1 (ja) | 計算機システム及びトランザクション処理の管理方法 | |
JP2015510174A (ja) | ロケーション非依存のファイル | |
US20180107404A1 (en) | Garbage collection system and process | |
JP7376488B2 (ja) | スナップショットのコピーオンライトのデータ移動を回避するインフラストラクチャとしての重複除外 | |
JP4755244B2 (ja) | 情報生成方法、情報生成プログラム及び情報生成装置 | |
JP6951846B2 (ja) | 計算機システム及びタスクの割当方法 | |
JP2012238061A (ja) | トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム | |
JP6406283B2 (ja) | ストレージ装置およびストレージ方法 | |
JP6461101B2 (ja) | データベースシステム、情報処理装置、方法およびプログラム | |
JP2013127748A (ja) | 情報処理装置、データ記憶方法及びプログラム | |
US11256434B2 (en) | Data de-duplication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140805 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150521 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150609 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20151027 |