JP6148763B2 - データ・アクセスを最適化するためにネットワーク・ノードにわたるデータ・ストアの中にデータ・レコードをグループ化するための方法 - Google Patents

データ・アクセスを最適化するためにネットワーク・ノードにわたるデータ・ストアの中にデータ・レコードをグループ化するための方法 Download PDF

Info

Publication number
JP6148763B2
JP6148763B2 JP2016101382A JP2016101382A JP6148763B2 JP 6148763 B2 JP6148763 B2 JP 6148763B2 JP 2016101382 A JP2016101382 A JP 2016101382A JP 2016101382 A JP2016101382 A JP 2016101382A JP 6148763 B2 JP6148763 B2 JP 6148763B2
Authority
JP
Japan
Prior art keywords
data
record
stores
identification bit
input
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.)
Active
Application number
JP2016101382A
Other languages
English (en)
Other versions
JP2017004507A (ja
Inventor
チャンドラ リシ
チャンドラ リシ
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2017004507A publication Critical patent/JP2017004507A/ja
Application granted granted Critical
Publication of JP6148763B2 publication Critical patent/JP6148763B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本主題は、一般に、データ・ストレージに関し、より詳細には、排他的にではなく、データ・レコードをグループ化し、データ・ストアの中にそれらのデータ・レコードを記憶するためのネットワーク・ノードに関する。
一般に、ビッグ・データは、ネットワークを介してアクセスされ得るビッグ・データ・ストア(データ・ストアと呼ばれる)の中に記憶された大量の複雑なデータの集まりを備える。その大量の複雑なデータは、一般に、索引付けされ、並べ替えられ、圧縮されて1つ又は複数のデータ・レコードにされたデータ・ブロックの形態で記憶される。それらのデータ・レコードは、テーブルの中に記憶され、そのテーブルが、1つ又は複数のデータ・ストアの中に記憶される。
1つの従来の方法において、その1つ又は複数のデータ・レコードは、順次に記憶され、その1つ又は複数のデータ・ストアの中の記憶のためのスペースの利用可能性に基づいて、その1つ又は複数のデータ・ストアの中にランダムに分配される。例えば、データ・レコード1及び5が、データ・ストア1の中に記憶され得る。同様に、データ・レコード6及び10が、データ・ストア2の中に記憶され得る。データ・レコード11及び16が、データ・ストア3の中に記憶されることが可能であり、データ・レコード17及び20が、データ・ストア4の中に記憶されることが可能である。図1は、その1つ又は複数のデータ・ストアの中にその1つ又は複数のデータ・レコードを記憶することを示す。特に、図1は、その1つ又は複数のデータ・ストアの中にその1つ又は複数のデータ・レコードをランダムに配布することを示す。通常、その1つ又は複数のデータ・レコードの各データ・レコードは、固定長サイズであることも、可変長サイズであることも可能な特定のビット・サイズを備える。その1つ又は複数のデータ・レコードの各データ・レコードのビット・サイズから、その1つ又は複数のデータ・ストアの中にビット単位で記憶するために最上位ビット(MSB:Most Significant Bits)及び低位ビット(LSB:Low Significant Bit)が決定され得る。既存の方法では、その1つ又は複数のデータ・ストアからのデータにアクセスすることは、全ビット・サイズに依存する。例えば、ユーザが、1から4までの範囲でキーを入力することを考慮されたい。すると、1から4までの範囲のキーを満足させるその1つ又は複数のデータ・ストア全てが探索される。その1つ又は複数のデータ・ストア全ての中で探索を行うことが関与するデータ・アクセスのそのような様態は、時間がかかる。更に、データ・アクセスのそのような様態は、一部のデータ・レコードはユーザによって要求されない可能性があるので、データをフェッチすることの無駄をもたらす。更に、既存の方法では、その1つ又は複数のデータ・ストアの全ての中で探索することは、その1つ又は複数のデータ・ストア全てを相手にした継続的なネットワーク接続を要求する。しかし、そのデータ・アクセスは、ユーザによって入力されたキーに関する応答時間を次々に遅くするネットワーク待ち時間(latency)が存在する場合、失敗する。更に、そのような従来の方法を使用してビッグ・データの中にその1つ又は複数のデータ・レコードを記憶することに関して困難及び遅延が存在する。
1つの従来の方法において、中央メタデータ・リポジトリが、その1つ又は複数のデータ・ストア全てを相手に、その1つ又は複数のデータ・ストアからデータをフェッチするために接続を確立する媒体として使用される。しかし、そのデータ・アクセスは、その中央メタデータ・リポジトリが機能することができない、且つ/又はその1つ又は複数のデータ・ストアとの接続をもたらすことができない場合、失敗する。
1つの従来の方法において、データ・パーティションを行う、すなわち、その1つ又は複数のデータ・ストアの中にその1つ又は複数のデータ・レコードを記憶するオフライン技法が提供される。特に、このオフライン技法は、その1つ又は複数のデータ・レコードが記憶に先立って前もって収集されるシナリオを参照する。次に、その1つ又は複数のデータ・レコードのビット・サイズに基づいて、その1つ又は複数のデータ・レコードが、その1つ又は複数のデータ・ストアの中に記憶される。そのようなオフライン技法は、リアルタイムで生成され、リアルタイムで記憶されることを要求する、その1つ又は複数のデータ・レコードを記憶する問題を解決しない。
1つの従来の方法において、ユーザによって入力されたキーに従って要求される、データ・アクセスが、グループのデータ・レコードに関してではなく、単一のデータ・レコードに関して実行される個別レコード指向の技法が、使用される。特に、そのような技法は、キー範囲を満足させる一括操作に関してパフォーマンスを低下させる。例えば、データ・レコードの隣接したセットの挿入/更新/フェッチに関して、その1つ又は複数のデータ・ストアの中でターゲット・データ・ストアを一度に探し出すのに、各キーがスキャンされる。そのようにして、その1つ又は複数のデータ・ストアが、データ・アクセスのために一度にスキャンされなければならない。しかし、従来の方法は、一括のデータ・レコードに関するデータ・アクセス、又はブロック指向のデータ・アクセスを含まない。
本開示を介して、従来技術の1つ又は複数の欠点が克服され、さらなる利点がもたらされる。さらなる特徴及び利点が、本開示の技法を介して実現される。本開示の他の実施例及び態様が、本明細書において詳細に説明され、主張される開示の一部分と見なされる。
したがって、本開示は、1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するためにデータ・レコードをグループ化するための方法に関する。この方法は、その1つ又は複数のデータ・ストアの各データ・レコードを取り出すことを備える。各データ・レコードを取り出すと、各データ・レコードの識別ビットが、その1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及びそれらのデータ・レコードの事前定義されたグループ・サイズを使用して評価される。次に、同一の識別ビットを有するデータ・レコードが、それらの識別ビットに関連付けられたその1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化され、その少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化する。
更に、本開示は、1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するためにデータ・レコードをグループ化するためのネットワーク・ノードに関する。このシステムは、プロセッサと、そのプロセッサに通信可能に結合されたメモリとを更に備え、そのメモリは、実行されると、そのプロセッサにその1つ又は複数のデータ・ストアの各データ・レコードを取り出させるプロセッサ実行可能命令を記憶する。プロセッサは、その1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及びそれらのデータ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードの識別ビットを評価する。プロセッサは、同一の識別ビットを有するデータ・レコードを、それらの識別ビットに関連付けられたその1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化され、その少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化する。
したがって、本開示は、1つ又は複数のデータ・ストアのうちのデータ・ストアの中に、そのデータ・ストアにおけるデータ・アクセスを最適化するために入力データ・レコードを記憶するための方法に関する。この方法は、その入力データ・レコードのサイズを識別することを備える。次に、その受信された入力データ・レコードの識別ビットが、そのデータ・レコードのサイズを使用して評価される。その入力データ・レコードの評価された識別ビットが、その1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングされる。その入力データ・レコードは、そのマッピングに基づいてその1つ又は複数のデータ・ストアのうちの1つの中に記憶され、その1つ又は複数のデータ・ストアのうちのその1つにおけるデータ・アクセスを最適化する。
更に、本開示は、1つ又は複数のデータ・ストアのうちのデータ・ストアの中に、そのデータ・ストアにおけるデータ・アクセスを最適化するために入力データ・レコードを記憶するためのネットワーク・ノードに関する。このシステムは、プロセッサと、そのプロセッサに通信可能に結合されたメモリとを更に備え、そのメモリは、実行されると、そのプロセッサにその入力データ・レコードのサイズを識別させるプロセッサ実行可能命令を記憶する。プロセッサは、その受信された入力データ・レコードの識別ビットを、そのデータ・レコードのサイズを使用して評価する。次に、プロセッサは、その入力データ・レコードの評価された識別ビットを、その1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングする。プロセッサは、マッピングに基づいて、その入力データ・レコードをその1つ又は複数のデータ・ストアのうちの1つの中に記憶し、その1つ又は複数のデータ・ストアのうちのその1つにおけるデータ・アクセスを最適化する。
更に、本開示は、少なくとも1つのプロセッサによって処理されると、ネットワーク・ノードに、1つ又は複数のデータ・ストアの各データ・レコードを取り出す動作を実行させる、記憶された命令を含む非一時的なコンピュータ可読媒体に関する。次に、各データ・レコードの識別ビットが、その1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及びそれらのデータ・レコードの事前定義されたグループ・サイズを使用して評価される。同一の識別ビットを有するデータ・レコードが、それらの識別ビットに関連付けられたその1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化され、その少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化する。
更に、本開示は、少なくとも1つのプロセッサによって処理されると、ネットワーク・ノードに、その入力データ・レコードのサイズを識別する動作を実行させる、記憶された命令を含む非一時的なコンピュータ可読媒体に関する。次に、その受信された入力データ・レコードの識別ビットが、そのデータ・レコードのサイズを使用して評価される。その入力データ・レコードの評価された識別ビットが、その1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングされる。その入力データ・レコードは、そのマッピングに基づいてその1つ又は複数のデータ・ストアのうちの1つの中に記憶され、その1つ又は複数のデータ・ストアのうちのその1つにおけるデータ・アクセスを最適化する。
以上の概要は、単に例示的であり、限定することは全く意図していない。前段で説明される例示的な態様、実施例、及び特徴に加えて、さらなる態様、実施例、及び特徴が、図面、及び以下の詳細な説明を参照して明白となろう。
本開示に組み込まれ、本開示の一部分を成す添付の図面が、例示的な実施例を示し、説明と一緒になって、開示される原理を説明する役割をする。図において、参照符号の左端の数字は、その参照符号が最初に現れる図を識別する。図の全てにおいて、同様の特徴、及び同様の構成要素を参照するのに同一の符号が使用される。次に、本主題の実施例によるシステム及び/又は方法のいくつかの実施例が、単に例として、添付の図を参照して説明される。
1つ又は複数のデータ・ストアの中にデータ・レコードをランダムに分配するための従来の方法を示す図である。 本開示のいくつかの実施例による、1つ又は複数のデータ・ストアの中にデータ・レコードを、データ・アクセスを最適化するために、それらのデータ・レコードのレコード・キーの同一の識別ビット、すなわち、最上位ビット(MSB)に基づいて一緒にグループ化することを示す図である。 本開示のいくつかの実施例による、1つ又は複数のデータ・ストアのうちのデータ・ストアの中にデータ・レコードを、データ・アクセスを最適化するために、そのデータ・レコードのレコード・キーの識別ビット、すなわち、MSBに基づいて記憶することを示す図である。 本開示のいくつかの実施例による、データ・レコードを、それらのデータ・レコードの識別ビットに基づいてグループ化し、データ・レコードを記憶するための環境の例示的な実施例を示す図である。 本開示のいくつかの実施例による、データ・レコードを、それらのデータ・レコードの識別ビットに基づいてグループ化し、データ・レコードを記憶するための環境の例示的な実施例を示す図である。 本開示のいくつかの実施例による、様々なデータと、データ・レコードを、それらのデータ・レコードの識別ビットに基づいてグループ化し、識別ビットに基づいてデータ・レコードを記憶するためのモジュールとを有する例示的なネットワーク・ノードを示すブロック図である。 本開示のいくつかの実施例による識別ビットの計算を示す図である。 本開示のいくつかの実施例による識別ビットの計算を示す図である。 本開示のいくつかの実施例による識別ビットの計算を示す図である。 本開示のいくつかの実施例による識別ビットの計算を示す図である。 本開示のいくつかの実施例による識別ビットの計算を示す図である。 本開示のいくつかの実施例による識別ビットの計算を示す図である。 本開示のいくつかの実施例による密度変動の要素分解(factorization)を示す図である。 本開示のいくつかの実施例による密度変動の要素分解を示す図である。 本開示のいくつかの実施例による、1つ又は複数のデータ・ストアの中にデータ・レコードをグループ化し、その1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するための方法を示す流れ図である。 本開示のいくつかの実施例による、1つ又は複数のデータ・ストアの中に入力データ・レコードを記憶し、その1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するための方法を示す流れ図である。 本開示に合致する実施例を実施するための例示的なコンピュータ・システムを示すブロック図である。
本明細書におけるいずれのブロック図も、本主題の原理を実現する例示的なシステムの概念図を表すことが当業者には認識されよう。同様に、いずれのフローチャート、流れ図、状態遷移図、疑似コードなども、コンピュータ可読媒体において実質的に表されるとともに、コンピュータ又はプロセッサによって、そのようなコンピュータ又はプロセッサが明示されるか否かにかかわらず、実行されることが可能な、様々なプロセスを表すことも認識されよう。
本明細書において、「例示的」という語は、「例、実例、又は例示の役割をする」を意味するように本明細書で使用される。本明細書において「例示的」である説明される本主題のいずれの実装例又は実施例も、必ずしも、他の実施例より好ましい、又は有利であると解釈されるべきではない。
本開示は、様々な変形形態及び代替形態が可能であるが、本開示の特定の実施例が、図面において例として示されており、後段で詳細に説明される。しかし、本開示を、開示される特定の形態に限定することは意図されておらず、それどころか、本開示は、本開示の範囲に含まれる全ての変形形態、機能形態、及び代替形態を範囲に含むべきことを理解されたい。
「備える」という用語、「備えた」という用語、又はこれらの用語の他の任意の変種は、非排他的な包含を範囲に含むことを意図しており、したがって、構成要素又はステップのリストを備えるセットアップ、デバイス、又は方法は、それらの構成要素又はステップを含むだけではなく、明示的にリストアップされない、又はそのようなセットアップ又はデバイス又は方法に本来的ではない他の構成要素又はステップを含むことが可能である。すなわち、「〜を備える」の前に記載される、システム又は装置における1つ又は複数の要素は、さらなる制約なしには、そのシステム又は装置における他の要素又はさらなる要素の存在を排除しない。
本開示は、1つ又は複数のデータ・ストアの中にデータ・レコードを、その1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するためにグループ化するための方法及びネットワーク・ノードに関する。このネットワーク・ノードは、データ・レコードを有する1つ又は複数のデータ・ストアに関連付けられたネットワーク・サーバであり得る。代替として、このネットワーク・ノードは、データ・レコードを備える対応するデータ・ストアを有する、又はそのようなデータ・ストアに関連付けられた他のネットワーク・ノードに接続されてもよい。一部のシナリオにおいて、このネットワーク・ノードは、それらの他のネットワーク・ノードのデータ・ストアの中にデータ・レコードをグループ化するインテリジェンス/ロジックを備える。したがって、各ネットワーク・ノードは、本開示の実施例において例示されるとおり、動作を実行することができる。その1つ又は複数のデータ・ストアは、それぞれのテーブル特性とともに行と列を有するテーブルの形態でデータ・レコードを包含するデータベースを指す。一実施例において、本開示は、その1つ又は複数のデータ・ストアの各データ・レコードを取り出す方法に更に関する。1つ又は複数のクライアント・デバイスから受信された入力キーに対応する各データ・レコードが、取り出される。入力キーは、1つ又は複数のクライアント・デバイスを介してユーザによって入力されたビット情報及び/又はキーワードを備え得る。次に、各データ・レコードの識別ビットが、その1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及びそれらのデータ・レコードの事前定義されたグループ・サイズを使用して評価される。識別ビットとは、各データ・レコードのレコード・キーの最上位ビット(MSB)を意味する。一実例において、識別ビットのメタデータ情報が、本開示の実施例を実行することに関与するネットワーク・ノードの中に記憶され、そのメタデータ情報を使用して、それらのデータ・レコードを位置決めをするためにそのネットワーク・ノードが識別される。事前定義されたグループ・サイズは、その1つ又は複数のデータ・ストアの中に記憶されることが要求されるデータ・レコードのグループを参照する低位ビット(LSB)を定義する。例えば、識別ビット、すなわち、MSBが20MSBであると評価されるものと想定すると、異なる2^20(2の20乗)のグループのデータ・レコード、すなわち、グループ・サイズ(LSB)が存在することが可能であり、各グループは、最大で2^(32−20)=2^12のデータ・レコードを包含することが可能である。したがって、20ビットの1MSBの場合、2^12のデータ・レコードが存在し、これが、1粒子(particle)である。同一の識別ビット、すなわち、同一のMSBを有するデータ・レコードは、その1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中に一緒にグループ化される。それらのデータ・レコードは、対応する識別ビット、すなわち、対応するMSBに関連付けられたその少なくとも1つのデータ・ストアの中に、その少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化するためにグループ化される。そのようにして、同一のMSBを有するデータ・レコードは、その1つ又は複数のデータ・ストアの中に一緒にグループ化され、その1つ又は複数のデータ・ストアの全てに別々にアクセスすることが解消される。特に、同一のMSBを共有するデータ・レコードを一緒に置くことは、シーケンシャル・データ・アクセスを強化する。また、データ・アクセス中のネットワーク待ち時間及び時間消費が低減される。更に、同一のMSBに基づいてデータ・レコードをグループ化することによってそのように最適化することは、その1つ又は複数のデータ・ストアの全てを相手に接続をもたらすための中央メタデータ・リポジトリの使用を解消する。特に、本開示において、その1つ又は複数のデータ・ストアは、直接にアクセスされ得る。
図2は、本開示のいくつかの実施例による、その1つ又は複数のデータ・ストアの中にデータ・レコードを、それらのデータ・レコードの各々のレコードの同一の識別ビット、すなわち、同一のMSBに基づいて一緒にグループ化することを示す。ユーザが、入力キーを入力し、その入力キーに対応して、データ・レコードが取り出されるものと考える。例えば、データ・レコード1、データ・レコード5、データ・レコード6、データ・レコード10、データ・レコード11、及びデータ・レコード16が、その入力キーに関して取り出されるものと考える。しかし、識別ビット評価、すなわち、MSB評価に基づいて、データ・レコード1とデータ・レコード5が同一のMSBを有すると判定され、データ・レコード6とデータ・レコード10が同一のMSBを有すると判定され、データ・レコード11とデータ・レコード16が同一のMSBを有すると判定される。そのような事例において、それらのデータ・レコードの各々のレコードの同一の識別ビット、すなわち、同一のMSBが、1つのデータ・ストアの中にグループ化される。例えば、データ・レコード1とデータ・レコード5が、データ・ストア1の中に一緒にグループ化され、データ・レコード6とデータ・レコード10が、データ・ストア2の中に一緒にグループ化され、データ・レコード11とデータ・レコード16が、データ・ストア3の中に一緒にグループ化される。実施例において、各データ・レコードは、グループ化されると、その1つ又は複数のデータ・ストアの中に順次に記憶される。
本開示は、その1つ又は複数のデータ・ストアのうちのデータ・ストアの中に入力データ・レコードを記憶するための方法及びネットワークに関する。このネットワーク・ノードは、前述したノードと同様である。実施例において、同一のネットワーク・ノードが、データ・レコードをグループ化することを含む動作と、データ・レコードを記憶することを含む動作の両方を実行することができる。この方法は、入力データ・レコードのサイズを識別することを備える。一実施例において、入力データ・レコードは、その1つ又は複数のデータ・ストアの中に記憶するために1つ又は複数のクライアント・デバイスを介してユーザによって入力されたデータ・レコードである。入力データ・レコードのサイズとは、固定長、及び/又は入力データ・レコードのサイズに基づく可変長を指す。次に、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBが、入力データ・レコードのサイズを使用して評価される。次に、入力データ・レコードの評価された識別ビットが、その1つ又は複数のデータ・ストアの各データ・ストアのメタデータ情報にマッピングされる。その1つ又は複数のデータ・ストアのメタデータ情報とは、その1つ又は複数のデータ・ストアのビット情報を指し、そのビット情報を使用して、その1つ又は複数のデータ・ストアが識別される。そのマッピングに基づいて、入力データ・レコードは、その1つ又は複数のデータ・ストアのうちの1つの中に記憶され、その1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化する。特に、入力データ・レコードは、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBがマッピングされたメタデータ情報を持つデータ・ストアの中に記憶される。
図3は、本開示のいくつかの実施例による、1つ又は複数のデータ・ストアのうちのデータ・ストアの中にデータ・レコードを、データ・アクセスを最適化するために、そのデータ・レコードのレコード・キーの識別ビット、すなわち、MSBに基づいて記憶することを示す。ユーザがデータ・レコード8を記憶することを所望するものと考える。入力データ・レコード8のレコード・キーの識別ビット、すなわち、MSBが評価される。入力データ・レコード8のレコード・キーの識別ビット、すなわち、MSBが、その1つ又は複数のデータ・ストアのメタデータ情報にマッピングされる。例示的な図3において、入力データ・レコード8のレコード・キーのMSBが、データ・ストア1のメタデータ情報にマッピングされるべきものと判定される。このため、入力データ・レコード8は、データ・ストア1の中に記憶される。そのようにして、同一の識別ビット、すなわち、同一のMSBを有するデータ・レコードは、一緒に記憶され、したがって、データ・アクセスを行っている間の時間消費及びネットワーク待ち時間が低減され得る。
本開示の実施例の以下の詳細な説明において、本明細書の一部分を形成し、例として、本開示が実施され得る特定の実施例が示される添付の図面を参照する。これらの実施例は、当業者が本開示を実施することを可能にするように十分に詳細に説明され、他の実施例が使用されてもよいこと、及び本開示の範囲を逸脱することなく変更が行われてもよいことを理解されたい。したがって、以下の説明は、限定する意味で解釈されるべきではない。
図4Aは、本開示のいくつかの実施例による、データ・レコードを、データ・アクセスを最適化するために、それらのデータ・レコードの識別ビットに基づいてグループ化し、識別ビットに基づいてデータ・レコードを記憶するための環境の例示的な実施例を示す。
一実装例において、ネットワーク・ノード400は、ラップトップ・コンピュータ、デスクトップ・コンピュータ、パーソナル・コンピュータ(PC:Personal Computer)、ノートブック、スマートフォン、タブレット、電子書籍リーダ(例えば、Kindle及びNook)、ワークステーション、メインフレーム・コンピュータ、サーバ、ネットワーク・サーバなどの様々なコンピューティング・システムにおいて実施され得る。一実例において、ネットワーク・ノード400は、企業に関連する。実施例において、ネットワーク・ノード400は、企業、及び/又は他の任意のサードパーティ企業に関連するデータ・レコードを有する1つ又は複数のデータ・ストア410a、410b、...410n(ひとまとめにして410と呼ぶ)を包含することも、包含しないことも可能である。1つ又は複数のデータ・ストア410は、この説明の後段において詳細に説明される。一実装例において、ネットワーク・ノード400は、データ・レコードを備える対応するデータ・ストアを有する他のノードに接続され得る。図4Bは、ネットワーク・ノード400が、通信ネットワークを介して他のノード412、414、416、及び418などに通信可能に接続された図を示す。各ノード412、414、416、及び418は、ネットワーク・ノード400と同様にデータ・レコードを有する1つ又は複数のデータ・ストア(図示せず)を包含する。各ノード412、414、416、及び418は、ネットワーク・ノード400と同様に動作する。特に、各ノード412、414、416、及び418は、識別ビット、すなわち、MSBに基づいて、1つ又は複数のデータ・ストア410及び/又はそのノード412、414、416、及び418自らのデータ・ストアの中にデータ・レコードをグループ化すること、及びデータ・ストア410及び/又はそのノード412、414、416、及び418自らのデータ・ストアの中に入力データ・レコードを記憶することができる。実施例において、ネットワーク・ノード400及び/又は他のノード412、414、416、及び418などは、ネットワーク・ノード400及び/又は他のノード412、414、416、及び418などが、1つ又は複数のデータ・ストア410のメタデータ情報、及び/又はデータ・レコードの識別ビット情報を提供することができる場合、マスタ・ノードとなる。例示的な図4Bにおいて、ネットワーク・ノード400は、他のノード412、414、416、及び418などのためのマスタ・ノードである。ネットワーク・ノード400及び他のそれぞれのノード412、414、416、及び418は、ネットワーク・ノード400及び他のノード412、414、416、及び418の各ノードのメタデータ情報を包含する。ネットワーク・ノード400の構成要素については、この説明の後段で詳細に説明される。
図4Aを再び参照すると、ネットワーク・ノード400及び/又は他のノード412、414、416、及び418の各々が、通信ネットワーク(図4Aには示されない)を介して1つ又は複数のクライアント・デバイス408a、408b、...408n(ひとまとめにして408と呼ぶ)に通信可能に接続される。1つ又は複数のクライアント・デバイス408の例には、デスクトップ・コンピュータ、ポータブル・コンピュータ、モバイル電話、ハンドヘルド・デバイス、ワークステーションが含まれるが、以上には限定されない。1つ又は複数のクライアント・デバイス408は、企業の様々な利害関係者(stakeholder)又はエンド・ユーザ又はユーザによって使用され得る。実施例において、1つ又は複数のクライアント・デバイス408は、関連する利害関係者又はエンド・ユーザ又はユーザによって、1つ又は複数のデータ・ストア410の中にデータ・レコードをグループ化するための入力キーを与えるのに使用される。1つ又は複数のクライアント・デバイス408は、利害関係者又はエンド・ユーザ又はユーザによって、1つ又は複数のデータ・ストア410の中に入力データ・レコードを記憶するために入力データ・レコードを供給するのに使用される。その利害関係者又はエンド・ユーザ又はユーザには、管理者、開発者、試験者、マネージャ、エディタ、情報技術(IT:Information Technology)スタッフ、ビジネス・インテリジェンス(BI:Business Intelligence)専門家、データ・サイエンティストなどが含まれるが、以上には限定されない。実施例において、利害関係者又はエンド・ユーザ又はユーザには、本開示に含まれるアクションのようなユーザによって実行されるアクションを実行することができるクライアント・デバイス408自体が含まれ得る。一実装例において、1つ又は複数のクライアント・デバイス408は、入出力(I/O)デバイス(図4Aには示されない)と通信するための入出力(I/O)インターフェースを含み得る。1つ又は複数のクライアント・デバイス408には、1つ又は複数のデータ・ストア410、及び/又はネットワーク・ノード400の各々のデータ・ストアにアクセスするために1つ又は複数の通信リンク(図示せず)をサポートするソフトウェア及び/又はハードウェアのような1つ又は複数のインターフェース(図4Aには示されない)がインストールされる。実施例において、1つ又は複数のクライアント・デバイス408は、ネットワーク・インターフェース(図4Aには示されない)を介して通信ネットワークと通信する。
1つ又は複数のデータ・ストア410(ときとして、データ・ウェアハウスと呼ばれる)は、ユーザによってアクセスされ、使用されるデータ・レコードを包含するデータベースである。1つ又は複数のデータ・ストア410の目的は、標準化され、構造化され、一貫性があり、統合され、正しく、浄化され、適時のデータをデータ・レコードの形態で記憶することである。データ・レコードは、各テーブル・エントリにデータを有する行と列を有するテーブルを備える。一実装例において、各データ・レコードは、1つ又は複数のデータ・ストア410の中に順次に、分散された様態で記憶される。特に、1つ又は複数のデータ・ストア410の各データ・ストアが、順次のデータ・アクセスを提供する。1つ又は複数のデータ・ストア410の各データ・ストアは、メタデータ情報に関連付けられる。特に、そのメタデータ情報は、1つ又は複数のデータ・ストア410の各データ・ストアのMSB情報を提供する。そのようにして、メタデータ情報は、対応するMSBを有するデータ・レコードが対応するデータ・ストアの中に記憶されていることを暗示する。例えば、8ビットのMSB−00011011データ・レコードが、その8ビットのMSB−00011011に関連付けられたデータ・ストアの中に記憶される。実施例において、1つ又は複数のデータ・ストア410のメタデータ情報は、各データ・レコードのレコード・キーの識別ビット情報と一緒にネットワーク・ノード400の中に記憶される。
例示される図4Aにおいて、ネットワーク・ノード400は、本開示のいくつかの実施例により、I/Oインターフェース402と、少なくとも1つの中央処理装置(「CPU」又は「プロセッサ」)404と、メモリ406とを備える。
I/Oインターフェース402は、1つ又は複数のクライアント・デバイス408から入力キー及び/又は入力データ・レコードが受け取られることに介在する媒体である。更に、I/Oインターフェース402は、1つ又は複数のクライアント・デバイス408から事前定義された密度情報、及び事前定義されたグループ・サイズ情報を受け取るように構成される。I/Oインターフェース402は、それらのデータ・レコードの各々のレコード・キーの同一の識別ビット、すなわち、同一のMSBに基づいて、それらのデータ・レコードをグループ化することの結果を、1つ又は複数のクライアント・デバイス408、及び/又はネットワーク・ノード400に関連付けられたディスプレイ・ユニット(図示せず)に供給するように構成される。また、I/Oインターフェース402は、1つ又は複数のデータ・ストア410の中に入力データ・レコードを記憶することの結果を、1つ又は複数のクライアント・デバイス408、及びディスプレイ・ユニットに供給するように構成される。記憶することの結果は、1つ又は複数のデータ・ストア410のメタデータ情報を入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBにマッピングすることに基づいて供給される。I/Oインターフェース402は、プロセッサ404に結合される。
プロセッサ404は、同一の識別ビット、すなわち、同一のMSBに基づいて、データ・レコードをグループ化し、1つ又は複数のデータ・ストア410の中に入力データ・レコードを記憶するために、ユーザ又はデバイスによって生成された入力キー、及び/又は入力データ・レコードを実行するためのプログラム構成要素を実行するための少なくとも1つのデータ・プロセッサを備えることが可能である。ユーザ又はデバイスによって生成された入力キーの場合、プロセッサ404は、受け取られた入力キーに対応する各データ・レコードを、1つ又は複数のデータ・ストア410から取り出すように構成される。プロセッサ404は、1つ又は複数のデータ・ストア410のうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及びそれらのデータ・レコード、すなわち、異なるLSBを有するデータ・レコードの事前定義されたグループ・サイズ(すなわち、LSB)を使用して各データ・レコードのレコード・キーの識別ビット、すなわち、MSBを評価する。プロセッサ404は、対応するデータ・ストアの中に存在するデータ・レコードの数、及び対応するデータ・ストアの中のデータ・レコードの収束に基づいて、データ・ストアの中のデータ・レコードの密度を計算する。プロセッサ404は、同一の識別ビット、すなわち、同一のMSBを有するデータ・レコードを、それらの識別ビットに関連付けられた1つ又は複数のデータ・ストア410のうちの少なくとも1つのデータ・ストアの中に一緒にグループ化する。
1つ又は複数のデータ・ストア410の中に記憶されることが要求されるユーザ又はデバイスによって生成された入力データ・レコードの場合、プロセッサ404は、固定長サイズ及び/又は可変長サイズであり得る入力データ・レコードのサイズを識別する。入力データ・レコードのサイズから、プロセッサ404が、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBを評価する。プロセッサ404は、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBを、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングする。プロセッサ410は、そのマッピングに基づいて入力データ・レコードを1つ又は複数のデータ・ストア410の1つの中に記憶し、1つ又は複数のデータ・ストア410におけるデータ・アクセスを最適化する。1つ又は複数のデータ・ストア410の中にデータ・レコードをグループ化すること、及び/又はデータ・レコードを記憶することは、以下の説明において説明される様々なモジュールによってリアルタイムで実行される。様々なモジュールは、ネットワーク・ノード400のプロセッサ404によって実行される。
メモリ406が、少なくとも1つのプロセッサ404によって実行可能である命令を記憶する。実施例において、メモリ406は、入力キー・データ、入力データ・レコード・データ、データ・ストア・メタデータ情報、データ・レコード識別ビット情報、データ・ストアの事前定義された密度情報、事前定義されたグループ・サイズ情報、及びルックアップ・テーブルを記憶する。実施例において、入力キー・データ、入力データ・レコード・データ、データ・ストア・メタデータ情報、データ・レコード識別ビット情報、データ・ストアの事前定義された密度情報、及び事前定義されたグループ・サイズ情報は、データ・アクセスを最適化するために要求される1つ又は複数のデータとして記憶される。この1つ又は複数のデータは、本開示の後段の説明において説明される。
図5は、本開示のいくつかの実施例による、データ・アクセスを最適化するための様々なデータ及びモジュールを有する例示的なネットワーク・ノード400のブロック図を示す。例示される図5において、メモリ406の中に記憶された1つ又は複数のデータ500、及び1つ又は複数のモジュール518が、本明細書で詳細に説明される。
実施例において、1つ又は複数のデータ500は、1つ又は複数のデータ・ストア410におけるデータ・アクセスを最適化するために、例えば、入力キー・データ502、入力データ・レコード504、データ・ストア・メタデータ情報506、データ・レコード識別ビット情報508、データ・ストアの事前定義された密度情報510、事前定義されたグループ・サイズ情報512、ルックアップ・テーブル514、及び他のデータ516を含み得る。
入力キー・データ502とは、1つ又は複数のクライアント・デバイス408から受け取られる入力キーの情報を指す。入力キー・データ502は、限定なしに、入力キーのサイズ、及びビット情報を含む。入力キーのサイズは、固定長サイズ及び/又は可変長サイズであり得る。例えば、入力キーは、固定長サイズである8ビット整数であり得る。実施例において、入力キーの可変長サイズは、固定長サイズに変換される。
入力データ・レコード・データ504とは、1つ又は複数のデータ・ストア410の中に記憶するために1つ又は複数のクライアント・デバイス408から受信された入力データ・レコードの情報を指す。入力データ・レコード・データ504は、限定なしに、入力データ・レコードのサイズ、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSB情報、及び入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBのメタデータ情報を含む。例えば、入力データ・レコードは、固定長サイズである8ビット整数であり得る。実施例において、入力データ・レコードの可変長サイズは、固定長サイズに変換される。
データ・ストア・メタデータ情報506とは、1つ又は複数のデータ・ストア410の対応するメタデータ情報を使用する1つ又は複数のデータ・ストア410の識別の詳細を指す。1つ又は複数のデータ・ストア410のメタデータ情報は、1つ又は複数のデータ・ストア410の識別ビット、すなわち、MSBを包含する。データ・ストア・メタデータ情報506は、限定なしに、1つ又は複数のデータ・ストア410のMSBビット情報、1つ又は複数のデータ・ストア410のアドレス情報、1つ又は複数のデータ・ストア410の識別(ID)情報、1つ又は複数のデータ・ストア410のサイズ、及びデータ・アクセスを最適化するために使用され得る1つ又は複数のデータ・ストア410の他のデータを含む。
データ・レコード識別ビット情報508とは、入力キーに関する各データ・レコードのレコード・キーのMSB情報、及び/又は入力データ・レコードのMSB情報を指す。データ・レコード識別ビット情報508は、限定なしに、データ・レコードのレコード・キー及び/又は入力データ・レコードのMSBを参照する各データ・レコードのMSBビット情報、各データ・レコードのレコード・キー及び/又は入力データ・レコードの識別ビット、すなわち、MSBのメタ情報、各データ・レコード及び/又は入力データ・レコードのIDを含む。
事前定義された密度情報510とは、1つ又は複数のデータ・ストア410の各データ・ストアの事前定義された密度を指す。事前定義された密度情報510は、限定なしに、各データ・ストアの中のデータ・レコードの密度、各データ・ストアの中の平均密度、密度情報の変動係数を含む。
事前定義されたグループ・サイズ情報512とは、グループ化されるべきデータ・レコードの数を定義する事前定義されたグループ・サイズ、すなわち、LSBを指す。一緒にグループ化されるデータ・レコードのそのような数は、ハッシュ・バケット・サイズ又はハッシュ・バケット範囲と呼ばれる。事前定義されたグループ・サイズ情報512は、限定なしに、データ・レコードのグループのサイズ、データ・レコードの数、各データ・レコードの各LSBのビット情報を含む。
ルックアップ・テーブル514は、テーブルの中にメタデータとしてMSB長を包含する。以下のテーブル1が、ルックアップ・テーブルを示す。
他のデータ516とは、データ・アクセスを最適化するために1つ又は複数のデータ・ストア410の中にデータ・レコードをグループ化するため、及び/又は入力データ・レコードを記憶するために参照され得るようなデータを指すことが可能である。
実施例において、メモリ406の中の1つ又は複数のデータ500が、ネットワーク・ノード400の1つ又は複数のモジュール518によって処理される。1つ又は複数のモジュール518は、図5に示されるとおりメモリ406内に記憶され得る。実例において、プロセッサ404に通信可能に結合された1つ又は複数のモジュール518は、メモリ406の外部に存在して、ハードウェアとして実施されることも可能である。本明細書で使用されるモジュールという用語は、特定用途向け集積回路(ASIC:application specific integrated circuit)、電子回路、プロセッサ(共有、専用、又はグループの)、及び1つ又は複数のソフトウェア・プログラム若しくはファームウェア・プログラムを実行するメモリ、組合せ論理回路、及び/又は説明される機能をもたらす他の適切な構成要素を指す。
一実装例において、1つ又は複数のモジュール518は、例えば、受信モジュール520と、評価モジュール522と、グループ化モジュール524と、サイズ識別モジュール526と、マッピング・モジュール528と、記憶モジュール530とを含み得る。また、メモリ406が、ネットワーク・ノード400の種々雑多な機能を実行する他のモジュール532を備えることも可能である。そのような前述したモジュールは、単一のモジュールとして表されても、異なるモジュールの組合せとして表されてもよいことが認識されよう。
1つ又は複数のデータ・ストア410のうちの少なくとも1つのデータ・ストアの中にデータ・レコードを一緒にグループ化する実施例が、本明細書に例示される。実施例において、同一のMSBに基づいてデータ・レコードをグループ化することが、第1レベル・ハッシング(hashing)と呼ばれる。実施例において、受信モジュール520が、1つ又は複数のクライアント・デバイス408から入力キーを受信する。対応する入力キーの入力キー・データ502に基づいて、各データ・レコードが、1つ又は複数のデータ・ストア410の各々から取り出される。例えば、入力キーがユーザから受け取られることを考える。入力キーに関して、異なるデータ・ストアから取り出されるべき、又はフェッチされるべき、又はアクセスされるべき20のデータ・レコードが存在する。例えば、その入力キーのために1から5までのデータ・ストアにアクセスが行われ、データ・ストア1から5から20のデータ・レコードがフェッチされる。また、受信モジュール520が、ユーザから、そのグループの中に存在するデータ・レコードの数を定義する事前定義されたグループ・サイズ、すなわち、LSBのカウントを受信する。
評価モジュール522が、データ・ストアの事前定義された密度、及びデータ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビット、すなわち、MSBを評価する。データ・ストアの事前定義された密度は、事前定義された密度情報510を使用して計算される。データ・ストアの事前定義された密度は、データ・ストアの中のデータ・レコードの数、及び/又はデータ・ストアの中のデータ・レコードの収束に基づいて計算される。密度の計算は、本明細書で詳細に説明される。実施例において、データ・ストアの密度は、統計的方法、ガウス分布などのパラメータ分布を含むが、以上には限定されない技法を使用して計算される。実施例において、ガウス分布において、その分布上の信頼区間が、密度の推定を導き出すのに使用され得る。図6Aは、データ・レコードの数が収束するまで密度サンプリングすることを示す。密度は、数が「X」、例えば、X=3である取り出されたデータ・レコードをグループ化することによってサンプリングされる。特に、取り出されたデータ・レコードは、図6Aに示されるとおり、例えば、サイズ「X」のデータ・レコードのセットとしてグループ化される。実施例において、入力キーの最小サイズ及び最大サイズが評価される。順序を保つハッシュ関数を使用して、入力キーは、ハッシュに変換される。そのようにして、データ・レコードのセットに関する最小ハッシュ及び最大ハッシュが評価される。最大ハッシュと最小ハッシュの差により、データ・レコードのセットに関するハッシュ範囲、すなわち、グループの中のデータ・レコードの範囲が評価される。ハッシュ範囲によって分割されたデータ・レコードのセットの中のデータ・レコードの数により、ハッシュ空間、すなわち、データ・ストアの中のデータ・レコードのサンプル密度が評価される。実施例において、サンプル密度は、データ・レコードの異なるセットにより変わる。図6Bは、サンプル密度の高い変動を示す。そのサンプルから、図6Cに示されるとおり或るポイントに収束する傾向がある平均密度がプロットされる。実施例において、その収束は、以下のとおり定義される変動係数(CV:Coefficient of Variance)と呼ばれる量によって測定される。すなわち、
変動係数(CV)=標準偏差/平均密度 (1)
CVがしきい値、例えば、0.01未満である場合、平均密度からの推定される誤差は、1%に過ぎない。したがって、密度は、ハッシュ空間内の密度から評価された平均値に収束したと考えられると判定される。実施例において、密度は、ユーザによって入力され得る定数又は変数である。
データ・ストアの事前定義された密度に基づいて、事前定義されたグループ・サイズが評価される。グループ・サイズは、各データ・レコードのハッシュ・バケット・サイズ(hash bucket size)、すなわち、LSBを定義する。グループ・サイズ(ハッシュ・バケット・サイズ、すなわち、LSB)の計算は、本明細書において詳細に説明される。グループ・サイズは、グループの中に所望される数のデータ・レコードを要求するユーザによって入力される。例えば、「B」という数のデータ・レコードのグループ・サイズが所望されると考えられたい。ハッシュ空間は、固定サイズのバケットに分割される。式(1)及び粒子サイズ(B)から評価された密度値を使用して、ハッシュ・バケット・サイズは、以下の式を使用して評価され得る。すなわち、
ハッシュ・バケット・サイズ=グループ・サイズ/密度 (2)
実施例において、ハッシュ・バケット・サイズは、1つのMSBに関するデータ・レコードのLSBのセットの数を定義する。ハッシュ・バケット・サイズは、データ・レコードのLSBの2のべき乗であり得る。実施例において、ハッシュ・バケット・サイズは、データ・レコードのLSBの最も近い、2のべき乗にサイズ変更される。このため、ハッシュ・バケット・サイズは、以下のとおり与えられる。すなわち、
ハッシュ・バケット・サイズ=2^L (3)
ここで、「L」は、ハッシュ・バケット内の各データ・レコードをアドレス指定することができるデータ・レコードの最下位ビット(LSB)である。
ハッシュ空間「H」は、図6Dに示されるとおり、部分、すなわち、「H−L」であるMSBと「L」であるLSBに分割される。MSBは、各ハッシュ・バケット/粒子を一意に識別することができる。図6Eは、MSBの評価、及びグループ・サイズ、すなわち、LSBを示す。密度D=0.5であるものと考えられたい。そのような事例において、図6Eを参照して、バケットが、図6Fに示されるとおり、半分満たされる。
図7は、密度変動の要素分解を示す。図6Fに示されるとおり、LSBサイズを「L1」であるものと考える。そのLSBサイズが、図7に示されるとおり、ハッシュ空間を幅(W)=2^L1というサイズのバケットに分割する。実施例において、密度の変動のため、いくつかのハッシュ・バケットは、非常に密にポピュレートされ、いくつかのハッシュ・バケットは、まばらにポピュレートされる。そのような事例において、少数の粒子しか、大多数のデータを保持することができない。それら少数の粒子が、より小さいサイズである場合、データ・レコードの分配は、データ・レコードの不均衡なクラスタにつながる。このため、密度変動の要素分解(factorization)が、バケット・サイズを小さくするように実行される。そのようにして、バケットの数が増やされ、データが均等に配分される。そのような要素分解は、「変動の不確かさ(variational uncertainity)」を使用することによって実行される。実施例において、以下に与えられるとおり、密度分散及びデータ・レコードの数に比例する分布の真の分散を定義する中心極限定理が使用される。
真の分散≒密度分散データ・レコードの数 (5)
したがって、上記の式(5)から、変動の不確かさは、以下のとおり与えられる。すなわち、
変動の不確かさ≒真の分散 (6)
実施例において、式(6)において真の変動の代わりにCVが適用される。このため、以下の式が、変動の不確かさに関して適用される。すなわち、
変動の不確かさ=CVデータ・レコードの数 (7)
式(7)から、変動の不確かさが、対数によって与えられる。例えば、「Wt」が対数に与えられた重みであるものと考えられたい。したがって、最終的なLSBカウントは、以下のとおりであり得る。すなわち、
L2=L1−WtLog(変動の不確かさ) (8)
実施例において、ハッシュ・バケット・サイズの低減は、LSBカウントをL1からL2に低減することからもたらされる。ハッシュ・バケット・サイズの低減は、粒子の数を増加させ、図7Bに示されるとおり、データ・レコードの分布のより良好な負荷分散をもたらす。
グループ化モジュール524が、同一の識別ビット、すなわち、同一のMSBを有するデータ・レコードを、前述したとおり評価されたグループ・サイズに沿って1つ又は複数のデータ・ストア410のうちの少なくとも1つのデータ・ストアの中にグループ化する。全てのデータ・レコードのメタデータ情報、及びグループ化した後の1つ又は複数のデータ・ストア410が、マスタ・ノードになるネットワーク・ノード400の中に記憶される。今や、ネットワーク・ノード400は、1つ又は複数のデータ・ストア410のメタデータ情報に従って1つ又は複数のデータ・ストア410の中にデータ・レコードを記憶しながら、他の全てのノードによって参照され、したがって、同一のMSBベースのデータ・レコードが一緒に配置される。データ・レコードをグループ化した結果は、出力モジュール(図示せず)を介して閲覧するために1つ又は複数のクライアント・デバイス408に、且つ/又はディスプレイ・ユニットに供給される。
実施例において、ユーザ又はデバイスが、1つ又は複数のデータ・ストア410の中に記憶されるべき入力データ・レコードを生成したものと考える。受信モジュール520が、ユーザからその入力データ・レコードを受信する。次に、評価モジュール522が、その入力データ・レコードを適切な負荷分散で記憶するためにランダム化ハッシュ変換を適用する。サイズ識別モジュール526が、入力データ・レコードのサイズを識別する。実施例において、1つ又は複数のデータ・ストア410の中にデータ・レコードを記憶するために、ノードにマッピングされる最終的なハッシュ値をもたらす一貫性のあるハッシングが実行される。例えば、入力キーが固定長であるものと考えられたい。そのような事例において、入力キーに対応するデータ・レコードが、一貫性のあるハッシングを使用して1つ又は複数のデータ・ストア410の中に記憶される。次に、入力キーが可変長サイズであるものと考えられたい。次に、順序を保つハッシュが、1つ又は複数のデータ・ストア410に入れる一貫性のあるハッシングのために使用される。入力データ・レコードのサイズの評価に基づいて、評価モジュール522が、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBを評価する。評価の後、マッピング・モジュール528が、入力データ・レコードのレコード・キーの識別ビット、すなわち、MSBを、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングする。実施例において、クライアント・デバイス408が、現在、マスタ・ノードであるネットワーク・ノード400と通信して、マッピングに基づいて宛先データ・ストアのアドレスを取り出す。次に、クライアント・デバイス408が、宛先データ・ストアに直接に接続され、記憶モジュール530は、図3にも示されるとおり、宛先データ・ストアの中に入力データ・レコードを記憶するように構成される。そのようにして、データ・アクセスの次のサイクルにおいて、新たな宛先データ・ストアが参照される。実施例において、1つ又は複数のデータ・ストア410の中に入力データ・レコードを記憶することの結果が、出力モジュールによって1つ又は複数のクライアント・デバイス408及び/又はディスプレイ・ユニットに供給される。
図8及び図9に示されるとおり、この方法は、シナリオに依存して、1つ又は複数のデータ・ストア410の中にデータ・レコードをグループ化し、且つ/又は入力データ・レコードを記憶するための1つ又は複数のブロックを備える。この方法は、コンピュータ実行可能命令の一般的な脈絡において説明され得る。一般に、コンピュータ実行可能命令は、特定の機能を実行する、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造、プロシージャ、モジュール、及び関数を含み得る。
この方法が説明される順序は、限定として解釈されることは意図しておらず、説明される方法ブロックのうちのいくつでも、この方法を実施するのに任意の順序で組み合わされることが可能である。更に、個々のブロックが、本明細書で説明される主題の範囲を逸脱することなく、それらの方法から削除されることが可能である。更に、この方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、又は以上の組合せにおいて実施され得る。
図8は、本開示のいくつかの実施例による、1つ又は複数のデータ・ストア410の中にデータ・レコードを、1つ又は複数のデータ・ストア410におけるデータ・アクセスを最適化するためにグループ化するための方法800を例示する流れ図を示す。
ブロック802で、1つ又は複数のデータ・ストア410の各データ・レコードが、1つ又は複数のクライアント・デバイス408から受信された入力キーに基づいて取り出される。
ブロック804で、各データ・レコードの識別ビットが、1つ又は複数のデータ・ストア410のデータ・ストアの中のデータ・レコードの事前定義された密度、及びそれらのデータ・レコードの事前定義されたグループ・サイズを使用して評価される。グループ・サイズは、ユーザによって要求される、グループ化されるべきデータ・レコードの数である。実施例において、データ・ストアの中のデータ・レコードの事前定義された密度は、データ・ストアの中のデータ・レコードの数、及びデータ・ストアの中のデータ・レコードの収束に基づいて計算される。実施例において、各データ・レコードの識別ビットのメタデータ情報は、ネットワーク・ノードの中にルックアップ・テーブルの形態で記憶される。
実施例において、方法800は、1つ又は複数のクライアント・デバイス408から受信された入力データ・レコードのサイズを識別することを実行することによって、1つ又は複数のデータ・ストア410のデータ・ストアの中に入力データ・レコードを記憶することを更に備える。次に、入力データ・レコードの識別ビットが、入力データ・レコードのサイズを使用して評価される。入力データ・レコードの評価された識別ビットは、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングされる。そのマッピングに基づいて、入力データ・レコードは、1つ又は複数のデータ・ストア410の中に記憶され、その1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化する。
図9は、本開示のいくつかの実施例による、1つ又は複数のデータ・ストア410の中に入力データ・レコードを、1つ又は複数のデータ・ストア410におけるデータ・アクセスを最適化するために記憶するための方法900を例示する流れ図を示す。
ブロック902で、入力データ・レコードのサイズが識別される。実施例において、入力データ・レコードは、1つ又は複数のクライアント・デバイス408から受信される。
ブロック904で、入力データ・レコードの識別ビットが、入力データ・レコードのサイズを使用して評価される。
ブロック906で、入力データ・レコードの評価された識別ビットが、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングされる。
ブロック908で、識別ビットが、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングされるか否かの条件が調べられる。識別ビットが、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングされる場合、プロセスは、「はい」経由でブロック910に進む。ブロック910で、入力データ・レコードが、1つ又は複数のデータ・ストア410の中に記憶され、その1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化する。識別ビットが、1つ又は複数のデータ・ストア410の1つ又は複数のメタデータ情報にマッピングされない場合、プロセスは、「いいえ」経由でブロック912に進み、プロセスは、終了される。
(コンピュータ・システム)
図10は、本開示と合致する実施例を実施するための例示的なコンピュータ・システム1000のブロック図を示す。実施例において、コンピュータ・システム1000は、ネットワーク・ノード400を実施するのに使用される。コンピュータ・システム1000は、同一のMSBに従ってデータ・レコードをグループ化し、MSBのマッピングに従って入力データ・レコードを記憶する。コンピュータ・システム1000は、中央処理装置(「CPU」又は「プロセッサ」)1002を備え得る。プロセッサ1002は、ユーザ又はデバイスによって生成された入力キー及び入力データ・レコードを実行するためのプログラム構成要素を実行するための少なくとも1つのデータ・プロセッサを備え得る。プロセッサ1002は、統合されたシステム(バス)コントローラ、メモリ管理制御ユニット、浮動小数点演算装置、グラフィックス処理ユニット、デジタル信号処理ユニットなどの専用の処理ユニットを含み得る。
プロセッサ1002は、I/Oインターフェース1001を介して1つ又は複数の入出力(I/O)デバイス(図示せず)と通信状態にあるように配置され得る。I/Oインターフェース1001は、限定なしに、オーディオ、アナログ、デジタル、モノラル、RCA、ステレオ、IEEE−1394、シリアル・バス、ユニバーサル・シリアル・バス(USB:universal serial bus)、赤外線、PS/2、BNC、同軸、コンポーネント、合成、デジタル・ビジュアル・インターフェース(DVI:digital visual interface)、高精細度マルチメディア・インターフェース(HDMI(登録商標):high−definition multimedia interface)、RFアンテナ、S−Video、VGA、IEEE802.n/b/g/n/x、Bluetooth(登録商標)、セルラ(例えば、符号分割多元接続(CDMA:code−division multiple access)、高速パケット・アクセス(HSPA+)、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM(登録商標):global system for mobile communications)、ロングターム・エボリューション(LTE:long−term evolution)、WiMAXなど)、その他などの通信プロトコル/方法を使用することが可能である。
I/Oインターフェース1001を使用して、コンピュータ・システム1000が、1つ又は複数のI/Oデバイスと通信することが可能である。例えば、入力デバイスは、アンテナ、キーボード、マウス、ジョイスティック、(赤外線)リモコン、カメラ、カード・リーダ、ファックス装置、ドングル、バイオメトリック・リーダ、マイクロフォン、タッチスクリーン、タッチパッド、トラックボール、スタイラス、スキャナ、ストレージ・デバイス、トランシーバ、ビデオ・デバイス/ソースなどであり得る。出力デバイスは、プリンタ、ファックス装置、ビデオ・ディスプレイ(例えば、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)、プラズマ、プラズマ・ディスプレイ・パネル(PDP)、有機発光ダイオード・ディスプレイ(OLED)など)、オーディオ・スピーカ、その他であり得る。
いくつかの実施例において、コンピュータ・システム1000が、通信ネットワーク1009を介して1つ又は複数のクライアント・デバイス1011a、...1011n、及び1つ又は複数のデータ・ストア1010a、...1010nに接続される。プロセッサ1002が、ネットワーク・インターフェース1003を介して通信ネットワーク1009と通信状態にあるように配置され得る。ネットワーク・インターフェース1003は、通信ネットワーク1009と通信することが可能である。ネットワーク・インターフェース1003は、限定なしに、直接接続、イーサネット(登録商標)(例えば、より対線10/100/1000 Base T)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、トークン・リング、IEEE802.11a/b/g/n/xなどを含む接続プロトコルを使用することが可能である。通信ネットワーク1009は、限定なしに、直接相互接続、ローカル・エリア・ネットワーク(LAN:local area network)、ワイド・エリア・ネットワーク(WAN:wide area network)、ワイヤレス・ネットワーク(例えば、ワイヤレス・アプリケーション・プロトコルを使用する)、インターネット、その他を含み得る。ネットワーク・インターフェース1003及び通信ネットワーク1009を使用して、コンピュータ・システム1000は、1つ又は複数のソース1011a、...1011n、1つ又は複数のセンサ1010a、...1010n、及び1つ又は複数の光インジケータと通信することが可能である。ネットワーク・インターフェース1003は、直接接続、イーサネット(登録商標)(例えば、より対線10/100/1000 Base T)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、トークン・リング、IEEE802.11a/b/g/n/xなどを含むが、以上には限定されない接続プロトコルを使用することが可能である。
通信ネットワーク1009は、直接相互接続、eコマース・ネットワーク、ピア・ツー・ピア(P2P:peer to peer)ネットワーク、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、ワイヤレス・ネットワーク(例えば、ワイヤレス・アプリケーション・プロトコルを使用する)、インターネット、Wi−Fiなどを含むが、以上には限定されない。第1のネットワーク及び第2のネットワークは、様々なプロトコル、例えば、ハイパーテキスト転送プロトコル(HTTP:Hypertext Transfer Protocol)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP)、ワイヤレス・アプリケーション・プロトコル(WAP)などを使用して、互いに通信する異なるタイプのネットワークの関連付けを表す、専用ネットワークであることも、共有ネットワークであることも可能である。更に、第1のネットワーク及び第2のネットワークは、ルータ、ブリッジ、サーバ、コンピューティング・デバイス、ストレージ・デバイスなどを含む、様々なネットワーク・デバイスを含み得る。
いくつかの実施例において、プロセッサ1002が、ストレージ・インターフェース1004を介してメモリ1005(例えば、図10には示されないRAM、ROMなど)と通信状態にあるように配置され得る。ストレージ・インターフェース1004は、限定なしに、Serial Advanced Technology Attachment(SATA)、Integrated Drive Electronics(IDE)、IEEE−1394、ユニバーサル・シリアル・バス(USB)、ファイバ・チャネル、Small Computer Systems Interface(SCSI)などの接続プロトコルを使用するメモリ・ドライブ、リムーバブル・ディスク・ドライブなどを含むメモリ1005に接続され得る。メモリ・ドライブは、ドラム、磁気ディスク・ドライブ、光磁気ドライブ、光ドライブ、Redundant Array of Independent Discs(RAID)、ソリッドステート・メモリ・デバイス、ソリッドステート・ドライブなどを更に含み得る。
メモリ1005は、限定なしに、ユーザ・インターフェース1006、オペレーティング・システム1007、ウェブ・サーバ1008などを含むプログラム構成要素又はデータベース構成要素の集まりを記憶することが可能である。いくつかの実施例において、コンピュータ・システム1000が、本明細書で開示される、データ、変数、レコードなどのユーザ/アプリケーション・データ1006を記憶することが可能である。そのようなデータベースは、Oracle又はSybaseなどのフォールトトレラントで、リレーショナル型の、スケーラブルな、セキュリティ保護されたデータベースとして実施され得る。
オペレーティング・システム1007が、コンピュータ・システム1000のリソース管理及び動作を円滑にすることが可能である。オペレーティング・システムの例には、限定なしに、Apple Macintosh OS X、Unix(登録商標)、Unix(登録商標)様のシステム配布(例えば、Berkeley Software Distribution(BSD)、FreeBSD、NetBSD、OpenBSD、その他)、Linux(登録商標)配布(例えば、Red Hat、Ubuntu、Kubuntu、その他)、IBM OS/2、Microsoft Windows(登録商標)(XP、Vista/7/8、その他)、Apple iOS、Google Android、Blackberry OSなどが含まれる。
いくつかの実施例において、コンピュータ・システム1000は、ウェブ・ブラウザ1007によって記憶されたプログラム構成要素を実施することが可能である。ウェブ・ブラウザ1008は、Microsoft Internet Explorer、Google Chrome、Mozilla Firefox、Apple Safariなどのハイパーテキスト閲覧アプリケーションであり得る。セキュリティ保護されたウェブ・ブラウジングが、Secure Hypertext Transport Protocol(HTTPS)、Secure Sockets Layer(SSL)、Transport Layer Security(TLS)などを使用して提供され得る。ウェブ・ブラウザ1008は、AJAX、DHTML、Adobe Flash、Java(登録商標)Script、Java(登録商標)、アプリケーション・プログラミング・インターフェース(API)などのファシリティを利用することが可能である。いくつかの実施例において、コンピュータ・システム1000は、メール・サーバに記憶されたプログラム構成要素を実施することが可能である。メール・サーバは、Microsoft Exchangeなどのインターネット・メール・サーバであり得る。メール・サーバは、ASP、Active X、ANSI C++/C#、Microsoft .NET、CGIスクリプト、Java(登録商標)、Java(登録商標)Script、PERL、PHP、Python、WebObjectなどのファシリティを利用することが可能である。メール・サーバは、インターネット・メッセージ・アクセス・プロトコル(IMAP:Internet Message Access Protocol)、Messaging Application Programming Interface(MAPI)、Microsoft Exchange、Post Office Protocol(POP)簡易メール転送プロトコル(SMTP:Simple Mail Transfer Protocol)などの通信プロトコルを利用することが可能である。いくつかの実施例において、コンピュータ・システム1000は、メール・クライアントによって記憶されたプログラム構成要素を実施することが可能である。メール・クライアントは、Apple Mail、Microsoft Entourage、Microsoft Outlook、Mozilla Thunderbirdなどのメール閲覧アプリケーションであり得る。
更に、1つ又は複数のコンピュータ可読記憶媒体が、本開示と合致する実施例を実施する際に利用され得る。コンピュータ可読記憶媒体とは、プロセッサによって読取り可能な情報又はデータが記憶され得る任意のタイプの物理メモリを指す。このため、コンピュータ可読記憶媒体は、プロセッサに、本明細書で説明される実施例と合致するステップ又はステージを実行させるための命令を含め、1つ又は複数のプロセッサによって実行されるように命令を記憶することが可能である。「コンピュータ可読媒体」という用語は、有形のアイテムを含み、搬送波及び過渡信号を除外するように、すなわち、非一時的であるものと理解されなければならない。例には、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハードドライブ、CD ROM、DVD、フラッシュ・ドライブ、ディスク、及び他の任意の知られている物理記憶媒体が含まれる。
本開示の実施例の利点が、本明細書で例示される。
本開示の実施例は、データ・アクセスを行うことに関する時間消費及びネットワーク待ち時間を低減する。
本開示の実施例は、ビッグ・データ解析のアプリケーションを提供する。
本開示の実施例は、ランダム化技法を提供することによって不均衡な負荷の問題を解決する。
本開示の実施例は、順次データ・アクセスをスピードアップするとともに、1つ又は複数のデータ・ストアを相手に接続をもたらすのにサードパーティ構成要素を解消する。
また、同一のMSBを有するデータ・レコードが一緒にグループ化されるので、1つ又は複数のデータ・ストアに対するホップの時間及び数が低減されもする。
説明される動作は、標準のプログラミング技法及び/又はエンジニアリング技法を使用して、ソフトウェア、ファームウェア、ハードウェア、又は以上の任意の組合せをもたらす方法、システム、又は製造品として実施され得る。説明される動作は、「非一時的なコンピュータ可読媒体」の中に保持されるコードとして実施されることが可能であり、プロセッサが、そのコンピュータ可読媒体からそのコードを読み取り、実行することが可能である。プロセッサは、クエリを処理し、実行することができるマイクロプロセッサとプロセッサの少なくともいずれかである。非一時的なコンピュータ可読媒体は、磁気記憶媒体(例えば、ハードディスク・ドライブ、フロッピー(登録商標)・ディスク、テープなど)、光ストレージ(CD−ROM、DVD、光ディスクなど)、揮発性及び不揮発性メモリ・デバイス(例えば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュ・メモリ、ファームウェア、プログラマブル・ロジックなど)などの媒体を備え得る。更に、非一時的なコンピュータ可読媒体は、一時的なコンピュータ可読媒体を除いて、全てのコンピュータ可読媒体を備える。説明される動作を実施するコードは、ハードウェア・ロジック(例えば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA:Programmable Gate Array)、特定用途向け集積回路(ASIC)など)として更に実施され得る。
更に、説明される動作を実施するコードは、「伝送信号」として実施されることが可能であり、伝送信号は、空間を介して、又は光ファイバ、銅線などの伝送媒体を介して伝播することが可能である。そのコード又はロジックが符号化される伝送信号は、ワイヤレス信号、衛星伝送、電波、赤外線信号、Bluetooth(登録商標)などを更に備え得る。そのコード又はロジックが符号化される伝送信号は、送信局によって送信されること、及び受信局によって受信されることが可能であり、伝送信号内に符号化されたコード又はロジックは、受信局又は受信デバイス、及び送信局及び送信デバイスにおいて復号されて、ハードウェア又は非一時的なコンピュータ可読媒体の中に記憶されることが可能である。「製造品」は、コードが実装され得る非一時的なコンピュータ可読媒体、ハードウェア・ロジック、及び/又は伝送信号を備える。動作の説明される実施例を実施するコードが符号化されるデバイスは、コンピュータ可読媒体又はハードウェア・ロジックを備え得る。無論、本発明の範囲を逸脱することなく、この構成に多くの変形が行われることが可能であること、及び製造品は、当技術分野において知られる適切な情報担持媒体を備え得ることが、当業者には認識されよう。
「或る実施例」、「実施例」、「いくつかの実施例」、「その実施例」、「それらの実施例」、「1つ又は複数の実施例」、「一部の実施例」、及び「一実施例」という用語は、特に明記しない限り、「本発明の1つ又は複数の(ただし、全てではない)実施例」を意味する。
「含む」、「備える」、「有する」、及び以上の変種は、特に明記しない限り、「〜を含むが、〜には限定されない」を意味する。
項目の列挙されるリストは、特に明記しない限り、それらの項目のうちの任意の項目、又は全てが互いに排他的ではないことを暗示するわけではない。
「或る」及び「その」という用語は、特に明記しない限り、「1つ又は複数の」を意味する。互いに通信状態に或るいくつかの構成要素を有する実施例の説明は、全てのそのような構成要素が要求されることを暗示するものではない。それどころか、本発明の多種多様な可能な実施例を例示する様々なオプションの構成要素が説明される。
単一のデバイス又は物品が本明細書で説明される場合、単一のデバイス/物品の代わりに複数のデバイス/物品(それらのデバイス/物品が協働するか否かにかかわらず)が使用されてもよいことが、直ちに明白となろう。同様に、複数のデバイス又は物品が本明細書で説明される場合(それらのデバイス/物品が協働するか否かにかかわらず)、それらの複数のデバイス又は物品の代わりに単一のデバイス/物品が使用されてもよいこと、或いは、示される数のデバイス又はプログラムの代わりに、異なる数のデバイス/物品が使用されもよいことが、直ちに明白となろう。デバイスの機能及び/又は特徴は、そのような機能/特徴を有するものとして明示的に説明されない他の1つ又は複数のデバイスによって代替として実施されてもよい。このため、本発明の他の実施例は、そのデバイス自体を含まなくてもよい。
図8及び図9の例示される動作は、或る順序で生じるいくつかのイベントを示す。代替の実施例において、いくつかの動作は、異なる順序で実行されること、変形されること、又は除去されることが可能である。更に、前述したロジックにステップが追加されて、それでも、説明される実施例に準拠することが可能である。更に、本明細書で使用される動作は、順次に行われることが可能であり、又はいくつかの動作が、並行に行われることが可能である。更に、動作は、単一の処理ユニットによって実行されても、分散された処理ユニットによって実行されてもよい。
最後に、本明細書において使用される言葉は、読みやすさ、及び教示の目的で主に選択されており、本発明の主題を画定するように、又は境界付けるようには選択されていない可能性がある。したがって、本発明の範囲は、この詳細な説明によってではなく、本明細書に基づく応用から生じる任意のクレームによって限定されることが意図される。したがって、本発明の実施例の開示は、添付の特許請求の範囲に記載される本発明の範囲を例示することを意図しているが、限定することは意図していない。
様々な態様及び実施例が本明細書で開示されているが、他の態様及び実施例が、当業者には明白となろう。本明細書で開示される様々な態様及び実施例は、例示を目的としており、限定することは意図しておらず、真の範囲及び趣旨は、添付の特許請求の範囲によって示される。
400 ネットワーク・ノード
402 I/Oインターフェース
404 プロセッサ
406 メモリ
408a、...408n クライアント・デバイス
410a、...410n データ・ストア
412、414、416、418 ノード
204a、...204n センサ
500 データ
502 入力キー・データ
504 入力データ・レコード
506 データ・ストア・メタデータ情報
508 データ・レコード識別ビット情報
510 事前定義された密度情報
512 事前定義されたグループ・サイズ情報
514 ルックアップ・テーブル
516 他のデータ
518 モジュール
520 受信モジュール
522 評価モジュール
524 グループ化モジュール
526 サイズ識別モジュール
528 マッピング・モジュール
530 記憶モジュール
532 他のモジュール
1000 コンピュータ・システム
1001 I/Oインターフェース
1002 プロセッサ
1003 ネットワーク・インターフェース
1004 ストレージ・インターフェース
1005 メモリ
1006 ユーザ・インターフェース
1007 オペレーティング・システム
1008 ウェブ・サーバ
1009 通信ネットワーク
1010a、...1010n クライアント・デバイス
1011a、...1011n データ・ストア
1012 入力デバイス
1013 出力デバイス

Claims (30)

  1. 1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するために、データ・レコードをグループ化するための方法であって、
    ネットワーク・ノードのプロセッサにより、前記1つ又は複数のデータ・ストアの各データ・レコードを取り出すこと、
    前記プロセッサにより、前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及び前記データ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビットを評価すること、及び
    前記プロセッサにより、同一の識別ビットを有する前記データ・レコードを、対応する識別ビットに関連付けられた前記1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化し、前記少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化することを備える方法。
  2. 前記プロセッサにより、前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中に入力データ・レコードを記憶することを、
    前記入力データ・レコードのサイズを識別すること、
    前記入力データ・レコードの前記サイズを使用して前記入力データ・レコードのレコード・キーの識別ビットを評価すること、
    前記入力データ・レコードの前記レコード・キーの前記評価された識別ビットを、前記1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングすること、及び
    前記マッピングに基づいて、前記1つ又は複数のデータ・ストアのうちの1つの中に前記入力データ・レコードを記憶して、前記1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化すること、
    を実行することによって行う請求項1に記載の方法。
  3. 各データ・レコードは、1つ又は複数のクライアント・デバイスから受信された少なくとも1つの入力キーに基づいて取り出され、前記入力データ・レコードは、前記1つ又は複数のクライアント・デバイスから受信される請求項1に記載の方法。
  4. 前記データ・ストアの中のデータ・レコードの前記事前定義された密度は、前記データ・ストアの中の前記データ・レコードの数と前記データ・ストアの中の前記データ・レコードの収束の少なくともいずれかに基づいて計算される請求項1に記載の方法。
  5. 前記プロセッサにより、各データ・レコードの前記レコード・キーの前記識別ビットのメタデータ情報を前記ネットワーク・ノードの中に記憶することを更に備える請求項1に記載の方法。
  6. 前記識別ビットの前記メタデータ情報は、前記ネットワーク・ノードの中にルックアップ・テーブルの形態で記憶される請求項5に記載の方法。
  7. データ・レコードを、1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化するためにグループ化するためのネットワーク・ノードであって、
    プロセッサと、
    前記プロセッサに通信可能に結合されたメモリであって、実行されると、前記プロセッサに、
    前記1つ又は複数のデータ・ストアの各データ・レコードを取り出すこと、
    前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及び前記データ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビットを評価すること、及び
    同一の識別ビットを有する前記データ・レコードを、対応する識別ビットに関連付けられた前記1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化し、前記少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化すること、
    を行わせるプロセッサ実行可能命令を記憶するメモリを備えるネットワーク・ノード。
  8. 前記プロセッサは、前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中に入力データ・レコードを記憶することを、
    前記入力データ・レコードのサイズを識別すること、
    前記入力データ・レコードの前記サイズを使用して前記入力データ・レコードのレコード・キーの識別ビットを評価すること、
    前記入力データ・レコードの前記レコード・キーの前記評価された識別ビットを、前記1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングすること、及び
    前記マッピングに基づいて、前記1つ又は複数のデータ・ストアの1つの中に前記入力データ・レコードを記憶し、前記1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化すること、
    を実行することによって行うように構成される請求項7に記載のネットワーク・ノード。
  9. 1つ又は複数のクライアント・デバイスに通信可能に接続されたネットワーク・ノードであって、各データ・レコードは、1つ又は複数のクライアント・デバイスから受信された少なくとも1つの入力キーに基づいて取り出され、前記入力データ・レコードは、前記1つ又は複数のクライアント・デバイスから受信される請求項8に記載のネットワーク・ノード。
  10. 前記プロセッサは、前記データ・ストアの中のデータ・レコードの前記事前定義された密度を、前記データ・ストアの中の前記データ・レコードの数と前記データ・ストアの中の前記データ・レコードの収束の少なくともいずれかに基づいて計算する請求項8に記載のネットワーク・ノード。
  11. 前記プロセッサは、各データ・レコードの前記レコード・キーの前記識別ビットのメタデータ情報を前記メモリの中に記憶するように更に構成される請求項8に記載のネットワーク・ノード。
  12. 前記識別ビットの前記メタデータ情報は、前記メモリの中にルックアップ・テーブルの形態で記憶される請求項11に記載のネットワーク・ノード。
  13. 1つ又は複数のデータ・ストアのうちのデータ・ストアの中に入力データ・レコードを記憶して、前記データ・ストアにおけるデータ・アクセスを最適化するためにための方法であって、
    ネットワーク・ノードのプロセッサにより、前記入力データ・レコードのサイズを識別すること、
    前記プロセッサにより、前記入力データ・レコードの前記サイズを使用して前記入力データ・レコードのレコード・キーの識別ビットを評価すること、
    前記プロセッサにより、前記入力データ・レコードの前記レコード・キーの前記評価された識別ビットを、前記1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングすること、及び
    前記プロセッサによる、前記マッピングに基づいて、前記1つ又は複数のデータ・ストアのうちの1つの中に前記入力データ・レコードを記憶し、前記1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化することを備える方法。
  14. 前記1つ又は複数のデータ・ストアの中にデータ・レコードをグループ化することを、
    前記1つ又は複数のデータ・ストアの各データ・レコードを取り出すこと、
    前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及び前記データ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビットを評価すること、及び
    同一の識別ビットを有する前記データ・レコードを、対応する識別ビットに関連付けられた前記1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化し、前記少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化すること、
    を実行することによって行う請求項13に記載の方法。
  15. 各データ・レコードは、1つ又は複数のクライアント・デバイスから受信された少なくとも1つの入力キーに基づいて取り出され、前記入力データ・レコードは、前記1つ又は複数のクライアント・デバイスから受信される請求項14に記載の方法。
  16. 前記データ・ストアの中のデータ・レコードの前記事前定義された密度は、前記データ・ストアの中の前記データ・レコードの数と前記データ・ストアの中の前記データ・レコードの収束の少なくともいずれかに基づいて計算される請求項15に記載の方法。
  17. 前記プロセッサにより、各データ・レコードの前記レコード・キーの前記識別ビットのメタデータ情報を前記ネットワーク・ノードの中に記憶することを更に備える請求項14に記載の方法。
  18. 前記識別ビットの前記メタデータ情報は、前記ネットワーク・ノードの中にルックアップ・テーブルの形態で記憶される請求項17に記載の方法。
  19. 1つ又は複数のデータ・ストアのうちのデータ・ストアの中に入力データ・レコードを記憶し、前記データ・ストアにおけるデータ・アクセスを最適化するためのネットワーク・ノードであって、
    プロセッサと、
    前記プロセッサに通信可能に結合されたメモリであって、実行されると、前記プロセッサに、
    前記入力データ・レコードのサイズを識別すること、
    前記入力データ・レコードの前記サイズを使用して前記入力データ・レコードのレコード・キーの識別ビットを評価すること、
    前記入力データ・レコードの前記レコード・キーの前記評価された識別ビットを、前記1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングすること、及び
    前記マッピングに基づいて、前記1つ又は複数のデータ・ストアのうちの1つの中に前記入力データ・レコードを記憶し、前記1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化すること、
    を行わせるプロセッサ実行可能命令を記憶するメモリを備えるネットワーク・ノード。
  20. 前記プロセッサは、前記1つ又は複数のデータ・ストアの中にデータ・レコードをグループ化することを、
    前記1つ又は複数のデータ・ストアの各データ・レコードを取り出すこと、
    前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及び前記データ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビットを評価すること、及び
    同一の識別ビットを有する前記データ・レコードを、対応する識別ビットに関連付けられた前記1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化し、前記少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化すること、
    を実行することによって行う請求項19に記載のネットワーク・ノード。
  21. 1つ又は複数のクライアント・デバイスに通信可能に接続されたネットワーク・ノードであって、各データ・レコードは、1つ又は複数のクライアント・デバイスから受信された少なくとも1つの入力キーに基づいて取り出され、前記入力データ・レコードは、前記1つ又は複数のクライアント・デバイスから受信される請求項20に記載のネットワーク・ノード。
  22. 前記プロセッサは、前記データ・ストアの中のデータ・レコードの前記事前定義された密度を、前記データ・ストアの中の前記データ・レコードの数と前記データ・ストアの中の前記データ・レコードの収束の少なくともいずれかに基づいて計算する請求項21に記載のネットワーク・ノード。
  23. 前記プロセッサは、各データ・レコードの前記レコード・キーの前記識別ビットのメタデータ情報を前記メモリの中に記憶するように更に構成される請求項21に記載のネットワーク・ノード。
  24. 前記識別ビットの前記メタデータ情報は、前記メモリの中にルックアップ・テーブルの形態で記憶される請求項23に記載のネットワーク・ノード。
  25. プロセッサによって処理されると、ネットワーク・ノードに、
    前記1つ又は複数のデータ・ストアの各データ・レコードを取り出す動作と、
    前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及び前記データ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビットを評価する動作と、
    同一の識別ビットを有する前記データ・レコードを、対応する識別ビットに関連付けられた前記1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化し、前記少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化する動作とを実行させる、記憶された命令を含む非一時的なコンピュータ可読媒体。
  26. 前記命令は、前記プロセッサに、前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中に入力データ・レコードを記憶すること備える動作を、
    前記入力データ・レコードのサイズを識別すること、
    前記入力データ・レコードの前記サイズを使用して前記入力データ・レコードのレコード・キーの識別ビットを評価すること、
    前記入力データ・レコードの前記レコード・キーの前記評価された識別ビットを、前記1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングすること、及び
    前記マッピングに基づいて、前記1つ又は複数のデータ・ストアのうちの1つの中に前記入力データ・レコードを記憶し、前記1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化すること、
    を実行することによって行わせる請求項25に記載の媒体。
  27. 前記命令は、前記プロセッサに、各データ・レコードの前記レコード・キーの前記識別ビットのメタデータ情報を前記ネットワーク・ノードの中に更に備えることを備える動作を更に実行させる請求項26に記載の媒体。
  28. プロセッサによって処理されると、ネットワーク・ノードに、
    前記入力データ・レコードのサイズを識別する動作と、
    前記入力データ・レコードの前記サイズを使用して前記入力データ・レコードのレコード・キーの識別ビットを評価する動作と、
    前記入力データ・レコードの前記レコード・キーの前記評価された識別ビットを、前記1つ又は複数のデータ・ストアの1つ又は複数のメタデータ情報にマッピングする動作と、
    前記プロセッサにより、前記マッピングに基づいて、前記1つ又は複数のデータ・ストアのうちの1つの中に前記入力データ・レコードを記憶し、前記1つ又は複数のデータ・ストアにおけるデータ・アクセスを最適化する動作と、
    を実行させる記憶された命令を含む非一時的なコンピュータ可読媒体。
  29. 前記命令は、前記プロセッサに、前記1つ又は複数のデータ・ストアの中にデータ・レコードをグループ化することを、
    前記1つ又は複数のデータ・ストアの各データ・レコードを取り出すこと、
    前記1つ又は複数のデータ・ストアのうちのデータ・ストアの中のデータ・レコードの事前定義された密度、及び前記データ・レコードの事前定義されたグループ・サイズを使用して各データ・レコードのレコード・キーの識別ビットを評価すること、及び
    同一の識別ビットを有する前記データ・レコードを、対応する識別ビットに関連付けられた前記1つ又は複数のデータ・ストアのうちの少なくとも1つのデータ・ストアの中にグループ化し、前記少なくとも1つのデータ・ストアにおけるデータ・アクセスを最適化すること、
    を実行することよって実行させる請求項28に記載の媒体。
  30. 前記命令は、前記プロセッサに、各データ・レコードの前記レコード・キーの前記識別ビットのメタデータ情報を前記ネットワーク・ノードの中に記憶することを備える動作を更に実行させる請求項29に記載の媒体。
JP2016101382A 2015-06-15 2016-05-20 データ・アクセスを最適化するためにネットワーク・ノードにわたるデータ・ストアの中にデータ・レコードをグループ化するための方法 Active JP6148763B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2975/CHE/2015 2015-06-15
IN2975CH2015 2015-06-15

Publications (2)

Publication Number Publication Date
JP2017004507A JP2017004507A (ja) 2017-01-05
JP6148763B2 true JP6148763B2 (ja) 2017-06-14

Family

ID=57752559

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016101382A Active JP6148763B2 (ja) 2015-06-15 2016-05-20 データ・アクセスを最適化するためにネットワーク・ノードにわたるデータ・ストアの中にデータ・レコードをグループ化するための方法

Country Status (1)

Country Link
JP (1) JP6148763B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579782B2 (en) 2020-07-15 2023-02-14 Samsung Electronics Co., Ltd. Storage controller and an operation method of the storage controller

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7174245B2 (ja) * 2018-12-27 2022-11-17 富士通株式会社 情報処理プログラム、情報処理装置及び情報処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69031028T2 (de) * 1990-02-26 1997-11-20 Oracle Corp System zum physikalischen Entwurf von Datenbanken
JP3395208B2 (ja) * 1991-07-10 2003-04-07 株式会社日立製作所 分散データベースのソート方法およびアクセス方法
JP3251239B2 (ja) * 1998-07-09 2002-01-28 中国日本電気ソフトウェア株式会社 データベース計算機、分散データベースシステム、分散データベースシステムでのキーの生成方法、分散データベースシステムのキーの生成方法を実行するプログラムを記録した記録媒体
US8103772B2 (en) * 2003-12-24 2012-01-24 Sap Aktiengesellschaft Cluster extension in distributed systems using tree method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11579782B2 (en) 2020-07-15 2023-02-14 Samsung Electronics Co., Ltd. Storage controller and an operation method of the storage controller

