JP2009134346A - データ格納システムおよびデータ格納プログラム - Google Patents

データ格納システムおよびデータ格納プログラム Download PDF

Info

Publication number
JP2009134346A
JP2009134346A JP2007307639A JP2007307639A JP2009134346A JP 2009134346 A JP2009134346 A JP 2009134346A JP 2007307639 A JP2007307639 A JP 2007307639A JP 2007307639 A JP2007307639 A JP 2007307639A JP 2009134346 A JP2009134346 A JP 2009134346A
Authority
JP
Japan
Prior art keywords
block
aggregate
atomic
data
block aggregate
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.)
Granted
Application number
JP2007307639A
Other languages
English (en)
Other versions
JP4210318B1 (ja
Inventor
Shuji Yatsuki
秀司 屋附
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyoto Software Res Inc
Original Assignee
Kyoto Software Res Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to JP2007307639A priority Critical patent/JP4210318B1/ja
Application filed by Kyoto Software Res Inc filed Critical Kyoto Software Res Inc
Priority to KR1020097011526A priority patent/KR100921876B1/ko
Priority to CN201410232702.2A priority patent/CN104063185B/zh
Priority to PCT/JP2008/070038 priority patent/WO2009069436A1/ja
Priority to CN200880118624.6A priority patent/CN101981547B/zh
Priority to US12/514,289 priority patent/US8055853B2/en
Priority to EP08854486A priority patent/EP2216721A4/en
Application granted granted Critical
Publication of JP4210318B1 publication Critical patent/JP4210318B1/ja
Publication of JP2009134346A publication Critical patent/JP2009134346A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】アトミックトランザクションが可能で、且つ、各ユーザが他人のデータ処理の影響を受けない不揮発性記録媒体用のデータ格納システムを提供する。
【解決手段】アトミック性のあるデータはハードディスク上のブロックに格納される。ブロックはハードディスク上のみに存在する確定ブロック集合体P1と、所定のタイミングで確定ブロック集合体に変換される次世代確定ブロック集合体C1と、確定ブロック集合体C1に基づいて、ユーザごとに作成されるアトミックブロック集合体S3とを含む。ユーザAは、S3に対して所望のデータの変更等を行い、データ処理を終了するときには、データを格納するブロックの集合体をアトミックブロック集合体S4から確定ブロック集合体C2と一体化させて確定ブロック集合体P3としてハードディスク上に格納する。
【選択図】図17

Description

この発明は、アトミックトランザクション(部分的にコミットできないトランザクションであり、完全に実行されるか、全く実行されないかのどちらかしかない)の可能なデータ格納システムおよびデータ格納プログラムに関する。
従来のアトミックトランザクションの可能なデータ格納システムが、たとえば、特開平2006−106868号公報(特許文献1)に開示されている。特許文献1は、ファイル管理システムとして、ログ方式とサイドファイル方式とがある点、および、サイドファイル方式のシャドウページ方式の欠点をあげるとともに、それを解決するファイルシステムが開示されている。
特開平2006−106868号公報(要約)
従来のアトミック性を有するデータ格納システムは上記のように構成されていた。ログ方式のファイルシステムが有利であると記載されているが、ログ方式のファイルシステムはコストが高いという問題があった。また、従来のファイルシステムにおいては、複数のユーザがアクセスするハードディスクのような不揮発性記録媒体において、ユーザごとに別々に使用されるファイルについて、あるユーザがあるファイルを確定しようとすると、他のユーザが処理している他のファイルも同時に確定される場合があったため、たとえば、電源断時に、個々のユーザの意図しないデータが格納され、ユーザが他のユーザの処理の影響を受けるという問題があった。
この発明は、上記のような問題を解消するためになされたもので、アトミックトランザクションが可能で、且つ、各ユーザが他人のデータ処理の影響を受けないデータ格納システムおよびデータ格納プログラムを提供することを目的とする。
この発明に係るデータ格納システムは、複数のユーザがアクセス可能なデータを有する不揮発性記録媒体のデータ格納システムであって、データは所定のブロック内に保持され、ブロックは不揮発性記録媒体上のみに存在し、アトミック性を有する確定ブロック集合体と、不揮発性記録媒体とそれ以外とにまたがって存在することができ、所定のタイミングで確定ブロック集合体に変換される次世代確定ブロック集合体と、不揮発性記録媒体とそれ以外とにまたがって存在することができ、次世代確定ブロック集合体に基づいて、ユーザごとに作成されるアトミックブロック集合体とに変換可能であり、確定ブロック集合体から次世代確定ブロック集合体を形成する第1ブロック形成手段と、次世代確定ブロック集合体からアトミックブロック集合体を形成する第2ブロック形成手段と、アトミックブロック集合体に対してユーザが期待するアトミック性を保持したブロックの操作を受付けるブロック操作受付け手段と、操作受付け手段がユーザからのブロック操作を受付けたとき、アトミックブロック集合体を次世代確定ブロック集合体を経由して確定ブロック集合体にアトミック性を保持した状態で遷移させる遷移手段とを含む。
なお、ここで、不揮発性記録媒体上以外の場所とは、RAM上、CPUの一部に設けられたキャッシュ等を含む。
好ましくは、遷移手段は、アトミック性を有するデータを格納した確定ブロック集合体の位置を特定するアトミックブロック位置特定手段を含む。
さらに好ましくは、アトミックブロック位置特定手段は、それぞれが、アトミック性を有するデータを保持したブロックを特定するブロック番号と、インクリメントカウンタとを有する、一対のスーパーブロックを含み、アトミック性を有するデータが新たなブロックに書き込まれるごとに、一対のブロック番号のうちの一方のブロック番号およびインクリメントカウンタの値が順に更新される。
それぞれのスーパーブロックは、一対の、アトミック性を有するデータを保持したブロックを特定するブロック番号と、インクリメントカウンタとを有し、一対の、アトミック性を有するデータを保持したブロックを特定するブロック番号と、インクリメントカウンタには、同一のデータが格納されるのが好ましい。
次世代確定ブロック集合体またはアトミックブロック集合体は、確定ブロック集合体の中から必要なブロックをコピーして作成されるのが好ましい。
ブロック集合体のそれぞれのブロックは、ブロック番号管理テーブルを含み、ブロック番号管理テーブルは、データが格納される物理的なブロック番号とブロックIDとの関係を格納してもよい。
また、確定ブロック集合体、次世代確定ブロック集合体およびアトミックブロック集合体はユーザごとに変更の可能なデータを格納するユーザデータブロックと、ユーザデータブロックを管理するブロック番号管理テーブルとを含んでもよい。
なお、次世代確定ブロック集合体およびアトミックブロック集合体は不揮発性記録媒体上のブロックのみを使用してもよい。
この発明の他の局面においては、データ格納プログラムは、コンピュータを、複数のユーザがアクセス可能なデータを有する不揮発性記録媒体のデータ格納システムとして作動させる。データは所定のブロック内に保持され、ブロックは不揮発性記録媒体上のみに存在し、アトミック性を有する確定ブロック集合体と、不揮発性記録媒体とそれ以外とにまたがって存在し、所定のタイミングで確定ブロック集合体に変換される次世代確定ブロック集合体と、不揮発性記録媒体とそれ以外とにまたがって存在し、次世代確定ブロック集合体に基づいて、ユーザごとに作成されるアトミックブロック集合体とに変換可能であり、プログラムは、コンピュータを、確定ブロック集合体から次世代確定ブロック集合体を形成する第1ブロック形成手段と、次世代確定ブロック集合体からアトミックブロック集合体を形成する第2ブロック形成手段と、アトミックブロック集合体に対してユーザが期待するアトミック性を保持したブロックの操作を受付けるブロック操作受付け手段と、操作受付け手段がユーザからのブロック操作を受付けたとき、アトミックブロック集合体を次世代確定ブロック集合体を経由して確定ブロック集合体にアトミック性を保持した状態で遷移させる遷移手段として作動させる。
アトミックブロック集合体に対してユーザが期待するアトミック性を保持したブロックの操作を受付けると、アトミックブロック集合体は確定ブロック集合体にアトミック性を保持した状態で遷移されて確定される。
その結果、アトミックトランザクションが可能で、且つ、各ユーザが他人のデータ処理の影響を受けない不揮発性記録媒体用のデータ格納システムを提供できる。
以下、この発明の実施の形態を、図面を参照して説明する。図1はこの発明に係るデータ格納システムが適用されるコンピュータシステムの構成を示すブロック図である。図1を参照して、コンピュータシステム10は、システム全体を制御するCPU(Central Processing Unit)11と、CPU11にバス18を介して接続されたRAM(Random Access Memory)12、ディスプレイ13、キーボード14、ハードディスク15、通信装置16を含む。複数のユーザがそれぞれのコンピュータから通信装置16を介してこのコンピュータシステムのハードディスク15にアクセスするものとする。
図2はこの実施の形態におけるデータ格納システムの位置づけを示す図である。図2を参照して、データ格納システムは、ユーザがハードディスク15を用いてデータを格納する場合に使用される。ハードディスク15は、所定のバイト単位で読み書き可能(上書き可能)である。このシステムでは、ハードディスク15の有する複数のデータ格納ブロックに、ユーザが所望のデータを格納するものとして説明する。
また、このデータ格納システムにおいては、データはアトミック性を有しており、個々のユーザがファイルを閉じるときには、ユーザごとにファイルはアトミック性を有するようにして閉じられる。なお、あるブロックのデータをあるユーザが処理中は、他のユーザはそのブロックのデータを処理できない。
なお、ここで、ハードディスク15は、読み込み中の不意の電源断においては、全てのブロックの状態に何も影響を与えず、書き込み中の不意の電源断においては、書き込み中であった単一のブロックのみが不定の状態となり、それ以外のブロックには影響を与えないことが保証される複数のブロックを有するものとする。
図3は、この実施の形態におけるデータ格納システムにおけるデータを格納するブロックの集合体を説明するための図である。この実施の形態においては、それぞれのブロック集合体は、確定ブロック集合体、次世代確定ブロック集合体、および、アトミックブロック集合体の3つの形態を有する。確定ブロック集合体とは、ハードディスク15上のブロックの一部を使用し、ユーザにとって意味のあるデータを格納した複数のユーザデータブロックとユーザデータブロックを管理する一つ以上の管理ブロックとから構成される一貫性の取れたブロックの集合体である。
ここで、ユーザデータブロックと管理ブロックについては後述するが、図18で説明する、物理ブロック番号PB2に格納されたブロック番号管理テーブルが、管理ブロックの一例であり、ユーザのデータが格納された物理ブロック番号PB3等がユーザデータブロックの一例である。
次世代確定ブロック集合体はハードディスク15とたとえば、RAM12にまたがって存在し、確定ブロック集合体に移る準備ができている状態をいう。これも常に一つだけ存在する。このブロック集合体は、確定ブロック集合体に含まれる全てのブロックを決して上書き修正せず、修正する必要のあるユーザデータブロックおよび管理ブロックのみを、ハードディスク15上の確定ブロック集合体に含まれないブロックのみを使用して修正することで一貫性の取れる状態を作ることが可能である。
アトミックブロック集合体はハードディスク15とRAM12とにまたがって存在する。トランザクションに対応し、トランザクション開始時に次世代確定ブロック集合体から分岐する。トランザクション終了時に次世代確定ブロック集合体に変更部分をマージ(合併)し、消滅する。複数存在してもよいし、存在しなくてもよい。
すなわち、このブロックは、ユーザがアトミックな処理を期待する1つ以上のユーザデータブロックに対する修正を、確定集合体かつ次世代確定ブロック集合体に含まれない、ハードディスク15上のブロックを使用して修正し、アトミックな処理が終わった時点で、その修正した全てのユーザデータブロックを、次世代確定ブロック集合体の管理ブロックの修正のみで、次世代確定ブロック集合体の構成ブロックへ併合することが可能である。
次に、データ格納システムにおけるCPU11の動作について説明する。図4〜図15はこのデータ格納システムを作動させるCPU11が行う動作を示すフローチャートである。
図4は、この実施の形態におけるデータ格納システムにおける通常時の処理を示すフローチャートである。図4を参照して、通常時は、電源がオンされると、システムが初期化され(ステップS11、以下、ステップを省略する)、ユーザの操作を受付ける(S12)。このユーザの処理は、キーボード14等で行われる。ユーザの操作は、アトミック操作開始宣言およびアトミックID取得(S14)、アトミック操作終了宣言(S15)、新ブロックID取得(S16)、ブロックデータ読み込み(S17)、ブロックデータ書き込み(S18)、ブロック開放(S19)、または、同期(sync、S20)のいずれかを含む。これらの処理を終了すると、システム終了処理を行って(S21)、電源がオフされる。
ここで、アトミック操作開始宣言とは、ユーザがアトミック性を保持しながらデータ処理を開始することをいう。アトミックIDとは、ユーザを識別するために使用されるものである。すなわち、この実施の形態においては、アトミックIDとブロックIDとを用いてデータの格納されたブロックを特定する。なお、ブロックIDというのは、ハードディスク15の物理ブロック番号を間接的に指示するものである。
また、この実施の形態においては、同期処理によって、ユーザの意思による任意のタイミングで、作成されたデータ等が、ハードディスク15上に格納される。
なお、ここで示したユーザの複数の操作中の任意のタイミングで電源断が生じうる。次に、図4のS11で示したシステム初期化処理について説明する。図5はシステム初期化処理の内容を示すフローチャートである。図5を参照して、システム初期化処理においては、まず、スーパーブロック判定を行い(S111)、ついで、次世代確定ブロック集合体オープン処理を行う(S112)。
ここで、スーパーブロックについて説明する。スーパーブロックとは、アトミック性を有するデータを格納した最新のブロックを特定するために使用される一対のブロックである。図16にスーパーブロックの一例を示す。スーパーブロックも通常のデータと同様に、ハードディスク15の所定のブロックに格納されている。ここでは、理解の容易のために、ハードディスク15の物理ブロック番号の0と1に一対のスーパーブロック21,22が格納されている例について説明する。
スーパーブロック21,22はハードディスク15上の物理ブロック番号0,1を使用する。図16に示すようにスーパーブロック21はそれぞれ内部にインクリメントカウンタとブロック番号管理テーブルが置かれるブロックの物理ブロック番号との組21a,21bを2組有している。スーパーブロック22も同様である。データがアトミック性を有して閉じられたときに、CPU11は、スーパーブロック21と22を交互にインクリメントカウンタを増加させながらアトミック性を有するデータを格納したブロック書き込む。このとき、同一のデータを21a,21b、および、22a,22bに順に書き込む。したがって、書き込み中に電源断が生じたときには、スーパーブロック21aと21b、または、22aと22bとに書き込まれたデータが異なることになる。したがって、スーパーブロック21a,21b、または、22a,22bのデータを見れば、どちらのスーパーブロックに書かれたブロック番号管理テーブルの物理ブロック番号が最新のアトミック性のあるデータを管理する物理ブロック番号であるかを知ることができる。
この判定処理について説明する。図6はスーパーブロック判定処理内容を示すフローチャートである。図6を参照して、スーパーブロック判定処理(S111)は、第1、第2のスーパーブロック読み込み(S1111)、誤り判定を行う(S1112)。第1のスーパーブロックに誤りがあれば、第2のスーパーブロック内にあるブロック番号の物理ブロック番号を確定ブロック集合体のものとみなす(S1113)。第2のスーパーブロックに誤りがあれば、第1のスーパーブロック内にある物理ブロック番号を確定ブロック集合体のものとみなす(S1115)。ともに誤りがなければ、インクリメンタルカウンタの大きい方のスーパーブロック内にある物理ブロック番号を確定ブロック集合体のものとみなす(S1114)。したがって、スーパーブロックは、ブロック位置特定手段として作動する。
なお、ここで、両スーパーブロックに誤りがあるのは、ハードディスク15が未フォーマット時か、物理的障害発生時のみである。
次に、図5のS112で示した次世代確定ブロック集合体オープン処理について説明する。図7は次世代確定ブロック集合体オープン処理を示すフローチャートである。図7を参照して、次世代確定ブロック集合体オープン処理(S112)においては、全てのブロック集合体で使用していない物理ブロック番号を探索し(S1121)、取得した空き物理ブロック番号のブロックに、確定ブロック集合体のブロック番号管理テーブルの内容をコピーする(S1122)。コピー先のブロックの物理ブロック番号を、次世代確定ブロック集合体のブロック番号管理テーブル位置として、RAM上に保持する(S1123)。
したがって、CPU11は、確定ブロック集合体から派生し、次世代確定ブロック集合体を形成する第1ブロック形成手段として機能する。
なお、空きブロック探索のコストを下げるために、確定ブロック集合体で使用中のブロック番号を管理するビットマップが、ハードディスク15上に保持される構成が望ましい。
次に、図4のS21で示したシステム終了処理について説明する。図8はシステム終了処理を示すフローチャートである。図8を参照して、システム終了処理は同期処理(「sync」、S211)を含む。
次に、図4のS14で示したアトミック操作開始宣言およびアトミックID取得システムについて説明する。図9はアトミック操作開始宣言およびアトミックID取得処理を示すフローチャートである。図9を参照して、アトミック操作開始宣言およびアトミックID取得処理は、全てのブロック集合体で使用していない物理ブロック番号を探索する(S141)。取得した空き物理ブロック番号のブロックに、次世代確定ブロック集合体のブロック番号管理テーブルの内容をコピーする(S142)。コピー先のブロックの物理ブロック番号を、そのアトミックブロック集合体のブロック番号管理テーブル位置として、アトミックIDとともに、RAM上に保持する(S143)。アトミックIDをユーザに戻す(S144)。したがって、CPU11は、次世代確定ブロック集合体から派生し、アトミックブロック集合体を形成する、第2ブロック形成手段として機能する。
次に、図4のS15で示したアトミック操作終了宣言について説明する。図10はアトミック操作終了宣言処理を示すフローチャートである。図10を参照して、アトミック操作終了宣言処理は、ユーザから指定されるアトミックIDに対応するアトミックブロック集合体に対して行われた全てのブロック操作(開放、割り当て)を、次世代確定ブロック集合体のブロック番号管理テーブルに反映する(S151)。RAM上に保持している、アトミックIDとブロック管理テーブルの物理ブロック番号を破棄する(S152)。したがって、CPU11は、アトミックブロック集合体に対してユーザが期待するアトミック性を保持したブロックの操作を受付けるブロック操作受付け手段として機能する。
次に、図4のS16で示した新ブロックID取得処理について説明する。図11は新ブロックID取得処理内容を示すフローチャートである。図11を参照して、新ブロックID取得処理においては、全てのブロック集合体で、未使用のブロックIDを探索し(S161)、全てのブロック集合体で、未使用の物理ブロック番号を探索し(S162)、ブロックIDと物理ブロック番号のマッピング情報を、ユーザから指定されるアトミックIDに対応するアトミックブロック集合体のブロック番号管理テーブルに記憶し(S163)、ユーザにブロックIDを返す(S164)。
次に、図4のS17で示したブロックデータ読み込み処理について説明する。図12はブロックデータ読み込み処理内容を示すフローチャートである。図12を参照して、ブロックデータ読み込み処理においては、ユーザから指定されるアトミックIDに対応するアトミックブロック集合体のブロック番号管理テーブルを読み込み、指定されるブロックIDに対応する物理ブロック番号を求める(S171)。物理ブロック番号のブロックデータを読み込み、ユーザに返す(S172)。
次に、図4のS18で示したブロックデータ書込み処理について説明する。図13はブロックデータ書込み処理内容を示すフローチャートである。図13を参照して、ブロックデータ書き込み処理においては、ユーザから指定されるアトミックIDに対応するアトミックブロック集合体において、指定されるブロックIDのブロックが、対象アトミックブロック集合体においてコピー済みか検査する(S181,S182)。対象アトミックブロック集合体のブロック番号管理テーブルを見て、指定されるブロックIDの物理ブロック番号を求める(S183)。ついで、ユーザから渡されるデータを、求めた物理ブロック番号のブロックに書き込む(186)。
S182でコピー済みでなければ、全ブロック集合体において、未使用の物理ブロック番号を探索する(S184)。対象アトミックブロック集合体のブロック番号管理テーブルに、指定されるブロックIDと探索した物理ブロック番号のマッピング情報を登録する(S185)。その後、S186へ移行する。
次に、図4のS19で示したブロック開放処理について説明する。図14はブロック開放処理内容を示すフローチャートである。図14を参照して、ブロック開放処理においては、指定されるアトミックIDに対応するアトミックブロック集合体のブロック番号管理テーブルから、指定されるブロックIDに対応するエントリを削除する(S191)。
次に、図4のS20で示した同期処理について説明する。図15は同期処理を示すフローチャートである。図15を参照して、ユーザがキーボード14等を介して自分のデータ処理の終了を指示すると、次世代確定ブロック集合体のブロック番号管理テーブルを見て、次世代確定ブロック集合体に含まれる全ての物理ブロック番号(管理用ブロックも含む)に対して、RAM上のキャッシュ、ハードディスク15が持つキャッシュなど、全てのキャッシュ上のデータをハードディスク15上に書き出す(S201)。
この「同期処理」としては、ユーザが、「アトミック操作終了宣言」指示をした後、明示的に、「同期処理」を行う場合と、CPU11が自動で定期的に「同期処理」を行う場合とがある。前者の方法であれば、ユーザは、確実に自分の処理を確定ブロック集合体に反映されたことが保証できる。後者は、ユーザが「アトミック操作終了宣言」後に「同期処理」を行わなかったため、次世代確定ブロック集合体に留まっているユーザブロックを、確定ブロック集合体に確定させる。後者の処理であればCPU11が定期的に行うため、ユーザの介入は不要になり、全体としての処理の効率化が図れる。ここでは、ユーザに選択によっていずれかが実行されるものとする。
現在、確定ブロック用として有効でないほうのスーパーブロックに対して、有効なスーパーブロックのインクリメントカウンタ値に1加算した内容と、次世代確定ブロック集合体のブロック番号管理テーブルの物理ブロック番号を書き込む(S202)。次いで、図7で示した次世代確定ブロック集合体オープン処理を行う。したがって、CPU11は、操作受付け手段がユーザからのブロック操作を受付けたとき、前記アトミックブロック集合体を前記確定ブロック集合体にアトミック性を保持した状態で遷移させる遷移手段として機能する。
次に、具体的な、ブロック集合体の遷移について説明する。図17はブロック集合体の遷移状態を示す図である。図17において、点線より下がハードディスク15上に存在するブロック集合体であり、上がハードディスク15以外のRAM上等の場所に存在するブロック集合体である。上記したように、確定ブロック集合体はハードディスク15上にのみ存在する。システム初期化処理中のスーパーブロック判定にて、アトミック性を有する確定ブロック集合体P1が、ハードディスク15上で特定される。システム初期化処理中の次世代確定ブロック集合体オープン処理にて、確定ブロック集合体P1から次世代確定ブロック集合体C1が作成される。
ここで、ユーザAがアトミック操作開始宣言を行うと、アトミックブロック集合体S1が作成され、新ブロックID取得やブロックデータの読み込み、書き込み、ブロックの開放などの処理により、アトミックブロック集合体S2が作成される。データ処理を終了し、ユーザがアトミック操作終了宣言を行うことで、次世代確定ブロック集合体C2が生成され、ユーザが明示的に指示する同期処理(sync)、または、CPU11によって一定時間ごとに実行される同期処理(sync)によって、次世代確定ブロック集合体C2は確定ブロックP2に移行されてハードディスク15上に格納される。
次に、複数のユーザAとBとが、データ処理を行う場合における、ブロック集合体の遷移と、その場合の具体的なブロックIDおよびアトミックIDとの関係について、図17から図23を参照して説明する。ここで、アトミックIDとは、後に説明する図19における、ユーザAのアトミックブロック集合体やユーザBのアトミックブロック集合体をユーザが識別するための識別番号である。
図17における確定ブロック集合体P2のデータをユーザAとユーザBとがアトミック処理するものとする。図18はシステム初期化直後のスーパーブロックと、確定ブロック集合体、および次世代確定ブロック集合体の詳細を示す図である。ここでは、物理ブロック番号をPB0、PB1,…、ブロックIDをID0,ID1,…のように示している。ここで、スーパーブロックPB0とPB1とは図18に示すような値を有しているものとする。CPU11はスーパーブロックPB0とPB1とのインクリメントカウンタの値を参照して、最新の確定ブロック集合体を有するスーパーブロックはPB0と判断できるため、このブロック番号管理テーブルPB2を使用する。ここで、PB2の確定ブロック集合体の管理テーブルは51に示す内容を有している。テーブル51はブロックID0にPB3、ID1にPB4、ID2にPB5を物理ブロック番号として格納している。図18にはそれぞれの物理ブロックPB3からPB5がどのユーザのデータブロックであるか、およびブロックIDも示している。
この状態からCPU11が次世代確定ブロック集合体C2を作成するときは、そのために、それまで使用されていない物理ブロックである物理ブロックPB6を用いて確定ブロック集合体のブロック番号管理テーブル51をコピーした次世代確定ブロック集合体ブロック番号管理テーブル52を作成する。
次に、ユーザAは自分のデータの変更を指示すると、アトミックブロック集合体S3が作成される。このとき、図19に示すように、次世代確定ブロック集合体ブロック番号管理テーブル52をコピーしたユーザAに対するアトミックブロック集合体ブロック番号管理テーブル53が作成される。ここでも、このアトミックブロック集合体管理テーブル53は、これまでに使用されていない物理ブロックPB7に作成される。
一方、ユーザBも自分のデータの変更を指示すると、アトミックブロック集合体S5が作成される。このとき、図19に示すように、次世代確定ブロック集合体ブロック番号管理テーブル52をコピーしたユーザBに対するアトミックブロック集合体ブロック番号管理テーブル54が作成される。ここでも、このアトミックブロック集合体管理テーブル54も、これまでに使用されていない物理ブロックPB8に作成される。
ユーザAによるブロックID0および1の修正直後の次世代確定ブロック集合体とアトミックブロック集合体との詳細を図20に示す。ユーザAは、物理ブロックPB9およびPB10にPB3およびPB4のデータをコピーして修正する。その結果、ユーザAに対するアトミックブロック集合体管理テーブル53は、アトミックブロック集合体管理テーブル55に変更されて物理ブロックPB7に格納される。
ユーザBによるブロックID2の修正直後の次世代確定ブロック集合体とアトミックブロック集合体との詳細を図21に示す。ユーザBは、物理ブロックPB11にPB5のデータをコピーして修正する。その結果、ユーザBに対するアトミックブロック集合体管理テーブル54は、アトミックブロック集合体管理テーブル56に変更されて物理ブロックPB8に格納される。
以上のようなデータ処理を行った後で、ユーザAがアトミック操作終了宣言すると、次世代確定ブロック集合体C3が作成される。このユーザAによるアトミック操作終了宣言直後の次世代確定ブロック集合体の詳細を図22に示す。次世代確定ブロック集合体C3は図において、楕円形で囲んだ、次世代確定ブロック集合体ブロック番号管理テーブルと、ユーザAのデータブロック1,2と、ユーザBのデータブロック1とを含み、物理ブロックPB6に格納された次世代確定ブロック集合体ブロック番号管理テーブルは55のようになる。
ここで、同期処理が行われると、確定ブロック集合体P3が作成される。図23は同期処理におけるスーパーブロックと確定ブロック集合体との詳細を示す図である。図23に示すように、次世代確定ブロック集合体はそのまま確定ブロック集合体に移行されるとともに、スーパーブロック2のインクリメントカウンタがスーパーブロック1のインクリメントカウンタより1アップされて11とされ、ここで確定された確定ブロック集合体ブロック番号管理テーブルを格納した物理ブロック番号であるPB6がブロック番号管理テーブルの物理ブロック番号として格納される。
このように、この実施の形態においては、データを変更等するときは、常に、それまでに使用されていないブロック番号に、新たなデータをコピーしながら行い、アトミック処理の終了時にその位置をブロック番号管理テーブルに格納するようにしたため、そのブロック番号を用いてハードディスク上に確定ブロック集合体のデータを格納できる。また、どのようなタイミングで、電源断が生じても、必ず、元のデータは確実に保護される。
なお、それぞれのブロック集合体において変更のないブロックは、ブロック集合体間で共有して所有されるものとする。
次に、ユーザの処理中に電源断が生じたときのハードディスク15の状態について説明する。図17に示したブロック集合体の遷移を示す図において、時刻t1,t2,t3,t4のそれぞれにおいて電源断が生じたときの状態について説明する。
(1)時刻t1において、電源断が生じたとき
図17を参照して、データ格納システムが初期化されて次世代確定ブロック集合体C1が形成され、ユーザがアトミックブロック集合体S1を用いて、データ処理を開始した段階で電源断が生じた場合である。
この場合、ハードディスク15上に確定しているのは確定ブロック集合体P1のみであり、それ以降に確定ブロック集合体に書き込まれたデータは無い。したがって、スーパーブロックのインクリメントカウンタやブロック番号は書き換えられていない。
したがって、この状態から復帰したときは、同じ確定ブロック集合体P1で確定されているスーパーブロックのデータが使用される。
(2)時刻t2において、電源断が生じたとき
ユーザAがアトミックブロック集合体S3を用いてデータを記録し、別のユーザBがアトミックブロック集合体S5を用いてデータを記録している最中に電源断が生じた場合である。この場合は、ハードディスク15上にはCPU11が自動的に同期処理を行った確定ブロック集合体P2が記録されている。
したがって、この状態から復帰したときは、確定ブロック集合体P2で確定されているスーパーブロックのデータが使用される。
(3)時刻t3において、電源断が生じたとき
ユーザAはアトミックブロック集合体S4にて、アトミックなデータ処理を終え、アトミック操作終了宣言を行うことで、処理したブロックが次世代確定ブロック集合体C3として併合され、ユーザが明示的、もしくはシステムが自動的に行う同期処理により、C3は、確定ブロック集合体P3に遷移し、ユーザBは、アトミックブロック集合体S6に対する処理を行っている最中に、電源断が生じた場合である。この場合はユーザAのデータは、同期処理により確定ブロック集合体P3としてハードディスク上に確定している。しかしながら、ユーザBはこのような処理をしていないので、アトミックブロック集合体S6は消失する。
この状態から復帰したときは、確定ブロック集合体P3で確定されているスーパーブロックのデータが使用される。
(4)時刻t4において、電源断が生じたとき
ユーザBが処理を終了した段階で電源断が生じた場合である。この状態から復帰したときは、確定ブロック集合体P3で確定されているスーパーブロックのデータが使用される。
以上のように、この実施の形態においては、複数のユーザがそれぞれのデータの処理中に突然の電源断が生じても、次回の電源投入時は、正常な状態としてシステムの初期化処理を行うことができ、ユーザが、自分の所望のタイミングで自分のデータを確定ブロック集合体としてハードディスク15上に確定できるため、並行して処理を行う複数のユーザが期待する、処理のアトミック性を保持できるとともに、電源断時に他人の影響を受けることは無い。
また、データの確定を急がないユーザは、明示的に同期処理は行わず、システムが定期的に行う同期処理に任せることによって、システム全体のパフォーマンスを上げることが可能になる。
なお、上記実施の形態においては、不揮発性記録媒体として、ハードディスクを用いた場合について説明したが、これに限らず、フラッシュメモリを含む、任意の不揮発性記録媒体に適用できる。
また、上記実施の形態においては、アトミック性を有するデータを構成するブロックを検出するために、一対のスーパーブロックを用いた場合について説明したが、これに限らず、ハードディスクのブロックに書き込まれたこと、ブロックが書き終わったことを保証できる仕組み(たとえば、全データのチェックサムをとる)であれば任意の方法を用いることができる。
また、上記実施の形態においては、複数のユーザがアクセスするデータ格納システムについて説明したが、ここでいう複数のユーザとは、ハードディスク上に格納されている複数のプログラムがRAM上に読み出されてCPUで並列に処理される場合における、複数のプログラムも含むものとする。
また、上記実施の形態においては、各ブロック集合体に含まれるブロック番号管理テーブルは、単一のブロック内に収まるものとして説明したが、単一のブロックに収まらない場合は、複数のブロックにてブロック番号管理テーブルを構成し、それを木構造にて管理することで、容易に拡張することが出来る。
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示された実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
この発明に係るデータ格納システムが適用されるコンピュータシステムの構成を示すブロック図である。 データ格納システムの位置づけを示す図である。 データ格納システムにおけるデータを格納するブロックの集合体の存在位置を示す図である。 データ格納システムにおける通常時の処理を示すフローチャートである。 システム初期化処理の内容を示すフローチャートである。 スーパーブロック判定処理内容を示すフローチャートである。 次世代確定ブロック集合体オープン処理を示すフローチャートである。システム終了処理を示すフローチャートである。 システム終了処理を示すフローチャートである。 アトミック操作開始宣言およびアトミックID取得システムを示すフローチャートである。 アトミック操作終了宣言処理を示すフローチャートである。 新ブロックID取得処理内容を示すフローチャートである。 ブロックデータ読み込み処理内容を示すフローチャートである。 ブロックデータ書込み処理内容を示すフローチャートである。 ブロック開放処理内容を示すフローチャートである。 同期処理内容を示すフローチャートである。 スーパーブロックの内容とその位置を示す図である。 ブロック集合体の遷移状態を示す図である。 ブロック集合体の遷移における、具体的な物理ブロック番号等の変遷例を示す図である。 ブロック集合体の遷移における、具体的な物理ブロック番号等の変遷例を示す図である。 ブロック集合体の遷移における、具体的な物理ブロック番号等の変遷例を示す図である。 ブロック集合体の遷移における、具体的な物理ブロック番号等の変遷例を示す図である。 ブロック集合体の遷移における、具体的な物理ブロック番号等の変遷例を示す図である。 ブロック集合体の遷移における、具体的な物理ブロック番号等の変遷例を示す図である。
符号の説明
10 コンピュータシステム、11 CPU、12 RAM、13 ディスプレイ、14 キーボード、15 ハードディスク、16 通信装置、18 バス、21,22 スーパーブロック。

Claims (9)

  1. 複数のユーザがアクセス可能なデータを有する不揮発性記録媒体のデータ格納システムであって、
    前記データは所定のブロック内に保持され、
    前記ブロックは前記不揮発性記録媒体上のみに存在し、アトミック性を有する確定ブロック集合体と、
    前記不揮発性記録媒体とそれ以外とにまたがって存在することが可能で、所定のタイミングで前記確定ブロック集合体に変換される次世代確定ブロック集合体と、
    前記不揮発性記録媒体とそれ以外とにまたがって存在することが可能で、前記次世代確定ブロック集合体に基づいて、ユーザごとに作成されるアトミックブロック集合体とに変換可能であり、
    前記確定ブロック集合体から前記次世代確定ブロック集合体を形成する第1ブロック形成手段と、
    前記次世代確定ブロック集合体から前記アトミックブロック集合体を形成する第2ブロック形成手段と、
    前記アトミックブロック集合体に対してユーザが期待するアトミック性を保持したブロック集合体の操作を受付けるブロック操作受付け手段と、
    前記ブロック操作受付け手段がユーザからのブロック操作を受付けたとき、前記アトミックブロック集合体を前記次世代確定ブロック集合体を経由して前記確定ブロック集合体にアトミック性を保持した状態で遷移させる遷移手段とを含む、データ格納システム。
  2. 前記遷移手段は、アトミック性を有するデータを格納した確定ブロック集合体の位置を特定するアトミックブロック位置特定手段を含む、請求項1に記載のデータ格納システム。
  3. 前記アトミックブロック位置特定手段は、それぞれが、アトミック性を有するデータを保持したブロック集合体を特定するブロック番号と、インクリメントカウンタとを有する、一対のスーパーブロックを含み、
    アトミック性を有するデータが新たなブロック集合体に書き込まれるごとに、前記一対のブロック番号のうちの一方のブロック番号およびインクリメントカウンタの値が順に更新される、請求項2に記載のデータ格納システム。
  4. 前記それぞれのスーパーブロックは、一対の、アトミック性を有するデータを保持したブロック集合体を特定するブロック番号と、インクリメントカウンタとを有し、
    前記一対の、アトミック性を有するデータを保持したブロック集合体を特定するブロック番号と、インクリメントカウンタには、同一のデータが格納される、請求項3に記載のデータ格納システム。
  5. 前記次世代確定ブロック集合体またはアトミックブロック集合体は、前記確定ブロック集合体の中から必要なブロックをコピーして作成される、請求項1から4のいずれかに記載のデータ格納システム。
  6. 前記ブロック集合体のそれぞれのブロックは、ブロック番号管理テーブルを含み、前記ブロック番号管理テーブルは、データが格納される物理的なブロック番号とブロックIDとの関係を格納する、請求項3から5のいずれかに記載のデータ格納システム。
  7. 前記確定ブロック集合体、前記次世代確定ブロック集合体および前記アトミックブロック集合体はユーザごとに変更の可能なデータを格納するユーザデータブロックと、前記ユーザデータブロックを管理するブロック番号管理テーブルとを含む、請求項1から6のいずれかに記載のデータ格納システム。
  8. 前記次世代確定ブロック集合体および前記アトミックブロック集合体は前記不揮発性記録媒体上のブロックのみを使用する、請求項1から7のいずれかに記載のデータ格納システム。
  9. コンピュータを、複数のユーザがアクセス可能なデータを有する不揮発性記録媒体のデータ格納システムとして作動させるデータ格納プログラムであって、
    前記データは所定のブロック内に保持され、
    前記ブロックは前記不揮発性記録媒体上のみに存在し、アトミック性を有する確定ブロック集合体と、前記不揮発性記録媒体とそれ以外とにまたがって存在し、所定のタイミングで前記確定ブロック集合体に変換される次世代確定ブロック集合体と、前記不揮発性記録媒体とそれ以外とにまたがって存在し、前記次世代確定ブロック集合体に基づいて、ユーザごとに作成されるアトミックブロック集合体とに変換可能であり、
    コンピュータを、前記確定ブロック集合体から前記次世代確定ブロック集合体を形成する第1ブロック形成手段と、前記次世代確定ブロック集合体から前記アトミックブロック集合体を形成する第2ブロック形成手段と、前記アトミックブロック集合体に対してユーザが期待するアトミック性を保持したブロック集合体の操作を受付けるブロック操作受付け手段と、前記操作受付け手段がユーザからのブロック操作を受付けたとき、前記アトミックブロック集合体を前記次世代確定ブロック集合体を経由して前記確定ブロック集合体にアトミック性を保持した状態で遷移させる遷移手段として作動させる、データ格納プログラム。
JP2007307639A 2007-11-28 2007-11-28 データ格納システムおよびデータ格納プログラム Active JP4210318B1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2007307639A JP4210318B1 (ja) 2007-11-28 2007-11-28 データ格納システムおよびデータ格納プログラム
CN201410232702.2A CN104063185B (zh) 2007-11-28 2008-11-04 资料储存系统及资料储存方法
PCT/JP2008/070038 WO2009069436A1 (ja) 2007-11-28 2008-11-04 データ格納システムおよびデータ格納プログラム
CN200880118624.6A CN101981547B (zh) 2007-11-28 2008-11-04 资料储存系统及资料储存方法
KR1020097011526A KR100921876B1 (ko) 2007-11-28 2008-11-04 데이터 격납 시스템 및 데이터 격납 프로그램
US12/514,289 US8055853B2 (en) 2007-11-28 2008-11-04 Data storage system and data storage program for atomic transactions
EP08854486A EP2216721A4 (en) 2007-11-28 2008-11-04 SYSTEM AND PROGRAM FOR STORING DATA

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007307639A JP4210318B1 (ja) 2007-11-28 2007-11-28 データ格納システムおよびデータ格納プログラム

Publications (2)

Publication Number Publication Date
JP4210318B1 JP4210318B1 (ja) 2009-01-14
JP2009134346A true JP2009134346A (ja) 2009-06-18

Family

ID=40325720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007307639A Active JP4210318B1 (ja) 2007-11-28 2007-11-28 データ格納システムおよびデータ格納プログラム

Country Status (6)

Country Link
US (1) US8055853B2 (ja)
EP (1) EP2216721A4 (ja)
JP (1) JP4210318B1 (ja)
KR (1) KR100921876B1 (ja)
CN (2) CN101981547B (ja)
WO (1) WO2009069436A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424030B (zh) * 2013-08-22 2020-01-14 腾讯科技(深圳)有限公司 多进程操作共享内存的方法和装置
US10282290B2 (en) * 2014-06-24 2019-05-07 Shimadzu Corporation Analyzing device management system
CN104778223B (zh) * 2015-03-25 2018-08-21 广州多益网络股份有限公司 一种手游房屋的数据模型建立方法及装置
US20190155507A1 (en) * 2017-11-21 2019-05-23 Silicon Motion Inc. Method for performing system backup in a memory device, associated memory device and controller thereof, and associated electronic device

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414840A (en) * 1992-06-25 1995-05-09 Digital Equipment Corporation Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
TWI254947B (en) * 2004-03-28 2006-05-11 Mediatek Inc Data managing method and data access system for storing all management data in a management bank of a non-volatile memory
US8762331B2 (en) * 2004-06-29 2014-06-24 Microsoft Corporation Concurrent transactions and page synchronization
JP4104586B2 (ja) * 2004-09-30 2008-06-18 株式会社東芝 ファイル管理機能を備えたファイルシステム及びファイル管理方法
US7257690B1 (en) * 2004-10-15 2007-08-14 Veritas Operating Corporation Log-structured temporal shadow store
EP1770492B1 (en) * 2005-08-01 2016-11-02 Infortrend Technology, Inc. A method for improving writing data efficiency and storage subsystem and system implementing the same

Also Published As

Publication number Publication date
WO2009069436A1 (ja) 2009-06-04
KR20090077979A (ko) 2009-07-16
US8055853B2 (en) 2011-11-08
KR100921876B1 (ko) 2009-10-13
CN104063185B (zh) 2018-05-15
CN101981547A (zh) 2011-02-23
EP2216721A1 (en) 2010-08-11
JP4210318B1 (ja) 2009-01-14
EP2216721A4 (en) 2011-02-23
CN104063185A (zh) 2014-09-24
CN101981547B (zh) 2014-07-16
US20110022813A1 (en) 2011-01-27

Similar Documents

Publication Publication Date Title
US9773017B2 (en) Method of configuring a virtual application
CN103744961B (zh) 用可重构的文件系统目录树提高非易失性存储寿命的方法
JP6309103B2 (ja) スナップショットおよびクローンの複製
KR101634412B1 (ko) 내구성 강화 메모리 디바이스
US7694105B2 (en) Data storage systems that implement sector sets
JP5224800B2 (ja) 情報処理装置およびデータ復旧方法
US7647361B2 (en) Automatically maintaining metadata in a file backup system
WO2017028688A1 (zh) 文件读写方法、装置和系统
JP2016524250A5 (ja)
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
JP4210318B1 (ja) データ格納システムおよびデータ格納プログラム
US20110320692A1 (en) Access device, information recording device, controller, real time information recording system, access method, and program
US20070156778A1 (en) File indexer
JP2011138534A (ja) アクセス装置、情報記録装置、情報記録システム、ファイル管理方法、およびプログラム
JP2008287548A (ja) データベースの制御方法及びプログラム
JP5956971B2 (ja) LTFS(LinearTapeFileSystem)によって実現するWORMカートリッジのサポート
CN105302488B (zh) 一种存储系统的数据写入方法及系统
CN105260139B (zh) 一种磁盘管理方法以及系统
JP5499807B2 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
JP2008090378A (ja) ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体
KR101456104B1 (ko) 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치
JP2004157997A (ja) ファイル更新装置
CN116775504A (zh) 信息处理装置
CN108255437B (zh) 数据贮存装置及方法
JP2006184979A (ja) ファイル情報の書き込み処理方法およびプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081021

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081024

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4210318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250