JP4514768B2 - カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム - Google Patents
カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム Download PDFInfo
- Publication number
- JP4514768B2 JP4514768B2 JP2007110019A JP2007110019A JP4514768B2 JP 4514768 B2 JP4514768 B2 JP 4514768B2 JP 2007110019 A JP2007110019 A JP 2007110019A JP 2007110019 A JP2007110019 A JP 2007110019A JP 4514768 B2 JP4514768 B2 JP 4514768B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- tree
- coupled
- representative
- array
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
上記ビット列の検索を高速に行うために、ビット列を記憶するデータ構造を種々に工夫することが従来から行われている。このようなものの一つとして、パトリシアツリーという木構造が知られている。
750eを指している。
ある検索キーで検索を行うとき、ルートノードから順次各ノードに保持される検索キーの検査ビット位置を検査していき、検査ビット位置のビット値が1であるか0であるか判定を行い、1であれば右リンクをたどり、0であれば左リンクをたどる。そして、リンク先のノードの検査ビット位置がリンク元のノードの検査ビット位置より大きくなければ、すなわち、リンク先が下方でなく上方に戻れば(図16において点線で示されたこの逆戻りのリンクをバックリンクという)、リンク先のノードのインデックスキーと検索キーの比較を行う。比較の結果、等しければ検索成功であり、等しくなければ検索失敗であることが保証されている。
って、該ツリーのノードが1つのときはリーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含むカップルドノードツリーを用いたビット列検索を提案した。
プ動作を繰り返し行って該スタックから該位置情報を読み出し、該位置情報が読み出された前記代表ノードあるいは前記非代表ノードとノード対をなす非代表ノードあるいは代表ノードを、新たな前記巡回開始ノードとして指定して前記ノードの巡回と退避を繰り返す。
この復元は、カップルドノードツリーの記憶領域上の配置によらない、カップルドノードツリーのノード情報の交換形式に変換されたノード情報の列であるデータ構造を、カップルドノードツリーのデータ構造に逆変換するものである。各ノードは退避された順番で復元される。
復元しようとするカップルドノードツリーのルートノードが、復元される順番にあるときは、該ルートノード用の記憶領域を取得し、読み出したノードの内容を該記憶領域に格納することにより、該ルートノードを復元する。
明によれば、カップルドノードツリーの構造の特徴を利用することにより、簡単な処理で、効率よくカップルドノードツリーの退避/復元処理を実施することができる。
図1を参照すると、ノード101が配列100の配列番号10の配列要素に配置されている。ノード101はノード種別102、弁別ビット位置103及び代表ノード番号104で構成されている。ノード種別102は0であり、ノード101がブランチノードであることを示している。弁別ビット位置103には1が格納されている。代表ノード番号104にはリンク先のノード対の代表ノードの配列番号20が格納されている。なお、以下では表記の簡略化のため、代表ノード番号に格納された配列番号を代表ノード番号ということもある。また、代表ノード番号に格納された配列番号をそのノードに付した符号あるいはノード対に付した符号で表すこともある。
ノード[0]112、ノード[1]113、ノード122、及びノード123の格納された配列要素にそれぞれ付された0あるいは1は、検索キーで検索を行う場合にノード対のどちらのノードにリンクするかを示すものである。前段のブランチノードの弁別ビット位置にある検索キーのビット値である0か1を代表ノード番号に加えた配列番号のノードにリンクする。
図2は、カップルドノードツリーのツリー構造を概念的に示す図である。図示の6ビットのインデックスキーは、図16に例示されたパトリシアツリーのものと同じである。
ツリー構造としては、ルートノード210aの下にノート対201bが、その下層にノード対201cとノード対201fが配置され、ノード対201fの下層にはノード対201hとノード対201gが配置されている。ノード対201cの下にはノード対201dが、さらにその下にはノード対201eが配置されている。
格納された配列要素の配列番号221fが格納されている。
まず、ビット列“100010”を検索キーとしてルートノード210aから処理をスタートする。ルートノード210aの弁別ビット位置230aは0であるので、検索キー“100010”の弁別ビット位置が0のビット値をみると1である。そこで代表ノード番号の格納された配列番号220aに1を加えた配列番号の配列要素に格納されたノード211bにリンクする。ノード211bの弁別ビット位置231bには2が格納されているので、検索キー“100010”の弁別ビット位置が2のビット値をみると0であるから、代表ノード番号の格納された配列番号221bの配列要素に格納されたノード210fにリンクする。
カップルドノードツリーの構成はインデックスキーの集合により規定される。図2の例で、ルートノード210aの弁別ビット位置が0であるのは、図2に例示されたインデックスキーに0ビット目が0のものと1のものがあるからである。0ビット目が0のインデックスキーのグループはノード210bの下に分類され、0ビット目が1のインデックスキーのグループはノード211bの下に分類されている。
そして2ビット目が1であるインデックスキーは3ビット目の異なるものがあるのでノード211fの弁別ビット位置には3が格納され、2ビット目が0であるインデックスキーでは3ビット目も4ビット目も等しく5ビット目で異なるのでノード210fの弁別ビット位置には5が格納される。
そしてさらにいえば、異なるビット値となるビット位置ごとにビット値が“1”のノードとビット値が“0”のノードとに分岐していることから、ノード[1]側とツリーの深さ方向を優先させてリーフノードをたどると、それらに格納されたインデックスキーは、ノード211hのインデックスキー251hの“101100”、ノード210hのインデックスキー250hの“101011”、・・・、ノード210cのインデックスキー250cの“000111”となり降順にソートされている。
検索キーで検索するときはインデックスキーがカップルドノードツリー上に配置されたルートをたどることになり、例えば検索キーが“101100”であればノード211hに到達することができる。また、上記説明からも想像がつくように、“101101”か“101110”を検索キーとした場合でもノード211hにたどり着き、インデックスキー251hと比較することにより検索が失敗したことが分かる。
本発明の検索装置による検索処理及び退避/復元処理を含むデータメンテナンスは中央処理装置302及びキャッシュメモリ303を少なくとも備えたデータ処理装置301によりデータ格納装置308を用いて実施される。カップルドノードツリーが配置される配列309と検索中にたどるノードが格納された配列要素の配列番号を記憶する探索経路スタック310を有するデータ格納装置308は、主記憶装置305または外部記憶装置306で実現することができ、あるいは通信装置307を介して接続された遠方に配置された装置を用いることも可能である。図1の配列100は、配列309の一例である。
大きさ等に応じて適宜ハードウェア構成を選択できることは明らかである。
次に、上述の出願において、本出願人により提案されたカップルドノードツリーを用いた基本的な検索処理、及びカップルドノードツリーに含まれるインデックスキーの最大値/最小値を求める処理等の応用処理の一部について、本発明を理解するために必要な範囲で紹介する。
まず、ステップS401で、検索開始ノードの配列番号を取得する。取得された配列番号に対応する配列要素は、カップルドノードツリーを構成する任意のノードを格納したものである。検索開始ノードの指定は、後に説明する各種応用検索において行われる。
のうち必ずノード[0]とし、より小さい値のインデックスキーが格納されているノードのほうに分岐している。これにより、ツリー構造が先に述べたように順列構成であるカップルドノードツリーの最小のインデックスキーを取り出すことができる。
様におけるスタックからの配列番号の読み出しにおいても同様である。
ステップS912において、配列から空きのノード対を求め、そのノード対のうち代表ノードとなるべき配列要素の配列番号を取得する。
ステップS914に進み、ステップS912で得た代表ノードの配列番号にステップS913で得たブール値を加算した配列番号を得る。
ステップS914で得た配列番号は、挿入キーをインデックスキーとして持つリーフノードが格納される配列要素の配列番号であり、ステップS915で得た配列番号は、そのリーフノードと対を成すノードが格納される配列要素のものである。
入されるノード対の代表ノード番号に1を加えた配列要素に挿入キーを保持するリーフノードが格納される。一方、インデックスキー“011010”は、大小比較で得られたブール値を論理反転した値を代表ノード番号に加算した配列番号の配列要素に格納される。
ステップS916〜ステップS923までの処理は、挿入するノード対のカップルドノードツリー上の位置を求める処理であり、ステップS924以下の処理は各ノードにデータを設定して挿入処理を完成させる処理である。
ステップS917に進み、ステップS916で得た差分ビット列から、上位0ビット目から見た最初の不一致ビットのビット位置を得る。この処理は、例えばプライオリティエンコーダを有するCPUではそこに差分ビット列を入力し、不一致のビット位置を得ることができる。また、ソフト的にプライオリティエンコーダと同等の処理を行い最初の不一致ビットのビット位置を得ることも可能である。
ステップS920に進み、ステップS919で取り出した配列番号の配列要素を配列からノードとして読み出す。
次にステップS922に進み、ステップS921で取り出した弁別ビット位置がステップS917で得たビット位置より上位の位置関係か判定する。ここで上位の位置関係とは、ビット列のより左側の位置、すなわちビット位置の値が小さい位置であることとする。
ステップS924では探索経路スタックからスタックポインタの指す配列番号を取り出す。
ステップS926に進み、配列からステップS924で得た配列番号の配列要素を読み出す。
最後にステップS928において、ステップS924で得た配列番号の指す配列要素のノード種別に0(ブランチノード)を、弁別ビット位置にステップS917で得たビット位置を、代表ノード番号にステップS912で得た配列番号を書き込み、処理を終了する。
ードが格納される配列要素の配列番号が格納される(ステップS928)。
まず、ステップS102において、配列から空きのノード対を求め、そのノード対のうち代表ノードとなるべき配列要素の配列番号を取得する。次にステップS103において、ステップS102で得た配列番号に0を加えた配列番号を求める。(実際には、ステップS102で取得した配列番号に等しい。)。さらにステップS104において、ステップS103で得た配列番号の配列要素に、挿入するルートノードのノード種別に1(リーフノード)とインデックスキーに挿入キーを書き込み、ステップS105で、ステップS102で取得したルートノードの配列番号を登録して処理を終了する。
次に、本発明によるカップルドノードツリーの退避/復元処理について説明する。
ステップS1016の判定において、読み出したノードがブランチノードである場合は、ステップS1017に進んでノードから代表ノード番号を取り出し、ステップS1018で取り出した代表ノード番号に値「0」を加算してその結果を新たな配列番号とし、ステップS1012に戻る。以降、ステップS1016においてそのノードがリーフノード
と判定されるまでステップS1012からステップS1018までの処理を繰り返す。ステップS1016においてノード種別がリーフノードと判定されると、処理を終了する。
ステップS1007に進んで配列番号(220a+1)が得られ、これがステップS1008で巡回開始ノードの配列番号に指定される。
hはリーフノードなので、図12(h)に示すとおり、この処理の結果として、配列番号(221f+1)のみが探索経路スタック310に格納され、ノード退避配列401には配列番号14の配列要素としてノード211hの内容のみが退避される。
がステップS1313の場合はステップS1313で得られた配列309’の配列番号であり、直前のステップがステップS1317の場合はステップS1317で得られた配列309’の配列番号である。
るまで、ステップS1314からステップS1316までの処理を繰り返す。
以上のようにして、ステップS1307でノード退避配列401から全てのノードを取り出したと判定されるまで、同様の処理が繰り返される。
復元処理は、図14のステップS1401の矢印に示すように、図13のステップS1301からステップS1303によりルートノード210a’を復元することから始まる。つまり、配列309’から空きのノード対の代表ノード番号220’が得られ、(220’+0)=220’なる配列番号が得られ、この配列番号が、ルートノード210a’の配列番号として登録される。ただし、この時点ではルートノード210a’の代表ノード番号の値は未定であり、ルートノード210a’の復元は不完全である。
プS1309の判定がブランチノードである間、繰り返される。この過程では、下記のようにしてノード211c’とノード210d’とノード210e’が復元される。
列番号(221c’+1)がプッシュされ、ステップS1305でノード退避配列401の配列番号7のノードが取り出され、ステップS1306でノード211d’が復元される。その後、ステップS1309でノード211d’がリーフノードだと判定される。
、ノード210g’が復元される。その後、ステップS1307からステップS1309が実行され、ノード210g’がリーフノードだと判定される。
1305でノード退避配列401の配列番号13のノードが取り出され、ステップS1306によりノード210h’が復元される。その後、ステップS1309でノード210h’がリーフノードだと判定される。
る前に、受信した部分から順次ノードを復元することによって、受信と復元を同時に行うことができるためである。
上記で説明したフローチャートは、処理の一例であり、処理順を入れ替えたり並行に処理したりすることが可能なステップが存在することは自明である。例えば、図13のステップS1304は、ステップS1305の直後あるいはステップS1306の直後に移動させてもよく、ステップS1305及びステップS1306からなる処理と並行して実行してもよい。
また、上記の例では、ビット値0を優先させた深さ優先探索順にノードを退避し、復元しているが、ビット値1を優先させた深さ優先探索順にノードを退避し、復元することも当然可能である。
1316を、ノード[1]のときにステップS1317に進むように変更し、ステップS1317を、配列番号から1を減じてノード[0]の配列番号を得るように変更する。
100 配列
101 ノード
102、114、117、124、126、260a〜260h、261b〜261h
ノード種別
103、115、230a〜230f、231b〜231f 弁別ビット位置
104、116、220、220a〜220f、221b〜221f 代表ノード番号
111、121、201a〜201h ノード対
112、122、210a〜210h ノード[0]、代表ノード
113、123、211b〜211h ノード[1]、代表ノードと対をなす非代表ノード
118、250c〜250h、251d〜251h インデックスキー
301 データ処理装置
302 中央処理装置
303 キャッシュメモリ
304 バス
305 主記憶装置
306 外部記憶装置
307 通信装置
308 データ格納装置
309 配列
310 探索経路スタック
401 ノード退避配列
1730a〜1730h 検査ビット位置
1740a〜1740f 左リンク、左ポインタ
1741a〜1741f 右リンク、右ポインタ
1750a〜1750h ノード
Claims (14)
- ビット列検索に用いるツリーの任意の部分木を退避するツリーの退避装置において、
ツリーの始点であるルートノードと、隣接した記憶領域に配置される代表ノードと非代表ノードである2つのノードを有する、ツリーの構成要素としてのノード対を有し、前記ノードは該ノードがブランチノードであるかリーフノードであるかを示すノード種別を格納する領域を有し、前記ブランチノードは、前記ノード種別に加えて、前記検索キーの弁別ビット位置を格納する領域とリンク先のノード対の代表ノードの位置を示す位置情報を格納する領域を含むが、前記検索対象のビット列からなるインデックスキーを格納する領域を含まないものであり、前記リーフノードは、前記ノード種別に加えて、前記検索対象のビット列からなるインデックスキーを格納する領域を含むが、前記検索キーの弁別ビット位置を格納する領域とリンク先のノード対の代表ノードの位置を示す位置情報を格納する領域を含まないものであり、前記ツリーの任意のノードを検索開始ノードとして、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいは該代表ノードと対になる非代表ノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されたカップルドノードツリーと、
退避しようとする前記部分木のルートノードを、ノードを退避する順序に対応する経路の開始点である巡回開始ノードとして指定する巡回開始ノード指定手段と、
前記巡回開始ノード指定手段あるいは後記次巡回開始ノード指定手段で指定された巡回開始ノードから、前記ノード対のうち代表ノードのみあるいは非代表ノードのみをリンクしてリーフノードに至るまで巡回しながら、前記巡回開始ノードから前記リーフノードに至る前記経路上の各ノードについて、当該ノードの位置を示す前記位置情報を順次スタックに格納するとともに当該ノードの内容を順次カップルドノードツリーが配置されている記憶領域とは別の記憶領域に退避するノード退避手段と、
代表ノードあるいは非代表ノードの位置情報が得られるまで前記スタックから順次位置情報を読み出し、該位置情報が読み出された前記代表ノードあるいは前記非代表ノードとノード対をなす非代表ノードあるいは代表ノードを、次の前記巡回開始ノードとして指定する次巡回開始ノード指定手段と、
を備え、
前記ノード退避手段によるノードの退避と前記次巡回開始ノード指定手段による次の巡回開始ノードの指定を、前記退避しようとする前記部分木の全てのノードを退避するまで繰り返す、
ことを特徴とするカップルドノードツリーの退避装置。 - コンピュータがビット列検索に用いるツリーの任意の部分木を退避するツリーの退避方法において、
前記ツリーは、
該ツリーの始点であるルートノードと、隣接した記憶領域に配置される代表ノードと非代表ノードである2つのノードを有する、ツリーの構成要素としてのノード対を有し、前記ノードは該ノードがブランチノードであるかリーフノードであるかを示すノード種別を格納する領域を有し、前記ブランチノードは、前記ノード種別に加えて、前記検索キーの弁別ビット位置を格納する領域とリンク先のノード対の代表ノードの位置を示す位置情報を格納する領域を含むが、前記検索対象のビット列からなるインデックスキーを格納する領域を含まないものであり、前記リーフノードは、前記ノード種別に加えて、前記検索対象のビット列からなるインデックスキーを格納する領域を含むが、前記検索キーの弁別ビット位置を格納する領域とリンク先のノード対の代表ノードの位置を示す位置情報を格納する領域を含まないものであり、前記ツリーの任意のノードを検索開始ノードとして、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいは該代表ノードと対になる非代表ノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されたカップルドノードツリーであって、
退避しようとする前記部分木のルートノードを、ノードを退避する順序に対応する経路の開始点である巡回開始ノードとして指定する巡回開始ノード指定ステップと、
前記巡回開始ノード指定ステップあるいは後記次巡回開始ノード指定ステップで指定された巡回開始ノードから、前記ノード対のうち代表ノードのみあるいは非代表ノードのみをリンクしてリーフノードに至るまで巡回しながら、前記巡回開始ノードから前記リーフノードに至る前記経路上の各ノードについて、当該ノードの位置を示す前記位置情報を順次スタックに格納するとともに当該ノードの内容を順次カップルドノードツリーが配置されている記憶領域とは別の記憶領域に退避するノード退避ステップと、
代表ノードあるいは非代表ノードの位置情報が得られるまで前記スタックから順次位置情報を読み出し、該位置情報が読み出された前記代表ノードあるいは前記非代表ノードとノード対をなす非代表ノードあるいは代表ノードを、次の前記巡回開始ノードとして指定する次巡回開始ノード指定ステップと、
を備え、
前記ノード退避ステップによるノードの退避と前記次巡回開始ノード指定ステップによる次の巡回開始ノードの指定を、前記退避しようとする前記部分木の全てのノードを退避するまで繰り返す、
ことを特徴とするカップルドノードツリーの退避方法。 - 前記カップルドノードツリーは配列に記憶され、前記位置情報は、該位置情報に対応する前記ノードが格納された前記配列の配列要素の配列番号である、ことを特徴とする請求項2記載のカップルドノードツリーの退避方法。
- 前記別の記憶領域に退避される前記内容には、前記ブランチノードを退避する場合は前記弁別ビット位置が含まれ、前記リーフノードを退避する場合は前記インデックスキーが含まれ、前記ブランチノードと前記リーフノードを区別する種別情報が前記ブランチノードと前記リーフノードの双方に含まれ、前記種別情報も退避され、前記ブランチノードに含まれる前記位置情報は退避されないことを特徴とする請求項2載のカップルドノードツリーの退避方法。
- 前記別の記憶領域は配列であることを特徴とする請求項2記載のカップルドノードツリーの退避方法。
- 前記ノード退避ステップは、前記ノードの内容を順次カップルドノードツリーが配置されている記憶領域とは別の記憶領域に退避することに替えて、当該ノードの内容を順次伝送媒体を介して外部装置に送信すること、
を特徴とする請求項2記載のカップルドノードツリーの退避方法。 - 請求項2記載のカップルドノードツリーの退避方法により退避されたノードの内容からなる退避情報により、退避された順番で順次ノードを復元することによって前記カップルドノードツリーを復元するカップルドノードツリーの復元装置において、
復元しようとするカップルドノードツリーのルートノードを格納するノード格納用記憶領域を取得するルートノード格納用記憶領域取得手段と、
前記退避情報を順次読出し、前記ルートノード格納用記憶領域取得手段あるいは後記ブランチノード復元手段により取得された、もしくは後記ノード格納用記憶領域探索手段により探索されたノード格納用記憶領域に書き込むことでノードを復元するノード復元手段と、
前記ノード復元手段で復元されたノードの種別を判定するノード種別判定手段と、
前記ノード種別判定手段で判定されたノードの種別がブランチノードであれば、該ブランチノードの次に退避したノードである子ノードと該子ノードと対をなすノードをそれぞれ格納するノード格納用記憶領域を取得するとともに、該子ノードを含むノード対の代表ノードを格納する前記ノード格納用記憶領域の位置情報を前記ブランチノードの代表ノード番号に書き込むブランチノード復元手段と、
前記ノード種別判定手段で判定されたノードの種別がリーフノードであれば、復元中の前記カップルドノードツリーのツリー構造をルートノードに向かって遡って、取得済みだがノードの内容がいまだ格納されていないノード格納用記憶領域を探索するノード格納用記憶領域探索手段と、
を備え、
前記ノード復元手段、前記ノード種別判定手段、前記ブランチノード復元手段、及び前記ノード格納用記憶領域探索手段による処理を、前記復元しようとするカップルドノードツリーの全ての前記退避されたノードを復元するまで繰り返す、
ことを特徴とするカップルドノードツリーの復元装置。 - コンピュータが、請求項2記載のカップルドノードツリーの退避方法により退避されたノードの内容からなる退避情報により、退避された順番で順次ノードを復元することによって前記カップルドノードツリーを復元するカップルドノードツリーの復元方法において、
復元しようとするカップルドノードツリーのルートノードを格納するノード格納用記憶領域を取得するルートノード格納用記憶領域取得ステップと、
前記退避情報を順次読出し、前記ルートノード格納用記憶領域取得ステップあるいは後記ブランチノード復元ステップにより取得された、もしくは後記ノード格納用記憶領域探索ステップにより探索されたノード格納用記憶領域に書き込むことでノードを復元するノード復元ステップと、
前記ノード復元ステップで復元されたノードの種別を判定するノード種別判定ステップと、
前記ノード種別判定ステップで判定されたノードの種別がブランチノードであれば、該ブランチノードの次に退避したノードである子ノードと該子ノードと対をなすノードをそれぞれ格納するノード格納用記憶領域を取得するとともに、該子ノードを含むノード対の代表ノードを格納する前記ノード格納用記憶領域の位置情報を前記ブランチノードの代表ノード番号に書き込むブランチノード復元ステップと、
前記ノード種別判定ステップで判定されたノードの種別がリーフノードであれば、復元中の前記カップルドノードツリーのツリー構造をルートノードに向かって遡って、取得済みだがノードの内容がいまだ格納されていないノード格納用記憶領域を探索するノード格納用記憶領域探索ステップと、
を備え、
前記ノード復元ステップ、前記ノード種別判定ステップ、前記ブランチノード復元ステップ、及び前記ノード格納用記憶領域探索ステップの処理を、前記復元しようとするカップルドノードツリーの全ての前記退避されたノードを復元するまで繰り返す、
ことを特徴とするカップルドノードツリーの復元方法。 - 前記カップルドノードツリーは配列に復元され、復元された前記ブランチノードに書き込まれる前記位置情報は、該位置情報に対応する前記代表ノードを格納する配列要素の配列番号である、ことを特徴とする請求項8記載のカップルドノードツリーの復元方法。
- 前記復元しようとするカップルドノードツリーは、前記退避情報に退避された元の前記カップルドノードツリーの部分木に相当するものであり、
前記ノード復元ステップは、該部分木のルートノードよりも前の順番で退避された前記退避情報の読出をスキップし、該部分木の該ルートノードの前記内容から順次、前記退避情報を読み出すものであり、
前記ノード格納用記憶領域探索ステップにおいて、復元中の前記部分木のルートノードまで遡ると復元を終了する、
ことを特徴とする請求項8記載のカップルドノードツリーの復元方法。 - 前記退避情報は配列に格納されていることを特徴とする請求項8記載のカップルドノードツリーの復元方法。
- コンピュータが、請求項6記載のカップルドノードツリーの退避方法により前記外部装置に送信された退避情報を受信し、送信された順番で順次ノードを前記外部装置の記憶領域に復元することによって前記カップルドノードツリーを復元するカップルドノードツリーの復元方法であって、
復元しようとするカップルドノードツリーのルートノードを格納するノード格納用記憶領域を取得するルートノード格納用記憶領域取得ステップと、
前記退避情報を順次受信し、前記ルートノード格納用記憶領域取得ステップあるいは後記ブランチノード復元ステップにより取得された、もしくは後記ノード格納用記憶領域探索ステップにより探索されたノード格納用記憶領域に書き込むことでノードを復元するノード復元ステップと、
前記ノード復元ステップで復元されたノードの種別を判定するノード種別判定ステップと、
前記ノード種別判定ステップで判定されたノードの種別がブランチノードであれば、該ブランチノードの次に退避したノードである子ノードと該子ノードと対をなすノードをそれぞれ格納するノード格納用記憶領域を取得するとともに、該子ノードを含むノード対の代表ノードを格納する前記ノード格納用記憶領域の位置情報を前記ブランチノードの代表ノード番号に書き込むブランチノード復元ステップと、
前記ノード種別判定ステップで判定されたノードの種別がリーフノードであれば、復元中の前記カップルドノードツリーのツリー構造をルートノードに向かって遡って、取得済みだがノードの内容がいまだ格納されていないノード格納用記憶領域を探索するノード格納用記憶領域探索ステップと、
を備え、
前記ノード復元ステップ、前記ノード種別判定ステップ、前記ブランチノード復元ステップ、及び前記ノード格納用記憶領域探索ステップの処理を、前記復元しようとするカップルドノードツリーの全ての前記退避されたノードを復元するまで繰り返す、
ことを特徴とするカップルドノードツリーの復元方法。 - 請求項2〜6のいずれか1項に記載のカップルドノードツリーの退避方法または請求項8〜12のいずれか1項に記載のカップルドノードツリーの復元方法をコンピュータに実行させるためのプログラム。
- 請求項2〜6のいずれか1項に記載のカップルドノードツリーの退避方法または請求項8〜12のいずれか1項に記載のカップルドノードツリーの復元方法をコンピュータに実行させるためのプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007110019A JP4514768B2 (ja) | 2007-04-19 | 2007-04-19 | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム |
EP08738589.4A EP2149845B1 (en) | 2007-04-19 | 2008-04-14 | Coupled node tree backup/restore apparatus, backup/restore method, and program |
CN2008800122779A CN101657818B (zh) | 2007-04-19 | 2008-04-14 | 配对节点树保存/复原方法、最长一致/最短一致检索方法、比特序列检索方法以及存储介质 |
PCT/JP2008/000983 WO2008132806A1 (ja) | 2007-04-19 | 2008-04-14 | カップルドノードツリーの退避/復元方法、最長一致/最短一致検索方法、ビット列検索方法及び記憶媒体 |
TW097114278A TW200846955A (en) | 2007-04-19 | 2008-04-18 | Coupled node tree save/restore method, longest consistence/shortest consistence retrieval method, bit retrieval method and memory medium |
US12/588,531 US8386526B2 (en) | 2007-04-19 | 2009-10-19 | Coupled node tree backup/restore apparatus, backup/restore method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007110019A JP4514768B2 (ja) | 2007-04-19 | 2007-04-19 | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008269197A JP2008269197A (ja) | 2008-11-06 |
JP2008269197A5 JP2008269197A5 (ja) | 2010-03-11 |
JP4514768B2 true JP4514768B2 (ja) | 2010-07-28 |
Family
ID=40048627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007110019A Expired - Fee Related JP4514768B2 (ja) | 2007-04-19 | 2007-04-19 | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8386526B2 (ja) |
JP (1) | JP4514768B2 (ja) |
CN (1) | CN101657818B (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4502223B2 (ja) | 2007-12-05 | 2010-07-14 | 株式会社エスグランツ | ビット列のマージソート装置、方法及びプログラム |
JP4498409B2 (ja) * | 2007-12-28 | 2010-07-07 | 株式会社エスグランツ | データベースのインデックスキー更新方法及びプログラム |
WO2010036889A1 (en) | 2008-09-25 | 2010-04-01 | Bakbone Software, Inc. | Remote backup and restore |
EP2515245A1 (en) | 2009-11-30 | 2012-10-24 | S. Grants Co., Ltd. | Bit stream retrieval device, retrieval method, and program |
CN102193941B (zh) * | 2010-03-12 | 2013-09-18 | 富士通株式会社 | 数据处理装置和为值串形式索引值建立索引的方法 |
JP5473893B2 (ja) * | 2010-12-28 | 2014-04-16 | 株式会社高速屋 | コード列検索装置、検索方法及びプログラム |
US9026496B1 (en) * | 2011-09-30 | 2015-05-05 | Emc Corporation | Efficient building of restore list |
JP6407946B2 (ja) * | 2016-12-12 | 2018-10-17 | ファナック株式会社 | 機器情報及び位置情報の管理装置及び管理システム |
CN107451486B (zh) * | 2017-06-30 | 2021-05-18 | 华为技术有限公司 | 一种文件系统的权限设置方法及装置 |
US11308063B2 (en) * | 2019-12-30 | 2022-04-19 | Yahoo Assets Llc | Data structure to array conversion |
CN113760394B (zh) * | 2020-06-03 | 2022-05-13 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
JP4271214B2 (ja) | 2006-07-07 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
JP4271227B2 (ja) | 2006-10-30 | 2009-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
-
2007
- 2007-04-19 JP JP2007110019A patent/JP4514768B2/ja not_active Expired - Fee Related
-
2008
- 2008-04-14 CN CN2008800122779A patent/CN101657818B/zh not_active Expired - Fee Related
-
2009
- 2009-10-19 US US12/588,531 patent/US8386526B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101657818B (zh) | 2013-07-10 |
US20100042598A1 (en) | 2010-02-18 |
JP2008269197A (ja) | 2008-11-06 |
CN101657818A (zh) | 2010-02-24 |
US8386526B2 (en) | 2013-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4514768B2 (ja) | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム | |
JP4271227B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4527753B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
WO2009084145A1 (ja) | データベースのインデックスキー更新方法及びプログラム | |
JP4502223B2 (ja) | ビット列のマージソート装置、方法及びプログラム | |
JP4402120B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4514771B2 (ja) | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム | |
CN102541995B (zh) | 对散列序列矩阵的索引和查询 | |
JP5473893B2 (ja) | コード列検索装置、検索方法及びプログラム | |
JP4379894B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4439013B2 (ja) | ビット列検索方法及び検索プログラム | |
US20110246451A1 (en) | Storage device having full-text search function | |
EP2149845A1 (en) | Coupled node tree save/restore method, longest consistence/shortest consistence retrieval method, bit retrieval method and memory medium | |
JP4417431B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP2009251840A (ja) | ビット列検索装置、検索方法及びプログラム | |
WO2009090697A1 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4813575B2 (ja) | ビット列検索装置 | |
CN117454849A (zh) | 一种文字转换方法、装置、电子设备和存储介质 | |
JP2009199577A (ja) | ビット列検索装置、検索方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100126 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100126 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20100126 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20100210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100223 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100416 |
|
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: 20100511 |
|
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: 20100511 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130521 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |