JP2008269197A - カップルドノードツリーの退避/復元方法及びプログラム - Google Patents
カップルドノードツリーの退避/復元方法及びプログラム Download PDFInfo
- Publication number
- JP2008269197A JP2008269197A JP2007110019A JP2007110019A JP2008269197A JP 2008269197 A JP2008269197 A JP 2008269197A JP 2007110019 A JP2007110019 A JP 2007110019A JP 2007110019 A JP2007110019 A JP 2007110019A JP 2008269197 A JP2008269197 A JP 2008269197A
- Authority
- JP
- Japan
- Prior art keywords
- node
- tree
- coupled
- array
- representative
- 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
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)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】カップルドノードツリーはルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対からなる。ブランチノードはビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含む。リーフノードは検索対象のビット列からなるインデックスキーを含む。カップルドノードツリーのノードは深さ優先探索順に退避される。退避された順にノードを読み出し、ノードを復元すべき位置の位置情報をスタックに格納し、ブランチノードが続く間は子ノードを順次復元し、リーフノードが読み出されたらリーフノードを復元して、スタックを遡って次に復元すべきノードを決定する処理の繰り返しにより、カップルドノードツリーは復元される。
【選択図】図10A
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 (16)
- ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、
前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、
前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、
前記ツリーの任意のノードを検索開始ノードとして、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいは該代表ノードと対になる非代表ノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されたカップルドノードツリーの任意の部分木を、該カップルドノードツリーが配置されているのとは別の記憶領域に退避するカップルドノードツリーの退避方法であって、
退避しようとする前記部分木のルートノードを、ノードを退避する順序に対応する経路の開始点である巡回開始ノードとして指定し、
前記巡回開始ノードから、前記ノード対のうち代表ノードのみあるいは非代表ノードのみをリンクしてリーフノードに至るまで巡回しながら、前記巡回開始ノードから前記リーフノードに至る前記経路上の各ノードについて、当該ノードの位置を示す前記位置情報を順次スタックに格納するとともに当該ノードの内容を順次前記別の記憶領域に退避し、
代表ノードあるいは非代表ノードの位置情報が得られるまで前記スタックのポップ動作を繰り返し行って該スタックから該位置情報を読み出し、該位置情報が読み出された前記代表ノードあるいは前記非代表ノードとノード対をなす非代表ノードあるいは代表ノードを、新たな前記巡回開始ノードとして指定して前記ノードの巡回と退避を繰り返す、
ことを特徴とするカップルドノードツリーの退避方法。 - 前記カップルドノードツリーは配列に記憶され、前記位置情報は、該位置情報に対応する前記ノードが格納された前記配列の配列要素の配列番号である、ことを特徴とする請求項1記載のカップルドノードツリーの退避方法。
- 前記別の記憶領域に退避される前記内容には、前記ブランチノードを退避する場合は前記弁別ビット位置が含まれ、前記リーフノードを退避する場合は前記インデックスキーが含まれる、ことを特徴とする請求項1記載のカップルドノードツリーの退避方法。
- 前記ブランチノードと前記リーフノードを区別する種別情報が前記ブランチノードと前記リーフノードの双方に含まれ、前記種別情報も退避されることを特徴とする請求項3記載のカップルドノードツリーの退避方法。
- 前記ブランチノードに含まれる前記位置情報は退避されないことを特徴とする請求項3記載のカップルドノードツリーの退避方法。
- 前記別の記憶領域は配列であることを特徴とする請求項1記載のカップルドノードツリーの退避方法。
- ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたは
ブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、
前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、
前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、
前記ツリーの任意のノードを検索開始ノードとして、前記ブランチノードにおいて該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいは該代表ノードと対になる非代表ノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索の結果である検索結果キーとするように構成されたカップルドノードツリーの任意の部分木を、伝送媒体を介して外部装置に送信することによって該外部装置に退避するカップルドノードツリーの退避方法であって、
退避しようとする前記部分木のルートノードを、ノードを退避する順序に対応する経路の開始点である巡回開始ノードとして指定し、
前記巡回開始ノードから、前記ノード対のうち代表ノードのみあるいは非代表ノードのみをリンクしてリーフノードに至るまで巡回しながら、前記巡回開始ノードから前記リーフノードに至る前記経路上の各ノードについて、当該ノードの位置を示す前記位置情報を順次スタックに格納するとともに当該ノードの内容を順次前記伝送媒体を介して前記外部装置に送信し、
代表ノードあるいは非代表ノードの位置情報が得られるまで前記スタックのポップ動作を繰り返し行って該スタックから該位置情報を読み出し、該位置情報が読み出された前記代表ノードあるいは前記非代表ノードとノード対をなす非代表ノードあるいは代表ノードを、新たな前記巡回開始ノードとして指定して前記ノードの巡回と送信を繰り返す、
ことを特徴とするカップルドノードツリーの退避方法。 - 請求項1記載のカップルドノードツリーの退避方法により前記別の記憶領域に退避された退避情報から、退避された順番で順次ノードを復元することによって前記カップルドノードツリーを復元するカップルドノードツリーの復元方法であって、
前記退避情報から順次ノードを読み出し、
復元しようとするカップルドノードツリーのルートノードが、復元される順番にあるときは、該ルートノード用の記憶領域を取得し、読み出したノードの内容を該記憶領域に格納することにより、該ルートノードを復元し、
読み出されたノードがブランチノードである間は順次、前記退避情報において該ブランチノードの次の順番にある子ノードを、該子ノードと対になるノード用の記憶領域も取得しながら、該子ノード用の記憶領域を取得して読み出した該子ノードの内容を前記記憶領域に格納することによって復元するとともに、該子ノードを含むノード対の代表ノードの前記記憶領域の位置情報を前記ブランチノードに書き込み、リーフノードが読み出されたら、復元中の前記カップルドノードツリーのツリー構造をルートノードに向かって遡って、取得済みだがノードの内容が格納されていない記憶領域を探索し、該探索により見つかった該記憶領域を、次に復元すべきノードの内容を格納すべき記憶領域として決定することを繰り返す、
ことを特徴とするカップルドノードツリーの復元方法。 - 前記カップルドノードツリーは配列に復元され、復元された前記ブランチノードに書き込まれる前記位置情報は、該位置情報に対応する前記代表ノードを格納する配列要素の配列番号である、ことを特徴とする請求項8記載のカップルドノードツリーの復元方法。
- 前記退避情報において、前記ブランチノードを退避した前記内容には、前記弁別ビット位置が含まれるが前記位置情報が含まれず、前記リーフノードを退避した前記内容には前記インデックスキーが含まれることを特徴とする請求項8記載のカップルドノードツリーの復元方法。
- 復元しようとする前記カップルドノードツリーは、前記退避情報に退避された元の前記カップルドノードツリーの部分木に相当し、
該部分木の前記ルートノードよりも前の順番で前記退避情報に退避されたノードの内容をスキップし、該部分木の該ルートノードの前記内容から順次、前記退避情報を読み出し、
前記リーフノードが読み出されたときの前記探索の過程で、復元中の前記カップルドノードツリーのルートノードまで遡ったら、復元を終了する、
ことを特徴とする請求項8記載のカップルドノードツリーの復元方法。 - 前記退避情報は配列に格納されていることを特徴とする請求項8記載のカップルドノードツリーの復元方法。
- 請求項7記載のカップルドノードツリーの退避方法により前記外部装置に送信された退避情報を受信し、送信された順番で順次ノードを前記外部装置の記憶領域に復元することによって前記カップルドノードツリーを復元するカップルドノードツリーの復元方法であって、
前記退避情報から順次ノードを受信して読み取り、
復元しようとするカップルドノードツリーのルートノードが、復元される順番にあるときは、該ルートノード用の記憶領域を取得し、読み取ったノードの内容を該記憶領域に格納することにより、該ルートノードを復元し、
読み取られたノードがブランチノードである間は順次、前記退避情報において該ブランチノードの次の順番にある子ノードを、該子ノードと対になるノード用の記憶領域も取得しながら、該子ノード用の記憶領域を取得して読み取った該子ノードの内容を前記記憶領域に格納することによって復元するとともに、該子ノードを含むノード対の代表ノードの前記記憶領域の位置情報を前記ブランチノードに書き込み、リーフノードが読み取られたら、復元中の前記カップルドノードツリーのツリー構造をルートノードに向かって遡って、取得済みだがノードの内容が格納されていない記憶領域を探索し、該探索により見つかった該記憶領域を、次に復元すべきノードの内容を格納すべき記憶領域として決定することを繰り返す、
ことを特徴とするカップルドノードツリーの復元方法。 - 請求項1〜7のいずれか1項に記載のカップルドノードツリーの退避方法または請求項8〜13のいずれか1項に記載のカップルドノードツリーの復元方法をコンピュータに実行させるためのプログラム。
- 請求項1記載のカップルドノードツリーの退避方法により前記別の記憶領域に退避されたカップルドノードツリーのノード列のデータ構造。
- 請求項8または13記載のカップルドノードツリーの復元方法により前記カップルドノードツリーを復元可能なように構成されたデータ構造。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007110019A JP4514768B2 (ja) | 2007-04-19 | 2007-04-19 | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム |
PCT/JP2008/000983 WO2008132806A1 (ja) | 2007-04-19 | 2008-04-14 | カップルドノードツリーの退避/復元方法、最長一致/最短一致検索方法、ビット列検索方法及び記憶媒体 |
CN2008800122779A CN101657818B (zh) | 2007-04-19 | 2008-04-14 | 配对节点树保存/复原方法、最长一致/最短一致检索方法、比特序列检索方法以及存储介质 |
EP08738589.4A EP2149845B1 (en) | 2007-04-19 | 2008-04-14 | Coupled node tree backup/restore apparatus, backup/restore method, and program |
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 true JP2008269197A (ja) | 2008-11-06 |
JP2008269197A5 JP2008269197A5 (ja) | 2010-03-11 |
JP4514768B2 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009157853A (ja) * | 2007-12-28 | 2009-07-16 | S Grants Co Ltd | データベースのインデックスキー更新方法及びプログラム |
WO2011064984A1 (ja) | 2009-11-30 | 2011-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
US8332410B2 (en) | 2007-12-05 | 2012-12-11 | KOUSOKUYA, Inc. | Bit string merge sort device, method, and program |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452731B2 (en) * | 2008-09-25 | 2013-05-28 | Quest Software, Inc. | Remote backup and restore |
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 | 情報検索方法及び装置 |
Non-Patent Citations (3)
Title |
---|
JPN6010008422, セジウィック R., アルゴリズム, 19901010, 第1巻, 第1版, 49−54ページ, 株式会社近代科学社 * |
JPN6010008426, 後藤 大地, "さわって学ぶデータ構造、つかって身につくアルゴリズム こちらJava API研究所!", JAVA PRESS, 20040215, 第34巻, 202−210ページ, JP, (株)技術評論社 * |
JPN6010008430, "用語解説 パトリシアツリー", 人工知能学会誌, 19960301, 第11巻 第2号, 337−339ページ, JP, 社団法人人工知能学会 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8332410B2 (en) | 2007-12-05 | 2012-12-11 | KOUSOKUYA, Inc. | Bit string merge sort device, method, and program |
JP2009157853A (ja) * | 2007-12-28 | 2009-07-16 | S Grants Co Ltd | データベースのインデックスキー更新方法及びプログラム |
JP4498409B2 (ja) * | 2007-12-28 | 2010-07-07 | 株式会社エスグランツ | データベースのインデックスキー更新方法及びプログラム |
US8103697B2 (en) | 2007-12-28 | 2012-01-24 | S. Grants Co., Ltd. | Database index key update method and program |
WO2011064984A1 (ja) | 2009-11-30 | 2011-06-03 | 株式会社エスグランツ | ビット列検索装置、検索方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US8386526B2 (en) | 2013-02-26 |
JP4514768B2 (ja) | 2010-07-28 |
CN101657818A (zh) | 2010-02-24 |
US20100042598A1 (en) | 2010-02-18 |
CN101657818B (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4514768B2 (ja) | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム | |
JP4271227B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4498409B2 (ja) | データベースのインデックスキー更新方法及びプログラム | |
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4527753B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4502223B2 (ja) | ビット列のマージソート装置、方法及びプログラム | |
JP4514771B2 (ja) | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム | |
JP4402120B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
CN102541995B (zh) | 对散列序列矩阵的索引和查询 | |
JP5473893B2 (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) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4567754B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP2011018296A (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 |