JP4498409B2 - データベースのインデックスキー更新方法及びプログラム - Google Patents
データベースのインデックスキー更新方法及びプログラム Download PDFInfo
- Publication number
- JP4498409B2 JP4498409B2 JP2007338413A JP2007338413A JP4498409B2 JP 4498409 B2 JP4498409 B2 JP 4498409B2 JP 2007338413 A JP2007338413 A JP 2007338413A JP 2007338413 A JP2007338413 A JP 2007338413A JP 4498409 B2 JP4498409 B2 JP 4498409B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- key
- tree
- data
- search
- 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
- 238000000034 method Methods 0.000 title claims abstract description 163
- 238000012545 processing Methods 0.000 claims abstract description 109
- 230000008569 process Effects 0.000 claims description 125
- 238000003780 insertion Methods 0.000 claims description 94
- 230000037431 insertion Effects 0.000 claims description 94
- 238000012217 deletion Methods 0.000 claims description 56
- 230000037430 deletion Effects 0.000 claims description 56
- 241000255925 Diptera Species 0.000 claims 6
- 238000013500 data storage Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 18
- 241000712062 Patricia Species 0.000 description 10
- 230000001174 ascending effect Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明の背景技術の1つとして、まず上述のビット列の検索処理について説明する。
ある検索キーで検索を行うとき、ルートノードから順次各ノードに保持される検索キーの検査ビット位置を検査していき、検査ビット位置のビット値が1であるか0であるか判定を行い、1であれば右リンクをたどり、0であれば左リンクをたどる。そして、リンク先のノードの検査ビット位置がリンク元のノードの検査ビット位置より大きくなければ、すなわち、リンク先が下方でなく上方に戻れば(図1において点線で示されたこの逆戻りのリンクをバックリンクという)、リンク先のノードのインデックスキーと検索キーの比較を行う。比較の結果、等しければ検索成功であり、等しくなければ検索失敗であることが保証されている。
データベースシステムの機能として、データの更新機能は必須である。データベースに保管されるデータ量が増大するのに伴って、例えばバッチ処理により既存のデータベースに対して大量のデータの追加や削除を行おうとすると、その作業に要する時間が長くなるという不都合が生じている。
その際、旧データあるいは新データのインデックスキーをリーフノードのインデックスキーとして格納したカップルドノードツリーである差分ツリーを取得し、差分ツリーから新データあるいは旧データのインデックスキーを検索キーとして検索を行い、検索キーと一致したインデックスキーは差分ツリーから削除し、旧データ中のインデックスキーと一致しない検索キーは差分データの挿入キーあるいは削除キーとし、新データあるいは旧データの全てのインデックスキーによる検索が終了した後に差分ツリーに残った旧データのインデックスキーを差分データの削除キーあるいは挿入キーとして差分データを作成する。
図2Aを参照すると、ノード101が配列100の配列番号10の配列要素に配置されている。ノード101はノード種別102、弁別ビット位置103及び代表ノード番号104で構成されている。ノード種別102は0であり、ノード101がブランチノードであることを示している。弁別ビット位置103には1が格納されている。代表ノード番号104にはリンク先のノード対の代表ノードの配列番号20が格納されている。なお、以下では表記の簡略化のため、代表ノード番号に格納された配列番号を代表ノード番号ということもある。また、代表ノード番号に格納された配列番号をそのノードに付した符号あるいはノード対に付した符号で表すこともある。
ノード[0]112、ノード[1]113、ノード122、及びノード123の格納された配列要素にそれぞれ付された0あるいは1は、検索キーで検索を行う場合にノード対のどちらのノードにリンクするかを示すものである。前段のブランチノードの弁別ビット位置にある検索キーのビット値である0か1を代表ノード番号に加えた配列番号のノードにリンクする。
図2Bは、カップルドノードツリーのツリー構造を概念的に示す図である。図示の6ビットのインデックスキーは、図1に例示されたパトリシアツリーのものと同じである。
ツリー構造としては、ルートノード210aの下にノート対201bが、その下層にノード対201cとノード対201fが配置され、ノード対201fの下層にはノード対201hとノード対201gが配置されている。ノード対201cの下にはノード対201dが、さらにその下にはノード対201eが配置されている。
まず、ビット列“100010”を検索キーとしてルートノード210aから処理をスタートする。ルートノード210aの弁別ビット位置230aは0であるので、検索キー“100010”の弁別ビット位置が0のビット値をみると1である。そこで代表ノード番号の格納された配列番号220aに1を加えた配列番号の配列要素に格納されたノード211bにリンクする。ノード211bの弁別ビット位置231bには2が格納されているので、検索キー“100010”の弁別ビット位置が2のビット値をみると0であるから、代表ノード番号の格納された配列番号221bの配列要素に格納されたノード210fにリンクする。
カップルドノードツリーの構成はインデックスキーの集合により規定される。図2Bの例で、ルートノード210aの弁別ビット位置が0であるのは、図2Bに例示されたインデックスキーに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と比較することにより検索が失敗したことが分かる。
図3Aは、本発明の原理を模式的に示す図である。図3Aの(1)に示すのは、旧データと新データから差分データを作成する原理を説明する図であり、図3Aの(2)に示すのは、差分データにより旧データを新データに更新する原理を説明する図である。
なお、上述の説明では、新データに含まれる全てのキーで旧データに含まれるキーを検索する、としたが、差分データを作成するのであるから、旧データに含まれる全てのキーで新データに含まれるキーを検索する、として差分データを作成してもよいことは明らかである。その場合は、新データに残存したキーが挿入キーとして差分データに取り込まれ、新データと一致しなかった旧データが削除キーとして差分データに取り込まれる。
差分データ作成装置300において作成された差分データは、差分データ更新装置400a〜400xに送られ、それぞれの差分データ格納領域420a〜420xに格納され、それぞれのインデックス格納領域421a〜421xに格納された旧データを新データに更新するために用いられる。特に図示はしていないが、差分データ更新装置400a〜400xにおいても、データ処理装置や、差分データ格納領域、インデックス格納領域及びその他の記憶領域を有するデータ格納装置が備えられている。
なお、以下においては、上述の例えば差分データ格納領域320に格納された差分データを差分データ320と表記するように、あるデータ格納領域に格納されるデータ自体にデータ格納領域の符号を付して説明する場合がある。
図に示すように、差分データ作成装置300は、差分ツリー取得手段330と差分データ作成手段331の機能ブロックを含む。これらの機能ブロックは、図3Bに例示するハードウェアと以下において説明する処理フローを実行するソフトウェアにより実現される。
差分ツリー取得手段330は、旧データあるいは新データのインデックスキーをカップルドノードツリーのリーフノードのインデックスキーとして格納した、差分ツリーを取得する。
差分データ作成手段331は、差分ツリーのルートノードを検索開始ノードとして新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した検索結果キーであるインデックスキーは差分ツリーから削除し、検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとする。そして、新データあるいは旧データの全てのインデックスキーによる検索が終了した後に差分ツリーに削除されずに残ったインデックスキーを差分データの削除キーあるいは挿入キーとして差分データを作成する。
図に示すように、差分データ更新装置400は、更新ツリー取得手段422と新旧インデックスキー更新手段423の機能ブロックを含む。これらの機能ブロックは、図3Bに示す差分データ更新装置400a〜400xについて説明したハードウェアと以下において説明する処理フローを実行するソフトウェアにより実現される。
更新ツリー取得手段422は、旧データのインデックスキーをカップルドノードツリーのリーフノードのインデックスキーとして格納した更新ツリーを取得する。
新旧インデックスキー更新手段423は、差分データ作成手段331が作成した差分データから取り出した削除キーを更新ツリーから削除し、差分データから取り出した挿入キーを更新ツリーに挿入することにより新データのインデックスキーをリーフノードのインデックスキーとして格納した新データカップルドノードツリーを作成し、新データカップルドノードツリーに基づいて、旧データを新データに更新する。
まず、ステップS401で、検索開始ノードの配列番号を取得する。取得された配列番号に対応する配列は、カップルドノードツリーを構成する任意のノードを格納したものである。検索開始ノードの指定は、後に説明する各種応用検索において行われる。
取得された検索開始ノードの配列番号は、図示しない検索開始ノード設定エリアに設定されるが、この検索開始ノード設定エリアは、先に述べた「処理の途中で得られた各種の値を後の処理で用いるためにそれぞれの処理に応じた一時記憶装置」の一つである。以下の説明では、「図示しない検索開始ノード設定エリアに設定する」のような表現に変えて、「検索開始ノードの配列番号を得る。」、「検索開始ノードとして設定する」あるいは単に「検索開始ノードに設定する」のように記述することもある。
次にステップS710において、図4に示す検索処理を実行し検索結果のインデックスキーを得て、ステップS711に進む。
ステップS712において、配列から空きのノード対を求め、そのノード対のうち代表ノードとなるべき配列要素の配列番号を取得する。
ステップS714に進み、ステップS712で得た代表ノードの配列番号にステップS713で得たブール値を加算した配列番号を得る。
ステップS714で得た配列番号は、挿入キーをインデックスキーとして持つリーフノードが格納される配列要素の配列番号であり、ステップS715で得た配列番号は、そのリーフノードと対を成すブランチノードあるいはリーフノードが格納される配列要素のものである。
ステップS716〜ステップS723までの処理は、挿入するノード対のカップルドノードツリー上の位置を求める処理であり、ステップS724以下の処理は各ノードにデータを設定して挿入処理を完成させる処理である。
ステップS717に進み、ステップS716で得た差分ビット列から、上位0ビット目から見た最初の不一致ビットのビット位置を得る。この処理は、例えばプライオリティエンコーダを有するCPUではそこに差分ビット列を入力し、不一致のビット位置を得ることができる。また、ソフト的にプライオリティエンコーダと同等の処理を行い最初の不一致ビットのビット位置を得ることも可能である。
ステップS720に進み、ステップS719で取り出した配列番号の配列要素を配列からノードとして読み出す。
次にステップS722に進み、ステップS721で取り出した弁別ビット位置がステップS717で得たビット位置より上位の位置関係か判定する。ここで上位の位置関係とは、ビット列のより左側の位置、すなわちビット位置の値が小さい位置であることとする。
ステップS724では探索経路スタックからスタックポインタの指す配列番号を取り出す。
ステップS726に進み、配列からステップS724で得た配列番号の配列要素を読み出す。
最後にステップS728において、ステップS724で得た配列番号の指す配列要素のノード種別に0(ブランチノード)を、弁別ビット位置にステップS717で得たビット位置を、代表ノード番号にステップS712で得た配列番号を書き込み、処理を終了する。
まず、ステップS102において、配列から空きのノード対を求め、そのノード対のうち代表ノードとなるべき配列要素の配列番号を取得する。次にステップS103において、ステップS102で得た配列番号に0を加えた配列番号を求める。(実際には、ステップS102で取得した配列番号に等しい。)。さらにステップS104において、ステップS103で得た配列番号の配列要素に、挿入するルートノードのノード種別に1(リーフノード)とインデックスキーに挿入キーを書き込み、ステップS105で、ステップS102で取得したルートノードの配列番号を登録して処理を終了する。
次にステップS810において、図4に示す検索処理を実行し検索結果のインデックスキーを得て、ステップS811に進む。
まず、ステップS812で探索経路スタックに2つ以上の配列番号が格納されているか判定する。2つ以上の配列番号が格納されていないということは、言い換えれば1つだけで、その配列番号はルートノードの格納された配列要素のものである。その場合はステップS818に移行し、ステップS801で得たルートノードの配列番号に係るノード対を削除する。次にステップS819に進み、登録されていたルートノードの配列番号を削除して処理を終了する。
以上、カップルドノードツリーに関する本発明の前提となる技術を説明したが、必要とあれば、上述の特許出願の明細書及び図面の記載を参照されたい。
図9は、本発明の一実施形態における旧データと新データにより差分データを作成する処理の概要を説明する図である。図9に示す例では、旧データ321はキー321a“010010”、321b“010011”、321c“100011”、321d“101011”及び321e“101100”で構成され、新データ322はキー322a“010010”、322b“010110”、322c“100010”、322d“100011”及び322e“101100”で構成されている。
図10に示すように、ステップS1001において、旧データの全てのキーを差分ツリーに挿入する。この処理の詳細は、後に図11を参照して行う。なお、旧データがすでにカップルドノードツリーに格納されている、すなわちデータベースのインデックスがカップルドノードツリーのデータ構造を有しているものであれば、ステップ1001に代えてその登録されたルートノードの配列番号を取得するだけでよい。また、カップルドノードツリーを配列に格納しない場合であれば、ルートノードの位置を示す位置情報を取得すればよい。
旧データから全てのキーを取り出し済みでなければ、ステップS1103において旧データからキーを取り出し、ステップS1104に進んで取り出したキーを挿入キーとして、図7A〜図7Dに示す処理により、差分ツリーにキーを挿入する。
図12は、差分データに更新データを格納する処理フローを説明する図である。図12に示す処理フローは、図10に示す旧データと新データにより差分データを作成する処理フローのステップS1007で実行される、削除キーを挿入キーとして差分データを作成する処理に適用可能なものである。
次にステップS1203において、ステップS1201とステップS1202で更新データ設定エリアに設定された更新データを差分データ格納領域に格納して処理を終了する。
次に、図14、図15を参照して、本発明に係る差分データにより旧データを新データに更新する処理について説明する。
また、差分データ420aのうち、挿入キーのみ取り出して旧データ421aとともに更新前の更新ツリー409a−1を作成し、その後削除処理のみによって更新後の更新ツリー409a−2を作成する等種々の変形が可能である。
図15に示すように、ステップS1501において、旧データの全てのキーを更新ツリーに挿入する。この処理は、図11を参照して説明した旧データによりカップルドノードツリーを作成する処理により、実現される。先に述べたのと同様に、旧データがすでにカップルドノードツリーに格納されている、すなわちデータベースのインデックスがカップルドノードツリーのデータ構造を有しているものであれば、ステップ1501に代えてその登録されたルートノードの配列番号あるいはルートノードの位置を示す位置情報を取得するだけでよい。さらにその場合、データベースのインデックスがカップルドノードツリーのデータ構造を有しているのであるから、後記ステップS1509の処理が不要になることも明らかである。
次のステップS1505で、更新データから更新種別を取り出し、次にステップS1506において、ステップS1505で取り出した更新種別を判定する。
ステップS1507では、図8A、図8Bに示す削除処理により、更新キーを削除キーとして更新ツリーより削除して、ステップS1503に戻る。
全ての更新データが処理済となってステップS1503から分岐したステップS1509においては、図6に示す昇順取り出し処理により、更新ツリーの全てのキーを新データとして取り出し、処理を終了する。
100 配列
101 ノード
102 ノード種別
103 弁別ビット位置
104 代表ノード番号
111 ノード対
112 ノード[0]、代表ノード
113 ノード[1]、代表ノードと対をなすノード
118 インデックスキー
300 差分データ作成装置
301 データ処理装置
302 中央処理装置
303 キャッシュメモリ
304 バス
305 主記憶装置
306 外部記憶装置
307 通信装置
309 配列
310 探索経路スタック
320 差分データ格納領域
321 旧データ格納領域
322 新データ格納領域
330 差分ツリー取得手段
331 差分データ作成手段
400 差分データ更新装置
420 差分データ格納領域
421 インデックス格納領域
422 更新ツリー取得手段
423 新旧インデックスキー更新手段
Claims (15)
- コンピュータが実行するデータベースのインデックスキー更新方法であって、データベースのインデックスキーの旧データに対して該旧データと置き換えられる新しいインデックスキーの新データが供給されたときに、前記インデックスキーの更新を行うデータベースのインデックスキー更新方法において、
前記旧データあるいは新データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを差分ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データあるいは新データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データあるいは新データのインデックスキーにより前記差分ツリーを生成する差分ツリー取得ステップと、
前記差分ツリーのルートノードを前記検索開始ノードとして前記新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した前記検索結果キーであるインデックスキーは差分ツリーから削除し、前記検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとし、前記新データあるいは旧データの全てのインデックスキーによる検索が終了した後に前記差分ツリーに削除されずに残ったインデックスキーを差分データの削除キーあるいは挿入キーとして差分データを作成する差分データ作成ステップと、
前記旧データのインデックスキーが、前記カップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを更新ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データのインデックスキーにより前記更新ツリーを生成する更新ツリー取得ステップと、
前記差分データから取り出した削除キーを前記更新ツリーから削除し、前記差分データから取り出した挿入キーを前記更新ツリーに挿入することにより新データのインデックスキーをリーフノードのインデックスキーとして格納した新データカップルドノードツリーを作成し、該新データカップルドノードツリーに基づいて、前記旧データを前記新データに更新する新旧インデックスキー更新ステップと、
を備えることを特徴とするインデックスキー更新方法。 - コンピュータが実行する差分データ作成方法であって、データベースのインデックスキーの旧データに対して該旧データと置き換えられる新しいインデックスキーの新データが供給されたときに、前記インデックスキーの更新を行うデータベースのインデックスキー更新に用いる前記旧データと前記新データの差分データ作成方法において、
前記旧データあるいは新データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを差分ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データあるいは新データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データあるいは新データのインデックスキーにより前記差分ツリーを生成する差分ツリー取得ステップと、
前記差分ツリーのルートノードを前記検索開始ノードとして前記新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した前記検索結果キーであるインデックスキーは差分ツリーから削除し、前記検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとし、前記新データあるいは旧データの全てのインデックスキーによる検索が終了した後に前記差分ツリーに削除されずに残ったインデックスキーを差分データの削除キーあるいは挿入キーとして差分データを作成する差分データ作成ステップと、
を備えることを特徴とする差分データ作成方法。 - 請求項2記載の差分データ作成方法において、
前記カップルドノードツリーは、配列に記憶され、前記リンク先のノード対の代表ノードの位置を示す情報は、そのノードが格納された前記配列の配列要素の配列番号であることを特徴とする差分データ作成方法。 - 請求項3記載の差分データ作成方法において、
前記差分ツリー取得ステップは、前記差分ツリーを生成する際に、前記旧データあるいは新データから最初に取り出したインデックスキーを含むリーフノードを該差分ツリーのルートノードとした後、それ以後前記旧データあるいは新データから取り出した前記インデックスキーを前記検索キーとして該差分ツリーから該当するリーフノードを検索するとともに、該リーフノードに至るまでたどったリンク経路のブランチノード及び該リーフノードが格納された配列要素の配列番号をスタックに順次格納し、前記検索キーと前記該当するリーフノードに含まれるインデックスキーの間で大小比較とビット列比較を行い、ビット列比較で異なるビット値となる先頭のビット位置と前記スタックに格納されているブランチノードの弁別ビット位置との相対的位置関係により挿入されるインデックスキーを含むリーフノードともう一方のノードからなるノード対の挿入位置を決定し、前記大小関係により挿入するインデックスキーを含むリーフノードを前記挿入されるノード対のどちらのノードとするかを決定するインデックスキーの挿入処理を繰り返すものであることを特徴とする差分データ作成方法。 - コンピュータが実行する差分データ更新方法であって、データベースのインデックスキーの旧データと該旧データと置き換えられる新しいインデックスキーの新データの差分データを用いて前記インデックスキーの更新を行うインデックスキーの差分データ更新方法において、
前記旧データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを更新ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データのインデックスキーにより前記更新ツリーを生成する更新ツリー取得ステップと、
前記旧データあるいは新データのインデックスキーを前記カップルドノードツリーのリーフノードのインデックスキーとして格納した差分ツリーのルートノードを前記検索開始ノードとして前記新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した前記検索結果キーであるインデックスキーは差分ツリーから削除し、前記検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとし、前記新データあるいは旧データの全てのインデックスキーによる検索が終了した後に前記差分ツリーに削除されずに残ったインデックスキーを前記差分データの削除キーあるいは挿入キーとして作成した差分データから取り出した削除キーを前記更新ツリーから削除し、前記差分データから取り出した挿入キーを前記更新ツリーに挿入することにより新データのインデックスキーをリーフノードのインデックスキーとして格納した新データカップルドノードツリーを作成し、該新データカップルドノードツリーに基づいて、前記旧データを前記新データに更新する新旧インデックスキー更新ステップと、
を備えることを特徴とするインデックスキーの差分データ更新方法。 - 請求項5記載のインデックスキーの差分データ更新方法において、
前記カップルドノードツリーは、配列に記憶され、前記リンク先のノード対の代表ノードの位置を示す情報は、そのノードが格納された前記配列の配列要素の配列番号であることを特徴とするインデックスキーの差分データ更新方法。 - 請求項6記載のインデックスキーの差分データ更新方法において、
前記更新ツリー取得ステップは、前記更新ツリーを生成する際に、前記旧データから最初に取り出したインデックスキーを含むリーフノードを該更新ツリーのルートノードとした後、それ以後前記旧データから取り出した前記インデックスキーを前記検索キーとして該更新ツリーから該当するリーフノードを検索するとともに、該リーフノードに至るまでたどったリンク経路のブランチノード及び該リーフノードが格納された配列要素の配列番号をスタックに順次格納し、前記検索キーと前記該当するリーフノードに含まれるインデックスキーの間で大小比較とビット列比較を行い、ビット列比較で異なるビット値となる先頭のビット位置と前記スタックに格納されているブランチノードの弁別ビット位置との相対的位置関係により挿入されるインデックスキーを含むリーフノードともう一方のノードからなるノード対の挿入位置を決定し、前記大小関係により挿入するインデックスキーを含むリーフノードを前記挿入されるノード対のどちらのノードとするかを決定するインデックスキーの挿入処理を繰り返すものであることを特徴とするインデックスキーの差分データ更新方法。 - 請求項7記載のインデックスキーの差分データ更新方法において、
前記更新ツリー取得ステップは、前記更新ツリーを生成する際に、前記旧データのインデックスキーに加えて、前記差分データの挿入キーを取り出して前記インデックスキーの挿入処理を繰り返すものであり、
前記新旧インデックスキー更新ステップは、前記差分データから取り出した削除キーを前記更新ツリーから削除することにより新データのインデックスキーをリーフノードのインデックスキーとして格納した新データカップルドノードツリーを作成し、該新データカップルドノードツリーに基づいて、前記旧データを前記新データに更新するものであることを特徴とするインデックスキーの差分データ更新方法。 - 請求項5記載のインデックスキーの差分データ更新方法において、
前記旧データのインデックスキーはカップルドノードツリーに格納されており、
前記更新ツリー取得ステップは、該カップルドノードツリーのルートノードの位置を示す位置情報を取得するものであり、
前記新旧インデックスキー更新ステップは、前記新データカップルドノードツリーを作成することで前記旧データを前記新データに更新する、
ことを特徴とするインデックスキーの差分データ更新方法。 - データベースのインデックスキーの旧データに対して該旧データと置き換えられる新しいインデックスキーの新データが供給されたときに、前記インデックスキーの更新を行うデータベースのインデックスキー更新に用いる前記旧データと前記新データの差分データ作成装置において、
前記旧データあるいは新データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを差分ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データあるいは新データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データあるいは新データのインデックスキーにより前記差分ツリーを生成する差分ツリー取得手段と、
前記差分ツリーのルートノードを前記検索開始ノードとして前記新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した前記検索結果キーであるインデックスキーは差分ツリーから削除し、前記検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとし、前記新データあるいは旧データの全てのインデックスキーによる検索が終了した後に前記差分ツリーに削除されずに残ったインデックスキーを差分データの削除キーあるいは挿入キーとして差分データを作成する差分データ作成手段と、
を備えることを特徴とする差分データ作成装置。 - データベースのインデックスキーの旧データと該旧データと置き換えられる新しいインデックスキーの新データの差分データを用いて前記インデックスキーの更新を行うインデックスキーの差分データ更新装置において、
前記旧データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを更新ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データのインデックスキーにより前記更新ツリーを生成する更新ツリー取得手段と、
前記旧データあるいは新データのインデックスキーを前記カップルドノードツリーのリーフノードのインデックスキーとして格納した差分ツリーのルートノードを前記検索開始ノードとして前記新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した前記検索結果キーであるインデックスキーは差分ツリーから削除し、前記検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとし、前記新データあるいは旧データの全てのインデックスキーによる検索が終了した後に前記差分ツリーに削除されずに残ったインデックスキーを差分データの削除キーあるいは挿入キーとして作成した差分データから取り出した削除キーを前記更新ツリーから削除し、前記差分データから取り出した挿入キーを前記更新ツリーに挿入することにより新データのインデックスキーをリーフノードのインデックスキーとして格納した新データカップルドノードツリーを作成し、該新データカップルドノードツリーに基づいて、前記旧データを前記新データに更新する新旧インデックスキー更新手段と、
を備えることを特徴とするインデックスキーの差分データ更新装置。 - 請求項11記載のインデックスキーの差分データ更新装置において、
前記旧データのインデックスキーはカップルドノードツリーに格納されており、
前記更新ツリー取得手段は、該カップルドノードツリーのルートノードの位置を示す位置情報を取得するものであり、
前記新旧インデックスキー更新手段は、前記新データカップルドノードツリーを作成することで前記旧データを前記新データに更新する、
ことを特徴とするインデックスキーの差分データ更新装置。 - データベースのインデックスキーの旧データに対して該旧データと置き換えられる新しいインデックスキーの新データが供給されたときに、前記インデックスキーの更新を行うデータベースのインデックスキー更新に用いられるコンピュータ上で動作するプログラムにおいて、
前記旧データあるいは新データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを差分ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データあるいは新データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データあるいは新データのインデックスキーにより前記差分ツリーを生成する差分ツリー取得ステップと、
前記差分ツリーのルートノードを前記検索開始ノードとして前記新データあるいは旧データの全てのインデックスキーを検索キーとして検索を行い、検索キーと一致した前記検索結果キーであるインデックスキーは差分ツリーから削除し、前記検索結果キーであるインデックスキーと一致しない検索キーを差分データの挿入キーあるいは削除キーとし、前記新データあるいは旧データの全てのインデックスキーによる検索が終了した後に前記差分ツリーに削除されずに残ったインデックスキーを差分データの削除キーあるいは挿入キーとして差分データを作成する差分データ作成ステップと、
をコンピュータに実行させることを特徴とするプログラム。 - データベースのインデックスキーの旧データに対して該旧データと置き換えられる新しいインデックスキーの新データが供給されたときに、前記インデックスキーの更新を行うデータベースのインデックスキー更新に用いられるコンピュータ上で動作するプログラムにおいて、
前記旧データのインデックスキーが、
ルートノードと、隣接した記憶領域に配置されるブランチノードとリーフノードまたはブランチノード同士またはリーフノード同士のノード対、からなるビット列検索に用いるツリーであって、前記ルートノードは、ツリーの始点を表すノードであって、該ツリーのノードが1つのときは前記リーフノード、ツリーのノードが2つ以上のときは前記ブランチノードであり、前記ブランチノードは、ビット列検索を行う検索キーの弁別ビット位置とリンク先のノード対の一方のノードである代表ノードの位置を示す位置情報を含み、前記リーフノードは検索対象のビット列からなるインデックスキーを含み、前記ツリーの任意のノードを検索開始ノードとして前記ブランチノードにおいて、該ブランチノードに含まれる弁別ビット位置の検索キーのビット値に応じてリンク先のノード対の代表ノードかあるいはそれと隣接した記憶領域に配置されたノードにリンクすることを順次前記リーフノードに至るまで繰り返すことにより、前記リーフノードに格納されたインデックスキーを、前記検索開始ノードをルートノードとする前記ツリーの任意の部分木の前記検索キーによる検索結果である検索結果キーとするように構成されたカップルドノードツリーのリーフノードのインデックスキーとして格納されている場合は、該カップルドノードツリーを更新ツリーとし、登録されたルートノードの位置情報を取得し、前記旧データのインデックスキーが、カップルドノードツリーのリーフノードのインデックスキーとして格納されていない場合は、前記旧データのインデックスキーにより前記更新ツリーを生成する更新ツリー取得ステップと、
請求項13記載の前記差分データ作成ステップで作成された差分データから取り出した削除キーを前記更新ツリーから削除し、前記差分データから取り出した挿入キーを前記更新ツリーに挿入することにより新データのインデックスキーをリーフノードのインデックスキーとして格納した新データカップルドノードツリーを作成し、該新データカップルドノードツリーに基づいて、前記旧データを前記新データに更新する新旧インデックスキー更新ステップと、
をコンピュータに実行させることを特徴とするプログラム。 - 請求項13又は請求項14記載のプログラムを記憶したことを特徴とするコンピュータ読み取り可能な記憶媒体。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007338413A JP4498409B2 (ja) | 2007-12-28 | 2007-12-28 | データベースのインデックスキー更新方法及びプログラム |
EP08866463.6A EP2246796B1 (en) | 2007-12-28 | 2008-10-30 | Database index key update method and program |
CN2008801224040A CN101911060B (zh) | 2007-12-28 | 2008-10-30 | 数据库的索引关键字更新方法 |
PCT/JP2008/003123 WO2009084145A1 (ja) | 2007-12-28 | 2008-10-30 | データベースのインデックスキー更新方法及びプログラム |
US12/801,649 US8103697B2 (en) | 2007-12-28 | 2010-06-18 | Database index key update method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007338413A JP4498409B2 (ja) | 2007-12-28 | 2007-12-28 | データベースのインデックスキー更新方法及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2009157853A JP2009157853A (ja) | 2009-07-16 |
JP2009157853A5 JP2009157853A5 (ja) | 2010-02-18 |
JP4498409B2 true JP4498409B2 (ja) | 2010-07-07 |
Family
ID=40823881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007338413A Expired - Fee Related JP4498409B2 (ja) | 2007-12-28 | 2007-12-28 | データベースのインデックスキー更新方法及びプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US8103697B2 (ja) |
EP (1) | EP2246796B1 (ja) |
JP (1) | JP4498409B2 (ja) |
CN (1) | CN101911060B (ja) |
WO (1) | WO2009084145A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011524039A (ja) * | 2008-05-21 | 2011-08-25 | ヴェリジー(シンガポール) プライベート リミテッド | 反復ビット値パターンを決定する方法及び装置 |
US9778188B2 (en) | 2009-03-11 | 2017-10-03 | Industrial Technology Research Institute | Apparatus and method for detection and discrimination molecular object |
US20120144123A1 (en) * | 2010-12-01 | 2012-06-07 | International Business Machines Corporation | Read-ahead processing in networked client-server architecture |
CN102651007A (zh) * | 2011-02-28 | 2012-08-29 | 国际商业机器公司 | 一种管理数据库索引的方法和装置 |
US20120233250A1 (en) * | 2011-03-11 | 2012-09-13 | International Business Machines Corporation | Auto-updatable document parts within content management systems |
US8918651B2 (en) * | 2012-05-14 | 2014-12-23 | International Business Machines Corporation | Cryptographic erasure of selected encrypted data |
US9710475B1 (en) | 2012-07-16 | 2017-07-18 | Tintri Inc. | Synchronization of data |
US9817835B2 (en) | 2013-03-12 | 2017-11-14 | Tintri Inc. | Efficient data synchronization for storage containers |
CN103150400B (zh) * | 2013-03-27 | 2017-06-06 | 领航动力信息系统有限公司 | 一种基于MapReduce框架的数据筛选方法 |
US10628378B2 (en) * | 2013-09-03 | 2020-04-21 | Tintri By Ddn, Inc. | Replication of snapshots and clones |
JP6273892B2 (ja) * | 2014-02-21 | 2018-02-07 | 株式会社リコー | データ検索装置、プログラム、及びデータ検索システム |
CN105468603B (zh) * | 2014-08-22 | 2019-04-02 | 腾讯科技(深圳)有限公司 | 数据选择方法及装置 |
US20160063051A1 (en) * | 2014-08-29 | 2016-03-03 | Netapp, Inc. | Methods for persisting data on nonvolatile memory for fast updates and instantaneous recovery and devices thereof |
US10810168B2 (en) * | 2015-11-24 | 2020-10-20 | Red Hat, Inc. | Allocating file system metadata to storage nodes of distributed file system |
SG11201811425TA (en) * | 2016-09-22 | 2019-01-30 | Visa Int Service Ass | Techniques for in-memory key range searches |
CN106776746A (zh) * | 2016-11-14 | 2017-05-31 | 天津南大通用数据技术股份有限公司 | 一种全文索引数据的创建方法及装置 |
CN108427675B (zh) * | 2017-02-13 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 构建索引的方法及设备 |
CN107451486B (zh) * | 2017-06-30 | 2021-05-18 | 华为技术有限公司 | 一种文件系统的权限设置方法及装置 |
CN108804542B (zh) * | 2018-05-16 | 2021-12-07 | 河北天翼科贸发展有限公司 | 一种基于内存运算的快速获取文件增量方法 |
KR102057055B1 (ko) | 2018-06-27 | 2019-12-18 | 주식회사 티맥스데이터 | 인덱스 관리 방법 |
US10915546B2 (en) | 2018-10-10 | 2021-02-09 | Micron Technology, Inc. | Counter-based compaction of key-value store tree data block |
US11100071B2 (en) * | 2018-10-10 | 2021-08-24 | Micron Technology, Inc. | Key-value store tree data block spill with compaction |
US10852978B2 (en) | 2018-12-14 | 2020-12-01 | Micron Technology, Inc. | Key-value store using journaling with selective data storage format |
US10936661B2 (en) | 2018-12-26 | 2021-03-02 | Micron Technology, Inc. | Data tree with order-based node traversal |
CN110489415B (zh) * | 2019-07-23 | 2023-11-03 | 平安科技(深圳)有限公司 | 一种数据更新方法及相关设备 |
CN111488341B (zh) * | 2020-03-27 | 2023-08-22 | 北京金山云网络技术有限公司 | 数据库索引的管理方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
JP2008015872A (ja) * | 2006-07-07 | 2008-01-24 | S Grants Co Ltd | ビット列検索装置、検索方法及びプログラム |
JP2008112240A (ja) * | 2006-10-30 | 2008-05-15 | S Grants Co Ltd | ビット列検索方法及びプログラム |
JP2008159025A (ja) * | 2006-11-28 | 2008-07-10 | S Grants Co Ltd | カップルドノードツリーの分割/結合方法及びプログラム |
JP2008181260A (ja) * | 2007-01-24 | 2008-08-07 | S Grants Co Ltd | ビット列検索装置、検索方法及びプログラム |
JP2008269197A (ja) * | 2007-04-19 | 2008-11-06 | S Grants Co Ltd | カップルドノードツリーの退避/復元方法及びプログラム |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3887867B2 (ja) * | 1997-02-26 | 2007-02-28 | 株式会社日立製作所 | 構造化文書の登録方法 |
US6029170A (en) * | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
JP3368237B2 (ja) * | 1999-04-14 | 2003-01-20 | キヤノン株式会社 | コード処理方法、端末装置及び記憶媒体 |
CA2279119C (en) * | 1999-07-29 | 2004-10-19 | Ibm Canada Limited-Ibm Canada Limitee | Heuristic-based conditional data indexing |
US6662184B1 (en) * | 1999-09-23 | 2003-12-09 | International Business Machines Corporation | Lock-free wild card search data structure and method |
US6675163B1 (en) * | 2000-04-06 | 2004-01-06 | International Business Machines Corporation | Full match (FM) search algorithm implementation for a network processor |
US6594655B2 (en) * | 2001-01-04 | 2003-07-15 | Ezchip Technologies Ltd. | Wildcards in radix- search tree structures |
US6785699B1 (en) * | 2001-05-04 | 2004-08-31 | Lsi Logic Corporation | Prefix comparator |
US7702641B2 (en) * | 2001-06-04 | 2010-04-20 | Oracle America, Inc. | Method and system for comparing and updating file trees |
US7149737B1 (en) * | 2002-04-04 | 2006-12-12 | Ncr Corp. | Locking mechanism using a predefined lock for materialized views in a database system |
US6934252B2 (en) * | 2002-09-16 | 2005-08-23 | North Carolina State University | Methods and systems for fast binary network address lookups using parent node information stored in routing table entries |
US6915300B1 (en) * | 2003-12-19 | 2005-07-05 | Xerox Corporation | Method and system for searching indexed string containing a search string |
JP2006187827A (ja) | 2005-01-05 | 2006-07-20 | Toyo Tire & Rubber Co Ltd | 研磨パッド |
JP2006293619A (ja) | 2005-04-08 | 2006-10-26 | Toshiba Tec Corp | コンピュータ装置及びログ出力プログラム |
US9037553B2 (en) * | 2006-03-16 | 2015-05-19 | Novell, Inc. | System and method for efficient maintenance of indexes for XML files |
JP2008097215A (ja) | 2006-10-10 | 2008-04-24 | Just Syst Corp | データ処理装置 |
EP2149845B1 (en) * | 2007-04-19 | 2013-06-12 | Kousokuya, Inc. | Coupled node tree backup/restore apparatus, backup/restore method, and program |
US20090063400A1 (en) * | 2007-09-05 | 2009-03-05 | International Business Machines Corporation | Apparatus, system, and method for improving update performance for indexing using delta key updates |
-
2007
- 2007-12-28 JP JP2007338413A patent/JP4498409B2/ja not_active Expired - Fee Related
-
2008
- 2008-10-30 CN CN2008801224040A patent/CN101911060B/zh not_active Expired - Fee Related
- 2008-10-30 EP EP08866463.6A patent/EP2246796B1/en not_active Not-in-force
- 2008-10-30 WO PCT/JP2008/003123 patent/WO2009084145A1/ja active Application Filing
-
2010
- 2010-06-18 US US12/801,649 patent/US8103697B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001357070A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 情報検索方法及び装置 |
JP2008015872A (ja) * | 2006-07-07 | 2008-01-24 | S Grants Co Ltd | ビット列検索装置、検索方法及びプログラム |
JP2008112240A (ja) * | 2006-10-30 | 2008-05-15 | S Grants Co Ltd | ビット列検索方法及びプログラム |
JP2008159025A (ja) * | 2006-11-28 | 2008-07-10 | S Grants Co Ltd | カップルドノードツリーの分割/結合方法及びプログラム |
JP2008181260A (ja) * | 2007-01-24 | 2008-08-07 | S Grants Co Ltd | ビット列検索装置、検索方法及びプログラム |
JP2008269197A (ja) * | 2007-04-19 | 2008-11-06 | S Grants Co Ltd | カップルドノードツリーの退避/復元方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2009157853A (ja) | 2009-07-16 |
US20100262617A1 (en) | 2010-10-14 |
EP2246796A1 (en) | 2010-11-03 |
US8103697B2 (en) | 2012-01-24 |
EP2246796A4 (en) | 2011-09-14 |
WO2009084145A1 (ja) | 2009-07-09 |
CN101911060A (zh) | 2010-12-08 |
CN101911060B (zh) | 2012-09-05 |
EP2246796B1 (en) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4498409B2 (ja) | データベースのインデックスキー更新方法及びプログラム | |
JP4271227B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4402120B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4502223B2 (ja) | ビット列のマージソート装置、方法及びプログラム | |
JP4379894B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
JP4514771B2 (ja) | カップルドノードツリーの最長一致/最短一致検索装置、検索方法及びプログラム | |
JP4271214B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4514768B2 (ja) | カップルドノードツリーの退避/復元装置、退避/復元方法及びプログラム | |
JP4527753B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4439013B2 (ja) | ビット列検索方法及び検索プログラム | |
US8250089B2 (en) | Bit string search apparatus, search method, and program | |
JP4514810B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP4417431B2 (ja) | カップルドノードツリーの分割/結合方法及びプログラム | |
WO2010125742A1 (ja) | インデックス更新データ作成装置、作成方法及びプログラム | |
JP4567754B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP2011018296A (ja) | カップルドノードツリーのインデックスキー挿入/削除方法 | |
EP2149845B1 (en) | Coupled node tree backup/restore apparatus, backup/restore method, and program | |
JP4813575B2 (ja) | ビット列検索装置 | |
JP5220057B2 (ja) | ビット列検索装置、検索方法及びプログラム | |
JP2014126883A (ja) | 部分的木構造に応じた適応型再構成装置及び方法及びプログラム | |
WO2009093290A1 (ja) | ビット列検索装置、検索方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091225 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091225 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20091225 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20100121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100325 |
|
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: 20100413 |
|
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: 20100413 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
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: 20130423 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: 20130423 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130423 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160423 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |