JP5603843B2 - データベースの負荷分散装置 - Google Patents
データベースの負荷分散装置 Download PDFInfo
- Publication number
- JP5603843B2 JP5603843B2 JP2011180920A JP2011180920A JP5603843B2 JP 5603843 B2 JP5603843 B2 JP 5603843B2 JP 2011180920 A JP2011180920 A JP 2011180920A JP 2011180920 A JP2011180920 A JP 2011180920A JP 5603843 B2 JP5603843 B2 JP 5603843B2
- Authority
- JP
- Japan
- Prior art keywords
- server
- hash value
- input query
- hash
- dispatcher
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
非特許文献1には、コンシステントハッシュを利用したNoSQL型のデータベースシステムの発明が記載されている。
そこで、本発明は、この冗長化のための複製データにアクセス可能とし、処理能力を増大させるデータベースの負荷分散装置を提供することを課題とする。
図1は、第1の実施形態に於けるデータベースクラスタシステムの概要を示す図である。
データベースクラスタシステム10は、ネットワーク100を介して、外部システム90であるオペレータシステム、または、入出力端末80と接続されている。
データベースクラスタシステム10は、図面に於いて「B」と表記されているロードバランサ(Balancer)13と、図面に於いて「D」と表記されている複数のディスパッチャ(Dispatcher)14−n(nは自然数)と、複数のサーバ15−nとを有している。例えば、サーバ15−1は、図面に於いて「P」と表記されているプロセッサ(Processor)16−1と、図面に於いて「S」と表記されているストレージ(Storage)17−1とを有している。他のサーバ15−2,15−3なども同様の構成を有している。データベースクラスタシステム10は更に、後述する図6に示すように、サーバ15−0,15−4,15−5,15−6と、ディスパッチャ14−0,14−4,14−5,14−6とを有している。
この図2では、そのうち、サーバ15−1〜15−3と、ディスパッチャ14−1〜14−3とを図示し、それ以外の図示を省略している。
ディスパッチャ14−1は、処理部21と、記憶部22と、通信部23とを備えている。ディスパッチャ14−1は、ロードバランサ13(図2)および複数のプロセッサ16−n(図2)と通信可能に接続され、ロードバランサ13(図2)から取得した入力クエリを、プロセッサ16−n(図2)のいずれかに振り分ける負荷分散装置である。
通信部23は、通信回線を介して情報を送受信する通信インタフェースによって構成され、内部バスなどを介して処理部21に接続されている。
コンシステントハッシュ計算部28は、前述したハッシュ値hをコンシステントハッシュの環に適用し、ハッシュ値hに対応したサーバ15−nを決定する。
図4(a)は、例えば、第1ハッシュ値計算部27−1(図3)が有しているハッシュ関数の入力値xと出力値であるハッシュ値hとの関係を示す図である。縦軸は出力値であるハッシュ値hを示し、横軸は入力値xを示している。
入出力ファイル200は、XML形式で記載されており、keyとvalueの4つのタグ要素(name,location,phone,charge)を有している。
Valueのnameタグには「ono」が格納されている。Valueのlocationタグには「tokyo」が格納されている。Valueのphoneタグには「0333331111」が格納されている。Valueのchargeタグには「3500」が格納されている。
図6は、第1の実施形態に於ける書き込みの際の動作例を示す図である。
データベースクラスタシステム10は、7台のサーバ15−0〜15−6を備えている。このサーバ15−0〜15−6は、それぞれ、ディスパッチャ14−0〜14−6と、プロセッサ16−0〜16−6と、ストレージ17−0〜17−6とを備えている。サーバ15−0のIDは0であり、以降、サーバ15−1〜15−6のIDは、1〜6である。
サーバ15−3のプロセッサ16−3とサーバ15−6のプロセッサ16−6も、前述したサーバ15−1のプロセッサ16−1と同様に動作する。
データベースクラスタシステム10は、7台のサーバ15−0〜15−6を備えている。このサーバ15−0〜15−6は、それぞれディスパッチャ14−0〜14−6を備えている。ストレージ17−1,17−3,17−6には、入出力ファイル200が格納されている。
処理を開始すると、シーケンスQ10に於いて、入出力端末80は、ロードバランサ13に対して、「PUT」の入力クエリを送信する。この入力クエリは、書き込みクエリであることを示す「PUT」の情報と、入力ファイルのキーである「a0123」の情報と、入力ファイル「a0123.xml」のファイル本体の情報とを含んでいる。
シーケンスQ22に於いて、サーバ15−3は、ディスパッチャ14−1に対して、入力クエリに対する応答を送信する。
シーケンスQ23に於いて、サーバ15−6は、ディスパッチャ14−1に対して、入力クエリに対する応答を送信する。
シーケンスQ28に於いて、サーバ15−3は、ディスパッチャ14−1に対して、ロック解除コマンドに対する応答を送信する。
シーケンスQ29に於いて、サーバ15−6は、ディスパッチャ14−1に対して、ロック解除コマンドに対する応答を送信する。
シーケンスQ31に於いて、ロードバランサ13は、入出力端末80に対して、入力クエリの完了通知を送信する。
以上のシーケンスにより、入出力端末80から、データベースクラスタシステム10に対して、データを書き込むことができる。
この図9に於いて、右側のロードバランサ13と左側のロードバランサ13とは、同一のものを示している。更に、右側の入出力端末80と左側の入出力端末80とは、異なるものを示している。
シーケンスQ10〜Q31は、図8に示すシーケンスと同様である。
以降、シーケンスQ44〜Q61の処理は、シーケンスQ14〜Q31の処理と同様である。
この図10に於いて、右側のロードバランサ13と左側のロードバランサ13とは、同一のものを示している。
シーケンスQ10〜Q31は、図8に示すシーケンスと同様である。
シーケンスQ70〜Q79は、読み取りのシーケンス例を示している。
シーケンスQ71に於いて、ロードバランサ13は、ディスパッチャ14−3に対して、当該「GET」の入力クエリを同期で送信する。
シーケンスQ77に於いて、サーバ15−3は、ディスパッチャ14−3に対して、ロック解除コマンドに対する応答を送信する。
シーケンスQ79に於いて、ロードバランサ13は、図10右側の入出力端末80に対して、出力ファイル「a0123.xml」を含んだ完了通知を送信する。
シーケンスQ80に於いて、右側の入出力端末80は、ロードバランサ13に対して、「GET」の入力クエリを同期で送信する。この入力クエリは、読み取り入力クエリであることを示す「GET」の情報と、ファイルのキーである「a0123」の情報とを含んでいる。
シーケンスQ81に於いて、ロードバランサ13は、ディスパッチャ14−3に対して、当該「GET」の入力クエリを同期で送信する。
以降、シーケンスQ84〜Q89の処理は、シーケンスQ74〜Q79の処理と同様である。
ここでは例として、ディスパッチャ14−1がロードバランサ13から入力クエリを受信したときの処理を示している。
処理を開始すると、ステップS10に於いて、ディスパッチャ14−1のクエリ解析部24(図3)は、入力クエリを解析してキーを抽出し、これをハッシュ関数の入力値xする。
ステップS11に於いて、ディスパッチャ14−1の処理部21(図3)は、入力クエリの種類を判定する。入力クエリの種類が「PUT」であったならば、ステップS12の処理を行う。入力クエリの種類が「GET」であったならば、ステップS20の処理を行う。
ステップS12に於いて、ディスパッチャ14−1のサーバ決定処理部25(図3)は、入力クエリのキーの値をハッシュ関数の入力値xとして、全てのハッシュ関数である第1ハッシュ値計算部27−1〜第3ハッシュ値計算部27−3(図3)により、全てのハッシュ値hを計算する。すなわち、書き込み入力クエリのキーに基づく第2のハッシュ値配列を計算する。
ステップS14に於いて、ディスパッチャ14−1のコンシステントハッシュ計算部28(図3)は、コンシステントハッシュの環を基に、対象サーバと順番を決定する。すなわち、第2のハッシュ値配列の各要素に対応する第2のサーバ群と、それら第2のサーバ群の通信順番を決定する。
ステップS16に於いて、ディスパッチャ14−1の通信部23(図3)は、非同期で、各対象サーバに入力クエリを送信して、データを更新する。すなわち、非同期で第2のサーバ群に書き込み入力クエリを送信している。
ステップS17に於いて、ディスパッチャ14−1の通信部23(図3)は、非同期で、各対象サーバのロックを解除する。すなわち、非同期で第2のサーバ群のロックを解除している。ステップS17の処理が終了すると、図11の処理を終了する。
ステップS20に於いて、ディスパッチャ14−1のサーバ決定処理部25(図3)は、乱数計算部26(図3)により、対象サーバ数Mの範囲で生成される乱数rを算出する。すなわち、ハッシュ値計算部の数をMとしたとき、0以上かつM未満となる乱数rを算出する。第1の実施形態では、0〜2の乱数rを算出する。
ステップS21に於いて、ディスパッチャ14−1のサーバ決定処理部25(図3)は、乱数rに基いて、ハッシュ関数のいずれかを選択する。すなわち、第1ハッシュ値計算部27−1〜第3ハッシュ値計算部27−3(図3)のいずれかを選択する。
ステップS22に於いて、ディスパッチャ14−1のサーバ決定処理部25(図3)は、入力ファイルのキーの値をハッシュ関数の入力値xとして、選択したハッシュ関数でハッシュ値hを計算する。このハッシュ値hは、読み取り入力クエリのキーから計算した第1のハッシュ値である。
ステップS24に於いて、ディスパッチャ14−1のサーバ決定処理部25(図3)は、コンシステントハッシュの環を基に、対象サーバを決定する。この対象サーバは、第1のハッシュ値に対応する第1のサーバである。
ステップS26に於いて、ディスパッチャ14−1の通信部23(図3)は、非同期で、1台の対象サーバのデータを読み取る。すなわち、この第1のサーバに非同期で読み取り入力クエリを送信する。
ステップS27に於いて、ディスパッチャ14−1の通信部23(図3)は、非同期で、1台の対象サーバのロックを解除する。すなわち、非同期で、この第1のサーバのロックを解除する。ステップS27の処理が終了すると、図11の処理を終了する。
以上説明した第1の実施形態では、次の(A)〜(H)のような効果がある。
第2の実施形態のデータベースクラスタシステム10の特徴は、複数のハッシュ関数で計算した複数のハッシュ値hをソートすることにより、デッドロックを発生しにくくすることである。
第2の実施形態のデータベースクラスタシステム10は、第1の実施形態のデータベースクラスタシステム10(図2)と同様の構成を有している。
図12は、第2の実施形態に於けるディスパッチャの動作を示すフローチャートである。図11に示す第1の実施形態のフローチャートと同一の要素には同一の符号を付与している。
ここでは例として、ディスパッチャ14−1がロードバランサ13から入力クエリを受信したときの処理を示している。
処理を開始したのち、ステップS10〜S12の処理は、図11に示す第1の実施形態のステップS10〜S12の処理と同様である。
ステップS13Aに於いて、ディスパッチャ14−1のコンシステントハッシュ計算部28(図3)は、全てのソートしたハッシュ値hを、コンシステントハッシュの環に適用する。
以降、ステップS14〜S17の処理は、図11に示す第1の実施形態のステップS14〜S17の処理と同様である。これにより、ステップS14に於いて、対象サーバと当該対象サーバの順番とを決定可能である。この対象サーバは、第3のサーバ群である。
また、ステップS20〜S27の処理は、図11に示す第1の実施形態のステップS20〜S27の処理と同様である。
以上説明した第2の実施形態では、次の(I)のような効果がある。
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の(a)〜(f)のようなものがある。
13 ロードバランサ
14−0〜14−6 ディスパッチャ (負荷分散装置)
15−0〜15−6 サーバ
16−0〜16−6 プロセッサ
17−0〜17−6 ストレージ
21 処理部
22 記憶部
23 通信部
24 クエリ解析部
25 サーバ決定処理部
26 乱数計算部
27−1〜27−3 第1〜第3ハッシュ値計算部 (複数の異なるハッシュ値計算部)
28 コンシステントハッシュ計算部
80 入出力端末
90 外部システム
100 ネットワーク
200 入出力ファイル
Claims (7)
- 複数のサーバと通信する負荷分散装置であって、
当該負荷分散装置は、複数の異なるハッシュ値計算部を備えた処理部と、通信部とを備えており、
前記処理部は、読み取り入力クエリを受信した際、前記読み取り入力クエリのキーを取得し、
前記複数の異なるハッシュ値計算部のいずれかを決定し、前記決定したハッシュ値計算部により、前記読み取り入力クエリのキーから第1のハッシュ値を計算し、
前記通信部によって前記第1のハッシュ値に対応する第1のサーバをロックし、前記読み取り入力クエリを送信したのち、前記第1のサーバのロックを解除する、
ことを特徴とするデータベースの負荷分散装置。 - 前記処理部は更に、乱数計算部を備えており、
前記処理部は、前記複数の異なるハッシュ値計算部のいずれかを、前記乱数計算部が出力する乱数によって決定する、
ことを特徴とする請求項1に記載のデータベースの負荷分散装置。 - 前記通信部は、
前記第1のサーバを同期でロックしたのち、非同期で前記読み取り入力クエリを送信し、非同期で前記第1のサーバのロックを解除する、
ことを特徴とする請求項1または請求項2に記載のデータベースの負荷分散装置。 - 前記処理部は、書き込み入力クエリを受信した際、前記書き込み入力クエリのキーを取得し、
前記複数の異なるハッシュ値計算部により、前記書き込み入力クエリのキーに基づく第2のハッシュ値配列を計算し、
前記通信部によって前記第2のハッシュ値配列の各要素に対応する第2のサーバ群を順番にロックし、前記書き込み入力クエリを送信したのち、前記第2のサーバ群のロックを解除する、
ことを特徴とする請求項1ないし請求項3のいずれか1項に記載のデータベースの負荷分散装置。 - 前記通信部は、
前記第2のサーバ群を順番に同期でロックしたのち、非同期で前記書き込み入力クエリを送信し、非同期で前記第2のサーバ群のロックを解除する、
ことを特徴とする請求項4に記載のデータベースの負荷分散装置。 - 前記処理部は更に、コンシステントハッシュ計算部を備えており、
前記第1のハッシュ値を計算した際、
前記コンシステントハッシュ計算部により、前記第1のハッシュ値をコンシステントハッシュの環に配置して前記第1のサーバを決定し、前記通信部によって前記第1のサーバをロックし、前記読み取り入力クエリを送信したのち、前記第1のサーバのロックを解除し、
前記第2のハッシュ値配列を計算した際、
前記コンシステントハッシュ計算部により、前記第2のハッシュ値配列をコンシステントハッシュの環に配置して前記第2のサーバ群と当該第2のサーバ群の順番とを決定し、前記通信部によって前記第2のサーバ群を順番にロックし、前記書き込み入力クエリを送信したのち、前記第2のサーバ群のロックを解除する、
ことを特徴とする請求項4または請求項5に記載のデータベースの負荷分散装置。 - 前記処理部は更に、
前記第2のハッシュ値配列を計算した際、前記第2のハッシュ値配列をソートし、
前記コンシステントハッシュ計算部により、ソートした前記第2のハッシュ値配列をコンシステントハッシュの環に配置して第3のサーバ群と当該第3のサーバ群の順番を決定し、前記通信部によって前記第3のサーバ群を順番にロックし、前記書き込み入力クエリを送信したのち、前記第3のサーバ群のロックを解除する、
ことを特徴とする請求項6に記載のデータベースの負荷分散装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011180920A JP5603843B2 (ja) | 2011-08-22 | 2011-08-22 | データベースの負荷分散装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011180920A JP5603843B2 (ja) | 2011-08-22 | 2011-08-22 | データベースの負荷分散装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013045181A JP2013045181A (ja) | 2013-03-04 |
JP5603843B2 true JP5603843B2 (ja) | 2014-10-08 |
Family
ID=48009065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011180920A Expired - Fee Related JP5603843B2 (ja) | 2011-08-22 | 2011-08-22 | データベースの負荷分散装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5603843B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014203329A (ja) * | 2013-04-08 | 2014-10-27 | 日本電気株式会社 | ストレージシステム、ノード装置及びデータ管理方法 |
JP6076882B2 (ja) * | 2013-11-14 | 2017-02-08 | 日本電信電話株式会社 | 情報処理システム、管理装置及びキー割当プログラム |
JP6529180B2 (ja) * | 2016-03-29 | 2019-06-12 | 日本電信電話株式会社 | 信号振り分けシステム及び信号振り分け方法 |
US20190034427A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Data management system employing a hash-based and tree-based key-value data structure |
US10768998B2 (en) * | 2018-04-05 | 2020-09-08 | International Business Machines Corporation | Workload management with data access awareness in a computing cluster |
KR102388458B1 (ko) * | 2019-10-31 | 2022-04-21 | 울산과학기술원 | 데이터 키 값 변환 방법 및 장치 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4068473B2 (ja) * | 2003-02-19 | 2008-03-26 | 株式会社東芝 | ストレージ装置、分担範囲決定方法及びプログラム |
JP5396848B2 (ja) * | 2008-12-16 | 2014-01-22 | 富士通株式会社 | データ処理プログラム、サーバ装置およびデータ処理方法 |
-
2011
- 2011-08-22 JP JP2011180920A patent/JP5603843B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013045181A (ja) | 2013-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10719510B2 (en) | Tiering with pluggable storage system for parallel query engines | |
US11120006B2 (en) | Ordering transaction requests in a distributed database according to an independently assigned sequence | |
JP5603843B2 (ja) | データベースの負荷分散装置 | |
US11012806B2 (en) | Multi-adapter support in the cloud | |
US20170185326A1 (en) | Consistent transition from asynchronous to synchronous replication in hash-based storage systems | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
KR20170010844A (ko) | 원격 데이터베이스에 대한 뮤테이션들의 프로세싱 | |
US11288254B2 (en) | Method of and system for processing request in distributed database | |
JP6479186B2 (ja) | 計算機システム及びデータベース管理方法 | |
CN110597852B (zh) | 数据处理方法、装置、终端及存储介质 | |
US20200301855A1 (en) | Intents and locks with intent | |
US10134067B2 (en) | Autocomplete of searches for data stored in multi-tenant architecture | |
US7529750B2 (en) | Accessing information on a network | |
US11048547B2 (en) | Method and system for routing and executing transactions | |
CN107783728B (zh) | 数据存储方法、装置和设备 | |
CN110837499B (zh) | 数据访问处理方法、装置、电子设备和存储介质 | |
CN113986921A (zh) | 一种黑名单查询方法、系统、电子设备及存储介质 | |
US11789922B1 (en) | Admitting for performance ordered operations of atomic transactions across a distributed database | |
CN105653566B (zh) | 一种实现数据库写访问的方法及装置 | |
CN112988874A (zh) | 一种数据处理方法、系统、计算设备及可读存储介质 | |
CN111767060A (zh) | 多阶段灰度验证方法、装置、电子设备及介质 | |
CN109815295A (zh) | 分布式集群数据导入方法及装置 | |
US10313438B1 (en) | Partitioned key-value store with one-sided communications for secondary global key lookup by range-knowledgeable clients | |
US11144236B2 (en) | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program | |
US20230230080A1 (en) | Storing and retrieving data associated with an asset |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20130201 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130904 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20140502 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140522 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20140528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140617 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140724 |
|
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: 20140819 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140822 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5603843 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |