JP2015079473A - データ運用方法及びこれを支援するシステム - Google Patents

データ運用方法及びこれを支援するシステム Download PDF

Info

Publication number
JP2015079473A
JP2015079473A JP2013224134A JP2013224134A JP2015079473A JP 2015079473 A JP2015079473 A JP 2015079473A JP 2013224134 A JP2013224134 A JP 2013224134A JP 2013224134 A JP2013224134 A JP 2013224134A JP 2015079473 A JP2015079473 A JP 2015079473A
Authority
JP
Japan
Prior art keywords
hash table
data
cook
key
hash
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.)
Pending
Application number
JP2013224134A
Other languages
English (en)
Inventor
クン チョ,ユ
Yookun Cho
クン チョ,ユ
ヒョウク チャン,ジュン
Joonhyouk Jang
ヒョウク チャン,ジュン
マン ジョン,チン
Jinman Jung
マン ジョン,チン
ジェ キム,ポン
Bongjae Kim
ジェ キム,ポン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WINWAY SYSTEMS Inc
Original Assignee
WINWAY SYSTEMS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WINWAY SYSTEMS Inc filed Critical WINWAY SYSTEMS Inc
Publication of JP2015079473A publication Critical patent/JP2015079473A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • G06F15/025Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators adapted to a specific application
    • G06F15/0283Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators adapted to a specific application for data storage and retrieval

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データ運用に関し、クックーハッシュとチェーンハッシュの長所を取り集めたハイブリッド形態のデータ運用方法及びこれを支援するシステムを提供する。【解決手段】クックーハッシュテーブル及びチェーンハッシュテーブルを格納する格納装置150と、データ運用時にクックーハッシュテーブルのエントリー検査を先行し、クックーハッシュテーブル適用不可または適用過程でオーバーヘッド発生時にチェーンハッシュテーブル適用を行う制御装置160とを含む。【選択図】図1

Description

本発明は、データ格納に関し、より詳細には、カッコウハッシュとチェーンハッシュの長所を取り集めたハイブリッド形態のデータ運用方法及びこれを支援するシステムに関する。
コンピュータ作業は、多くのデータを収集し、格納する作業を基本とする。そして、コンピューティング作業は、特定データ検索要請が発生する場合、格納されたデータを検出して提供する作業を含む。この過程で広大なデータを格納し、格納されたデータを読み取らなければならない状況が繰り返して且つ非常に頻繁に発生することができる。これにより、コンピューティング作業でデータを効率的に格納し読み取る作業は、非常に重要な作業である。このようなデータ運用のために、従来、多様なデータ格納方法が提案されている。
例えば、従来、チェーンハッシュテーブル(chained hash tableまたはchaining、separate chaining)基盤のデータ運用方法が使用されていた。チェーンハッシュテーブルは、NoSQLデータベース基盤分散メモリのキー管理のために主に使用される資料構造であって、連結リスト(linked list)を使用して衝突が発生したキーを連結する特徴がある。このようなチェーンハッシュテーブルは、リストヘッドを追加すれば良いので、キーを挿入する作業の速度が速いという特徴がある。しかし、チェーンハッシュテーブルは、キーを探すためにリスト全体をスキャンしなければならないのて、読み取り速度が低下する短所がある。このようなチェーンハッシュテーブルは、理論的に最悪の場合(worst case)、処理時間を保証することができないという短所がある。
前述したチェーンハッシュテーブルの短所を補完するために、マーキュリー(Mercury)方式が提案されたことがある。マーキュリー方式は、オープンソースであるMemcachedを修正して具現したもので、既存のMemcachedは、グロバルロック(global lock)を使用して多数のスレッドがハッシュテーブルに接近するとき、競合状態(race condition)が発生する問題がある。マーキュリーは、マルチスレッド環境で性能を高めるために、細粒度ロック(fine−grained lock)を使用している。すなわちマーキュリー方式は、テーブルバケット(エントリー)ごとにそれぞれのロックを使用するようにしている。しかし、このようなマーキュリー方式は、マルチスレッド環境でチェーンハッシュテーブルの処理性能を高めたが、リストスキャンが必要であるというチェーンハッシュテーブル本来の短所を克服していない状態である。
したがって、本発明の目的は、従来多様な資料構造でのデータ運用の短所を補完し、さらに改善したデータ運用が可能なデータ運用方法及びこれを支援するシステムを提供することにある。
上記目的を達成するために、本発明は、クックーハッシュテーブル及びチェーンハッシュテーブルを格納する格納装置と、データ運用時にクックーハッシュテーブルのエントリー検査を先行し、クックーハッシュテーブル適用不可または適用過程でオーバーヘッド発生時に前記チェーンハッシュテーブル適用を行う制御装置とを含むkey−value storeシステムの構成を開示する。
前記制御装置は、データ挿入要請時に、前記クックーハッシュテーブルのエントリー検査を行い、空いていない場合、当該データを前記チェーンハッシュテーブルのリストに追加するように制御することができる。
前記制御装置は、前記システムが設定された条件に進入するかを確認し、前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させるように制御することができる。
前記制御装置は、前記クックーハッシュテーブルに適用される2つのハッシュ関数を同一の関数で適用するように制御することができる。
前記制御装置は、前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加することができる。
前記制御装置は、データ検索要請時に、前記クックーハッシュテーブルを先行して検索し、失敗時に、前記チェーンハッシュテーブル検索を行うように制御することができる。
前記制御装置は、前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させ、前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させるように制御することができる。
本発明は、また、データ挿入要請を受信する過程と、クックーハッシュテーブルのエントリー検査を行う過程と、前記クックーハッシュテーブルのエントリーが満たされている場合、チェーンハッシュテーブルのリストに前記データを挿入する過程とを含むデータ運用方法の構成を開示する。
前記方法は、システムがあらかじめ設定された条件に進入する進入過程と、前記進入によって前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させる過程とをさらに含むことができる。
前記方法は、前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加する過程をさらに含むことができる。
前記進入過程は、前記システムがIdle状態に進入する過程であることができる。
本発明は、また、データ検索要請を受信する過程と、前記データに対するクックーハッシュテーブルのエントリー検索を先行し、エントリー検索失敗時に、チェーンハッシュテーブルのリストを検索する過程とを含むデータ運用方法の構成を開示する。
前記方法は、前記クックーハッシュテーブル検索過程でハッシュ関数を同一の関数で運用する過程をさらに含むことができる。
前記方法は、前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させる過程をさらに含むことができる。
前記方法は、前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させる過程をさらに含むことができる。
前述したような内容は、当該分野における通常の知識を有する者が後述する本開示の多様な実施例の具体的な説明からさらによく理解することができるようにするために、多様な実施例の特徴及び技術的な長所を多少広く略述したものである。このような特徴及び長所以外にも、本開示の請求範囲の主題を形成する多様な実施例の追加的な特徴及び長所が後述する具体的な説明からよく理解される。
前述したように、本発明の多様な実施例で提案するデータ運用方法及びこれを支援するシステムによれば、本発明は、さらに改善したデータ運用を通じてデータの読み取り及び書き込み速度を改善し、さらに効率的なメモリ管理を支援することができる。
図1は、本発明の実施例によるハイブリッドハッシュ運用が適用されるシステム外観を概略的に示す図である。 図2は、本発明のシステム構成を示すブロック図である。 図3は、本発明の実施例によるシステムの制御装置構成をさらに詳しく示す図である。 図4は、本発明の実施例によるハイブリッドハッシュによるデータ挿入方法を説明するための流れ図である。 図5は、ハイブリッドハッシュによるデータ挿入を説明するための図である。 図6は、本発明の実施例によるハイブリッドハッシュによるデータ検索方法を説明するための流れ図である。 図7は、ハイブリッドハッシュによるデータ検索を説明するための図である。 図8は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブルの使用による作業時間測定結果のうち10万〜100万件に対する成功的な検索結果を示す図である。 図9は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブルの使用による作業時間測定結果のうち10万〜100万件に対する失敗検索結果を示す図である。 図10は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブルの使用による作業時間測定結果のうち10万〜100万件に対する10%参照地域性がある検索結果を示す図である。
以下、添付の図面を参照して本開示の好ましい実施例を詳しく説明する。この際、添付の図面において同一の構成要素は、できるだけ同一の符号で示していることに留意しなければならない。また、本開示の要旨を不明にすることができる公知機能及び構成に対する詳細な説明を省略する。すなわち、下記の説明では、本開示の実施例による動作を理解するのに必要な部分だけが説明され、その以外の部分の説明は、本開示の要旨を不明にしないように省略されるということを留意しなければならない。
図1は、本発明の実施例によるハイブリッドハッシュ運用が適用されるシステム外観を概略的に示す図であり、図2は、本発明のシステム構成を示すブロック図である。
図1及び図2を参照すれば、本発明のハイブリッドハッシュを適用するシステム、例えばkey−value storeシステム10は、少なくとも1つの格納装置150及び制御装置160の構成を含むことができる。
前述した構成を有する本発明のkey−value storeシステム10は、格納装置150のメモリ領域にデータを格納するかまたは読み取る過程でクックーハッシュ方式及びチェーンハッシュ方式を運用するハイブリッドハッシュ方式によってデータ運用を支援することができる。すなわちkey−value storeシステム10は、クックーハッシュテーブル(cuckoo hash table)基盤のクックーハッシュを基準としてデータ処理を行い、且つ補助的にチェーンハッシュテーブル(chained hash table)基盤のチェーンハッシュ(chained hashing)に基づいてデータ処理を行うように支援する。このようなkey−value storeシステム10は、クックーハッシュを通じてデータ検索効率を高める一方で、チェーンハッシュを通じてデータ挿入速度を高めることができるように支援する。これにより、本発明のkey−value storeシステム10は、さらに迅速な検索時間を支援しながらも、良好なデータ挿入速度を保証することができる。
格納装置150は、制御装置160の処理データを格納することができる。格納装置150は、当該key−value storeシステム10が支援するサービス形態によってまたは運用する運用者のデータ収集形態によって多様なデータを格納することができる。例えば、格納装置150は、データ(例えば、電話番号、メッセージ、オーディオ、メディアコンテンツ(例えば、音楽ファイル、動画ファイル)、アプリケーションなど)などを一時格納することができる。また、格納装置150は、多様なビッグデータを格納することもできる。例えば、格納装置150は、少なくとも1つの移動通信装置のユーザ位置データ、ユーザのウェブ利用データ、ユーザの通話データ、ユーザの購買データなど多様なデータを格納することができる。前述したように、本発明の実施例によるkey−value storeシステム10は、格納装置150に格納されるデータの種類や特性に限定されるものではない。
このような格納装置150は、データを格納するクックーハッシュテーブル及びチェーンハッシュテーブルを含むことができる。クックーハッシュテーブルは、クックーハッシュ方式によってデータが挿入及び検索される資料構造であることができる。チェーンハッシュテーブルは、チェーン方式によってデータがリストの一定領域に挿入及び検索される資料構造であることができる。特に本発明の格納装置150は、データを格納する過程でクックーハッシュテーブルを基本に提供し、且つチェーンハッシュテーブルが補助的に利用され得るように提供することができる。
前述した格納装置150は、フラッシュメモリタイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マイクロタイプ(micro type)、及びカードタイプ(例えば、SDカード(Secure Digital Card)またはXDカード(eXtream Digital Card)などのメモリと、RAM(Random Access Memory)、SRAM(Static RAM)、ROM(Read−Only Memory)、PROM(Programmable ROM)、EEPROM(Electrically Erasable PROM)、磁気メモリ(MRAM、Magnetic RAM)、磁気ディスク(magnetic disk)、及び光ディスク(optical disk)タイプのメモリのうち少なくとも1つのタイプの記録媒体(storage medium)を含むことができる。key−value storeシステム10は、インターネット上で前記格納装置150の格納機能を行うウェブストレッジ(web storage)と関連して動作することもできる。
制御装置160は、key−value storeシステム10の制御と関連した多様な信号の処理と伝達及びデータの伝達と処理を行うことができる。例えば、制御装置160は、データ収集と格納装置150へのデータ挿入、格納装置150に格納されたデータの検索、格納装置150に格納されたデータの削除や更新などの制御を行うことができる。本発明の制御装置160は、データを挿入及び検索する過程で格納装置150に格納されたデータに対してクックーハッシュ方式及びチェーンハッシュ方式を運用することができる。一実施例によれば、制御装置160は、クックーハッシュ方式を基盤で特定データの挿入を行うことができる。そして、制御装置160は、データ挿入時に、挿入オーバーヘッドが発生する場合、チェーンハッシュ方式を適用するように制御することができる。key−value storeシステム10が設定された条件、例えば”Idle”状態の場合、制御装置160は、チェーンハッシュ方式で適用されたデータをクックーハッシュ方式によってデータ位置転換することができる。このような制御装置160は、図3に示されたような構成を含むことができる。
一方、前述したような本発明の実施例は、多様なコンピュータ手段を用いて行われることができるプログラム命令形態で具現され、コンピュータで読み取り可能な記録媒体に記録されることができる。前記コンピュータで読み取り可能な記録媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。前記記録媒体に記録されるプログラム命令は、本発明の多様な実施例のために特別に設計され構成されたものであるか、またはコンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。
さらに、key−value storeシステム10において制御装置160は、当該システムの利用目的によってさらに多様な構成例えば、通信部、入力部、表示部などと連結され、当該構成の機能、例えば通信機能、入力機能、表示機能などの機能制御を行うことができる。また、key−value storeシステム10において制御装置160は、カメラやセンサーモジュールなどとさらに連結されることができ、当該構成が提供するイメージ情報やセンサー情報に基づいてあらかじめ定義されたプログラムルチンによる多様なユーザ機能を支援することができる。
以上で説明した本発明のkey−value storeシステム10は、制御装置160をサーバーとし、格納装置150をクライアントとするサーバー−クライアントシステムで具現されることができる。また、本発明のkey−value storeシステム10は、制御装置160が直接的に接近することができる複数の格納装置150が1つに具現された統合サーバー装置で具現されることができる。または、本発明のkey−value storeシステム10は、制御装置160と格納装置150が物理的に一定空間内に位置する1つのコンピューティング装置で具現されることもできる。例えば、本発明のkey−value storeシステム10は、中央処理装置とメモリ装置がボード上に集積された形態のコンピューティング装置で具現されることもできる。
図3は、本発明の実施例によるシステムの制御装置構成をさらに詳しく示す図である。
図3を参照すれば、本発明の制御装置160は、クックーハッシュ処理器161及びチェーンハッシュ処理器163を含み、これを基盤でデータに対するハイブリッドハッシュ処理を行うことができる。
クックーハッシュ処理器161は、クックーハッシュ処理を行うことができる。クックーハッシュ(Cuckoo hashing)は、2個のハッシュテーブルと各テーブルのための2個のハッシュ関数を使用することができる。1つのキーは、2個のハッシュ関数を使用して各テーブルごとに1つのエントリーを有する。キーがハッシュテーブル内に存在すれば、当該キーは、必ず2つのエントリーのうち1つに位置する。このようなクックーハッシュ処理は、キーの検索のために2つの位置だけを確認すれば良いので、検索時間が可変的な分離連鎖法(separate chaining)や線形走査法(linear probing)などの技法とは異なって、速くて且つ安定的な検索、削除、更新作業を提供することができる。
本発明のクックーハッシュ処理器161は、クックーハッシュテーブルにデータを挿入するとき、ハッシュ関数を用いて探した2つのエントリーのうち空所があったら、空いているエントリーに挿入する。2つのエントリーにいずれも他のキーが格納されていたら、クックーハッシュ処理器161は、チェーンハッシュ処理器163を呼び出すことができる。そして、クックーハッシュ処理器161は、キー格納をチェーンハッシュ処理器163に伝達することができる。
一方、クックーハッシュ処理器161は、key−value storeシステム10が”Idle”状態の場合、チェーンハッシュ処理器163に伝達したキーをさらに伝達されることができる。クックーハッシュ処理器161は、伝達されたキーをクックーハッシュ方式によって格納処理することができる。クックーハッシュ処理器161は、エントリーにいずれも他のキーが格納されている状況で、クックーハッシュテーブルにデータを挿入するとき、2つのエントリーのうち1つを選択し、既存のキーを他の所に移動させた後、移動によって生成された空所にキーを挿入する。各キーは、2つのエントリーのうち1つに位置するので、移動したキーは、他のテーブルにある自分のエントリーに移動し、クックーハッシュ処理器161は、前述したキー挿入過程を空きのエントリーを探すまで繰り返すことができる。
チェーンハッシュ処理器163は、チェーンハッシュテーブル管理を行うことができる。チェーンハッシュ処理器163は、クックーハッシュ処理器161からキー格納を伝達される場合、当該キーの格納のためのリスト処理を行うことができる。そして、チェーンハッシュ処理器163は、key−value storeシステム10が”Idle”状態の場合、リストに追加されたキーをクックーハッシュ処理器161に伝達することができる。
図4は、本発明の実施例によるハイブリッドハッシュによるデータ挿入方法を説明するための流れ図であり、図5は、ハイブリッドハッシュによるデータ挿入を説明するための図である。
図4及び図5を参照すれば、ハイブリッドハッシュによってキーKを挿入する過程は、まず、S101段階で、制御装置160がクックーハッシュ方式によってハッシュ関数を使用してエントリーを算出することができる。この際、制御装置160は、1つのキーに2つのハッシュ関数を使用して2つのエントリー、例えば、h1(K)、h2(K)を算出することができる。エントリーが算出されれば、制御装置160は、S103段階で算出されたエントリーが空いているかを確認することができる。一方、S101段階前に、制御装置160は、ブルームフィルタ(Bloom filter)を適用し、ハッシュジョインに対する不要なロード発生を低減させることができる。
S103段階で、h1(K)またはh2(K)が空いていれば、制御装置160は、S105段階で、キーKを空いているスロットに挿入することができる。一方、S103段階で、h1(K)とh2(K)が空いていない場合、制御装置160は、S107段階で、当該キーKをチェーンハッシュテーブルのh(K)リストに追加する。
その後、制御装置160は、S109段階で、key−value storeシステム10が特定設定条件状態であるか否かを確認することができる。例えば、制御装置160は、key−value storeシステム10が”Idle”状態であるかを確認することができる。ここで、制御装置160は、”Idle”状態ではない場合、S111段階をスキップすることができる。その後、制御装置160は、一定周期またはリアルタイムでkey−value storeシステム10がIdle状態であるかに対する確認を行うS109過程を行い、それによってS111段階実行を制御することができる。
一方、制御装置160は、S109段階で、key−value storeシステム10が設定された条件状態の場合、S107段階で、チェーンハッシュテーブルに挿入したキーをS111段階でクックーハッシュテーブルに移動させるように制御することができる。クックーハッシュテーブルのキー移動過程は、クックーハッシュ固有方式によって処理されることができる。この過程でチェーンハッシュテーブル内のキーは、別個のスレッド(Transfer thread)によってゆっくり移動する。この過程を通じて制御装置160は、クックーハッシュ挿入作業で大きいオーバーヘッドを作る”押し出す”過程を遅延させ、クライアントに速く応答を与えることができるように処理することができる。
前述した過程を通じて、本発明のkey−value storeシステム10は、キー挿入過程で衝突発生による特定時点でのクックーハッシュテーブルの挿入費用をチェーンハッシュテーブルを利用して最小化し、遅延書き込み政策を用いたシステム応答特性を改善させることができる。
図6は、本発明の実施例によるハイブリッドハッシュによるデータ検索方法を説明するための流れ図であり、図7は、ハイブリッドハッシュによるデータ検索を説明するための図である。
図6及び図7を参照すれば、本発明のハイブリッドハッシュによるデータ検索方法は、まず、S201段階で、キーK検索が要請されれば、制御装置160がS203段階でクックーハッシュ方式を適用し、当該キーKに対するハッシュ関数適用によってh1(K)とh2(K)を使用してクックーハッシュテーブル検索を行う。一方、S201段階または段階前に、制御装置160は、ブルームフィルタ(Bloom filter)を適用し、ハッシュジョインに対する不要なロード発生を低減させることができる。
制御装置160は、S205段階で、エントリーが空いているか否かを確認する。S205段階で、制御装置160は、エントリーが空いていれば、検索失敗として処理し、リターンする。データ挿入過程でクックーハッシュテーブルを優先的に使用するので、エントリーが空いていれば、チェーンハッシュテーブルのh(K)も空いていることが保証される。但し、このためにキー削除時にチェーンハッシュテーブルのh(K)削除作業を行うことができる。
エントリーにデータが記録されていれば、制御装置160は、S207段階で、検索するキーに該当するデータであるかを確認することができる。S207段階で、当該キーに対するデータ検索が成功すれば、リターンする。
一方、エントリーにデータが記録されているが、当該キーに対するデータではない場合、制御装置160は、S209段階で、追加的にチェーンハッシュテーブルのh(K)でリストを検索する。その後、制御装置160は、チェーンハッシュテーブルでキー検索が成功すれば、リターンする。ここで、制御装置160は、頻繁に参照されるキーの検索速度を高めるために、チェーンハッシュテーブルにあるキーが参照されれば、当該キーのエントリーをリストのヘッドに移動させる。そして、制御装置160は、リストヘッドに移動したキーがもう一度参照されれば、その後、当該キーは、クックーハッシュテーブルに移動させる。
本発明のハイブリッドハッシュ運用によるデータ更新と削除過程は、基本的に検索過程と同一であることができる。例えば、制御装置160は、更新しようとするkey−valueを当該キーを利用して位置検索を行うことができる。この際、制御装置160は、前述したように、クックーハッシュテーブルを優先的に検索し、当該キーの位置確認を行った後、当該キーに対するvalueを更新することができる。ここで、クックーハッシュテーブルに当該キーが存在しなければ、制御装置160は、チェーンハッシュテーブルを検索することができる。削除過程でも、制御装置160は、クックーハッシュテーブルをまず検索し、必要に応じてチェーンハッシュテーブルを検索するように制御することができる。
以上で説明したように、本発明の実施例によるkey−value storeシステム10は、クックーハッシュテーブルにキーが存在する場合、最大2回の参照だけで成功が保証されるので、最悪の場合を保証することができない分離連鎖法(separate chaining)に比べて安定的である。
一方、本発明のkey−value storeシステム10は、ハッシュ関数の繰り返し的計算の改善及び検索失敗時の応答遅延の補強のために追加的な方法を適用することができる。これをさらに詳しく説明すれば、制御装置160は、h1(K)とh(K)に同じハッシュ関数を使用する。制御装置160は、h1(K)を計算した後、mod演算のみを通じてチェーンハッシュテーブルのインデックスを得ることができる。また、制御装置160は、クックーハッシュテーブルでh1(K)が空いていて、h2(K)が使用される場合がないように保証することによって、h1(K)が空いている場合、h2(K)を探すことなく、直ちにリターンすることができる。また、本発明のkey−value storeシステムは、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加し、ハッシュ関数の計算を低減した。このフィールドは、キーがh1(K)の位置に格納されれば、h2(K)のインデックスを、h2(K)の位置に格納されれば、h1(K)のインデックスを格納する。具現上、union{}を使用してチェーンハッシュテーブルのリスト次のエントリーを示すnextポインタと同じ空間を使用するので、これによる追加的なメモリ使用は除去することができる。
図8〜図10は、チェーンハッシュテーブルと本発明のハイブリッドハッシュテーブル使用による作業時間測定結果を示す図である。特にチェーンハッシュテーブルとハイブリッドハッシュテーブルを使用して、テーブルエントリーの40%使用された状態で検索(lookup)作業にかかった時間を測定したものであり、それぞれ10万〜100万件について図8は成功的な検索、図9は失敗した検索、図10は10%参照地域性がある検索結果を示す。
実験結果約、90%のキーがクックーハッシュテーブルに格納されることを確認した。ハイブリッドハッシュ方式は、チェーンハッシュ方式に比べて成功的な検索の場合、平均7.4%、最大15%、10%の地域性がある場合、平均13%、最大24%少ない時間が所要された。一方、失敗した検索の場合、平均4.6%、最大12%遅い速度を示したが、検索に失敗する場合、クックーハッシュテーブルとチェーンハッシュテーブルのエントリーリストをすべて検索しなければならないからである。しかし、検索が失敗する場合にも、提案技法では、表1に示すように、チェーンハッシュテーブルのリストが大部分1個のキーだけを格納している。
Figure 2015079473
1回検索時間が非常に短いため、最悪の場合、検索時間を正確に測定することはできないが、表1の結果から予想すれば、最悪の場合、検索時間は、ハイブリッドハッシュテーブル(hybrid hash table)がさらに短いことを予想することができる。
本発明では、key−value storeシステム10において単一ノードの検索性能を改善するための技術を提案する。このような本発明は、速くて且つ安定的なクックーハッシュを使用しながらも、クックーハッシュの遅い挿入速度を補完することができるようにチェーンハッシュテーブルを一緒に使用して遅延書き込みを適用する。本発明の検索速度は、参照地域性が存在する場合、最大24%速い速度を示した。
一方、前述した説明では、本発明のハイブリッドハッシュ方式を1つのシステムで具現する形態で説明したが、本発明がこれに限定されるものではない。すなわち、本発明で説明したハイブリッドハッシュ方式は、前述したように、基本的にkey−value store方式に適用されることができる。key−value store方式は、キーを複数のサーバーに分配し、メモリ上で速い読み取り/書き込み(read/write)を用いたストレッジサービスを提供することができる。結果的に、本発明のハイブリッドハッシュ方式は、複数のシステムがノードに該当するサーバー装置にも同一の形態で適用可能である。特に本発明のハイブリッドハッシュ方式適用によって具現されたサーバー装置は、クックーハッシュを基盤とする効率的なメモリ使用と具現上の利点、及び最悪の場合にも、定数時間の作業保証を支援しながらも、チェーンハッシュ方式を補助的に運用することによって、さらに改善した挿入及び検索速度の改善を支援することができる。
なお、本明細書と図面に開示された本開示の実施例は、本開示の技術内容を容易に説明し、本開示の理解を助けるために特定例を提示したものに過ぎず、本開示の範囲を限定しようとするものではない。したがって、本開示の範囲は、ここに開示された実施例以外にも、本開示の技術的思想に基づいて導出されるすべての変更または変形された形態が本開示の範囲に含まれるものと解釈されなければならない。
10 key−value storeシステム
150 格納装置
160 制御装置
161 クックーハッシュ処理器
163 チェーンハッシュ処理器

Claims (15)

  1. クックーハッシュテーブル及びチェーンハッシュテーブルを格納する格納装置と;
    データ運用時に、クックーハッシュテーブルのエントリー検査を先行し、クックーハッシュテーブル適用不可または適用過程でオーバーヘッド発生時に、前記チェーンハッシュテーブル適用を行う制御装置と;
    を含むkey−value storeシステム。
  2. 前記制御装置は、
    データ挿入要請時に、前記クックーハッシュテーブルのエントリー検査を行い、空いていない場合、当該データを前記チェーンハッシュテーブルのリストに追加するように制御することを特徴とする請求項1に記載のkey−value storeシステム。
  3. 前記制御装置は、
    前記システムが設定された条件に進入するかを確認し、前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させるように制御することを特徴とする請求項2に記載のkey−value storeシステム。
  4. 前記制御装置は、
    前記クックーハッシュテーブルに適用される2つのハッシュ関数を同一の関数で適用するように制御することを特徴とする請求項1に記載のkey−value storeシステム。
  5. 前記制御装置は、
    前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加することを特徴とする請求項1に記載のkey−value storeシステム。
  6. 前記制御装置は、
    データ検索要請時に、前記クックーハッシュテーブルを先行して検索し、失敗時に、前記チェーンハッシュテーブル検索を行うように制御することを特徴とする請求項1に記載のkey−value storeシステム。
  7. 前記制御装置は、
    前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させ、前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させるように制御することを特徴とする請求項6に記載のkey−value storeシステム。
  8. データ挿入要請を受信する過程と;
    クックーハッシュテーブルのエントリー検査を行う過程と;
    前記クックーハッシュテーブルのエントリーが満たされている場合、チェーンハッシュテーブルのリストに前記データを挿入する過程と;
    を含むデータ運用方法。
  9. システムがあらかじめ設定された条件に進入する進入過程と;
    前記進入によって前記チェーンハッシュテーブルリストに追加したデータを前記クックーハッシュテーブルに移動させる過程と;
    をさらに含むことを特徴とする請求項8に記載のデータ運用方法。
  10. 前記データを前記クックーハッシュテーブルのエントリーに記入時に、クックーハッシュテーブルのエントリーにインデックスを格納するフィールドを追加する過程;
    をさらに含むことを特徴とする請求項8に記載のデータ運用方法。
  11. 前記進入過程は、
    前記システムがIdle状態に進入する過程であることを特徴とする請求項10に記載のデータ運用方法。
  12. データ検索要請を受信する過程と;
    前記データに対するクックーハッシュテーブルのエントリー検索を先行し、エントリー検索失敗時に、チェーンハッシュテーブルのリストを検索する過程と;
    を含むデータ運用方法。
  13. 前記クックーハッシュテーブル検索過程でハッシュ関数を同一の関数で運用する過程;
    をさらに含むことを特徴とする請求項12に記載のデータ運用方法。
  14. 前記チェーンハッシュテーブルにあるデータが参照されれば、当該データのエントリーをリストのヘッドに移動させる過程;
    をさらに含むことを特徴とする請求項12に記載のデータ運用方法。
  15. 前記リストヘッドに移動したデータが追加参照されれば、当該データを前記クックーハッシュテーブルに移動させる過程;
    をさらに含むことを特徴とする請求項12に記載のデータ運用方法。
JP2013224134A 2013-10-18 2013-10-29 データ運用方法及びこれを支援するシステム Pending JP2015079473A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0124295 2013-10-18
KR20130124295A KR20150045073A (ko) 2013-10-18 2013-10-18 데이터 운용 방법 및 이를 지원하는 시스템

Publications (1)

Publication Number Publication Date
JP2015079473A true JP2015079473A (ja) 2015-04-23

Family

ID=53010820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013224134A Pending JP2015079473A (ja) 2013-10-18 2013-10-29 データ運用方法及びこれを支援するシステム

Country Status (2)

Country Link
JP (1) JP2015079473A (ja)
KR (1) KR20150045073A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180087925A (ko) 2017-01-25 2018-08-03 삼성전자주식회사 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치
KR102017135B1 (ko) * 2017-11-21 2019-09-02 주식회사 한화 멀티코어 캐시를 이용한 해싱 처리 장치 및 그 방법
KR102462701B1 (ko) * 2017-12-04 2022-11-03 재단법인대구경북과학기술원 해쉬 체인 운행 방법 및 이를 포함하는 전자 장치
KR101993555B1 (ko) * 2018-03-05 2019-09-27 인하대학교 산학협력단 Rcc와 쿠쿠 해시 테이블을 이용한 lrfu 기반의 캐시 교체 방법 및 시스템
KR102085132B1 (ko) * 2018-11-13 2020-04-20 인하대학교 산학협력단 버킷 내부에서 해시 함수의 분류를 이용한 효율적인 쿠쿠 해시 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764801A (ja) * 1993-08-31 1995-03-10 Nec Software Ltd 利用者語検索方式
JPH08278894A (ja) * 1995-04-06 1996-10-22 Hitachi Ltd ハッシュ法による情報処理方法および情報処理装置
JPH1166095A (ja) * 1997-08-25 1999-03-09 Mitsubishi Electric Corp データ管理装置
JP2003006021A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データベースシステムとデータベース管理方法およびプログラム
US20080228691A1 (en) * 2007-03-12 2008-09-18 Shavit Nir N Concurrent extensible cuckoo hashing
US20110227790A1 (en) * 2010-03-17 2011-09-22 Microsoft Corporation Cuckoo hashing to store beacon reference data

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764801A (ja) * 1993-08-31 1995-03-10 Nec Software Ltd 利用者語検索方式
JPH08278894A (ja) * 1995-04-06 1996-10-22 Hitachi Ltd ハッシュ法による情報処理方法および情報処理装置
JPH1166095A (ja) * 1997-08-25 1999-03-09 Mitsubishi Electric Corp データ管理装置
JP2003006021A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データベースシステムとデータベース管理方法およびプログラム
US20080228691A1 (en) * 2007-03-12 2008-09-18 Shavit Nir N Concurrent extensible cuckoo hashing
US20110227790A1 (en) * 2010-03-17 2011-09-22 Microsoft Corporation Cuckoo hashing to store beacon reference data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JOONHYOUK JANG ET AL.: "Enhancing Lookup Performance of Key-Value Stores using Cuckoo Hashing", PROCEEDINGS OF THE 2013 RESEARCH IN ADAPTIVE AND CONVERGENT SYSTEMS, JPN6016017131, 4 October 2013 (2013-10-04), pages 487 - 489, ISSN: 0003312957 *

Also Published As

Publication number Publication date
KR20150045073A (ko) 2015-04-28

Similar Documents

Publication Publication Date Title
US10338917B2 (en) Method, apparatus, and system for reading and writing files
CN107870728B (zh) 用于移动数据的方法和设备
US7516166B2 (en) Resource loading
JP5886447B2 (ja) ロケーション非依存のファイル
US20110295913A1 (en) Database apparatus
JP2015079473A (ja) データ運用方法及びこれを支援するシステム
CN102349055A (zh) 对存储在存储器上的文件的访问时间最优化
WO2018141304A1 (zh) 一种闪存文件系统及其数据管理方法
US10466922B2 (en) Accelerating concurrent access to a file in a memory-based file system
US11074187B2 (en) Method, apparatus and computer program product for managing address in storage system
US20170083537A1 (en) Mapping logical identifiers using multiple identifier spaces
CN108319634B (zh) 分布式文件系统的目录访问方法和装置
CN109284066A (zh) 一种数据处理方法、装置、设备及系统
JP6293709B2 (ja) ストレージシステムおよびストレージシステム用プログラム
US10969970B2 (en) Storage optimization of database in volatile and non-volatile storing unit
EP3519993A1 (en) Tracking access pattern of inodes and pre-fetching inodes
CN104407990A (zh) 一种磁盘访问方法及装置
CN101459599B (zh) 一种实现缓存数据访问与加载并发进行的方法及系统
US9442863B1 (en) Cache entry management using read direction detection
CN111625500B (zh) 文件快照方法及装置、电子设备和存储介质
KR20190069134A (ko) 응용 프로그램간 파일 공유 장치 및 방법
US10776261B2 (en) Storage apparatus managing system and storage apparatus managing method for increasing data reading speed
CN104375781B (zh) 数据存取方法及装置
US10795875B2 (en) Data storing method using multi-version based data structure
JP2009199384A (ja) データ処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161206