JP6030713B1 - 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム - Google Patents
分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム Download PDFInfo
- Publication number
- JP6030713B1 JP6030713B1 JP2015121109A JP2015121109A JP6030713B1 JP 6030713 B1 JP6030713 B1 JP 6030713B1 JP 2015121109 A JP2015121109 A JP 2015121109A JP 2015121109 A JP2015121109 A JP 2015121109A JP 6030713 B1 JP6030713 B1 JP 6030713B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- database
- key
- nodes
- 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
Links
Images
Abstract
Description
検索に用いられるキーとデータとをペアで記憶し、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶するものであって、当該一の範囲に含まれる連続するキーのデータは他のデータベースノードに冗長化されて記憶されるとともに、データ構造を平衡二分木とする記憶手段と、
前記データベースノード及び前記他のデータベースノードの状態に応じて、前記一の範囲を変更するとともに、前記記憶手段が記憶するデータを冗長化して記憶させるデータベースノードを他のデータベースノードから選択する制御手段として機能させるためのものであって、
前記記憶手段は、揮発性メモリ上に情報を記憶する分散型データ処理プログラム。
[2]前記記憶手段は、他の範囲との間で、記憶するデータ量の偏りが抑制されるように前記一の範囲を決定する前記[1]に記載の分散型データ処理プログラム。
[3]分散型データベースシステムを構成するデータベースノードとして機能するものであって、
検索に用いられるキーとデータとをペアで記憶し、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶するものであって、当該一の範囲に含まれる連続するキーのデータは他のデータベースノードに冗長化されて記憶されるとともに、データ構造を平衡二分木とする記憶手段と、
前記データベースノード及び前記他のデータベースノードの状態に応じて、前記一の範囲を変更するとともに、前記記憶手段が記憶するデータを冗長化して記憶させるデータベースノードを他のデータベースノードから選択する制御手段とを有し、
前記記憶手段は、揮発性メモリ上に情報を記憶する情報処理装置。
[4]複数のデータベースノードを有するものであって、
前記データベースノードは、検索に用いられるキーとデータとをペアで揮発性メモリ上に記憶し、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶するものであって、当該一の範囲に含まれる連続するキーのデータは他のデータベースノードに冗長化されて記憶されるとともに、データ構造を平衡二分木とし、前記データベースノード及び前記他のデータベースノードの状態に応じて、前記一の範囲を変更するとともに、記憶する前記データを冗長化して記憶させるデータベースノードを他のデータベースノードから選択する分散型データベースシステム。
[5]複数のノードを有するものであって、
前記ノードは、検索に用いられるキーとデータとをペアで揮発性の記憶装置に記憶させ、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶させるものであって、当該一の範囲に含まれる連続するキーのデータは他のノードが管理する記憶装置に冗長化されて記憶されるとともに、データ構造を平衡二分木とし、前記複数のノードの状態に応じて、前記一の範囲を変更するとともに、前記ノードが管理する記憶装置の前記データを冗長化して記憶させる記憶装置を他のノードが管理する記憶装置から選択する分散システム。
請求項2に係る発明によれば、データベースノードの処理負担を略平等にして、データの検索効率を向上することができる。
(分散型データベースシステムの構成)
図1は、実施の形態に係る分散型データベースシステムの構成の一例を示す概略図である。
図2は、実施の形態に係るデータベースノード2の構成例を示すブロック図である。なお、クライアントノード3は、データベースノード2と同様の構成を有するため説明を省略する。なお、クライアントノード3は、実データ情報(213)及びその他の情報を構成上省略することができる。また、データベースノード2及びクライアントノード3は、さらに不揮発性の記憶部を有しても良い。
次に、本実施の形態の作用を、(1)初期化動作、(2)ノード参加動作、(3)パーティション割当動作、(4)パーティション分割動作、(5)再接続時復旧処理動作、(6)切断時処理動作、(7)定期処理動作、(8)データ処理動作、(9)データ設定動作、(10)データ取得動作、(11)データ削除動作、(12)データ範囲取得動作、(13)その他の動作に分けて説明する。
なお、動作の前提としてデータベースノード2及びクラインとノード3の起動モードについて説明する。データベースノード2及びクライアントノード3には起動モードが3種類あり、行う処理に違いがある。
図7は、分散型データベースシステム1のノード参加動作を説明するための概略図である。
図8は、分散型データベースシステム1のパーティション割当動作を説明するための概略図である。
図9は、分散型データベースシステム1のパーティション分割動作を説明するための概略図である。
図10は、分散型データベースシステム1の再接続時復旧処理動作を説明するための概略図である。
図11は、分散型データベースシステム1の切断時処理動作を説明するための概略図である。
定期処理動作は、ノードコストを定期的に送る処理である。各データベースノード2は、一定時間ごとに自ノードのコストの再計算を行う。一例として、ノードコストは自ノードが格納している全てのデータの件数をパーティションの分割サイズで割って算出される。データベースノード2は、再計算後のコストが以前のコストと異なる値であれば自ノードのノードコスト情報214を更新するとともに他ノードに通知する。通知を受けた他ノードは、ノードコスト情報214を更新する。
データベースノード2は、例えば、クライアントノード3からデータアクセス要求された対象となるデータのパーティションが自ノードにあるときはデータ処理手段201によって処理を行い、他ノードにあるときには通信手段200により要求を送信する。
図12は、分散型データベースシステム1のデータ設定動作を説明するための概略図である。
図13は、分散型データベースシステム1のデータ取得動作を説明するための概略図である。
図14は、分散型データベースシステム1のデータ削除動作を説明するための概略図である。
図15は、分散型データベースシステム1のデータ範囲取得動作を説明するための概略図である。
(13‐1)データ不整合修正
クライアントノード3は、データ取得の際にバージョン情報が古いデータを送ったデータベースノード2があった場合には、有効なデータを設定するよう要求を送信する(S10‐12、S12‐12)。このとき有効なデータのバージョン情報も合わせて送信する。要求を受け取ったデータベースノード2Cは、受け取ったデータのバージョン情報の方が格納されているデータよりも新しい場合にのみデータ設定を行う。このようにバージョン情報を比較することで、データ取得とデータ不整合の修正処理の間に別のデータ設定が行われていた場合のデータ巻き戻りを防ぐことができる。
(13‐2)要求タイムアウト
データベースノード2は、別のノードに要求を送って返答を待つとき、一定時間応答がなかった場合にはタイムアウトとして処理が失敗したと判断する。これにより、要求の送信先のノードの処理がフリーズしたり強制終了したりした場合に、その処理を待つ他のノードまで処理が停止することを防ぐことができる。
(13‐3)接続タイムアウト
TCP通信では強制切断された場合に長い時間切断されたことを検知できないことがある。そのため、データベースノード2は、一定時間ごとにハートビートを送信し一定時間内に応答がなかった場合に切断されたと判断する。これにより他のノードとの通信が切断されていないかを素早く確実に確認することができ、ノード切断検知時のデータ冗長化処理にスムーズに移行することができる。
(13‐4)ロックタイムアウト
データベースノード2は、パーティションの複製や分割の際にはパーティションをロックして同時に別のパーティション複製・分割などが起こらないように排他制御するが、このロックにもタイムアウト時間を設定する。これによりタイムアウトによってパーティション処理中に相手のノードが強制終了した場合などに永遠にロック状態になりパーティション処理が行えなくなるのを防ぐことができる。
(13‐5)Quorum
データベースノード2は、同一のデータを複数のノードに冗長化して保存する。そのため、同じキーで別の値のデータが同時にセットされた場合、ノード間でデータに食い違いが起こる可能性がある。これに対し、データベースノード2は、どの結果が正しいかを判断するため、各ノードからの返答結果のステータスやデータのバージョン情報を比較し、一致する結果が規定数以上見つかった場合にその結果を正しいものと判断する。
上記した実施の形態によれば、以下の効果を奏する。
データベースノード2は、メモリ21に適したデータ構造を使用してデータを管理しているため、不揮発性メモリ等のデータ構造を使用してデータ管理をした場合に比べて、データへのアクセス速度を向上させることができる。また、データを一定の量でパーティションに分割して各データベースノード2で分散管理するため、データアクセスの負荷を分散することができる。また、ノードの数を増やすことで、クラスター全体のパフォーマンスが向上するスケールアウト性能が期待できる。
データベースノード2は、新規ノード参加時や参加していたデータベースノード2の切断検知時に、負荷の低いデータベースノード2にデータを冗長化して割り当てるため、あるデータベースノード2に異常が起こった場合にも他のデータベースノード2がデータにアクセスすることができる。パーティションが割り当てられているデータベースノード全てが停止しない限りはデータを損失することがなく、可用性が高くなる。
データベースノード2は、データの整合性をQuorumによって各ノードで判断する。Quorumでは同時に全てのノードのデータが一致していることを保証することはできないものの、一定時間内にデータが一致する結果整合性(eventual consistency)を保証することができる。完全な一貫性は保証されない代わりに、処理のオーバーヘッドが小さく済む。パフォーマンスや可用性の低下を抑えつつ、実用に充分な整合性を保証することができる。
従来のインメモリ型データベースでは、データ処理は1つのノードで行われるため、高速であるものの負荷分散が難しいといった問題があった。また、従来の分散型データベースシステムはデータを不揮発性メモリ上で管理するため、各ノードの処理が高速でなかった。また、データのパーティションの分割位置の決定方法が、予め設定した値に基づいて行われるものであり、キーの分布が考慮されていなかった。
なお、本発明は、上記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で種々な変形が可能である。例えば、分散型データベースシステムだけでなく、分散ファイルシステム、分散リソース管理システム、ファイル共有システムとして用いてもよいし、記憶装置を省略してパーティショニング及びクラスタリングを行う分散タスクスケジューリングのシステムとして用いてもよい。
2 データベースノード
3 クライアントノード
4 ネットワーク
20 制御部
21 メモリ
22 通信部
200 通信手段
201 データ処理手段
210 分散型データ処理プログラム
211 ノードリスト情報
212 パーティションリスト情報
213 実データ情報
214 ノードコスト情報
Claims (5)
- 分散型データベースシステムを構成するデータベースノードを、
検索に用いられるキーとデータとをペアで記憶し、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶するものであって、当該一の範囲に含まれる連続するキーのデータは他のデータベースノードに冗長化されて記憶されるとともに、データ構造を平衡二分木とする記憶手段と、
前記データベースノード及び前記他のデータベースノードの状態に応じて、前記一の範囲を変更するとともに、前記記憶手段が記憶するデータを冗長化して記憶させるデータベースノードを他のデータベースノードから選択する制御手段として機能させるためのものであって、
前記記憶手段は、揮発性メモリ上に情報を記憶する分散型データ処理プログラム。 - 前記記憶手段は、他の範囲との間で、記憶するデータ量の偏りが抑制されるように前記一の範囲を決定する請求項1に記載の分散型データ処理プログラム。
- 分散型データベースシステムを構成するデータベースノードとして機能するものであって、
検索に用いられるキーとデータとをペアで記憶し、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶するものであって、当該一の範囲に含まれる連続するキーのデータは他のデータベースノードに冗長化されて記憶されるとともに、データ構造を平衡二分木とする記憶手段と、
前記データベースノード及び前記他のデータベースノードの状態に応じて、前記一の範囲を変更するとともに、前記記憶手段が記憶するデータを冗長化して記憶させるデータベースノードを他のデータベースノードから選択する制御手段とを有し、
前記記憶手段は、揮発性メモリ上に情報を記憶する情報処理装置。 - 複数のデータベースノードを有するものであって、
前記データベースノードは、検索に用いられるキーとデータとをペアで揮発性メモリ上に記憶し、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶するものであって、当該一の範囲に含まれる連続するキーのデータは他のデータベースノードに冗長化されて記憶されるとともに、データ構造を平衡二分木とし、前記データベースノード及び前記他のデータベースノードの状態に応じて、前記一の範囲を変更するとともに、記憶する前記データを冗長化して記憶させるデータベースノードを他のデータベースノードから選択する分散型データベースシステム。 - 複数のノードを有するものであって、
前記ノードは、検索に用いられるキーとデータとをペアで揮発性の記憶装置に記憶させ、当該キーはバイナリ文字列であって、当該バイナリ文字列に定義された文字列の順序で一の範囲に含まれる連続するキーのデータを記憶させるものであって、当該一の範囲に含まれる連続するキーのデータは他のノードが管理する記憶装置に冗長化されて記憶されるとともに、データ構造を平衡二分木とし、前記複数のノードの状態に応じて、前記一の範囲を変更するとともに、前記ノードが管理する記憶装置の前記データを冗長化して記憶させる記憶装置を他のノードが管理する記憶装置から選択する分散システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015121109A JP6030713B1 (ja) | 2015-06-16 | 2015-06-16 | 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015121109A JP6030713B1 (ja) | 2015-06-16 | 2015-06-16 | 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016205592A Division JP6203929B2 (ja) | 2016-10-20 | 2016-10-20 | 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6030713B1 true JP6030713B1 (ja) | 2016-11-24 |
JP2017004465A JP2017004465A (ja) | 2017-01-05 |
Family
ID=57358844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015121109A Active JP6030713B1 (ja) | 2015-06-16 | 2015-06-16 | 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6030713B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11243980B2 (en) | 2017-03-15 | 2022-02-08 | International Business Machines Corporation | Monotonic transactions in a multi-master database with loosely coupled nodes |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010519630A (ja) * | 2007-02-22 | 2010-06-03 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク |
JP2012531674A (ja) * | 2009-06-26 | 2012-12-10 | シンプリヴィティ・コーポレーション | ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け |
-
2015
- 2015-06-16 JP JP2015121109A patent/JP6030713B1/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010519630A (ja) * | 2007-02-22 | 2010-06-03 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク |
JP2012531674A (ja) * | 2009-06-26 | 2012-12-10 | シンプリヴィティ・コーポレーション | ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け |
Non-Patent Citations (2)
Title |
---|
JPN6015049700; 渡部徹太郎: 'データを階層構造で表現しRDBとKVSの特性を備える' 日経SYSTEMS 第244号, 201308, 52-57ページ, 日経BP社 * |
JPN6016017794; 島田慶樹: 'Twitter、Facebookが採用するNoSQLシステム Cassandra実践入門' WEB+DB PRESS 第58巻, 20100925, 47-58ページ, (株)技術評論社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11243980B2 (en) | 2017-03-15 | 2022-02-08 | International Business Machines Corporation | Monotonic transactions in a multi-master database with loosely coupled nodes |
Also Published As
Publication number | Publication date |
---|---|
JP2017004465A (ja) | 2017-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388043B2 (en) | System and method for data replication using a single master failover protocol | |
US11899684B2 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US10929240B2 (en) | System and method for adjusting membership of a data replication group | |
CN108132949B (zh) | 数据库集群中数据迁移的方法及装置 | |
US9411873B2 (en) | System and method for splitting a replicated data partition | |
US10248704B2 (en) | System and method for log conflict detection and resolution in a data store | |
US9489434B1 (en) | System and method for replication log branching avoidance using post-failover rejoin | |
US9135264B2 (en) | Distributed catalog, data store, and indexing | |
US8977703B2 (en) | Clustering without shared storage | |
US10515228B2 (en) | Commit and rollback of data streams provided by partially trusted entities | |
CN103488526A (zh) | 在分布式系统中锁定业务资源的系统和方法 | |
CN112789606A (zh) | 数据重分布方法、装置及系统 | |
CN111800468A (zh) | 一种基于云的多集群管理方法、装置、介质及电子设备 | |
CN113010496A (zh) | 一种数据迁移方法、装置、设备和存储介质 | |
JP2024501245A (ja) | ログ実行方法並びにその、装置、コンピュータ機器及びコンピュータプログラム | |
JP6203929B2 (ja) | 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
JP6030713B1 (ja) | 分散型データ処理プログラム、情報処理装置、分散型データベースシステム及び分散システム | |
Hildred | Efficient Geo-Distributed Transaction Processing | |
WO2023241116A1 (zh) | 数据处理方法及相关装置 | |
Sapate et al. | Survey on comparative analysis of database replication techniques | |
Abawajy et al. | Supporting disconnected operations in mobile computing | |
CN114722125A (zh) | 数据库事务处理的方法、装置、设备和计算机可读介质 | |
CN114722027A (zh) | 一种基于云硬盘的数据库扩容方法和装置 | |
Sharma et al. | An Evaluation Framework of Replication Protocols in Mobile Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160804 |
|
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: 20161004 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161020 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6030713 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 |