Also Published As

Publication number Publication date
JP2017004507A (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
US20160188710A1 (en) METHOD AND SYSTEM FOR MIGRATING DATA TO NOT ONLY STRUCTURED QUERY LANGUAGE (NoSOL) DATABASE
US10318512B2 (en) Storing and querying multidimensional data using first and second indicies
CN107111647B (zh) 用于针对时限结果提供备用查询建议的方法和查询建议服务器
US20140164487A1 (en) File saving system and method
US20140164391A1 (en) Data block saving system and method
US20180240012A1 (en) Method and system for determining classification of text
US10922288B2 (en) Method for storing data elements in a database
US10459951B2 (en) Method and system for determining automation sequences for resolution of an incident ticket
CN107704202B (zh) 一种数据快速读写的方法和装置
US20240152498A1 (en) Data storage using vectors of vectors
US10540360B2 (en) Identifying relationship instances between entities
JP6148763B2 (ja) データ・アクセスを最適化するためにネットワーク・ノードにわたるデータ・ストアの中にデータ・レコードをグループ化するための方法
US9910880B2 (en) System and method for managing enterprise user group
EP3905068A1 (en) A method and system of archiving a blockchain
CN107832347B (zh) 数据降维方法、系统及电子设备
WO2016146019A1 (en) Method and restructuring server for restructuring data stores of a multi-dimensional database
US10067678B1 (en) Probabilistic eviction of partial aggregation results from constrained results storage
WO2016107490A1 (en) Method and result summarizing apparatus for providing summary reports options on query results
US20160253380A1 (en) Database query optimization
EP4303680A1 (en) A method and a control system for dynamic provisioning of visual contents using machine learning
CN113448957A (zh) 一种数据查询方法和装置
US10423586B2 (en) Method and system for synchronization of relational database management system to non-structured query language database
CN112148705A (zh) 数据迁移的方法和装置
US20190102448A1 (en) Method and system for managing applications in an electronic device
US11625373B2 (en) Determining additions, deletions and updates to database tables

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170417

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: 20170420

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170519

R150 Certificate of patent or registration of utility model

Ref document number: 6148763

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150