JP3785766B2 - マージ処理装置 - Google Patents

マージ処理装置 Download PDF

Info

Publication number
JP3785766B2
JP3785766B2 JP31361397A JP31361397A JP3785766B2 JP 3785766 B2 JP3785766 B2 JP 3785766B2 JP 31361397 A JP31361397 A JP 31361397A JP 31361397 A JP31361397 A JP 31361397A JP 3785766 B2 JP3785766 B2 JP 3785766B2
Authority
JP
Japan
Prior art keywords
block
buffer
record
input
key
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.)
Expired - Fee Related
Application number
JP31361397A
Other languages
English (en)
Other versions
JPH10198551A (ja
Inventor
佳計 政村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP31361397A priority Critical patent/JP3785766B2/ja
Publication of JPH10198551A publication Critical patent/JPH10198551A/ja
Application granted granted Critical
Publication of JP3785766B2 publication Critical patent/JP3785766B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はソートマージ処理におけるマージ処理装置に関する。
【0002】
【従来の技術】
図7にソートマージ処理の概要を示してある。
ソート処理では入力ファイルからレコードを入力し、複数のストリング(並べられたレコード列、複数のデータブロックからなる)とインデックス(一つのデータブロックに対して一つある、データブロックの先頭レコードをキーとして持つ)を作り作業ファイルへ出力する。マージ処理ではインデックスを参照しながら作業ファイルからストリング(データブロック)を入力し、複数のストリングを1本にして出力ファイルへ出力する。
【0003】
【発明が解決しようとする課題】
従来のマージ処理は以下の問題がありその解決策が求められていた。
出願番号S63−227908「マージ処理方法」ではデータのソートマージ処理に関し、マージ処理の処理効率を改善するマージ処理方法について、ストリング数と同じ個数のバッファがあればこれらのバッファ内のレコードのキーを比較して最も強いキーを出力して行くときにストリング中未入力のブロックの最強キーよりも強いキーのレコードの出力を行うことにより必ず空き作業バッファができるため効率よくマージ処理が実行できたが、ストリング数と同じ数の作業バッファが確保できるだけ十分に大きな領域が必要であるため動作条件を限定していた。
【0004】
図8に従来技術の動作の説明図を示す。図8(a)においてS1〜S4は部分的にソートされた結果として得られたキー順に並べられブロック化されたレコードのストリングである。81a、81bはストリングS1の第1ブロックと第2ブロックであり、82〜84もS2〜S4に対応するものである。各ブロック内にある数字(1〜32)はレコードのキーを表し数字の小さい方がキーが強いことを示している。各ブロックの先頭のレコードのキーを表す数字は○で囲んでありブロックの代表キーを示している。以下の説明においては上記キーを表す数字は○で囲んだものは「〔」と「〕」で囲んだ数字、その他のキーを表す数字は「(」と「)」で囲んで区別して示す。
【0005】
図に示すように各ブロックの代表キーは各ストリング内において強さの順になっており、ブロック内のレコードのキーについても強さの順に並んでいる。マージ処理はこれらのストリング毎にキー順に並んだレコードをキー順に1つのレコードの並びとして出力することである。
【0006】
図8(b)には上記ストリングを同数のバッファを使用して入力してマージ処理するときのバッファB1〜B4上に読み込まれるブロックをブロックの代表キー番号で示している。(a)〜(e)の5段階の状態を示し、各段階の移行に際してバッファの内容が変化することを下向き矢印「↓」で示してある。
【0007】
最初にバッファB1〜B4には代表キーの大きさの順に〔1〕、〔2〕、〔3〕、〔5〕のブロックが読み込まれる。各バッファにあるレコードのキーの強い順にレコードが出力されて行きバッファB1内に読み込まれていたブロックの最後のレコード(キーが「9」)が出力完了するとバッファB1が空きとなり次のブロックを入力することができる。
【0008】
そこで、次に読み込むブロックは各ストリングの未処理のブロックの中で代表キーの一番強い(数字の小さい)ブロックとなりB1にはS4のブロック(代表キー〔14〕)が入力される(「↓」で示す)。すなわち、状態(b)ではバッファB1〜B4にはブロック〔14〕、〔2〕、〔3〕、〔5〕が入力された状態である。
【0009】
同様にしてB2〜B4に残っているレコードと新規に読み込まれたB1のレコードのキーを比較して順次マージ出力し、状態(c)、(d)、(e)の順に移行する。なお、ストリングと同数のバッファを使用したマージ処理では未入力のブロックの代表キーよりも強いキーのレコードを選択することにより必ずいずれかのバッファが空きになるので、バッファ上のレコードの比較のみで出力レコードを選択することができることは上記出願番号S63−227908「マージ処理方法」に示されている。
【0010】
また、出願番号H06−192480「ソート処理方法および装置」では上記出願番号S63−227908「マージ処理方法」のようにストリングと同じ個数の作業バッファが確保できない場合は、作業バッファ内のレコード移動を行って空き作業バッファを作っていたが、この方法はレコード移動が多くなったり、レコードを移動しても空き作業バッファができない場合は、作業ファイルへ書き戻して空き作業バッファを作ることで入出力処理が増えるという問題があった。
【0011】
これら従来の方法は、ソート処理で出力したデータブロックの大きさとマージ処理で入力するデータブロックの大きさは入出力の単位であり同じであることが前提であったため、このような方法をとらざるを得なかった。
【0012】
本発明はこのような点にかんがみて、
マージ処理で入力するデータブロックの大きさ、すなわち作業バッファの大きさを、ソート処理で出力したデータブロックの大きさより小さくできるようにすることで、十分に大きな領域がない場合でも、ストリングの数と同じ数の作業バッファを確保できるようにして、レコードの移動および入出力動作を少なくし、効率よくマージ処理ができるようにする手段を提供することを目的とする。
【0013】
【課題を解決するための手段】
上記の課題は下記の如くに構成されたマージ処理装置によって解決される。
図1は、本発明の構成図である。
【0014】
図において、2はキー順に並べたレコードをブロック化して記録した複数のストリングから、上記ストリングの数と同数のバッファにブロックの先頭レコードのキー順にブロックを入力する場合に、上記バッファの大きさがブロック長より小さいとき、分割して順次入力するブロックの残りレコード部分を示すブロック内入力ポインタであり、1は上記バッファに入力されたレコードをキー順に出力するマージ処理によりレコードが出力されて空きとなったバッファに入力されていたブロックに対応する上記ブロック内入力ポインタ2に基づいて上記ブロックの残りレコードを順次入力するブロック入力手段である。
【0015】
【発明の実施の形態】
本実施の形態においては、パーソナルコンピュータ、ワークステーション等の汎用的な目的で使用される計算機上で実行するコンピュータプログラムにより実現する形態を示す。
【0016】
本発明の画面対話処理装置は、処理装置、主記憶装置、補助記憶装置、入出力装置などから構成される計算機上で、コンピュータプログラムを実行して実現される。また、コンピュータプログラムは、フロッピーディスクやCD−ROM等の可搬型媒体やネットワーク接続された他の計算機の主記憶装置や補助記憶装置等に格納されて提供される。本発明の記録媒体は、上記可搬型媒体、主記憶装置、補助記憶装置に該当する。
【0017】
提供されたコンピュータプログラムは、可搬型媒体から直接計算機の主記憶装置にロードされ、または、可搬型媒体から一旦補助記憶装置にコピーまたはインストール後に、主記憶装置にロードされて実行する。また、ネットワーク接続された他の装置に格納されて提供された場合も、他の装置からネットワークを経由して受信後に、補助記憶装置にコピー、主記憶装置にロードされ実行するものである。
【0018】
図2に本発明のマージプログラムの動作の説明図を示す。構成を示す前に前記した従来技術のマージ処理との動作の違いを説明する。前記した図8に対応して同じレコードの並びを同じようにブロック化したストリングをマージ処理する場合について示している。図2(a)はストリングS1〜ストリングS4の4つのストリングのブロックの並びとブロック内のレコードの並びを示している。図8との違いは代表キー〔1〕のブロックの表示の仕方で例示すると、ブロック〔1〕は21、22で示す二つの部分に分けて表示し線で結合していることである。
【0019】
これはブロック〔1〕はレコードキー〔1〕、レコードキー(4)、レコードキー(7)、レコードキー(9)を持った4つのレコードで構成されていることは図8と同様であるが、バッファに入力するとき2回の入力処理で2つの部分に分けて処理することを示している。すなわち、本発明の特徴であるバッファの大きさがソートで出力したストリングのブロックの大きさよりも小さいときでもストリングと同数のバッファがあるときには効率よくマージ処理できることを説明するためにバッファ長をブロック長の半分、1ブロックに4レコードのブロッキングのときバッファには2レコードが読み込まれることを前提としている。ブロックの前半部分にあるレコード〔1〕、レコード(4)と後半部分のレコード(7)、レコード(9)は同時にはバッファ上に存在しないことになることを示している。
【0020】
図2(b)にはしたがって図8での状態遷移とは異なりブロックの前半、後半のそれぞれがバッファに読み込む単位となっている。従来技術ではバッファの一つがマージ処理によって空になったとき未入力のブロックの中で一番強い代表キーを持ったブロックを読み込むようになっていたが、本発明の実施の形態においてはバッファが空きになったときにそれまでバッファに存在していたブロックの後半部分が未処理であった場合には無条件に空きになったバッファに後半部分を入力する。
【0021】
図2(b)においてB1〜B4は4つのバッファを示し、(a)〜(m)はバッファへの新たな入力があったときの状態の変化を示す。下向き矢印「↓」はそのバッファにおいて入力が発生したことを示している。
【0022】
状態(a)では各バッファにはストリングのブロック代表キーの強さの順に選ばれたブロックの前半2レコード分がまず入力されている。ブロック〔1〕においては21の部分すなわちレコード〔1〕とレコード(4)が入力されている。バッファB2には同様にストリングS3のレコード〔2〕、レコード(6)が入力されている。B3、B4も同様である。
【0023】
マージ処理ではキーの強さの順にバッファ上のレコードが順次〔1〕、(2)、(3)、(4)が出力されてブロック〔1〕の前半を入力していたバッファB1は空になり同じブロックの後半が未処理レコードとして残っているので22で示す後半部分のレコード(7)、レコード(9)を読み込み状態(b)のようになる。
【0024】
つづいて、バッファ上のレコードを比較してキー順に出力が進みレコード(6)が出力されるとバッファB2が空きとなりブロック〔2〕の後半部分のレコード(17)、レコード(20)が入力される。以下同様にマージ処理が進むが状態(d)から(e)に移行するところではバッファB1からレコード(9)が出力されてバッファが空きになるがブロック〔1〕のレコードはすべて処理が済んだので新しいブロックの読み込みが必要になる。
【0025】
ここでは従来技術と同様に未処理のブロックの代表キーを比較して最も強いキーを持ったブロック〔14〕を選択してその前半部分のレコード〔14〕とレコード(19)を入力する。以下同様であるが、ストリングの最後の部分においては、ブロックに存在するレコードの数はブロック長すべてをみたすものとならない場合があり(ショートブロック)、残りのレコードの存在の有無でバッファへの入力すべきものを判定する。
【0026】
図3には本発明の実施の形態の構成図(その1)、図4には本発明の実施の形態の構成図(その2)を示す。図3には上記図2において説明したような4つのストリングからなるソート結果を入力としたときのマージ処理装置の構成を示す。バッファの数と大きさについては、実際にはストリングの数はソート処理の結果として決まりマージ処理の実行パラメータとして与えられるのでバッファとして利用可能な領域の大きさをストリング数で分割してレコード長の整数倍の大きさのバッファをストリング数個設定することになる。
【0027】
ここでは説明がし易いように固定してストリング31、それに付随してストリング31の各ブロックの代表キーを表示するインデックス32、バッファ(作業域)37とこれらの資源を関連付けてマージ処理の進行状況を表示する処理状態表示部36はすべてストリング数と同じ4個づつ設定して示してある。これらの内ストリング31とインデックス32、またバッファ37と処理状態表示部36は固定して対応しているが処理状態表示部36とストリング31(インデックス32)の対応はマージ処理の進行にともないストリング31に含まれるデータブロック、レコードの内容により変化することになる。
【0028】
ブロック入力部33はストリングから代表キーの順にブロックをバッファに読み込むものである。バッファ37の選択、ブロックの選択は処理状態表示部36を参照して決定するようになっている。
【0029】
レコード比較部34はバッファ37に読み込まれているレコードのキーを比較して未処理の最も強いキーのレコードを選び、レコード出力部35でマージ処理結果38として出力する。
【0030】
図4により処理状態表示部36とインデックス32とブロック43、バッファ37の内部構成と関連を示している。処理状態表示部36はマージ処理の実行に必要な資源の状態を表示するものでバッファ37とは処理状態表示部36のバッファアドレスでリンクされている。インデックス32はソート処理の結果としてキー順に並んだブロックの先頭レコードのキーすなわちブロック代表キーとそのブロックのアドレスを持っており処理状態表示部36のインデックスポインタがその所在を示している。これにより処理状態表示部36にリンクしているバッファ37に入力されているブロック43が分かる。そして、インデックスのブロックアドレスが指し示すブロック43に含まれるレコードR1〜R8の内どこまでバッファに入力されているのかすなわち次はブロックのどのレコードから入力するのかを示すものがブロック内ポインタであり処理状態表示部36に保持されている。ブロック43のレコードR1〜R8のキーはK1〜K8で示してある。
【0031】
図4ではブロック内ポインタはキーK5を持ったレコードR5を指し示している。処理状態表示部36のレコードポインタはマージ処理が進行して複数のバッファに入力されているレコードの中からキー順に出力された結果、バッファ37に読み込まれたレコードの中で残っている最も強いキーを持っているレコードの位置を指し示している。レコード比較部は各バッファのレコードポインタで示されるレコードを比較して最強のキーを持つレコードを選びレコード出力部からマージ結果として出力することになる。
【0032】
図4においてはバッファ37の中のキーK4を持ったレコード位置W4がレコードポインタにより指し示されている。なお、図5(a)における細線53はバッファ51a、51b、51c、51dに読み込まれたレコードのキーをトーナメント方式で比較して選ぶことを意味するものである。
【0033】
ここでバッファとデータブロックの対応について図5の本発明の実施の形態の作業バッファとデータブロックの関連の説明図を使って説明する。図5(a)には作業バッファの大きさを示している。バッファ51a〜51dの大きさnはマージ処理で入力できるデータブロックの大きさを示している。
【0034】
点線で拡張して示している領域の大きさmはソート処理で出力したデータブロックの大きさを示している。このようにマージ処理で使用できる領域の大きさが小さい場合マージ処理で入力するデータブロックの大きさを小さくするようにしている。
【0035】
なお、ソート処理で出力されたデータブロックの大きさより小さいバッファへの読み込み手段はI/Oコマンドを利用してブロック内の部分を読み込む方法やOSの入出力機能の関数を利用してファイルの先頭からの位置と読み込むデータの長さを指定する方法などがある。
【0036】
図5(b)には作業ファイル54に格納されているストリングに保持されているブロック55とブロック55の一部を読み込んだバッファ56を対応付けて示している。ブロック55の大きさはpであり、ブロックの一部qの部分がバッファの大きさだけバッファ56に入力される。ここでは分かりやすくするためブロックの半分をバッファに読み込み残り半分を次に読み込むこととして図示して説明しているが、3分割以上に分けて処理する場合もある。
【0037】
ただし、マージ処理はレコードを単位とするものでありバッファの大きさはレコード長以上が実用的である。また、ストリングの最終ブロックではショートブロックの場合もあるがこのときはバッファの途中までレコードが入力された状態となるがこれは通常のファイル終了の処理として扱えばよい。
【0038】
以上のような構成の実施の形態における動作を図6の本発明の実施の形態の動作のフローチャートにより説明する。図示していないが前記したようにバッファの領域が十分に確保できるときは従来技術と同様の処理となるが作業バッファの大きさをソート処理で出力されたブロックの大きさと同じにし、十分な領域がない場合には作業バッファを小さく設定するようにする。何れにしてもストリング数のバッファを事前に確保してあるとする。
【0039】
ステップS60においてストリングに付随してブロックの代表キーを格納したインデックスにより代表キーの強さの順にストリングからデータブロックを空きの作業バッファに読み込む。ステップS61では処理状態表示部にインデックスとバッファをリンクする。
【0040】
ステップS62において、バッファの領域がブロックの大きさより小さい場合にはブロックの一部のみ入力するのでブロック上の残りレコード数を計算しブロック内ポインタとして処理状態表示部に格納する。ステップS63ではブロックの途中までバッファに読み込んだ状態であるか、すなわち残りレコードがあるか否かを調べている。単にブロック長とバッファ長の関係ではなくショートブロックの場合も含めてブロック上に残りの有効なレコードがあるかを調べるのである。
【0041】
残りレコードがある場合はステップS67で処理状態フラグを「処理中」とする。残りレコードがない場合はステップS64で処理状態フラグを「処理済」とする。ステップS65ではバッファ上のレコードのキーを比較してキーの強さ順にレコードを出力ファイルに出力し、いずれかのバッファが空きになるまでマージ処理を行う。前記したようにいずれかのバッファが必ず空きとなる。
【0042】
ステップS66で処理状態フラグが「処理中」かを調べ処理中すなわち残りレコードがあるブロックであることが分かるとステップS68で残りレコードを入力してステップS62に移り残りレコードを同じバッファに読み込み同様のレコード比較を行うことになる。フラグが「処理済」であればステップS69に移りインデックスにより未処理のブロックがないかを調べる。
【0043】
すなわちいずれかのストリングに未処理のブロックが残っていれば代表キーの一番強いブロックを空いた作業バッファに読み込んでマージ処理を続行する。未処理インデックスがない場合はステップS70で全てのバッファが空きになったかを調べてまだ未処理のレコードがバッファに残っていればステップS65でマージ処理を続行する。全てのバッファが空きのときはマージ処理を終了する。
【0044】
【発明の効果】
以上の説明から明らかなように本発明によればソートマージ処理において作業領域が少ない場合でもストリング数と同数のバッファを利用する方式を使用してデータブロックを分割して入力することによりレコード移動や作業ファイルへの書き出しを不要とした論理の簡潔なマージ処理を提供することによりマージ処理の性能向上が図れる、という工業的効果がある。
【図面の簡単な説明】
【図1】 本発明の構成図
【図2】 本発明のマージプログラムの動作の説明図
【図3】 本発明の実施の形態の構成図(その1)
【図4】 本発明の実施の形態の構成図(その2)
【図5】 本発明の実施の形態の作業バッファとデータブロックの関連の説明図
【図6】 本発明の実施の形態の動作のフローチャート
【図7】 ソートマージ処理の概要
【図8】 従来技術の動作の説明図
【符号の説明】
1 ブロック入力手段
2 ブロック内入力ポインタ

Claims (2)

  1. キー順に並べたレコードをブロック化して記録した複数のストリングから、上記ストリングの数と同数のバッファにブロックの先頭レコードのキー順にブロックを入力して、バッファ内のレコードを比較してキー順に出力するマージ処理装置であって、バッファの大きさがブロック長より小さいとき、
    バッファ毎に、バッファ長に分割して順次入力するブロックの残りレコード部分を示すブロック内入力ポインタと、
    上記キー順にレコードを出力して空きとなったバッファに対応するブロックを上記ブロック内入力ポインタが示す位置からバッファ長の部分をブロック入力するブロック入力手段と、
    を備えることを特徴とするマージ処理装置。
  2. キー順に並べたレコードをブロック化して記録した複数のストリングから、上記ストリングの数と同数のバッファにブロックの先頭レコードのキー順にブロックを入力して、バッファ内のレコードを比較してキー順に出力するマージ処理プログラムであって、バッファの大きさがブロック長より小さいとき、
    コンピュータに、
    バッファ毎に、バッファ長に分割して順次入力するブロックの残りレコード部分を示すブロック内入力ポインタを管理する機能、
    上記キー順にレコードを出力して空きとなったバッファに対応するブロックを上記ブロック内入力ポインタが示す位置からバッファ長の部分をブロック入力する機能、
    を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP31361397A 1996-11-15 1997-11-14 マージ処理装置 Expired - Fee Related JP3785766B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31361397A JP3785766B2 (ja) 1996-11-15 1997-11-14 マージ処理装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP30486696 1996-11-15
JP8-304866 1996-11-15
JP31361397A JP3785766B2 (ja) 1996-11-15 1997-11-14 マージ処理装置

Publications (2)

Publication Number Publication Date
JPH10198551A JPH10198551A (ja) 1998-07-31
JP3785766B2 true JP3785766B2 (ja) 2006-06-14

Family

ID=26564074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31361397A Expired - Fee Related JP3785766B2 (ja) 1996-11-15 1997-11-14 マージ処理装置

Country Status (1)

Country Link
JP (1) JP3785766B2 (ja)

Also Published As

Publication number Publication date
JPH10198551A (ja) 1998-07-31

Similar Documents

Publication Publication Date Title
US4210961A (en) Sorting system
JPH02178730A (ja) 分割法を用いた内部ソート方式
JP3251138B2 (ja) ハッシュ方式
JP3515810B2 (ja) ソート処理方法および装置
JP2969153B2 (ja) レコード検索方法
US5418965A (en) Subroutine-type computer program for enhancing the speed of data processing in data management programs systems
JP3785766B2 (ja) マージ処理装置
JP2001014139A (ja) ワークファイルを使用するマルチスレッドソート処理方式及び処理方法
KR100289087B1 (ko) 비플러스트리에다수의키값을추가하기위한방법
JP2923952B2 (ja) マージ処理方法
JPH0782429B2 (ja) 複数ファイルのマージ方法
JP2001331353A (ja) データベースへのデータ入力システム及びそのプログラムを記憶した記録媒体
JP3293544B2 (ja) 補助記憶装置を用いたソート方式
US20220138338A1 (en) Data replacement apparatus, data replacement method, and program
JPS62121532A (ja) デ−タ検索方法
JP2615046B2 (ja) レコード追加処理方法
JPH03202934A (ja) データ処理装置
JP3570808B2 (ja) プログラムロジック自動生成装置
JPH0254346A (ja) ファイル切替処理方法
JP2694849B2 (ja) 分散処理システムにおける文書一覧情報の管理方式
JPS6266326A (ja) 日本語デ−タ整列処理方式
JP3722854B2 (ja) データ編集装置
JP2002297897A (ja) データ格納方法及びデータ格納プログラム
JP3516365B2 (ja) メモリ内レコード格納方法および装置
JP2507399B2 (ja) デ―タベ―ス装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050825

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: 20060228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060313

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110331

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110331

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120331

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130331

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130331

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140331

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees