(57)【要約】      （修正有）【課題】データ運用に関し、クックーハッシュとチェーンハッシュの長所を取り集めたハイブリッド形態のデータ運用方法及びこれを支援するシステムを提供する。【解決手段】クックーハッシュテーブル及びチェーンハッシュテーブルを格納する格納装置１５０と、データ運用時にクックーハッシュテーブルのエントリー検査を先行し、クックーハッシュテーブル適用不可または適用過程でオーバーヘッド発生時にチェーンハッシュテーブル適用を行う制御装置１６０とを含む。【選択図】図１
2015079473.tif 000002
【特許請求の範囲】
【請求項１】
クックーハッシュテーブル及びチェーンハッシュテーブルを格納する格納装置と；
データ運用時に、クックーハッシュテーブルのエントリー検査を先行し、クックーハッシュテーブル適用不可または適用過程でオーバーヘッド発生時に、前記チェーンハッシュテーブル適用を行う制御装置と；
を含むｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項２】
前記制御装置は、
データ挿入要請時に、前記クックーハッシュテーブルのエントリー検査を行い、空いていない場合、当該データを前記チェーンハッシュテーブルのリストに追加するように制御することを特徴とする請求項１に記載のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項３】
前記制御装置は、
前記システムが設定された条件に進入するかを確認し、前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させるように制御することを特徴とする請求項２に記載のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項４】
前記制御装置は、
前記クックーハッシュテーブルに適用される２つのハッシュ関数を同一の関数で適用するように制御することを特徴とする請求項１に記載のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項５】
前記制御装置は、
前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加することを特徴とする請求項１に記載のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項６】
前記制御装置は、
データ検索要請時に、前記クックーハッシュテーブルを先行して検索し、失敗時に、前記チェーンハッシュテーブル検索を行うように制御することを特徴とする請求項１に記載のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項７】
前記制御装置は、
前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させ、前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させるように制御することを特徴とする請求項６に記載のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム。
【請求項８】
データ挿入要請を受信する過程と；
クックーハッシュテーブルのエントリー検査を行う過程と；
前記クックーハッシュテーブルのエントリーが満たされている場合、チェーンハッシュテーブルのリストに前記データを挿入する過程と；
を含むデータ運用方法。
【請求項９】
システムがあらかじめ設定された条件に進入する進入過程と；
前記進入によって前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させる過程と；
をさらに含むことを特徴とする請求項８に記載のデータ運用方法。
【請求項１０】
前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加する過程；
をさらに含むことを特徴とする請求項８に記載のデータ運用方法。
【請求項１１】
前記進入過程は、
前記システムがＩｄｌｅ状態に進入する過程であることを特徴とする請求項１０に記載のデータ運用方法。
【請求項１２】
データ検索要請を受信する過程と；
前記データに対するクックーハッシュテーブルのエントリー検索を先行し、エントリー検索失敗時に、チェーンハッシュテーブルのリストを検索する過程と；
を含むデータ運用方法。
【請求項１３】
前記クックーハッシュテーブル検索過程でハッシュ関数を同一の関数で運用する過程；
をさらに含むことを特徴とする請求項１２に記載のデータ運用方法。
【請求項１４】
前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させる過程；
をさらに含むことを特徴とする請求項１２に記載のデータ運用方法。
【請求項１５】
前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させる過程；
をさらに含むことを特徴とする請求項１２に記載のデータ運用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ格納に関し、より詳細には、カッコウハッシュとチェーンハッシュの長所を取り集めたハイブリッド形態のデータ運用方法及びこれを支援するシステムに関する。
【背景技術】
【０００２】
コンピュータ作業は、多くのデータを収集し、格納する作業を基本とする。そして、コンピューティング作業は、特定データ検索要請が発生する場合、格納されたデータを検出して提供する作業を含む。この過程で広大なデータを格納し、格納されたデータを読み取らなければならない状況が繰り返して且つ非常に頻繁に発生することができる。これにより、コンピューティング作業でデータを効率的に格納し読み取る作業は、非常に重要な作業である。このようなデータ運用のために、従来、多様なデータ格納方法が提案されている。
【０００３】
例えば、従来、チェーンハッシュテーブル（ｃｈａｉｎｅｄ  ｈａｓｈ  ｔａｂｌｅまたはｃｈａｉｎｉｎｇ、ｓｅｐａｒａｔｅ  ｃｈａｉｎｉｎｇ）基盤のデータ運用方法が使用されていた。チェーンハッシュテーブルは、ＮｏＳＱＬデータベース基盤分散メモリのキー管理のために主に使用される資料構造であって、連結リスト（ｌｉｎｋｅｄ  ｌｉｓｔ）を使用して衝突が発生したキーを連結する特徴がある。このようなチェーンハッシュテーブルは、リストヘッドを追加すれば良いので、キーを挿入する作業の速度が速いという特徴がある。しかし、チェーンハッシュテーブルは、キーを探すためにリスト全体をスキャンしなければならないのて、読み取り速度が低下する短所がある。このようなチェーンハッシュテーブルは、理論的に最悪の場合（ｗｏｒｓｔ  ｃａｓｅ）、処理時間を保証することができないという短所がある。
【０００４】
前述したチェーンハッシュテーブルの短所を補完するために、マーキュリー（Ｍｅｒｃｕｒｙ）方式が提案されたことがある。マーキュリー方式は、オープンソースであるＭｅｍｃａｃｈｅｄを修正して具現したもので、既存のＭｅｍｃａｃｈｅｄは、グロバルロック（ｇｌｏｂａｌ  ｌｏｃｋ）を使用して多数のスレッドがハッシュテーブルに接近するとき、競合状態（ｒａｃｅ  ｃｏｎｄｉｔｉｏｎ）が発生する問題がある。マーキュリーは、マルチスレッド環境で性能を高めるために、細粒度ロック（ｆｉｎｅ−ｇｒａｉｎｅｄ  ｌｏｃｋ）を使用している。すなわちマーキュリー方式は、テーブルバケット（エントリー）ごとにそれぞれのロックを使用するようにしている。しかし、このようなマーキュリー方式は、マルチスレッド環境でチェーンハッシュテーブルの処理性能を高めたが、リストスキャンが必要であるというチェーンハッシュテーブル本来の短所を克服していない状態である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、本発明の目的は、従来多様な資料構造でのデータ運用の短所を補完し、さらに改善したデータ運用が可能なデータ運用方法及びこれを支援するシステムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、クックーハッシュテーブル及びチェーンハッシュテーブルを格納する格納装置と、データ運用時にクックーハッシュテーブルのエントリー検査を先行し、クックーハッシュテーブル適用不可または適用過程でオーバーヘッド発生時に前記チェーンハッシュテーブル適用を行う制御装置とを含むｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステムの構成を開示する。
【０００７】
前記制御装置は、データ挿入要請時に、前記クックーハッシュテーブルのエントリー検査を行い、空いていない場合、当該データを前記チェーンハッシュテーブルのリストに追加するように制御することができる。
【０００８】
前記制御装置は、前記システムが設定された条件に進入するかを確認し、前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させるように制御することができる。
【０００９】
前記制御装置は、前記クックーハッシュテーブルに適用される２つのハッシュ関数を同一の関数で適用するように制御することができる。
【００１０】
前記制御装置は、前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加することができる。
【００１１】
前記制御装置は、データ検索要請時に、前記クックーハッシュテーブルを先行して検索し、失敗時に、前記チェーンハッシュテーブル検索を行うように制御することができる。
【００１２】
前記制御装置は、前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させ、前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させるように制御することができる。
【００１３】
本発明は、また、データ挿入要請を受信する過程と、クックーハッシュテーブルのエントリー検査を行う過程と、前記クックーハッシュテーブルのエントリーが満たされている場合、チェーンハッシュテーブルのリストに前記データを挿入する過程とを含むデータ運用方法の構成を開示する。
【００１４】
前記方法は、システムがあらかじめ設定された条件に進入する進入過程と、前記進入によって前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させる過程とをさらに含むことができる。
【００１５】
前記方法は、前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加する過程をさらに含むことができる。
【００１６】
前記進入過程は、前記システムがＩｄｌｅ状態に進入する過程であることができる。
【００１７】
本発明は、また、データ検索要請を受信する過程と、前記データに対するクックーハッシュテーブルのエントリー検索を先行し、エントリー検索失敗時に、チェーンハッシュテーブルのリストを検索する過程とを含むデータ運用方法の構成を開示する。
【００１８】
前記方法は、前記クックーハッシュテーブル検索過程でハッシュ関数を同一の関数で運用する過程をさらに含むことができる。
【００１９】
前記方法は、前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させる過程をさらに含むことができる。
【００２０】
前記方法は、前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させる過程をさらに含むことができる。
【００２１】
前述したような内容は、当該分野における通常の知識を有する者が後述する本開示の多様な実施例の具体的な説明からさらによく理解することができるようにするために、多様な実施例の特徴及び技術的な長所を多少広く略述したものである。このような特徴及び長所以外にも、本開示の請求範囲の主題を形成する多様な実施例の追加的な特徴及び長所が後述する具体的な説明からよく理解される。
【発明の効果】
【００２２】
前述したように、本発明の多様な実施例で提案するデータ運用方法及びこれを支援するシステムによれば、本発明は、さらに改善したデータ運用を通じてデータの読み取り及び書き込み速度を改善し、さらに効率的なメモリ管理を支援することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の実施例によるハイブリッドハッシュ運用が適用されるシステム外観を概略的に示す図である。
【図２】図２は、本発明のシステム構成を示すブロック図である。
【図３】図３は、本発明の実施例によるシステムの制御装置構成をさらに詳しく示す図である。
【図４】図４は、本発明の実施例によるハイブリッドハッシュによるデータ挿入方法を説明するための流れ図である。
【図５】図５は、ハイブリッドハッシュによるデータ挿入を説明するための図である。
【図６】図６は、本発明の実施例によるハイブリッドハッシュによるデータ検索方法を説明するための流れ図である。
【図７】図７は、ハイブリッドハッシュによるデータ検索を説明するための図である。
【図８】図８は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブルの使用による作業時間測定結果のうち１０万〜１００万件に対する成功的な検索結果を示す図である。
【図９】図９は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブルの使用による作業時間測定結果のうち１０万〜１００万件に対する失敗検索結果を示す図である。
【図１０】図１０は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブルの使用による作業時間測定結果のうち１０万〜１００万件に対する１０％参照地域性がある検索結果を示す図である。
【発明を実施するための形態】
【００２４】
以下、添付の図面を参照して本開示の好ましい実施例を詳しく説明する。この際、添付の図面において同一の構成要素は、できるだけ同一の符号で示していることに留意しなければならない。また、本開示の要旨を不明にすることができる公知機能及び構成に対する詳細な説明を省略する。すなわち、下記の説明では、本開示の実施例による動作を理解するのに必要な部分だけが説明され、その以外の部分の説明は、本開示の要旨を不明にしないように省略されるということを留意しなければならない。
【００２５】
図１は、本発明の実施例によるハイブリッドハッシュ運用が適用されるシステム外観を概略的に示す図であり、図２は、本発明のシステム構成を示すブロック図である。
【００２６】
図１及び図２を参照すれば、本発明のハイブリッドハッシュを適用するシステム、例えばｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、少なくとも１つの格納装置１５０及び制御装置１６０の構成を含むことができる。
【００２７】
前述した構成を有する本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、格納装置１５０のメモリ領域にデータを格納するかまたは読み取る過程でクックーハッシュ方式及びチェーンハッシュ方式を運用するハイブリッドハッシュ方式によってデータ運用を支援することができる。すなわちｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、クックーハッシュテーブル（ｃｕｃｋｏｏ  ｈａｓｈ  ｔａｂｌｅ）基盤のクックーハッシュを基準としてデータ処理を行い、且つ補助的にチェーンハッシュテーブル（ｃｈａｉｎｅｄ  ｈａｓｈ  ｔａｂｌｅ）基盤のチェーンハッシュ（ｃｈａｉｎｅｄ  ｈａｓｈｉｎｇ）に基づいてデータ処理を行うように支援する。このようなｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、クックーハッシュを通じてデータ検索効率を高める一方で、チェーンハッシュを通じてデータ挿入速度を高めることができるように支援する。これにより、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、さらに迅速な検索時間を支援しながらも、良好なデータ挿入速度を保証することができる。
【００２８】
格納装置１５０は、制御装置１６０の処理データを格納することができる。格納装置１５０は、当該ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が支援するサービス形態によってまたは運用する運用者のデータ収集形態によって多様なデータを格納することができる。例えば、格納装置１５０は、データ（例えば、電話番号、メッセージ、オーディオ、メディアコンテンツ（例えば、音楽ファイル、動画ファイル）、アプリケーションなど）などを一時格納することができる。また、格納装置１５０は、多様なビッグデータを格納することもできる。例えば、格納装置１５０は、少なくとも１つの移動通信装置のユーザ位置データ、ユーザのウェブ利用データ、ユーザの通話データ、ユーザの購買データなど多様なデータを格納することができる。前述したように、本発明の実施例によるｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、格納装置１５０に格納されるデータの種類や特性に限定されるものではない。
【００２９】
このような格納装置１５０は、データを格納するクックーハッシュテーブル及びチェーンハッシュテーブルを含むことができる。クックーハッシュテーブルは、クックーハッシュ方式によってデータが挿入及び検索される資料構造であることができる。チェーンハッシュテーブルは、チェーン方式によってデータがリストの一定領域に挿入及び検索される資料構造であることができる。特に本発明の格納装置１５０は、データを格納する過程でクックーハッシュテーブルを基本に提供し、且つチェーンハッシュテーブルが補助的に利用され得るように提供することができる。
【００３０】
前述した格納装置１５０は、フラッシュメモリタイプ（ｆｌａｓｈ  ｍｅｍｏｒｙ  ｔｙｐｅ）、ハードディスクタイプ（ｈａｒｄ  ｄｉｓｋ  ｔｙｐｅ）、マイクロタイプ（ｍｉｃｒｏ  ｔｙｐｅ）、及びカードタイプ（例えば、ＳＤカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  Ｃａｒｄ）またはＸＤカード（ｅＸｔｒｅａｍ  Ｄｉｇｉｔａｌ  Ｃａｒｄ）などのメモリと、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、磁気メモリ（ＭＲＡＭ、Ｍａｇｎｅｔｉｃ  ＲＡＭ）、磁気ディスク（ｍａｇｎｅｔｉｃ  ｄｉｓｋ）、及び光ディスク（ｏｐｔｉｃａｌ  ｄｉｓｋ）タイプのメモリのうち少なくとも１つのタイプの記録媒体（ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含むことができる。ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、インターネット上で前記格納装置１５０の格納機能を行うウェブストレッジ（ｗｅｂ  ｓｔｏｒａｇｅ）と関連して動作することもできる。
【００３１】
制御装置１６０は、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０の制御と関連した多様な信号の処理と伝達及びデータの伝達と処理を行うことができる。例えば、制御装置１６０は、データ収集と格納装置１５０へのデータ挿入、格納装置１５０に格納されたデータの検索、格納装置１５０に格納されたデータの削除や更新などの制御を行うことができる。本発明の制御装置１６０は、データを挿入及び検索する過程で格納装置１５０に格納されたデータに対してクックーハッシュ方式及びチェーンハッシュ方式を運用することができる。一実施例によれば、制御装置１６０は、クックーハッシュ方式を基盤で特定データの挿入を行うことができる。そして、制御装置１６０は、データ挿入時に、挿入オーバーヘッドが発生する場合、チェーンハッシュ方式を適用するように制御することができる。ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が設定された条件、例えば”Ｉｄｌｅ”状態の場合、制御装置１６０は、チェーンハッシュ方式で適用されたデータをクックーハッシュ方式によってデータ位置転換することができる。このような制御装置１６０は、図３に示されたような構成を含むことができる。
【００３２】
一方、前述したような本発明の実施例は、多様なコンピュータ手段を用いて行われることができるプログラム命令形態で具現され、コンピュータで読み取り可能な記録媒体に記録されることができる。前記コンピュータで読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。前記記録媒体に記録されるプログラム命令は、本発明の多様な実施例のために特別に設計され構成されたものであるか、またはコンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。
【００３３】
さらに、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０において制御装置１６０は、当該システムの利用目的によってさらに多様な構成例えば、通信部、入力部、表示部などと連結され、当該構成の機能、例えば通信機能、入力機能、表示機能などの機能制御を行うことができる。また、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０において制御装置１６０は、カメラやセンサーモジュールなどとさらに連結されることができ、当該構成が提供するイメージ情報やセンサー情報に基づいてあらかじめ定義されたプログラムルチンによる多様なユーザ機能を支援することができる。
【００３４】
以上で説明した本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、制御装置１６０をサーバーとし、格納装置１５０をクライアントとするサーバー−クライアントシステムで具現されることができる。また、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、制御装置１６０が直接的に接近することができる複数の格納装置１５０が１つに具現された統合サーバー装置で具現されることができる。または、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、制御装置１６０と格納装置１５０が物理的に一定空間内に位置する１つのコンピューティング装置で具現されることもできる。例えば、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、中央処理装置とメモリ装置がボード上に集積された形態のコンピューティング装置で具現されることもできる。
【００３５】
図３は、本発明の実施例によるシステムの制御装置構成をさらに詳しく示す図である。
【００３６】
図３を参照すれば、本発明の制御装置１６０は、クックーハッシュ処理器１６１及びチェーンハッシュ処理器１６３を含み、これを基盤でデータに対するハイブリッドハッシュ処理を行うことができる。
【００３７】
クックーハッシュ処理器１６１は、クックーハッシュ処理を行うことができる。クックーハッシュ（Ｃｕｃｋｏｏ  ｈａｓｈｉｎｇ）は、２個のハッシュテーブルと各テーブルのための２個のハッシュ関数を使用することができる。１つのキーは、２個のハッシュ関数を使用して各テーブルごとに１つのエントリーを有する。キーがハッシュテーブル内に存在すれば、当該キーは、必ず２つのエントリーのうち１つに位置する。このようなクックーハッシュ処理は、キーの検索のために２つの位置だけを確認すれば良いので、検索時間が可変的な分離連鎖法（ｓｅｐａｒａｔｅ  ｃｈａｉｎｉｎｇ）や線形走査法（ｌｉｎｅａｒ  ｐｒｏｂｉｎｇ）などの技法とは異なって、速くて且つ安定的な検索、削除、更新作業を提供することができる。
【００３８】
本発明のクックーハッシュ処理器１６１は、クックーハッシュテーブルにデータを挿入するとき、ハッシュ関数を用いて探した２つのエントリーのうち空所があったら、空いているエントリーに挿入する。２つのエントリーにいずれも他のキーが格納されていたら、クックーハッシュ処理器１６１は、チェーンハッシュ処理器１６３を呼び出すことができる。そして、クックーハッシュ処理器１６１は、キー格納をチェーンハッシュ処理器１６３に伝達することができる。
【００３９】
一方、クックーハッシュ処理器１６１は、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が”Ｉｄｌｅ”状態の場合、チェーンハッシュ処理器１６３に伝達したキーをさらに伝達されることができる。クックーハッシュ処理器１６１は、伝達されたキーをクックーハッシュ方式によって格納処理することができる。クックーハッシュ処理器１６１は、エントリーにいずれも他のキーが格納されている状況で、クックーハッシュテーブルにデータを挿入するとき、２つのエントリーのうち１つを選択し、既存のキーを他の所に移動させた後、移動によって生成された空所にキーを挿入する。各キーは、２つのエントリーのうち１つに位置するので、移動したキーは、他のテーブルにある自分のエントリーに移動し、クックーハッシュ処理器１６１は、前述したキー挿入過程を空きのエントリーを探すまで繰り返すことができる。
【００４０】
チェーンハッシュ処理器１６３は、チェーンハッシュテーブル管理を行うことができる。チェーンハッシュ処理器１６３は、クックーハッシュ処理器１６１からキー格納を伝達される場合、当該キーの格納のためのリスト処理を行うことができる。そして、チェーンハッシュ処理器１６３は、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が”Ｉｄｌｅ”状態の場合、リストに追加されたキーをクックーハッシュ処理器１６１に伝達することができる。
【００４１】
図４は、本発明の実施例によるハイブリッドハッシュによるデータ挿入方法を説明するための流れ図であり、図５は、ハイブリッドハッシュによるデータ挿入を説明するための図である。
【００４２】
図４及び図５を参照すれば、ハイブリッドハッシュによってキーＫを挿入する過程は、まず、Ｓ１０１段階で、制御装置１６０がクックーハッシュ方式によってハッシュ関数を使用してエントリーを算出することができる。この際、制御装置１６０は、１つのキーに２つのハッシュ関数を使用して２つのエントリー、例えば、ｈ１（Ｋ）、ｈ２（Ｋ）を算出することができる。エントリーが算出されれば、制御装置１６０は、Ｓ１０３段階で算出されたエントリーが空いているかを確認することができる。一方、Ｓ１０１段階前に、制御装置１６０は、ブルームフィルタ（Ｂｌｏｏｍ  ｆｉｌｔｅｒ）を適用し、ハッシュジョインに対する不要なロード発生を低減させることができる。
【００４３】
Ｓ１０３段階で、ｈ１（Ｋ）またはｈ２（Ｋ）が空いていれば、制御装置１６０は、Ｓ１０５段階で、キーＫを空いているスロットに挿入することができる。一方、Ｓ１０３段階で、ｈ１（Ｋ）とｈ２（Ｋ）が空いていない場合、制御装置１６０は、Ｓ１０７段階で、当該キーＫをチェーンハッシュテーブルのｈ（Ｋ）リストに追加する。
【００４４】
その後、制御装置１６０は、Ｓ１０９段階で、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が特定設定条件状態であるか否かを確認することができる。例えば、制御装置１６０は、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が”Ｉｄｌｅ”状態であるかを確認することができる。ここで、制御装置１６０は、”Ｉｄｌｅ”状態ではない場合、Ｓ１１１段階をスキップすることができる。その後、制御装置１６０は、一定周期またはリアルタイムでｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０がＩｄｌｅ状態であるかに対する確認を行うＳ１０９過程を行い、それによってＳ１１１段階実行を制御することができる。
【００４５】
一方、制御装置１６０は、Ｓ１０９段階で、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０が設定された条件状態の場合、Ｓ１０７段階で、チェーンハッシュテーブルに挿入したキーをＳ１１１段階でクックーハッシュテーブルに移動させるように制御することができる。クックーハッシュテーブルのキー移動過程は、クックーハッシュ固有方式によって処理されることができる。この過程でチェーンハッシュテーブル内のキーは、別個のスレッド（Ｔｒａｎｓｆｅｒ  ｔｈｒｅａｄ）によってゆっくり移動する。この過程を通じて制御装置１６０は、クックーハッシュ挿入作業で大きいオーバーヘッドを作る”押し出す”過程を遅延させ、クライアントに速く応答を与えることができるように処理することができる。
【００４６】
前述した過程を通じて、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、キー挿入過程で衝突発生による特定時点でのクックーハッシュテーブルの挿入費用をチェーンハッシュテーブルを利用して最小化し、遅延書き込み政策を用いたシステム応答特性を改善させることができる。
【００４７】
図６は、本発明の実施例によるハイブリッドハッシュによるデータ検索方法を説明するための流れ図であり、図７は、ハイブリッドハッシュによるデータ検索を説明するための図である。
【００４８】
図６及び図７を参照すれば、本発明のハイブリッドハッシュによるデータ検索方法は、まず、Ｓ２０１段階で、キーＫ検索が要請されれば、制御装置１６０がＳ２０３段階でクックーハッシュ方式を適用し、当該キーＫに対するハッシュ関数適用によってｈ１（Ｋ）とｈ２（Ｋ）を使用してクックーハッシュテーブル検索を行う。一方、Ｓ２０１段階または段階前に、制御装置１６０は、ブルームフィルタ（Ｂｌｏｏｍ  ｆｉｌｔｅｒ）を適用し、ハッシュジョインに対する不要なロード発生を低減させることができる。
【００４９】
制御装置１６０は、Ｓ２０５段階で、エントリーが空いているか否かを確認する。Ｓ２０５段階で、制御装置１６０は、エントリーが空いていれば、検索失敗として処理し、リターンする。データ挿入過程でクックーハッシュテーブルを優先的に使用するので、エントリーが空いていれば、チェーンハッシュテーブルのｈ（Ｋ）も空いていることが保証される。但し、このためにキー削除時にチェーンハッシュテーブルのｈ（Ｋ）削除作業を行うことができる。
【００５０】
エントリーにデータが記録されていれば、制御装置１６０は、Ｓ２０７段階で、検索するキーに該当するデータであるかを確認することができる。Ｓ２０７段階で、当該キーに対するデータ検索が成功すれば、リターンする。
【００５１】
一方、エントリーにデータが記録されているが、当該キーに対するデータではない場合、制御装置１６０は、Ｓ２０９段階で、追加的にチェーンハッシュテーブルのｈ（Ｋ）でリストを検索する。その後、制御装置１６０は、チェーンハッシュテーブルでキー検索が成功すれば、リターンする。ここで、制御装置１６０は、頻繁に参照されるキーの検索速度を高めるために、チェーンハッシュテーブルにあるキーが参照されれば、当該キーのエントリーをリストのヘッドに移動させる。そして、制御装置１６０は、リストヘッドに移動したキーがもう一度参照されれば、その後、当該キーは、クックーハッシュテーブルに移動させる。
【００５２】
本発明のハイブリッドハッシュ運用によるデータ更新と削除過程は、基本的に検索過程と同一であることができる。例えば、制御装置１６０は、更新しようとするｋｅｙ−ｖａｌｕｅを当該キーを利用して位置検索を行うことができる。この際、制御装置１６０は、前述したように、クックーハッシュテーブルを優先的に検索し、当該キーの位置確認を行った後、当該キーに対するｖａｌｕｅを更新することができる。ここで、クックーハッシュテーブルに当該キーが存在しなければ、制御装置１６０は、チェーンハッシュテーブルを検索することができる。削除過程でも、制御装置１６０は、クックーハッシュテーブルをまず検索し、必要に応じてチェーンハッシュテーブルを検索するように制御することができる。
【００５３】
以上で説明したように、本発明の実施例によるｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、クックーハッシュテーブルにキーが存在する場合、最大２回の参照だけで成功が保証されるので、最悪の場合を保証することができない分離連鎖法（ｓｅｐａｒａｔｅ  ｃｈａｉｎｉｎｇ）に比べて安定的である。
【００５４】
一方、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０は、ハッシュ関数の繰り返し的計算の改善及び検索失敗時の応答遅延の補強のために追加的な方法を適用することができる。これをさらに詳しく説明すれば、制御装置１６０は、ｈ１（Ｋ）とｈ（Ｋ）に同じハッシュ関数を使用する。制御装置１６０は、ｈ１（Ｋ）を計算した後、ｍｏｄ演算のみを通じてチェーンハッシュテーブルのインデックスを得ることができる。また、制御装置１６０は、クックーハッシュテーブルでｈ１（Ｋ）が空いていて、ｈ２（Ｋ）が使用される場合がないように保証することによって、ｈ１（Ｋ）が空いている場合、ｈ２（Ｋ）を探すことなく、直ちにリターンすることができる。また、本発明のｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステムは、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加し、ハッシュ関数の計算を低減した。このフィールドは、キーがｈ１（Ｋ）の位置に格納されれば、ｈ２（Ｋ）のインデックスを、ｈ２（Ｋ）の位置に格納されれば、ｈ１（Ｋ）のインデックスを格納する。具現上、ｕｎｉｏｎ｛｝を使用してチェーンハッシュテーブルのリスト次のエントリーを示すｎｅｘｔポインタと同じ空間を使用するので、これによる追加的なメモリ使用は除去することができる。
【００５５】
図８〜図１０は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブル使用による作業時間測定結果を示す図である。特にチェーンハッシュテーブルとハイブリッドハッシュテーブルを使用して、テーブルエントリーの４０％使用された状態で検索（ｌｏｏｋｕｐ）作業にかかった時間を測定したものであり、それぞれ１０万〜１００万件について図８は成功的な検索、図９は失敗した検索、図１０は１０％参照地域性がある検索結果を示す。
【００５６】
実験結果約、９０％のキーがクックーハッシュテーブルに格納されることを確認した。ハイブリッドハッシュ方式は、チェーンハッシュ方式に比べて成功的な検索の場合、平均７．４％、最大１５％、１０％の地域性がある場合、平均１３％、最大２４％少ない時間が所要された。一方、失敗した検索の場合、平均４．６％、最大１２％遅い速度を示したが、検索に失敗する場合、クックーハッシュテーブルとチェーンハッシュテーブルのエントリーリストをすべて検索しなければならないからである。しかし、検索が失敗する場合にも、提案技法では、表１に示すように、チェーンハッシュテーブルのリストが大部分１個のキーだけを格納している。
【００５７】
【表１】
2015079473.tif 000003
【００５８】
１回検索時間が非常に短いため、最悪の場合、検索時間を正確に測定することはできないが、表１の結果から予想すれば、最悪の場合、検索時間は、ハイブリッドハッシュテーブル（ｈｙｂｒｉｄ  ｈａｓｈ  ｔａｂｌｅ）がさらに短いことを予想することができる。
【００５９】
本発明では、ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム１０において単一ノードの検索性能を改善するための技術を提案する。このような本発明は、速くて且つ安定的なクックーハッシュを使用しながらも、クックーハッシュの遅い挿入速度を補完することができるようにチェーンハッシュテーブルを一緒に使用して遅延書き込みを適用する。本発明の検索速度は、参照地域性が存在する場合、最大２４％速い速度を示した。
【００６０】
一方、前述した説明では、本発明のハイブリッドハッシュ方式を１つのシステムで具現する形態で説明したが、本発明がこれに限定されるものではない。すなわち、本発明で説明したハイブリッドハッシュ方式は、前述したように、基本的にｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅ方式に適用されることができる。ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅ方式は、キーを複数のサーバーに分配し、メモリ上で速い読み取り／書き込み（ｒｅａｄ／ｗｒｉｔｅ）を用いたストレッジサービスを提供することができる。結果的に、本発明のハイブリッドハッシュ方式は、複数のシステムがノードに該当するサーバー装置にも同一の形態で適用可能である。特に本発明のハイブリッドハッシュ方式適用によって具現されたサーバー装置は、クックーハッシュを基盤とする効率的なメモリ使用と具現上の利点、及び最悪の場合にも、定数時間の作業保証を支援しながらも、チェーンハッシュ方式を補助的に運用することによって、さらに改善した挿入及び検索速度の改善を支援することができる。
【００６１】
なお、本明細書と図面に開示された本開示の実施例は、本開示の技術内容を容易に説明し、本開示の理解を助けるために特定例を提示したものに過ぎず、本開示の範囲を限定しようとするものではない。したがって、本開示の範囲は、ここに開示された実施例以外にも、本開示の技術的思想に基づいて導出されるすべての変更または変形された形態が本開示の範囲に含まれるものと解釈されなければならない。
【符号の説明】
【００６２】
１０  ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅシステム
１５０  格納装置
１６０  制御装置
１６１  クックーハッシュ処理器
１６３  チェーンハッシュ処理器
【図１】
2015079473.tif 000004
【図２】
2015079473.tif 000005
【図３】
2015079473.tif 000006
【図４】
2015079473.tif 000007
【図５】
2015079473.tif 000008
【図６】
2015079473.tif 000009
【図７】
2015079473.tif 000010
【図８】
2015079473.tif 000011
【図９】
2015079473.tif 000012
【図１０】
2015079473.tif 000013