JP2017533532A - 大容量メモリ内データベース用の負荷分散 - Google Patents

大容量メモリ内データベース用の負荷分散 Download PDF

Info

Publication number
JP2017533532A
JP2017533532A JP2017542337A JP2017542337A JP2017533532A JP 2017533532 A JP2017533532 A JP 2017533532A JP 2017542337 A JP2017542337 A JP 2017542337A JP 2017542337 A JP2017542337 A JP 2017542337A JP 2017533532 A JP2017533532 A JP 2017533532A
Authority
JP
Japan
Prior art keywords
data set
data
requests
control module
management device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017542337A
Other languages
English (en)
Other versions
JP6429262B2 (ja
Inventor
シェイ・ゴイクマン
アントニオス・イリオポウロス
エリーツァー・レヴィー
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2017533532A publication Critical patent/JP2017533532A/ja
Application granted granted Critical
Publication of JP6429262B2 publication Critical patent/JP6429262B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

制御モジュール(100)およびストレージモジュール(110)を含むデータ管理デバイス(10)が提供され、ストレージモジュール(110)は、複数のデータセットが割り当てられたような複数のデータ・セット・グループの複数のデータセットを、全てのデータ・セット・グループが少なくとも1つのデータセットを含みかつ全てのデータセットが1つのデータ・セット・グループにだけ保存されたような、複数のデータ・セット・グループに保存するように構成され、並びに制御モジュール(100)は、排他的実行コンテキストを各データ・セット・グループに割り当て、全てのデータセットに関してデータセットの要求の数を推定するように構成される。制御モジュール(100)は、データセット要求の推定された数に基づいて全てのデータ・セット・グループに関してデータセットを決定し、およびデータ・セット・グループのデータセット要求の推定された数が、複数のデータ・セット・グループの内の1つに割り当てられた少なくとも1つの排他的実行コンテキストのためのデータセットの所定の数以下であるような、データ・セット・グループに、データセットを再割り当てするように構成される。従って、データ・セット・グループの歪んだ作業負荷および再割り当てされた排他的実行コンテキストを回避することができる。

Description

本発明は、データ管理デバイスの技術分野に関し、例えば、特に大量のデータを保存および管理し、およびこれらのデータを読み取りまたは書き込み動作のためにクライアントに提供するためのコンピュータデバイスに関する。
大規模メモリ内データベースは、キー値ストア、オンライントランザクション処理(OLTP)データベース、大規模ウェブアプリケーション、大量のオンライン・マルチプレーヤ・ゲーム、ソフトウェア定義ネットワーク(SDN)コントローラ・ネットワーク・ビュー、科学的シミュレーションなどとして機能するために、現在、生産拠点で使用されている。これらのアプリケーションは、非一様メモリアクセス(NUMA)シェアドエブリシング(shared-everything)アーキテクチャのスレッドなど、複数の実行コンテキストを使用して高いトランザクション率を維持するように構築されており、これによりデータセットは、論理的にパーティション化され、各パーティションは、そのパーティション上のトランザクションを処理する責任がある実行コンテキストに関連付けられている。
Kalman, Robert他:H-store:A High-performance, Distributed Main Memory Transaction Processing System, VLDB Endowment、2008年8月に記載されているように、分割方法は、パーティション上で実行コンテキストの排他性を強化し、そうすることによってトランザクションは任意のロックまたはラッチを使用することなく、シングルスレッド物理アクセス環境において実行される。このアプローチは、パーティション上で高効率の順次処理と、トランザクション処理をスケールアップすることができるパーティション全体にわたって採用された並列処理とを組み合わせるものとして、説明されることができる。
しかしながら、静的分割方法は、効率の問題が伴い、いくつかの実行コンテキストが例外的に高い更新レートに遭遇することがあり、他のものは不十分であるため、分割することは役に立たず、さらにわずかに歪んだ作業負荷分布がデータセットに課されるとき、拡張性を厳しく制限する。何名かの著者が述べているように、現実の例における可変の作業負荷の歪みは、Pinar Tozun他:Scalable and dynamically balanced shared-everything OLTP with physiological partitioning, The VLDB Journal DOI 1007/s00778-012-0278-6,2012年6月に記載されているような例外ではなく、むしろルールである。
Hyeontaek Lim他: MICA: A Holistic Approach to Fast In-Memory Key-Value Storage, NSDI’14, 2014年4月, Seattle, WA USAは、パーティション内でキーの位置を分配しようとするスペシャル静的ハッシュ関数を使用することによって作業負荷の歪みをアドレス指定するメモリ内キー値ストアについて記載している。それによって、パーティション上の平均負荷は、Zipf分布実験で53%偏差未満である。しかしながら、静的な配置および分割方法では、システムは非適応型であり、従って、例えば負荷が低い場合に効率が低下する可能性がある。
本発明の目的は、歪み問題を解決するデータ管理デバイスを提供する、つまり異なる排他的実行コンテキスト間の効率的な作業負荷分散を可能にする分割を提供することである。
この目的は、独立請求項の主題によって解決される。さらなる実施形態は、従属請求項および以下の説明において記載される。
本発明の一態様に従って、データ管理デバイスが提供される。データ管理デバイスは、制御モジュールと、ストレージモジュールと、を含むデータ管理デバイスであって、ここで、ストレージモジュールは、複数のデータセットが割り当てられたような複数のデータ・セット・グループの複数のデータセットを、全てのデータ・セット・グループが少なくとも1つのデータセットを含みかつ全てのデータセットが1つのデータ・セット・グループにだけ保存されたような、複数のデータ・セット・グループに保存するように構成され、制御モジュールは、排他的実行コンテキストを各データ・セット・グループに割り当て、および全てのデータセットに関してデータセット要求の数を推定するように構成される。該制御モジュールは、データセット要求の推定された数に基づいて全てのデータ・セット・グループに関してデータセットを決定し、およびデータ・セット・グループのデータセット要求の推定された数が、複数のデータ・セット・グループのうちの1つに割り当てられた少なくとも1つの排他的実行コンテキストのためのデータセット要求の所定の数以下であるような、データ・セット・グループに、データセットを再割り当てするようにさらに構成される。
特に、本明細書で説明されるデータ管理デバイスは、共有された全てのアーキテクチャの分割されたメモリ内データストアにおいて歪み問題を解決してもよい。グローバル動的作業負荷分布の正確な瞬間統計モデルが構築され、およびデータセットが、知覚された負荷に従って再割り当てされることがデータ管理デバイスの一態様であってもよい。データ管理デバイスは、メモリ内データベースまたはデータ保存に適用されるプロアクティブメソッド(pro-active method)を実装するものとして説明されてもよい。
排他的実行コンテキストは、コンピューティングデバイスの処理ユニット上で実行されるスレッドであってもよい。以下では、スレッドを参照するとき、各記述が一般的に排他的実行コンテキストにも関連することを理解されたい。上記で引用されたようなデータセットは、少なくとも1つのキー値エントリ(好ましくは、分類された、または一緒に集められた2つ以上のキー値エントリ)を含む1つのストライプとして記述されてもよく、およびデータ・セット・グループは、複数のデータセットを含む1つのパーティションである。これらの用語は、それぞれ互いを代表して使用されてもよい。
データセット要求は、クライアントによって開始され、およびパーティションの1つのデータセット上で実行されるスレッドの1つに転送される、データセットへの特に1つの作業(読み/書き)に関してもよい。データセット要求は、(それぞれ排他的コンテキストを備えた)パーティションで処理されてもよく、および様々なタイプ、例えばストラクチャード・クエリ・ランゲージ(structured query language、SQL)またはOLTPトランザクションなどにすることができる。制御モジュールが再分割を開始するとき、実行される要求の総数およびタイプの両方が考慮されてもよく、およびパーティションを崩す/マージする可能性もある。
一般的に、制御ユニットは、その再分割の決定において、どんなプラットフォーム依存のアプリケーションおよび動的情報であっても使用してもよい。
各データ・セット・グループは、複数のデータセットを含み、および各データセットは、1つのデータ・セット・グループにのみ含まれる。この関係は、データ・セット・グループへのデータセットのN対1の関係として説明されてもよい。
スレッドごとの要求は、割り当てられたスレッドの初期数で割られた要求到着率の現在の及び/又は将来の分布の尤度として取られたデータストア上で処理された測定された要求の数に基づいて価値関数として説明されてもよい。制御モジュールが、スレッドの性能を決定できる、または決定した、かつ割り当てられるべきスレッド数を決めることができるとき、スレッドあたりの要求を静的にすることができ、それによって、そのように決めたならば、スレッド数を減少させ、電力消費を節約する。
データ管理装置および特に制御ユニットは、全てのデータ・セット・グループに関するデータセットを決定するように構成される。例えば、全てのデータ・セット・グループの構成が決定される、すなわち、全ての単一のデータセットのために、どのデータ・セット・グループに割り当てられるかが決定される。
例えば、制御モジュールは、データ・セット・グループにわたるデータセット要求の分布に基づいて全てのデータ・セット・グループに関するデータセットを決定し、およびデータ・セット・グループの予想されたデータセット要求の数が、複数のデータ・セット・グループの内の1つに割り当てられる少なくとも1つの排他的実行コンテキストのためのデータセット要求の所定の数より少ないかまたは等しいといったデータ・セット・グループにデータセットを再割り当てするように構成されてもよい。従って、分割は、パーティションごとの要求の予想された数に基づいて実行される。
一実施形態において、制御モジュールは、全てのデータセットに関してデータセット要求の尤度を決定し、及び/又はストレージモジュールの全域で特定の要求タイプの累積尤度関数に基づいて全てのデータ・セット・グループに関してデータセットを決定し、およびデータ・セット・グループにおける数要求の尤度が排他的実行コンテキストごとの要求の所定の数より少ないか等しいようなデータ・セット・グループにデータセットを再割り当てするようにさらに構成されてもよい。例えば、OLTP要求は、読み/書きのためのいくつかのデータストア位置にアクセスしてもよい。言い換えると、OLTP要求は、データストアの特定の位置をカバーする確率を有するゲット/プット(get/put)の拡張である前記サブセット・データ・ストアをカバーする確率を有する。
データ・セット・グループへのデータセットのマッピングが再割り当てされるようにパーティションのサイズ変更をすることは、データ管理デバイスの一態様であってもよい。この再割り当ては、データストアにわたる要求分布の統計的尤度に基づいてもよく、従って、データ・セット・グループにアクセスするプロセスが、要求分散において歪みの存在する状態でシリアライゼーションを回避し、および要求処理の並列化とスケーラビリティを可能にするように、補正および予測ロードバランシングを可能にする。
本発明の態様によれば、制御モジュールが、データ管理デバイスの動作中に複数のデータ・セット・グループのうちの1つに割り当てられた少なくとも1つの排他的実行コンテキストに、所定の数のデータセット要求を動的に適合するように構成される。
従って、例えばデータセット要求の総数が増加または減少する場合、およびデータ・セット・グループおよびスレッドの数が一定のままである場合、閾値はデータ管理デバイスの変更された負荷状態に適合されることができる。
本発明の更なる態様によれば、制御モジュールが、全てのデータセットに関してデータセット要求の尤度を推定し、およびストレージモジュールにわたる要求の累積尤度関数に基づいて全てのデータ・セット・グループに関してデータセットを決定し、およびデータ・セット・グループの要求の数の尤度が、複数のデータ・セット・グループのうちの1つに割り当てられた少なくとも1つの排他的実行コンテキストのためのデータセット要求の所定の数以下であるような、データ・セット・グループに、データセットを再割り当てするように構成される。
言い換えると、制御モジュールは、ストレージモジュールにわたる要求分布の累積尤度関数に基づいて全てのデータ・セット・グループに関してデータセットを決定するように構成されてもよく、ここで各要求に重み、すなわちメトリック値が割り当てられてもよく、および制御モジュールは、データ・セット・グループにおける要求の数の尤度が排他的実行コンテキストごとの要求の所定の数より少ないか等しいような、データ・セット・グループにデータセットを再割り当てするように構成されてもよい。
本発明の更なる態様によれば、データセット当たりのデータセット要求の数の尤度が、各データセットに適用され、個々の要求重みパラメータとデータセット上の要求の尤度で計算された累積尤度分布関数(CDF)とによって量られたデータセット要求の数を測定することによって近似される。
データセット上の要求の尤度は、ストレージモジュールの所定の順序で並べられたデータセット上で計算されてもよい。再分割方法は、以下のような累積分布関数の逆を計算することによって取得されてもよい。
j= CDF-1(work-per-thread*k)
ここで1≦k≦Num_of_threads、jは全順序のデータセットのインデックスである。
従って、データセットごとの要求は、(分類または別の手段によって定義される)ある順序で配列に配置される。例えば、データセットiにおける認められた要求の数を保持する配列pdf[i]であってもよく、1つのデータ・セット・グループにおけるデータセットの数であるNを使用して、0≦i≦Nである。次いで、CDFは、次のように漸化式として計算される。
CDF [0] = pdf [0]
CDF [i] = pdf [i] + CDF [i-1]
ここで、where 1≦i≦Nである。
CDF-1の計算は、以下のようにカスタマイズされた二分探索法を使用することによって行われてもよい。
bin_search (CDF, work-per-thread*k) returns index j
ここで、CDF [j] ≦ work-per-thread*kである。
本発明のさらなる態様によれば、制御モジュールは、1つのデータ・セット・グループに含まれるデータセットの数及び/又はアイデンティティを動的に変えるように構成される。
データ・セット・グループのサイズは、データ管理デバイスの動作中に変更されることができる。1つのデータ・セット・グループに含まれるデータセットのアイデンティティを変更することは、データセットの割り当てをデータ・セット・グループへ再割り当てすることとして説明されてもよく、例えば、データセット1はデータセットの再割り当て後に別のデータ・セット・グループに配置されてもよい。
従って、データ・セット・グループのサイズ及び/又はコンテンツは、データセット要求の数及び/又は種類に基づいて適合されてもよい。データ・セット・グループのサイズを変更することは、要求頻度の低いデータセットを含むデータ・セット・グループが、より大きくされることができ、およびさらに頻繁に要求されるデータセットを含むデータ・セット・グループが、より小さくされることができ(ここで、頻度は例えば上述したような尤度分布関数によって近似される)、そうすることによってデータ・セット・グループの全体的な作業負荷が均一にされ、および(同時に並列化が有効であり)作業要求歪みがある場合にシリアライゼーションを回避することができる、という効果を得ることができる。
例えば、1つのデータ・セット・グループがほとんどの要求を取得した場合、作業負荷歪みが存在する。この場合、1つのスレッドのみがそれらを連続的に処理する。次いでデータ管理デバイスの性能は、通常、2つのスレッドが並列で(2回のスループットで)動作している場合と同じくらいに、2倍に増やされたレイテンシを備えた1つのスレッドのスループットに制限される。
本発明のさらなる態様によれば、制御モジュールが、少なくとも最初のデータ・セット・グループについてデータセットを繰り返し決定し、および少なくとも最初のデータ・セット・グループについて決定されたデータセットの数と、少なくとも最初のデータ・セット・グループにおけるデータセットの現在の数との間の差が所定の閾値を超える場合、データセットをデータ・セット・グループに再割り当てするように構成される。
言い換えると、再分割の計算は、例えば数秒ごとなどのシステムのイベントによって周期的に繰り返されるか、またはトリガされる。最初のデータ・セット・グループの新しいサイズと最初のデータ・セット・グループの古いサイズとの間の差が閾値を超えない場合、分割の計算は破棄される。
制御モジュールは、各データ・セット・グループに関してデータセットの数を繰り返し決定してもよく、および最初のデータ・セット・グループだけでなく各データ・セット・グループにステップを実行してもよい。
一方では、再分割を実行することは計算能力を必要とするため、システムリソースを消費し、および一方で再分割はパーティションおよび割り当てられたスレッドのより良い作業ロードバランスを導く。従って、再割り当ての結果としてのシステム性能上の予想される利得が再分割のために必要とされる計算能力よりも高い場合、査定することが有益であり得る。
この実施形態において、再分割によるシステム性能の予想される利得が再分割のリソースコストよりも高い場合にのみ、再分割は実行され、これは、現在のパーティションサイズと予想される新しいパーティションサイズを比較し、およびそれらの間の差分を決定することによって達成される。
本発明のさらなる態様によれば、制御モジュールが、最初のデータ・セット・グループのデータセット要求の最初の数と二番目のデータ・セット・グループのデータセット要求の二番目の数との間の差が所定の閾値と等しいか大きい場合、データセットをデータ・セット・グループに再割り当てするように構成される。
この実施形態において、2つのデータ・セット・グループ間の差分が所定の閾値よりも大きい場合、再分割が開始される。言い換えると、システム性能の全体的な利得(再分割コスト−システム性能の利得)は、現在のパーティションサイズおよび予想されるパーティションサイズだけでなく、2つ以上のパーティションの相対的なパーティションサイズの変更を考慮してもよい。
これは特に、データ・セット・グループのデータセットを再配置することに関連し、および2つの既存のパーティション間の歪んだ作業負荷の場合に有利であってもよい。
閾値(第1と第2のパーティションとの間の差分)は、再分割があまり行われないように、あるいは計算能力を要する最小の差分で行われないように選択されることができ、および、データ・セット・グループの作業負荷が、歪んだ作業負荷が原因による追加の計算能力が再割り当てプロセスの計算能力と等しいかそれ以上であるようなものである場合、再分割が実行される。
本発明のさらなる態様によれば、制御モジュールは、データセット要求の数及び/又は種類の昇順でデータセットをデータ・セット・グループに割り当てるように構成される。
データセット要求の数の昇順とは、データセット要求の数が増加するようにデータセットが論理的に配置され、次いでこの順序に従ってデータセットのデータ・セット・グループへの割り当てが実行されることを意味する。例えば、少ないデータセット要求を有するデータセットは、最初のデータ・セット・グループがデータセット要求の閾値(=最初のデータ・セット・グループの全てのデータセットのデータセット要求の合計)に達する等しいデータセットだけ割り当てられるまで、最初のデータ・セット・グループに割り当てられる。後続のデータセットは、各データ・セット・グループについてデータ・セット・グループごとのデータセット要求の閾値に到達するまで、後続のデータ・セット・グループに同様に割り当てられてもよい。
制御モジュールは、ストレージモジュールのデータセットの全順序でデータセットを割り当てるように構成されてもよい。
この実施形態において、比較可能なデータセット要求の数を有するデータセットを含むデータ・セット・グループが生成される。データ・セット・グループの要求の数(すなわち、1つのグループの全てのデータセットの要求の合計)は、同様のレベルに調整され、および個々のデータ・セット・グループのデータセットは、データセットの要求の数がほぼ同じになるようにグループ化されてもよい。
これは、スレッドごとの要求分布において非隣接スパイクを克服する。再分割のあと、データセットは、スレッドおよび一致したパーティションが、それらの作業負荷に従って互いに隣接するようなデータ・セット・グループに配置され、および任意の作業負荷を備えたスレッドは間に配置されない。マルチデータセットトランザクションに関連するデータセット上でスケール(scale)された適切な重みは、総順序においてこれらのデータセットの隣接性を保証してもよく、およびデータ・セット・グループをそれに応じてマージすることを可能にしてもよい。
本発明の更なる態様によれば、制御モジュールは、データセット要求の数の降順でデータセットをデータ・セット・グループに割り当てるように構成される。
この態様において、データセットは、データセット要求の数が減少し、およびデータ・セット・グループへのデータセットの割り当てが、この順序に従って実行されるように論理的に配置される。データセット要求の大きい数を有するデータセットは、最初のデータ・セット・グループが多くのデータセットとして割り当てられデータセット要求の閾値に達するまで、最初のデータ・セット・グループに割り当てられる(=最初のデータ・セット・グループの全てのデータセットのデータセット要求の合計)。後続のデータセットは、データ・セット・グループごとのデータセット要求の閾値がこのデータ・セット・グループのための閾値に達するまで、後続のデータ・セット・グループに同様に割り当てられる。
この態様において、強く要求されるまたは必要とされるデータセットの位置は、決定されることができる。強く要求されたデータセットは、最初のデータ・セット・グループに配置される。
あるいは、制御モジュールは、ストレージモジュールのデータセットの全順序においてデータ・セット・グループにデータセットを割り当てるように構成されてもよい。
本発明の更なる態様によれば、ストレージモジュールは、非永続的ストレージである。
非永続的ストレージは、ランダム・アクセス・メモリ(RAM)であってもよく、データ・セット・グループは、それにより高いトランザクション率を可能にするためにメモリ内データベースを構築してもよい。
本発明の更なる態様によれば、制御モジュールは、複数の排他的実行コンテキストを生成し、および各排他的実行コンテキストを1つのデータ・セット・グループに割り当てるように構成される。
従って、排他的実行コンテキストは、このデータ・セット・グループのデータセット上の動作を実行するために、1つのデータ・セット・グループに割り当てられる作業スレッドとして説明されてもよい。
複数の排他的実行コンテキストを持つことは、排他的実行コンテキストの階層的なレベルでロードバランシングを可能にし、および既存の排他的実行コンテキストが過負荷である場合、新しい排他的実行コンテキストの作成を可能にする。
ロードバランシングの異なるレベルは、以下のように言及されてもよい。すなわち、ロードバランシングの1番目のレベルは上述したように再分割され、ロードバランシングの2番目のレベルは既存のスレッドの平均作業負荷を減少するために未処理の要求を処理する追加の排他的実行コンテキスト(作業スレッド)を作成することによって実行される。
システム作業負荷が減少した場合、すなわち全体的な作業負荷が許可する場合、制御モジュールは、電力を低減するために少なくとも1つまたは複数の排他的実行コンテキストをシャットダウンし、および残りの排他的実行コンテキストにパーティションを再割り当てする。
本発明の更なる態様によれば、制御モジュールが、複数の排他的実行コンテキストを1つのデータ・セット・グループに少なくとも一時的に再割り当てするように構成される。
制御モジュールは、プロセッサの1つまたは複数のプロセッサあるいはコアにすることができる。制御モジュールは、μ秒の時間スケールで作業負荷を達成するために、スレッドの作業を取得し、それを別のスレッドに割り当ててもよい。この割り当ては、一時的な割り当てであることが好ましい。すなわち、1つの排他的実行コンテキストが過負荷であり、別の排他的実行コンテキストがその要求キューに未解決の要求を有さない場合である。
この実施形態において、特に、1つの排他的実行コンテキストが1つのデータ・セット・グループの利用可能な作業負荷を利用できない場合、分散されたシステム、すなわち排他的実行コンテキストとデータ・セット・グループが同じくらいのレベル、例えば、それらの最大容量の75%と85%の間の両方の範囲でロードされる分散されたシステムを有するために、2つ以上の排他的実行コンテキストを1つのデータ・セット・グループに割り当てることが有利である。
本発明のさらなる実施形態によれば、制御モジュールが、1つの排他的実行コンテキストの平均負荷を決定し、および平均負荷が所定の負荷値を超える場合、追加の排他的実行コンテキストを生成するように構成される。
従って、排他的実行コンテキストの数は、現在のシステム全体の負荷に基づいて適切に決定されることができる。同様に、作業負荷が許可する場合、排他的実行コンテキストの数は減らされてもよい。
本発明のさらなる実施形態によれば、制御モジュールが、任意の排他的実行コンテキストの作業負荷を決定し、および第1の排他的実行コンテキストの作業負荷が第2の作業過程の作業負荷を超える所定の閾値である場合、排他的実行コンテキストをデータ・セット・グループに再割り当てするように構成される。
これは、追加のレベルでロードバランシングを可能にする。最初のロード・バランシング・メカニズムは、データ・セット・グループのサイズ変更であり、2番目のロード・バランシング・メカニズムは、データ・セット・グループへの作業プロセスの再割り当てである。従って、ロードバランシングの粒度が改善され、異なるメカニズムが異なるシナリオで使用されることができる。特に、データ・セット・グループへの作業プロセスの再割り当ては、データ・セット・グループをサイズ変更するよりも低い計算能力が必要とされる。
言い換えると、データ管理デバイスは、以下のように説明されてもよい。データ管理デバイスの態様は、作業負荷のダイナミクスを考慮することによって、データセットのパーティション上のスレッド排他性の概念をさらに一歩進めることが見られ得る。キー値ストアをストライプの集合としてモデル化し、およびそのストライプパーティションに適用される各スレッド動作のコストをモデル化することにより、パーティションにわたるグローバルな負荷分散の統計モデルが構築される。このモデルは、プラットフォーム特性によって、およびシリアル-パラレルトレードオフ推論を適用することと組み合わされることによって強化され、知覚された負荷の下で十分なスループット−レイテンシ全体性能に到達するデータセットの新しい動的に均衡のとれた分割を計算するために使用される。シェアドエブリシングアーキテクチャの利点を得ることにより、パーティションのサイズ変更は、任意のデータ移動することなしに生じてもよい。
このアプローチは、知覚された作業負荷に従って全てのマシンリソース利用のグローバルな視点を可能にしてもよく、それによって知覚された作業負荷をより効率的なリソース利用と一致させることができてもよく、従って高効率を促進する。データ管理デバイスは軽量であり、歪んだ作業負荷分散と変動に迅速に対応し、および1つのスレッドから作業を盗み、盗んだ作業を別のスレッドに再割り当てすることを通じて、瞬間的な分散を可能にしてもよい。本明細書で説明する手法は、例えばホット/コールド(hot/cold)クラスタリングのような動的キャプチャ情報に基づいて高度な最適化を可能にしてもよい。静的な知識および制約は、シングルスレッドの性能を向上するために使用されてもよい。動的情報は、マルチスレッドの性能を向上するために使用されてもよい。要するに、これらの全ての性質は、非常に高い効率をスケーラブル(scalable)なキー値ストアに提供してもよい。
本発明の実施形態を、以下の図面に関して説明する。
複数の要求デバイスに接続された、本発明の例示的な実施形態に従った、データ管理デバイスを概略的に示す図である。 本発明の例示的な実施形態に従ったデータ管理デバイスのキー値ストア・スレッド・モデルを概略的に示す図である。 本発明の例示的な実施形態に従ったデータ管理デバイスの複数のデータ・セット・グループにわたる確率分布関数のヒストグラムを概略的に示す図である。 本発明の例示的な実施形態に従ったデータ管理デバイスにおけるソートされた確率分布関数上の累積分布関数に基づくデータ・セット・グループの分割を概略的に示す図である。 本発明の例示的な実施形態に従ったデータ管理デバイスにおけるデータ・セット・グループの構成を概略的に示す図である。 本発明の例示的な実施形態に従ったデータ管理デバイスにおける要求ルーティング処理を概略的に示す図である。 本発明の例示的な実施形態に従ったデータ管理デバイスにおけるデータ・セット・グループを再分割するステップを概略的に示す図である。
図1は、制御モジュール100と、ストレージモジュール110と、を備えたデータ管理デバイス10を図示しており、データ管理デバイス10は、クライアント呼ばれ得る1つまたは複数の要求デバイス20に通信可能に接続される。データ管理デバイスはサーバと呼ばれてもよい。
ストレージモジュール110は、各々が複数のデータ・セット・エントリを有する多数のデータ・セット・グループを含むメモリ内データベースを含むように構成される。制御モジュール100は、要求するクライアントのストレージモジュール110へのアクセスをスケジュールし、およびメモリ内データベースの構造を編成(データ管理デバイスを参照して上述されたように、再分割、パーティションへのスレッド再割り当て等)するように構成される。
図2は、データ管理デバイス10によって使用されてもよい共有キー値ストア・スレッド・モデルを図示する。特に、図2はメモリ内キー値ストア内の分割およびスレッド割り当てを説明するために参照されてもよい。ストレージレイアウト抽象化120は、ストライプ122のセットを指定し、各ストライプはキー値ストア内に定義された、いくつかのテーブルの行の集合を表す。キー値ストア演算処理は、フロントエンド(FE)140とバックエンド(BE)130との間で分割される。ペア動作要求キューおよびその応答キューをそれぞれ含む作業キュー142のセットは、FE140とBE130との間のメインインタフェースである。各キューは、BE作業スレッドに関連付けられている。
FE140は、1組の通信スレッド144とデマルチプレクサ148から成る。デマルチプレクサ148は、要求をエンキューする特定のキューを決定するために使用される。通信スレッド144は、要求を取得する通信ソケットを読出し、デマルチプレクサを使用してターゲットキューを決定し、および要求を要求キュー上にポストする。逆方向において、通信スレッドは、応答キューを読出し、および関連したソケット146に応答を配信する。
BE130は、1組の作業スレッド、および各スレッドについてパーティション121と呼ばれる異なるテーブルから来ることができる、ストライプ122の対応するセットからなる。全てのストライプのパーティションへの分配、およびパーティションへのスレッドの割り当ては分割を決定する。
作業スレッドは、その要求キューから要求をデキューし、そのパーティション内のストライプの1つでそれを実行し、およびその応答キューに応答をポストする。分割が静的である場合、歪んだ作業負荷の元では、要求は少数のパーティションだけをターゲットにしてもよい。少数の作業スレッドは、多くの要求を処理する必要があり、残りのスレッドはアイドル状態であるため、キー値ストアの動作は、高いレイテンシで低いスループットを特徴とする。
歪み問題に対応するために、各ストライプは、ストライプの実行カウントおよびそのグローバルな順序付け位置を全てのストライプの全順序列挙に保存するために追加のメンバでデータセット内で拡張される。最初に、ストライプは、任意に順序付けされることができ、および分割は、各パーティションの同数のストライプを含むことができる。
アプリケーションが実行されるとき、スレッドは、実行された操作の“重み”に比例する数ずつストライプの実行カウントをインクリメントする。確率分布関数(PDF)は、x軸に沿った実行カウントのヒストグラムで(x軸と呼ばれるストライプの全順序位置で識別される)順序付け次元に沿って関連付けられる。
図3は、620のストライプに渡るガウスPDFのヒストグラムを示す。
ストライプは、プラットフォームの特性または任意のアプリケーション定義のポリシーから生成された任意のストライプ間の隣接関係を使用してx軸に沿って再配置されることができ、これによって、x軸に沿ったストライプの新しい全順序を定義する。x軸がインターバルに分割されると、新しい順序はパーティション間の隣接関係を決定する。例えば、ストライプは、それらの実行カウントによってソートされることができ、それによって“heat”によってストライプを順序付けし、次いで段階的なホット/コールドクラスタリングを取得する。同様に、ストライプ上のトランザクション実行の他の動的なインジケータは、隣接関係としてキャプチャされかつモデルになることができる。
PDFは、新しいx軸に沿って統合され、それによって作業負荷の累積分布関数(CDF)を計算する。平均のスレッドごとの作業の値は、右端の境界CDF値を実行スレッドの数で除算することによって計算される。あるいは、ピーク-パフォーマンス状態下で、最大の起こり得るスレッドごとの作業値を学習して、望ましい作業スレッドの数が把握された作業負荷のために適切に生成されることができ、それによって供給されたスループットとレイテンシ間のトレードオフを行い、およびスレッドリソースをほかの所へ割り当てる。
その後、CDFのy軸は、スレッドごとの作業値の増分で除算され、次いでx軸上に投影され、それによって各インターバルがCDFにおいて等しい増分を有するように、インターバルへのx軸の分割を取得する。
図4は、ソートされたガウスPDFにわたって集められた、8つのインターバル、つまり、パーティション210,220,230,240,250,260,270,および280に分割されたCDFを図示する。最後のパーティション280は、620で終了し、図3を参照して述べられたストライプの数を参照されたい。
各インターバルは、いくつかのスレッドによって所有されるストライプのパーティションに関連付けられる。従って、これらのパーティションをサイズ変更することにより、実行スレッドにわたる負荷は均一にされる。
関連付けによって、パーティションに対する要求/応答が、接続スレッドによって供給された関連する接続を介して配信されるように、通信スレッドがパーティションを供給するために割り当てられる場合、通信スレッドの負荷は再分割の後に均一にされる。これは、クライアント20が要求を送信する特定の接続を選択できるような、分割情報のデータ・ストア・クライアント20への配信を必要とする。
従って、再分割はその上通信を保護し、複数の通信スレッドが一般的なパーティションにそれらの要求をエンキューしたい場合、競合管理に費やされるパフォーマンスのオーバヘッドを回避する。
インバランス検出の手法は、再分割アルゴリズムから導き出されてもよい。すなわち、新しい分割が計算され、および新しいパーティションのサイズが古いもののサイズと比較される。差分が閾値を超える場合、新しい分割は、古いものの代わりにインストールされる。そうでなければ、新しい分割計算は破棄される。
インバランス検出は、定期的に実行されてもよく、あるいは再分割は、重大なインバランス状態を示すいくつかのキュー上の空き要求バッファの枯渇のような、いくつかのシステムイベントによってトリガされてもよい。ゆっくり変化する作業負荷の場合、インバランス検出アルゴリズムはまれにしか実行されなくてもよい。作業スレッド間の負荷分散において瞬間的なスパイクを補償するために、ワーク・スティーリング・ポリシ(work stealing policy)が採用されてもよい。つまり、空のキューを有するスレッドは、その隣接キューを探査してもよく、および隣接のパーティション上で要求を実行してもよい。従って、ワークスティーリングは、瞬間的な動的ロードバランシングも隣接するパーティションにまたがるトランザクションも可能にする。
説明された方法は、シェアドエブリシングアーキテクチャ上の分割されたキー値ストアにわたってグローバルな方法で様々な粒度の歪み問題を解決することを可能にしてもよい。
1つの例示的な実装例が、図5乃至図7を参照して説明される。
この例は、使用可能なハッシュベースのキー値ストアに関する。つまり、ストアはそれらのキーによって識別された行をある順序で保存する。デマルチプレクサ内のハッシュテーブルは、キーをストライプに位置づけし、行はストライプに関連する。
中央のデータ構造は、Ranges[]配列520とStripes[]配列510の合成である。Stripes[]要素は、ストライプ122を表すデータ構造への参照を含む。ストライプデータ構造は、ストライプ上で実行される全ての動作のコストを反映する実行カウンタ540を含む。さらに、ストライプデータ構造は、ストライプのグローバル全順序におけるストライプの最初の行の位置を指定する整数値RasMap530を含む。
Stripes[]配列510は、この全順序に従って順序付けられる。Ranges[]配列510は、Stripes[]配列における範囲の高い境界を定義する高インデックスを保持する。範囲の低い境界は、Ranges[]配列の前の要素の“高”インデックスによって暗黙的に定義される。さらに、Ranges[]要素は、作業キュー525を含み、ストライプの範囲に関連する。従って、Ranges[]はStripes[]配列を範囲に分割し、および作業キューに範囲を位置づけする。
図5は、2つのテーブルを表し、Ranges[]および5つのストライプ構造への参照を保持し、および各ストライプのRasMapおよびExecCounterメンバを保持するStripes[]の構成を図示する。Stripes[]参照は、RasMap値530によって順序付られ、これはExecCount540の値に従って、実行カウントによってストライプの順序を反映する。また、ここで留意すべきは、各範囲が異なるテーブルからストライプを保持することである。
Ranges[]とStripes[]の構成がサポートする基本的な動作は、特定のキューへの要求のルーティング、および再分割、つまり、動的なパーティションのサイズ変更、言い換えると、スレッドのパーティションにストライプを含めるという動的な制御である。要求ルーティングプロセスは、図5の下部に概略的に図示される。図6は、要求ルーティングプロセスの制御フローを示す。
ステップ551で、テーブル、キー、およびポイント動作オペコードを示す要求が受信される。対応するハッシュテーブル550は、アクセスされ、テーブルおよびキーをストライプおよびrowidの参照に変換する。“挿入”動作の場合、テーブルのキーへの参照は無い。従って、対応するテーブルの挿入方法が呼び出され、これは挿入のためのストライプとrowidを指定し、対応するハッシュテーブルに配置される。そこから、挿入は更新として処理される。
ステップ552で、ストライプ参照を保持し、そのRasMapが読み出され、およびオペコードが対応するストライプのメソッド呼び出しポインタに“translated”される。要求-応答バッファ560が取得され、およびメソッド、rowid、および任意の追加の変数で埋められる。
ステップ553で、Ranges[]配列は、取得されたRasMapを使用して二分探索される。ステップ554で、二分探索では、Stripes[]のサブ範囲の低いおよび高い要素がそれらのRasMapにデリファレンス(dereference)され、取得されたRasMapと比較される。RasMapがサブ範囲に含まれるのに対して、要求−応答バッファはサブ範囲の作業キューにプッシュされる。
言い換えると、図6に示すように、ステップ610で、要求のプライマリキーは、ストライプおよび要求が実行される行の行IDを取得するためにデマルチプレクサハッシュテーブル550を介してハッシュされる。取得されたストライプ構造を得ると、行のRasMapは、ステップ620で行IDとストライプのRasMapを加算することによって計算される。ステップ630で、取得されたRasMapを用いて、範囲および関連した作業キューを見出すRanges[]配列上で二分探索が実行される。最後に、ステップ640で、要求は、見出された作業キューにキューイングされる。
図7は、説明の簡略化のために、ストライプが分割できないと見なされる再分割の基本的な制御フローを示すフローチャートを含む。ストライプは、分割されてもよく、および分割に従ってマージされてもよい。この例において、ストライプは「heat」つまり要求の数によってクラスタ化される。
周期的に実行される別のスレッドにおいて、ステップ710で、全てのストライプ構造に対する参照を保持する一時的なStripes[]配列が、実行カウンタに従ってソートされる。ストライプの構造RasMap’sは、ソート順を反映した後で更新される。次に、ステップ720で、CDFが、一時的な配列にわたって単純再帰を使用して計算される。スレッドごとの平均作業値は、最後のCDF要素を作業スレッドの数で除算することによって、ステップ730で計算される。新しく、一時的なRanges[]配列が、多様なスレッドごとの平均作業値によってCDF配列を二分探索することによってステップ740で計算される。最後に、ステップ750で、全ての通信スレッドを一時停止する間に、古いRanges[]およびStripes[]は、一時的なRanges[]およびStripes[]によって置き換えられ、およびStripesのRasMapは、更新される。最終的に、ストライプは、ステップ760で対応するスレッドコアに徐々にリバウンドされ、およびステップ770で、通信スレッドを放棄する。再割り当ての大半は、キー値ストアの通常の動作に影響を与えることなく行われ得、従って比較的軽量にすることに留意されたい。
10 データ管理デバイス
20 クライアント
100 制御モジュール
110 ストレージモジュール
121 パーティション
122 ストライプ
130 バックエンド(BE)
140 フロントエンド(FE)
142 作業キュー
144 通信スレッド
146 ソケット
148 デマルチプレクサ
210 パーティション
220 パーティション
230 パーティション
240 パーティション
250 パーティション
260 パーティション
270 パーティション
280 パーティション
510 配列
520 配列
525 作業キュー
530 RasMap
540 実行カウンタ
550 ハッシュテーブル
560 要求−応答バッファ

Claims (14)

  1. 制御モジュール(100)と、
    ストレージモジュール(110)と、を含むデータ管理デバイス(10)であって、
    ここで、前記ストレージモジュール(110)は、複数のデータセットが割り当てられたような複数のデータ・セット・グループの前記複数のデータセットを、全てのデータ・セット・グループが少なくとも1つのデータセットを含みかつ全てのデータセットが1つのデータ・セット・グループにだけ保存されたような、前記複数のデータ・セット・グループに保存するように構成され、
    前記制御モジュール(100)は、排他的実行コンテキストを各データ・セット・グループに割り当てるように構成され、
    前記制御モジュール(100)は、全てのデータセットに関してデータセット要求の数を推定するように構成され、
    前記制御モジュール(100)は、データセット要求の前記推定された数に基づいて全てのデータ・セット・グループに関してデータセットを決定し、およびデータ・セット・グループのデータセット要求の前記推定された数が、前記複数のデータ・セット・グループのうちの1つに割り当てられた少なくとも1つの排他的実行コンテキストのためのデータセット要求の所定の数以下であるような、前記データ・セット・グループに、前記データセットを再割り当てするように構成された、
    データ管理デバイス。
  2. 前記制御モジュール(100)が、前記データ管理デバイスの動作中に前記複数のデータ・セット・グループのうちの1つに割り当てられた少なくとも1つの排他的実行コンテキストに、前記所定の数のデータセット要求を動的に適合するように構成された、
    請求項1に記載のデータ管理デバイス。
  3. 前記制御モジュール(100)が、全てのデータセットに関してデータセット要求の尤度を推定するように構成され、
    前記制御モジュール(100)が、前記ストレージモジュール(110)にわたる要求の累積尤度関数に基づいて全てのデータ・セット・グループに関して前記データセットを決定し、およびデータ・セット・グループの前記要求の数の前記尤度が、前記複数のデータ・セット・グループのうちの1つに割り当てられた少なくとも1つの排他的実行コンテキストのためのデータセット要求の所定の数以下であるような、前記データ・セット・グループに、前記データセットを再割り当てするように構成された、
    請求項1または2に記載のデータ管理デバイス。
  4. データセット当たりの前記データセット要求の数の前記尤度が、各データセットに適用され、個々の要求重みパラメータとデータセット上の要求の前記尤度で計算された累積尤度分布関数(CDF)とによって量られた、前記データセット要求の数を測定することによって近似される、
    請求項3に記載のデータ管理デバイス。
  5. 前記制御モジュール(100)が、1つのデータ・セット・グループに含まれるデータセットの前記数及び/又はアイデンティティを動的に変えるように構成された、
    請求項1乃至4の何れか一項に記載のデータ管理デバイス。
  6. 前記制御モジュール(100)が、少なくとも最初のデータ・セット・グループについて前記データセットを繰り返し決定し、および少なくとも最初のデータ・セット・グループについて前記決定されたデータセットの前記数と、少なくとも最初のデータ・セット・グループにおけるデータセットの現在の数との間の差が所定の閾値を超える場合、前記データセットを前記データ・セット・グループに再割り当てするように構成された、
    請求項1乃至5の何れか一項に記載のデータ管理デバイス。
  7. 前記制御モジュール(100)が、最初のデータ・セット・グループのデータセット要求の最初の数と二番目のデータ・セット・グループのデータセット要求の二番目の数との間の差が前記所定の閾値と等しいか大きい場合、前記データセットを前記データ・セット・グループに再割り当てするように構成された、
    請求項1乃至6の何れか一項に記載のデータ管理デバイス。
  8. 前記制御モジュール(100)は、データセット要求の数及び/又は種類の昇順で前記データセットをデータ・セット・グループに割り当てるように構成された、
    請求項1乃至7の何れか一項に記載のデータ管理デバイス。
  9. 前記制御モジュール(100)は、データセット要求の数の降順で前記データセットをデータ・セット・グループに割り当てるように構成された、
    請求項1乃至7の何れか一項に記載のデータ管理デバイス。
  10. 前記ストレージモジュール(110)が、非永続的ストレージである、
    請求項1乃至9の何れか一項に記載のデータ管理デバイス。
  11. 前記制御モジュール(100)が、複数の排他的実行コンテキストを生成し、および各排他的実行コンテキストを1つのデータ・セット・グループに割り当てるように構成された、
    請求項1乃至10の何れか一項に記載のデータ管理デバイス。
  12. 前記制御モジュール(100)が、複数の排他的実行コンテキストを1つのデータ・セット・グループに少なくとも一時的に再割り当てするように構成された、請求項11に記載のデータ管理デバイス。
  13. 前記制御モジュール(100)が、1つの排他的実行コンテキストの平均負荷を決定し、および前記平均負荷が所定の負荷値を超える場合、追加の排他的実行コンテキストを生成するように構成された、
    請求項11または12に記載のデータ管理デバイス。
  14. 前記制御モジュール(100)が、任意の排他的実行コンテキストの作業負荷を決定し、および第1の排他的実行コンテキストの前記作業負荷が第2の作業過程の前記作業負荷を超える所定の閾値である場合、前記排他的実行コンテキストを前記データ・セット・グループに再割り当てするように構成された、
    請求項11乃至13の何れか一項に記載のデータ管理デバイス。
JP2017542337A 2015-04-08 2016-04-05 大容量メモリ内データベース用の負荷分散 Active JP6429262B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15162700.7 2015-04-08
EP15162700.7A EP3079060B1 (en) 2015-04-08 2015-04-08 Load balancing for large in-memory databases
PCT/EP2016/057438 WO2016162338A1 (en) 2015-04-08 2016-04-05 Load balancing for large in-memory databases

Publications (2)

Publication Number Publication Date
JP2017533532A true JP2017533532A (ja) 2017-11-09
JP6429262B2 JP6429262B2 (ja) 2018-11-28

Family

ID=52874965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017542337A Active JP6429262B2 (ja) 2015-04-08 2016-04-05 大容量メモリ内データベース用の負荷分散

Country Status (6)

Country Link
US (1) US10445344B2 (ja)
EP (1) EP3079060B1 (ja)
JP (1) JP6429262B2 (ja)
CN (1) CN107430529B (ja)
RU (1) RU2675054C2 (ja)
WO (1) WO2016162338A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7450728B2 (ja) 2020-03-19 2024-03-15 レイセオン カンパニー 協調ワークスティーリングスケジューラ

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3079065B1 (en) 2015-04-08 2019-06-12 Huawei Technologies Co., Ltd. Redo-logging for partitioned in-memory datasets
US20190196969A1 (en) 2017-12-22 2019-06-27 Samsung Electronics Co., Ltd. Method and apparatus for adaptive cache load balancing for ssd-based cloud computing storage system
CN109684374B (zh) * 2018-11-28 2021-05-25 海南电网有限责任公司信息通信分公司 一种时间序列数据的键值对的提取方法及装置
CN109640197B (zh) * 2018-12-04 2021-12-07 中国航空工业集团公司西安航空计算技术研究所 一种基于缓冲区共享的fc通信实现方法
US11139969B2 (en) 2018-12-04 2021-10-05 Bank Of America Corporation Centralized system for a hardware security module for access to encryption keys
US10984115B2 (en) * 2018-12-04 2021-04-20 Bank Of America Corporation System for triple format preserving encryption
CN110347482B (zh) * 2019-07-18 2021-07-23 哈尔滨汇拓投资中心(有限合伙) 基于OLTPShare的OLTP事务结合规则与队列模型改进方法
CN112835750B (zh) * 2019-11-22 2023-01-17 上海欧菲智能车联科技有限公司 数据处理方法及数据处理系统
CN112286917B (zh) * 2020-10-22 2022-10-18 北京锐安科技有限公司 数据处理方法、装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212731A1 (en) * 2000-02-17 2003-11-13 Brenner Larry Bert Apparatus and method for periodic load balancing in a multiple run queue system
JP2007066313A (ja) * 2005-08-31 2007-03-15 Internatl Business Mach Corp <Ibm> 情報を記憶する方法および装置
JP2010218193A (ja) * 2009-03-17 2010-09-30 Nec Corp ストレージシステム
US20120079484A1 (en) * 2010-09-28 2012-03-29 Yiftach Shoolman System, methods, and media for providing in-memory non-relational databases
JP2013171305A (ja) * 2012-02-17 2013-09-02 Fujitsu Ltd ストレージ装置、ストレージシステム、ストレージ管理方法及びストレージ管理プログラム
US8539197B1 (en) * 2010-06-29 2013-09-17 Amazon Technologies, Inc. Load rebalancing for shared resource
JP2014010604A (ja) * 2012-06-29 2014-01-20 Nec Corp ストレージ装置とプログラムと方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
ATE509316T1 (de) 2004-02-12 2011-05-15 Irdeto Access Bv Verfahren und system für externe datenspeicherung
US8423739B2 (en) * 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8806426B2 (en) * 2008-06-04 2014-08-12 Microsoft Corporation Configurable partitioning of parallel data for parallel processing
US8886781B2 (en) * 2011-12-13 2014-11-11 Microsoft Corporation Load balancing in cluster storage systems
US9703500B2 (en) * 2012-04-25 2017-07-11 International Business Machines Corporation Reducing power consumption by migration of data within a tiered storage system
US10049134B2 (en) * 2014-06-12 2018-08-14 International Business Machines Corporation Method and system for processing queries over datasets stored using hierarchical data structures
EP3054384B1 (en) 2015-02-04 2018-06-27 Huawei Technologies Co., Ltd. System and method for memory synchronization of a multi-core system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030212731A1 (en) * 2000-02-17 2003-11-13 Brenner Larry Bert Apparatus and method for periodic load balancing in a multiple run queue system
JP2007066313A (ja) * 2005-08-31 2007-03-15 Internatl Business Mach Corp <Ibm> 情報を記憶する方法および装置
JP2010218193A (ja) * 2009-03-17 2010-09-30 Nec Corp ストレージシステム
US8539197B1 (en) * 2010-06-29 2013-09-17 Amazon Technologies, Inc. Load rebalancing for shared resource
US20120079484A1 (en) * 2010-09-28 2012-03-29 Yiftach Shoolman System, methods, and media for providing in-memory non-relational databases
JP2013171305A (ja) * 2012-02-17 2013-09-02 Fujitsu Ltd ストレージ装置、ストレージシステム、ストレージ管理方法及びストレージ管理プログラム
JP2014010604A (ja) * 2012-06-29 2014-01-20 Nec Corp ストレージ装置とプログラムと方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7450728B2 (ja) 2020-03-19 2024-03-15 レイセオン カンパニー 協調ワークスティーリングスケジューラ

Also Published As

Publication number Publication date
EP3079060B1 (en) 2018-03-28
US20170193077A1 (en) 2017-07-06
CN107430529A (zh) 2017-12-01
RU2017117582A3 (ja) 2018-11-22
CN107430529B (zh) 2020-12-01
RU2017117582A (ru) 2018-11-22
JP6429262B2 (ja) 2018-11-28
RU2675054C2 (ru) 2018-12-14
US10445344B2 (en) 2019-10-15
WO2016162338A1 (en) 2016-10-13
EP3079060A1 (en) 2016-10-12

Similar Documents

Publication Publication Date Title
JP6429262B2 (ja) 大容量メモリ内データベース用の負荷分散
Saemundsson et al. Dynamic performance profiling of cloud caches
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
Chatzistergiou et al. Fast heuristics for near-optimal task allocation in data stream processing over clusters
US10866970B1 (en) Range query capacity allocation
Golab et al. Distributed data placement to minimize communication costs via graph partitioning
JP2007249468A (ja) Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
Wang et al. Actcap: Accelerating mapreduce on heterogeneous clusters with capability-aware data placement
Liu et al. Hierarchical i/o scheduling for collective i/o
CN110874271A (zh) 一种海量建筑图斑特征快速计算方法及系统
CN108132834A (zh) 多级共享高速缓冲存储器架构下的任务分配方法和系统
Wang et al. Numa-aware scalable and efficient in-memory aggregation on large domains
CN109150759B (zh) 一种渐进式非阻塞机会资源预留方法及系统
US10140021B2 (en) Adaptive data-partitioning model that responds to observed workload
CN112136114A (zh) 调谐资源设置等级用于查询执行
Hu et al. Optimizing locality-aware memory management of key-value caches
CN110178119B (zh) 处理业务请求的方法、装置与存储系统
Chen et al. A new fragment re-allocation strategy for NoSQL database systems
Deligiannis et al. Adaptive memory management scheme for MMU-less embedded systems
US11474938B2 (en) Data storage system with multiple-size object allocator for disk cache
Denz et al. Think global, act local: A buffer cache design for global ordering and parallel processing in the WAFL file system
US10824640B1 (en) Framework for scheduling concurrent replication cycles
CN110166279B (zh) 一种非结构化云数据管理系统的动态布局方法
Abad et al. Dynamic memory partitioning for cloud caches with heterogeneous backends
Golab et al. Distributed data placement via graph partitioning

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170502

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180511

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181024

R150 Certificate of patent or registration of utility model

Ref document number: 6429262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250