Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6180710B2 - Data storage method and apparatus - Google Patents
[go: Go Back, main page]

JP6180710B2 - Data storage method and apparatus - Google Patents

Data storage method and apparatus Download PDF

Info

Publication number
JP6180710B2
JP6180710B2 JP2012149299A JP2012149299A JP6180710B2 JP 6180710 B2 JP6180710 B2 JP 6180710B2 JP 2012149299 A JP2012149299 A JP 2012149299A JP 2012149299 A JP2012149299 A JP 2012149299A JP 6180710 B2 JP6180710 B2 JP 6180710B2
Authority
JP
Japan
Prior art keywords
data
access request
nodes
data access
storage area
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
JP2012149299A
Other languages
Japanese (ja)
Other versions
JP2013030165A (en
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.)
Naver Corp
Original Assignee
Naver Corp
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
Priority claimed from KR1020110075026A external-priority patent/KR101477672B1/en
Priority claimed from KR20110080533A external-priority patent/KR101491452B1/en
Application filed by Naver Corp filed Critical Naver Corp
Publication of JP2013030165A publication Critical patent/JP2013030165A/en
Application granted granted Critical
Publication of JP6180710B2 publication Critical patent/JP6180710B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、データを格納するための装置及び方法に関する。本発明は、マルチマスタモデルに基づいたデータを複製する装置及び方法を開示し、特に、拡張可能な分散インデックスを用いて、1つ以上の格納領域内にデータを分散して格納する装置及び方法を開示する。   The present invention relates to an apparatus and method for storing data. The present invention discloses an apparatus and method for replicating data based on a multi-master model, and more particularly, an apparatus and method for distributing and storing data in one or more storage areas using an expandable distributed index. Is disclosed.

データ格納容量を増大させるために、「垂直拡張」及び「水平拡張」が用いられてもよい。垂直拡張は、データを格納するためにより仕様の優れた機器を用いる方法を意味する。水平拡張は、データを格納する機器を追加することによってデータ格納容量の拡大を試みる方法である。垂直拡張は機器が処理できる容量を超過したデータを処理することができない。したがって、一般に、インターネット企業のような大容量のデータを処理しなければならない複数の企業は、水平拡張を用いて大容量のデータを処理する。   In order to increase the data storage capacity, “vertical extension” and “horizontal extension” may be used. Vertical extension refers to the method of using equipment with better specifications to store data. Horizontal expansion is a method of attempting to expand the data storage capacity by adding a device for storing data. Vertical expansion cannot process data that exceeds the capacity that the device can handle. Therefore, in general, a plurality of companies that have to process a large amount of data, such as Internet companies, process a large amount of data using horizontal expansion.

一般的に、関係型データベース管理システム(Relational Database Management System;RDBMS)には原子性(Atomicity)、一貫性(Consistency)、独立性(Isolation)及び永続性(Durability)、すなわちACID特性が要求される。   In general, a relational database management system (RDBMS) requires atomicity, consistency, isolation, and durability, that is, ACID characteristics. .

RDBMSが同一のデータに対する複数の複製(replica)を維持する場合、RDBMSは複製のために複数の複製のうちマスタ及び1つ以上のスレーブを指定してもよい。RDBMSは、一貫性のために同期化された書込み演算を行なってもよい。一般的な同期化された書込み演算過程は、下記のステップ(1)から(6)の通りである。
(1)クライアントがマスタに書込みを要請
(2)マスタが要請された書込みを行う
(3)マスタがスレーブに書込みを要請
(4)スレーブが要請された書込みを行う
(5)マスタがスレーブから書込み要請に対する応答を受信
(6)マスタがクライアントに書込み結果を通知
When the RDBMS maintains multiple replicas for the same data, the RDBMS may designate a master and one or more slaves among the multiple replicas for replication. The RDBMS may perform synchronized write operations for consistency. The general synchronized write operation process is as follows (1) to (6).
(1) Client requests write to master (2) Master performs write requested (3) Master requests write to slave (4) Slave performs requested write (5) Master writes from slave Receive response to request (6) Master notifies client of write result

RDBMSにおいて一貫性は極めて重要である。したがって、スレーブは、マスタと完全に同一の情報を有しなければならない。   Consistency is extremely important in RDBMS. Therefore, the slave must have exactly the same information as the master.

前述されたステップ(1)から(6)のうち、スレーブで障害が発生すると、RDBMSはRDBMSのアーキテクチャーにより書込み演算そのものが失敗したものと見なす。   Of the steps (1) to (6) described above, when a failure occurs in the slave, the RDBMS considers that the write operation itself has failed due to the architecture of the RDBMS.

ネットワークの発展に伴って、ネットワークを介してアクセスできる多量のデータが発生している。このようなデータを処理するためにクラウドコンピュータのような分散処理システムが導入されているが、従来におけるRDBMSは、このような分散処理システムのための拡張性を支援することができないという限界がある。   With the development of the network, a large amount of data that can be accessed via the network is generated. A distributed processing system such as a cloud computer has been introduced to process such data, but conventional RDBMS has a limitation that it cannot support extensibility for such a distributed processing system. .

したがって、従来のRDBMSが有するC(一貫性(Consistency))及び可用性(availability)特性のいずれか1つを放棄し、P(分割耐性(Partition Tolerance))の特性を導入するための様々な試みが行われた。このような試みのうち、代表的なものがNo−SQL(Not only SQL)である。   Therefore, various attempts to abandon any one of the C (consistency) and availability characteristics of conventional RDBMS and introduce the characteristics of P (Partition Tolerance) have been made. It was conducted. Among such attempts, a representative one is No-SQL (Not only SQL).

No−SQLは、キー・バリュー(key−valued)データベース(Database;DB)、ドキュメント指向(document−oriented)DB、グラフDB、及び列指向(column−oriented)DBなどで区分してもよい。   The No-SQL may be divided into a key-value database (Database), a document-oriented DB, a graph DB, a column-oriented DB, and the like.

そのうち、ドキュメント指向DBの複製方式は、RDBMSの複製方式に類似する。例えば、ドキュメント指向DBの複製は、マスタ及びスレーブに分類されて行われる。ただし、スレーブに書込みを行うとき、RDBMSは一貫性のために同期化された書込み過程を行うものの、ドキュメント指向DB(例えば、MongoDB)は同期化された書込み及び非同期化された書込みを同時に用いることができる。   Of these, the document-oriented DB replication scheme is similar to the RDBMS replication scheme. For example, document-oriented DB replication is performed by being classified into a master and a slave. However, when writing to a slave, an RDBMS performs a synchronized writing process for consistency, while a document-oriented DB (eg, MongoDB) uses synchronized writing and asynchronous writing simultaneously. Can do.

関係型データベース管理システムはその特性上、水平に拡張されることはできない。したがって、RDBMSを大容量のデータのために用いる場合、シャーディング(sharding)(または、データ分割)によってRDBMSの全体容量が拡張されてもよい。すなわち、同一のスキーマを用いて異なるデータを格納する1つ以上のRDBMS機器を用いてもよい。   A relational database management system cannot be expanded horizontally due to its characteristics. Therefore, when the RDBMS is used for a large amount of data, the entire capacity of the RDBMS may be expanded by sharding (or data division). That is, one or more RDBMS devices that store different data using the same schema may be used.

1つ以上のRDBMS機器を用いる場合、いずれのRDBMS機器があるかを把握しているアプリケーションサーバを用いてもよく、別途のミドルウェア(middleware)によって実際のデータ位置が隠匿されてもよい。   When using one or more RDBMS devices, an application server that knows which RDBMS device is present may be used, and the actual data position may be concealed by separate middleware.

シャーディング(または、データ分割)を用いる場合、より大きな容量のデータを処理するためにRDBMS機器が追加されるとき、1つ以上のRDBMS機器の間にデータを再分配しなければならないという問題が発生する。このようなデータの再分配は、RDBMS機器の運用中に行われることがある。しかし、データの再分配には時間がかかるため、即時性が落ちるという問題がある。データを分散して格納するために、分散キー・バリューDBを用いてもよい。分散キー・バリューDBは、一貫するハッシュ(consistent hashing)方式を用いることによってデータを分散して格納してもよい。一貫するハッシュ方式は、データ拡張において構造的な利点を有する。すなわち、一貫するハッシュ方式を用いるデータ格納システムは、サーバを追加することによって処理可能な全体データ量を増加させることができる。しかし、このようなハッシュ方式は、大小の概念を支援しないため、範囲検索に脆弱であり、2次元以上のデータを処理できない。   When using sharding (or data partitioning), the problem is that when an RDBMS device is added to process larger volumes of data, the data must be redistributed between one or more RDBMS devices. Occur. Such data redistribution may be performed during operation of the RDBMS device. However, since data redistribution takes time, there is a problem that immediacy is reduced. A distributed key / value DB may be used to store data in a distributed manner. The distributed key / value DB may store data in a distributed manner by using a consistent hashing method. A consistent hashing scheme has structural advantages in data expansion. In other words, a data storage system using a consistent hash method can increase the total amount of data that can be processed by adding a server. However, since such a hash method does not support the concept of large and small, it is vulnerable to range search and cannot process data of two or more dimensions.

分散キー・バリューDBを用いるシステム内のデータは、ハッシュによって分散する。したがって、範囲検索のために順次に検索結果を取得することができず、検索範囲内のキーをそれぞれ照会しなければならない。   Data in the system using the distributed key / value DB is distributed by hashing. Therefore, the search results cannot be obtained sequentially for the range search, and each key in the search range must be queried.

例えば、Aというフィールドの値が1から10の間のデータを探す場合、RDBMSでは範囲検索のために「select*from foo where A>=1andA<=10」のようなクエリを用いてもよい。一方、キー・バリューDBは、1から10までのデータをそれぞれ照会しなければならない。   For example, when searching for data in which the value of the field A is between 1 and 10, the RDBMS may use a query such as “select * from foo where A> = 1 and A <= 10” for range search. On the other hand, the key / value DB has to inquire data from 1 to 10, respectively.

したがって、ハッシュを用いるキー・バリューDBは、2次元以上のデータを処理する空間的インデックスを有することはできない。すなわち、特定の空間内にあるいずれかのデータを処理しなければならない場合、空間内にあるデータはキー・バリューDBの様々なノード(すなわち、サーバ)に分散して格納されているため、様々なノードのいずれのノードでも完全なインデックスを取り揃えることができない。   Therefore, a key / value DB using a hash cannot have a spatial index for processing data of two or more dimensions. That is, when any data in a specific space must be processed, the data in the space is distributed and stored in various nodes (that is, servers) of the key / value DB. Neither node can have a complete index.

本発明の目的は、メッセージングチャネルを用いて1つ以上のノードがデータアクセス要請を処理する装置及び方法を提供する。   An object of the present invention is to provide an apparatus and method in which one or more nodes process a data access request using a messaging channel.

本発明の目的は、データアクセス要請を選択されたノードに送信し、選択されたノードの要請に応じてデータアクセス要請を1つ以上のノードにマルチキャストする装置及び方法を提供する。   An object of the present invention is to provide an apparatus and method for transmitting a data access request to a selected node and multicasting the data access request to one or more nodes according to the request of the selected node.

本発明の目的は、ツリー構造で構成された1つ以上の格納領域を用いてデータを格納する装置及び方法を提供する。   An object of the present invention is to provide an apparatus and method for storing data using one or more storage areas configured in a tree structure.

本発明の目的は、階層的なキーを用いてデータが格納される格納領域を決定する装置及び方法を提供する。   An object of the present invention is to provide an apparatus and method for determining a storage area in which data is stored using a hierarchical key.

本発明の一実施形態によると、1つ以上のノードのうち選択されたノードがデータアクセス要請を受信し、前記選択されたノードが前記データアクセス要請のマルチキャスト要請をメッセージングチャネルに送信し、前記メッセージングチャネルが前記マルチキャスト要請を受信して前記データアクセス要請を前記1つ以上のノードにマルチキャストし、前記1つ以上のノードそれぞれが前記マルチキャストを受信して前記データアクセス要請を処理することを含み、前記1つ以上のノードは、前記データに対する複製を含むことを特徴とするデータ管理方法が提供される。   According to an embodiment of the present invention, a selected node of one or more nodes receives a data access request, the selected node transmits a multicast request for the data access request to a messaging channel, and the messaging A channel receiving the multicast request and multicasting the data access request to the one or more nodes, each of the one or more nodes receiving the multicast and processing the data access request; One or more nodes are provided with a data management method characterized by including a copy of the data.

前記データ管理方法は、メッセージングチャネルがクライアントから前記データアクセス要請を受信すること、前記メッセージングチャネルが前記1つ以上のノードのうち前記選択されたノードを決定すること、前記メッセージングチャネルが前記データアクセス要請を前記選択されたノードに送信すること、をさらに含んでもよい。   The data management method includes: a messaging channel receiving the data access request from a client; the messaging channel determining the selected node of the one or more nodes; and the messaging channel receiving the data access request. Transmitting to the selected node.

データアクセス要請は、データの読み出し、書込み、挿入、削除、または更新のいずれか1つ以であってもよい。   The data access request may be any one or more of data reading, writing, insertion, deletion, and update.

本発明の他の実施形態によると、データアクセス要請に対するマルチキャスト要請を受信し、1つ以上のノードに前記データアクセス要請を送信すること、を含み、前記1つ以上のノードは、前記データアクセス要請が要請するデータに対する複製を含むノードであることを特徴とするデータ管理方法が提供される。   According to another embodiment of the present invention, the method includes receiving a multicast request for a data access request and transmitting the data access request to one or more nodes, the one or more nodes receiving the data access request. A data management method is provided, which is a node including a copy of data requested by.

前記データ管理方法は、クライアントから前記データアクセス要請を受信すること、前記1つ以上のノードのうち選択されるノードを決定すること、前記データアクセス要請を前記選択されたノードに送信すること、をさらに含んでもよい。   The data management method includes receiving the data access request from a client, determining a selected node among the one or more nodes, and transmitting the data access request to the selected node. Further, it may be included.

前記ノードを決定することは、ラウンドロビン方式またはロードバランシングに基づいて前記1つ以上のノードのうち前記選択されるノードを決定してもよい。   Determining the node may determine the selected node of the one or more nodes based on a round robin scheme or load balancing.

本発明の他の実施形態によると、端末がクライアントからデータアクセス要請を処理する方法において、クライアントによって送信されたデータアクセス要請が送信され、前記データアクセス要請のマルチキャスト要請をメッセージングチャネルに送信し、前記メッセージングチャネルからマルチキャストを介して前記データアクセス要請を受信し、データアクセス要請を処理すること、を含むデータ管理方法が提供される。   According to another embodiment of the present invention, in a method for a terminal to process a data access request from a client, a data access request transmitted by the client is transmitted, a multicast request of the data access request is transmitted to a messaging channel, and A data management method is provided that includes receiving the data access request from a messaging channel via multicast and processing the data access request.

データアクセス要請が送信されることは、メッセージングチャネルからデータアクセス要請を受信することを含んでもよい。   Transmitting the data access request may include receiving the data access request from the messaging channel.

本発明の一実施形態によると、同一のデータの複製を含む1つ以上のノードと、データアクセス要請を前記1つ以上のノードに送信するメッセージングチャネルと、を含み、前記1つ以上のノードのいずれか1つのノードは、前記データアクセス要請のマルチキャスト要請を前記メッセージングチャネルに送信し、前記メッセージングチャネルは、前記マルチキャスト要請を受信して前記データアクセス要請を前記1つ以上のノードにマルチキャストし、前記1つ以上のノードそれぞれは、前記マルチキャストによって前記データアクセス要請を処理することを特徴とするデータ管理システムが提供される。   According to one embodiment of the present invention, comprising: one or more nodes including a copy of the same data; and a messaging channel for transmitting a data access request to the one or more nodes; Any one node transmits a multicast request for the data access request to the messaging channel, the messaging channel receives the multicast request, multicasts the data access request to the one or more nodes, and Each of the one or more nodes is provided with a data management system in which the data access request is processed by the multicast.

前記メッセージングチャネルは、クライアントからデータアクセス要請を受信し、前記1つ以上のノードのいずれか1つのノードを選択して前記データアクセス要請を前記選択されたノードに送信してもよい。   The messaging channel may receive a data access request from a client, select any one of the one or more nodes, and transmit the data access request to the selected node.

前記メッセージングチャネルは、ラウンドロビン方式またはロードバランシングに基づいて前記1つ以上のノードのうち前記1つのノードを選択してもよい。   The messaging channel may select the one of the one or more nodes based on a round robin scheme or load balancing.

本発明の一実施形態によると、クライアントからデータアクセス要請を受信する受信部と、データ格納装置においてデータの格納領域を有する1つ以上のノードのうち選択されるノードを決定する制御部と、データアクセス要請を前記選択されたノードに送信する送信部と、を備え、前記受信部は、前記選択されたノードから前記データアクセス要請のマルチキャスト要請を受信し、前記送信部は、前記第1要請を前記1つ以上のノードにマルチキャストすることを特徴とするメッセージングチャネルが提供される。   According to an embodiment of the present invention, a receiving unit that receives a data access request from a client, a control unit that determines a node to be selected from one or more nodes having a data storage area in a data storage device, and data A transmission unit that transmits an access request to the selected node, wherein the reception unit receives a multicast request for the data access request from the selected node, and the transmission unit receives the first request. A messaging channel is provided that multicasts to the one or more nodes.

本発明の一実施形態によると、ツリー構造で構成された1つ以上の格納領域を含み(各格納領域は前記ツリーにおける1つのノードに対応)、前記1つ以上の格納領域それぞれには0個以上のサブキーを有する階層的なキーが割り当てられ、前記1つ以上の格納領域のうち任意の第1格納領域をルートにするサブツリー内の格納領域は、前記第1格納領域の第1キーに対応するデータを格納し、前記第1キーは、第2キーに1つ以上のサブキーが連鎖されたキーであり、前記第2キーは、第2格納領域のキーであり、前記第2格納領域は、前記第1格納領域の親格納領域であることを特徴とするデータ格納装置が提供される。   According to an embodiment of the present invention, one or more storage areas configured in a tree structure are included (each storage area corresponds to one node in the tree), and each of the one or more storage areas is zero. A hierarchical key having the above subkeys is assigned, and a storage area in a subtree rooted at an arbitrary first storage area among the one or more storage areas corresponds to the first key of the first storage area The first key is a key in which one or more subkeys are chained to a second key, the second key is a key of a second storage area, and the second storage area is A data storage device is provided that is a parent storage area of the first storage area.

前記1つ以上の格納領域のそれぞれは、関係型データベース機器であってもよい。前記1つ以上の格納領域のそれぞれは、関係型データベースのインデックス、キー、および命令を理解および処理するミドルウェアを含んでもよい。   Each of the one or more storage areas may be a relational database device. Each of the one or more storage areas may include middleware that understands and processes relational database indexes, keys, and instructions.

前記階層的なキーは、英数字及び区分子を組み合わせた文字列であってもよい。   The hierarchical key may be a character string combining alphanumeric characters and ward molecules.

第1キーに対応するデータは、データのキーの接頭語のいずれか1つが前記第1キーと同一のデータを意味してもよい。   The data corresponding to the first key may mean data in which any one of the data key prefixes is the same as the first key.

接頭語は、前記データのキーのn個のサブキーのうち前のi個のサブキーであってもよい。   The prefix may be the previous i subkeys of the n subkeys of the data key.

iは1以上n以下であってもよい。   i may be 1 or more and n or less.

前記第1格納領域は、前記第1格納領域のキーに対応するデータのうち、前記第1格納領域の子格納領域のキーに対応しないデータを格納してもよい。   The first storage area may store data that does not correspond to the key of the child storage area of the first storage area among the data corresponding to the key of the first storage area.

前記データ格納装置に第3格納領域を追加する場合、前記第3格納領域の第3キーに対応するデータを前記第1格納領域から前記第3格納領域に移動させ、前記第3格納領域は、前記第1格納領域の子格納領域であってもよい。   When adding a third storage area to the data storage device, the data corresponding to the third key of the third storage area is moved from the first storage area to the third storage area, and the third storage area is It may be a child storage area of the first storage area.

前記第1格納領域の格納量が予め定義された基準に達したとき、前記第3格納領域の追加及び前記データ移動を行ってもよい。   When the storage amount of the first storage area reaches a predefined standard, the addition of the third storage area and the data movement may be performed.

前記第1格納領域は、前記第1格納領域の1つ以上の子格納領域に検索範囲に対応するキーを有するデータの第1目録を要請し、前記第1格納領域が格納したデータのうち、前記検索範囲に対応するデータの第2目録を前記要請に応じて返還された前記第1目録に併合して前記検索範囲に対する結果として返還してもよい。   The first storage area requests a first list of data having a key corresponding to a search range to one or more child storage areas of the first storage area, and among the data stored in the first storage area, A second list of data corresponding to the search range may be merged with the first list returned in response to the request and returned as a result for the search range.

本発明の一実施形態によると、1つ以上の格納領域をツリー構造で構成し(各格納領域は前記ツリーにおける1つのノードに対応)、前記1つ以上の格納領域それぞれに0個以上のサブキーを有する階層的なキーを割り当て、前記1つ以上の格納領域のうち、任意の第1格納領域をルートにするサブツリー内の格納領域内に前記第1格納領域の第1キーに対応するデータを格納することを含み、前記第1キーは、第2キーに1つ以上のサブキーが連鎖されたキーであり、前記第2キーは、第2格納領域のキーであり、前記第2格納領域は、前記第1格納領域の親格納領域であることを特徴とするデータ格納方法が提供される。   According to an embodiment of the present invention, one or more storage areas are configured in a tree structure (each storage area corresponds to one node in the tree), and each of the one or more storage areas includes zero or more subkeys. And assigning the data corresponding to the first key of the first storage area in the storage area in the subtree rooted at an arbitrary first storage area among the one or more storage areas. The first key is a key in which one or more subkeys are chained to a second key, the second key is a key of a second storage area, and the second storage area is A data storage method is provided which is a parent storage area of the first storage area.

前記格納することは、第1格納領域のキーに対応するデータのうち、第1格納領域の子格納領域のキーに対応しないデータを第1格納領域に格納することを含んでもよい。   The storing may include storing, in the first storage area, data that does not correspond to the key of the child storage area of the first storage area among the data corresponding to the key of the first storage area.

前記データ格納方法は、第1格納領域の子格納領域として、1つ以上の格納領域に検索範囲に第3格納領域を追加すること、第3格納領域の第3キーに対応するデータを第1格納領域から第3格納領域に移動させること、をさらに含んでもよい。   In the data storage method, as a child storage area of the first storage area, the third storage area is added to the search range in one or more storage areas, and the data corresponding to the third key of the third storage area is the first storage area. It may further include moving from the storage area to the third storage area.

前記第3格納領域を追加することおよび前記データを移動させることは、第1格納領域の格納量が予め定義された基準に達したとき行なわれてもよい。   The addition of the third storage area and the movement of the data may be performed when the storage amount of the first storage area reaches a predefined standard.

前記データ格納方法は、第1格納領域の1つ以上の子格納領域に検索範囲に対応するキーを有するデータの第1目録を要請しと、1つ以上の子格納領域が第1目録を返還し、第1格納領域が格納したデータのうち、検索範囲に対応するデータの第2目録を返還された第1目録に併合して検索範囲に対する結果として返還すること、をさらに含んでもよい。   The data storage method requests one or more child storage areas of the first storage area for a first list of data having a key corresponding to a search range, and the one or more child storage areas return the first list. In addition, it may further include merging the second list of data corresponding to the search range out of the data stored in the first storage area with the returned first list as a result for the search range.

本発明によると、マルチキャストを介して1つ以上のノードが同時にデータ要請を処理することによって、データの一貫性を維持する装置及び方法を提供することができる。   According to the present invention, it is possible to provide an apparatus and method for maintaining data consistency by simultaneously processing data requests by one or more nodes via multicast.

本発明によると、1つ以上のノードがメッセージングチャネルとの接続のみを維持することによって、ノードの挿入、削除、または故障を容易に処理できるデータ管理システムを提供することができる。   According to the present invention, it is possible to provide a data management system in which insertion, deletion, or failure of a node can be easily handled by maintaining one or more nodes only in connection with a messaging channel.

本発明によると、ロードバランシングを考慮して、1つ以上のノードのうちクライアントのデータアクセス要請を処理するノードを選択する装置及び方法を提供することができる。   According to the present invention, it is possible to provide an apparatus and method for selecting a node that processes a data access request of a client from one or more nodes in consideration of load balancing.

本発明によると、ツリー構造で構成された1つ以上の格納領域を用いてデータを格納する装置及び方法を提供することができる。   According to the present invention, an apparatus and method for storing data using one or more storage areas configured in a tree structure can be provided.

本発明によると、階層的なキーを用いてデータが格納される格納領域を決定する装置及び方法を提供することができる。   According to the present invention, it is possible to provide an apparatus and method for determining a storage area in which data is stored using a hierarchical key.

本発明によると、データを格納することによって、ツリー構造で格納領域を拡張し、拡張された格納領域にデータを移動する装置及び方法を提供することができる。   According to the present invention, it is possible to provide an apparatus and method for storing data to expand a storage area in a tree structure and move the data to the expanded storage area.

本発明によると、クエリを子ノードに対応する子格納領域に送信し、子格納領域から返還されたデータ目録をクエリの検索結果として併合して返還する装置及び方法を提供することができる。   According to the present invention, it is possible to provide an apparatus and a method for transmitting a query to a child storage area corresponding to a child node, and merging and returning a data list returned from the child storage area as a query search result.

マスタ−スレーブ構造における非同期的な書込みを説明するための図である。It is a figure for demonstrating asynchronous writing in a master-slave structure. マルチマスタの複製方式を説明するための図である。It is a figure for demonstrating the replication method of a multi master. 本発明の一例に係るデータ管理システムの構造を示す図である。It is a figure which shows the structure of the data management system which concerns on an example of this invention. 本発明の一実施形態に係るデータ管理方法の信号フローチャートである。5 is a signal flowchart of a data management method according to an embodiment of the present invention. 本発明の一例に係るデータ管理方法の信号フローチャートである。5 is a signal flowchart of a data management method according to an example of the present invention. 本発明の一実施形態に係るメッセージングチャネルのブロック図である。FIG. 3 is a block diagram of a messaging channel according to an embodiment of the present invention. 本発明の一実施形態に係るデータ格納装置を示す図である。It is a figure showing a data storage device concerning one embodiment of the present invention. 本発明の一例に係るデータ格納装置に格納領域を追加する過程を説明するための図である。It is a figure for demonstrating the process of adding a storage area to the data storage apparatus which concerns on an example of this invention. 本発明の一例に係るデータ格納装置に対する範囲検索を説明するための図である。It is a figure for demonstrating the range search with respect to the data storage apparatus which concerns on an example of this invention. 本発明の一実施形態に係るデータ格納方法のフローチャートである。3 is a flowchart of a data storage method according to an embodiment of the present invention. 本発明の一実施形態に係るデータ格納装置おける拡張方法のフローチャートである。It is a flowchart of the expansion method in the data storage device which concerns on one Embodiment of this invention. 本発明の一例に係るデータ格納装置の範囲検索のフローチャートである。It is a flowchart of a range search of the data storage device according to an example of the present invention.

以下、本発明の一実施形態を図面を参照しながら詳細に説明する。しかし、本発明は、以下の実施形態に制限されることはなく、限定されることもない。各図面に示された同一の参照符号は同一の部材を示す。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. However, the present invention is not limited to the following embodiments, and is not limited. The same reference numerals shown in the drawings indicate the same members.

後述する本発明の実施形態は、キー・バリューDBを用いる分散処理システムをマルチマスタ方式により実現する方法を提供する。   Embodiments of the present invention described later provide a method for realizing a distributed processing system using a key / value DB by a multi-master method.

データ管理システムを実現するとき、障害対応(fault tolerance)及びロードバランシング(load balancing)などのために、同一のデータを有する複数のノードが構成される必要がある。ノードは、いずれかの作業を処理する1つの単位を意味する。例えば、ノードは、1つの物理的又は論理的なサーバ(または、DB)であってもよい。   When realizing a data management system, a plurality of nodes having the same data need to be configured for fault tolerance, load balancing, and the like. A node means one unit for processing any work. For example, the node may be one physical or logical server (or DB).

本発明においてクラスタは、複数の複製から構成された1つの集合を意味する。クラスタは、1つ以上のノードを含んでもよい。クラスタ内の1つ以上のノードは、クライアントに同一のデータを提供する。   In the present invention, a cluster means one set composed of a plurality of replicas. A cluster may include one or more nodes. One or more nodes in the cluster provide the same data to the client.

図1は、マスタ−スレーブ構造における非同期的な書込みを説明するための図である。   FIG. 1 is a diagram for explaining asynchronous writing in a master-slave structure.

前述された一貫性の代わりに、可用性または性能に重点をおく場合、複製のために様々な方式が用いられる。例えば、マスタ−スレーブ構造でも非同期化された書込みが適用されてもよい。No−SQLでマスタ−スレーブモデルを用いて複製が2つ以上ある場合、複製のいずれか1つ(または、1つ以上)に対しては同期化された書込みが適用されてもよく、残りの複製には非同期化された書込みが適用されてもよい。   Instead of the consistency described above, various schemes are used for replication when focusing on availability or performance. For example, asynchronous writing may be applied even in a master-slave structure. If there are two or more replicas using the master-slave model in No-SQL, a synchronized write may be applied to any one (or more) of the replicas and the rest Desynchronized writing may be applied to the replica.

マスタ−スレーブ構造における非同期的な書込み過程は、下記のステップ(1)からステップ(4)の通りである。
(1)クライアント110が書込み要請150
(2)マスタ120が要請された書込みを行う160
(3)マスタ120がスレーブ130(または、1つ以上のスレーブ132、134及び136)に非同期的な書込みを要請170
(4)マスタ120がクライアント110に書込み結果を通知180
The asynchronous writing process in the master-slave structure is as follows from step (1) to step (4).
(1) The client 110 writes 150
(2) The master 120 performs the requested write 160
(3) Master 120 requests asynchronous write to slave 130 (or one or more slaves 132, 134 and 136) 170
(4) The master 120 notifies the client 110 of the write result 180

上記のようなステップで、スレーブ130で入出力(Input/Output;IO)が行われるときは、クライアント110が書込み要請の結果を把握するときと重なる。したがって、スレーブ130に障害が発生することで書込みが正しく行われない場合、後に一貫性において問題が生じる。   In the above-described steps, when input / output (Input / Output; IO) is performed in the slave 130, it overlaps with when the client 110 grasps the result of the write request. Therefore, if writing is not performed correctly due to a failure in the slave 130, a problem in consistency will occur later.

図2は、マルチマスタの複製方式を説明する。   FIG. 2 illustrates a multi-master replication scheme.

データの一貫性が重要な(すなわち、複数のデータのいずれもが正しいデータであることが重要な)RDBMSは、マスタ−スレーブモデルを用いるが、No−SQLを用いるDBはマルチ(Multi)マスタ(または、No−マスタ)の複製方式を用いてもよい。   An RDBMS in which data consistency is important (that is, it is important that all of a plurality of data are correct data) uses a master-slave model, while a DB using No-SQL is a multi-master ( Alternatively, a No-master) replication method may be used.

マルチマスタモデルが用いられる場合、複製の数を初期に指定する必要がある。   If a multi-master model is used, the number of replicas must be specified initially.

第1ノード210、第2ノード220、及び第3ノード230は、それぞれマルチマスタモデルの複製である。   Each of the first node 210, the second node 220, and the third node 230 is a duplicate of the multi-master model.

マルチマスタモデルを用いるシステムでは、同一の内容を格納する複製それぞれに異なるクライアントがアクセスして情報を更新することで、一貫性を有さない情報が様々なクライアントに送信されることがある。   In a system using a multi-master model, inconsistent information may be transmitted to various clients by accessing different replicas storing the same contents and updating the information.

2つのクライアントがそれぞれ第1ノード210及び第3ノード230に対して情報Aの更新を要請すると、次に情報Aを読込んだクライアントは、いつ、どのノード(例えば、第1ノード210または第3ノード230)を介して情報Aにアクセスするかに応じて、異なる値を取得する。情報Aに対する更新された内容が異なるノードで全て複製される前にクライアントが情報Aを読込む場合、クライアントはどのノードを介して情報Aをアクセスしたかに応じて異なる値を取得する。または、第1ノード210及び第3ノード230でAに対する更新が互いに異なるように行われた場合、クライアントはどのノードを介して情報Aにアクセスしたかに応じて異なる値を取得する。   When the two clients request the first node 210 and the third node 230 to update the information A, respectively, the client that has read the information A next becomes which node (for example, the first node 210 or the third node). Different values are obtained depending on whether the information A is accessed via the node 230). When the client reads the information A before all the updated contents for the information A are copied at different nodes, the client acquires different values depending on the node through which the information A is accessed. Alternatively, when updates to A are performed differently in the first node 210 and the third node 230, the client acquires different values depending on which node accessed the information A.

前述されたように、明示的なマスタがない状態で、複製関係にある異なる複数のノードそれぞれにほとんど同時に情報更新が要請された場合、どのノードが有する情報が正しいのかを把握する必要がある。   As described above, when information update is requested almost simultaneously to each of a plurality of different nodes in a replication relationship without an explicit master, it is necessary to know which node has correct information.

したがって、マルチマスタモデルを用いるシステムは、情報を読み出すときに情報に対する補正を行う。このような補正は、読み出し補正(read repair)であり、読み出し補正はシステムの読み出し性能を低下させる恐れがある。   Therefore, a system using a multi-master model corrects information when reading the information. Such a correction is a read correction, and the read correction may reduce the read performance of the system.

図3は、本発明の一例に係るデータ管理システムの構造を示す図である。   FIG. 3 is a diagram showing a structure of a data management system according to an example of the present invention.

データ管理システム300(以下、システム300と称する)は、複製を用いてデータを格納するシステムである。システム300は、メッセージングチャネル320及び1つ以上のノード330を含む。システム300は、レベル(Level;L)4スイッチ325をさらに含んでもよい。   The data management system 300 (hereinafter, referred to as the system 300) is a system that stores data using replication. The system 300 includes a messaging channel 320 and one or more nodes 330. The system 300 may further include a level (L) 4 switch 325.

説明の便宜のために、図示された1つ以上のノード330は、同一のデータを格納及び提供する複製(クラスタ)を示す。1つ以上のノード330は、マルチマスタ方式によって動作されてもよい。図示していないが、システム300は、他のデータに対する複製を含む複数のノードをさらに含んで構成されてもよい。   For convenience of explanation, the illustrated one or more nodes 330 represent replicas (clusters) that store and provide the same data. One or more nodes 330 may be operated in a multi-master manner. Although not shown, the system 300 may further include a plurality of nodes including replicas for other data.

システム300は、クライアント310からのデータアクセス要請を処理する。データアクセス要請は、システム300内の特定データに対する読み出し(read)、書込み(write)、挿入(insert)、削除(delete)、または、更新(update)要請であってもよい。   The system 300 processes a data access request from the client 310. The data access request may be a read, a write, an insert, a delete, or an update request for specific data in the system 300.

クライアント310は複数であってもよい。すなわち、システム300は、各クライアント310からデータアクセス要請を受信してもよく、データアクセス要請を処理してもよい。クライアント310は、データの要請を示す要請メッセージを送信することによって、シスム300にデータを要請する。   There may be a plurality of clients 310. That is, the system 300 may receive a data access request from each client 310 and may process the data access request. The client 310 requests data from the system 300 by transmitting a request message indicating a request for data.

メッセージングチャネル320は、システムでクライアント310とデータを格納している1つ以上のノード330との間のメッセージを処理するミドルティア(middle−tier)の役割を行う。メッセージングチャネル320は、ルータの役割を行うメッセージ基盤ミドルウェア(Message Oriented Middleware;MOM)またはメッセージ基盤ミドルウェアが搭載されたサーバであってもよい。また、メッセージングチャネル320は、処理容量を拡張するために、複数のサーバまたはソフトウェアデーモン(daemon)で構成されてもよい。   The messaging channel 320 serves as a middle-tier that processes messages between the client 310 and one or more nodes 330 storing data in the system. The messaging channel 320 may be a message-based middleware (MOM) or a server equipped with message-based middleware that functions as a router. The messaging channel 320 may be composed of a plurality of servers or software daemons to expand the processing capacity.

メッセージングチャネル320と接続される1つ以上のノード330は、固有のアドレス体系を用いる。メッセージングチャネル320で各ノードにメッセージを送信するためにアドレスを指定する方法は、(1)ユニキャスト(unicast)、(2)エニーキャスト(anycast)、及び(3)マルチキャスト(または、ブロードキャスト)のいずれか1つ以上であってもよい。アドレスを指定する方法に応じて、メッセージングチャネル320が接続されたノードにメッセージを送信する方式が異なる。   One or more nodes 330 connected to the messaging channel 320 use a unique address scheme. A method for specifying an address for sending a message to each node on the messaging channel 320 is any one of (1) unicast, (2) anycast, and (3) multicast (or broadcast). Or more than one. Depending on the method of specifying the address, the method of sending a message to the node to which the messaging channel 320 is connected differs.

ユニキャストは、固有アドレスによって指定された1つのノードにのみメッセージングチャネル320がメッセージを送信する方式である。エニーキャストは、メッセージングチャネル320がいずれかの群(domain)の1つのノードにのみメッセージを送信する方式である。メッセージングチャネル320は、各ノード332、334、または336とユニキャストまたはエニーキャストでメッセージまたはデータを送受信する。例えば、メッセージングチャネル320は、データアクセス要請を処理するために、選択された特定ノードにユニキャストまたはエニーキャスト方式を用いて要請メッセージを送信する。   Unicast is a scheme in which the messaging channel 320 transmits a message to only one node specified by a unique address. Anycast is a scheme in which the messaging channel 320 sends a message only to one node in any domain. The messaging channel 320 sends and receives messages or data with each node 332, 334, or 336 in unicast or anycast. For example, the messaging channel 320 transmits a request message using a unicast or anycast method to a selected specific node in order to process a data access request.

マルチキャストは、いずれもの群の全てのノードにメッセージを送信する方式である。メッセージングチャネル320は、同一のデータを有する1つ以上のノード(すなわち、クラスタ)を1つの群として指定し、メッセージをマルチキャストしてもよい。したがって、メッセージングチャネル320は、特定のデータアクセス要請をマルチキャストして該当クラスタ内の全てのノードがデータアクセス要請を受信できるようにする。メッセージングチャネル320は、群に関する情報を管理する管理部またはこれを管理する別途のサーバをさらに含んで構成してもよく(図示せず)、ノードの追加または除去するときに新しいノードに関する情報をアップデートしてもよい。   Multicast is a method of sending a message to all nodes in any group. Messaging channel 320 may designate one or more nodes (ie, clusters) having the same data as a group and multicast messages. Accordingly, the messaging channel 320 multicasts a specific data access request so that all nodes in the corresponding cluster can receive the data access request. The messaging channel 320 may further include a management unit that manages information about the group or a separate server that manages the information (not shown), and updates information about a new node when a node is added or removed. May be.

ここで、各ノード332、334、または336は、メッセージングチャネル320にのみ接続されるだけであって、各ノード相互間は通信することができない。この場合、ノードの追加または削除が発生する場合、新しいノードまたは削除されたノードに関する情報は、メッセージングチャネル320にのみ送信されてもよい。   Here, each node 332, 334, or 336 is only connected to the messaging channel 320, and cannot communicate with each other. In this case, when a node addition or deletion occurs, information about the new or deleted node may be sent only to the messaging channel 320.

クライアント310がメッセージングチャネル320のプロトコルを把握している場合、クライアント310は、メッセージングチャネル320に直接データアクセス要請を送信してもよい。または、クライアント310は、各ノード332、334または336に直接データアクセス要請を送信してもよい。この過程において、アクセス要請は、ネットワーク上に位置するL4スイッチ325を経由してもよい。L4スイッチ325は、仮想IP(virtual IP;VIP)によって1つ以上のノード330を管理する。クライアント310がVIPを用いてデータアクセス要請を送信すると、VIPを有するL4スイッチ325は、データアクセス要請を受信した後、受信されたデータアクセス要請を1つ以上のノード330で適切に分配する。   If client 310 knows the protocol of messaging channel 320, client 310 may send a data access request directly to messaging channel 320. Alternatively, the client 310 may transmit a data access request directly to each node 332, 334 or 336. In this process, the access request may pass through the L4 switch 325 located on the network. The L4 switch 325 manages one or more nodes 330 using a virtual IP (VIP). When the client 310 transmits a data access request using the VIP, the L4 switch 325 having the VIP appropriately distributes the received data access request at the one or more nodes 330 after receiving the data access request.

下記では、メッセージングチャネル320を用いて1つ以上のノード330の全てが同一のデータを維持及び提供する方法について説明する。また、下記の方法を用いることによってマルチマスタ複製が実現されることができる。   In the following, a method is described in which all of one or more nodes 330 maintain and provide the same data using messaging channel 320. In addition, multi-master replication can be realized by using the following method.

図4は、本発明の一実施形態に係るデータ管理方法の信号フローチャートである。   FIG. 4 is a signal flowchart of a data management method according to an embodiment of the present invention.

本実施形態において、端末(すなわち、第1ノード332、第2ノード334及び第3ノード336)は、クライアント310からのデータアクセス要請を処理する。   In the present embodiment, the terminals (that is, the first node 332, the second node 334, and the third node 336) process the data access request from the client 310.

ステップS410において、クライアント310はメッセージングチャネル320にデータアクセス要請を行う。データアクセス要請は、特定のデータ(例えば、オブジェクト)の読み出し、書込み、挿入、削除、または更新のいずれか1つ以上であってもよい。メッセージングチャネル320は、クライアント310からデータアクセス要請を受信する。   In step S410, the client 310 makes a data access request to the messaging channel 320. The data access request may be any one or more of reading, writing, inserting, deleting, or updating specific data (for example, an object). Messaging channel 320 receives a data access request from client 310.

ステップS420において、メッセージングチャネル320は、データアクセス要請に対して特定データを含むノードで構成されたクラスタから1つのノードを選択する。説明の便宜のために図4に示された1つ以上のノード330(すなわち、第1ノード332、第2ノード334、および第3ノード336を含むクラスタ)が、要請されたデータを含むノードの集合という。したがって、メッセージングチャネルは320は、1つ以上のノード330から1つのノードを選択する。メッセージングチャネル320は、ラウンド・ロビン(round−robin)方式などを利用したり、ロードバランシングに基づいて選択されたノードを決定してもよい。本実施形態では、第2ノード334が選択された場合について説明する。   In step S420, the messaging channel 320 selects one node from a cluster composed of nodes including specific data in response to the data access request. For convenience of explanation, one or more of the nodes 330 shown in FIG. 4 (ie, a cluster including the first node 332, the second node 334, and the third node 336) are connected to the node including the requested data. It is called a set. Accordingly, the messaging channel 320 selects a node from one or more nodes 330. The messaging channel 320 may determine a selected node based on load balancing using a round-robin method or the like. In the present embodiment, a case where the second node 334 is selected will be described.

ステップS430において、メッセージングチャネル320は、選択されたノード(すなわち、第2ノード334)にデータアクセス要請を送信する。   In step S430, the messaging channel 320 sends a data access request to the selected node (ie, the second node 334).

選択されたノード(すなわち、第2ノード334)は、メッセージングチャネル320からクライアント310によって送信されたデータアクセス要請を受信する。ここで、データアクセス要請を受信した選択されたノード(第2ノード334)は、直ちにデータアクセス要請に対する処理(例えば、データの挿入または削除)を行わない場合がある。   The selected node (ie, second node 334) receives the data access request sent by client 310 from messaging channel 320. Here, the selected node (second node 334) that has received the data access request may not immediately perform processing (for example, insertion or deletion of data) in response to the data access request.

もし、データアクセス要請がデータに対する読み出し要請である場合、下記のステップS440、S450、S462、S464、及びS466を行わなくてもよい。この場合、データは選択されたノード(第2ノード334)からメッセージングチャネル320を経由してクライアント310に送信されてもよく、または、クライアント310に直接送信されてもよい。   If the data access request is a read request for data, the following steps S440, S450, S462, S464, and S466 may not be performed. In this case, the data may be sent from the selected node (second node 334) to the client 310 via the messaging channel 320 or directly to the client 310.

ステップS440において、選択されたノード(第2ノード334)は、データアクセス要請に対するマルチキャスト要請をメッセージングチャネル320に送信する。メッセージングチャネル320は、選択されたノード(第2ノード334)からマルチキャスト要請を受信する。   In step S440, the selected node (second node 334) transmits a multicast request for the data access request to the messaging channel 320. The messaging channel 320 receives a multicast request from the selected node (second node 334).

ステップS450において、メッセージングチャネル320は、データアクセス要請を1つ以上のノード330にマルチキャストする。マルチキャストの対象は1つ以上のノード330(すなわち、選択されたノードの全ての複製)である。マルチキャストを要請する選択されたノード(第2ノード334)自体にも、マルチキャストを介してデータアクセス要請が送信される。1つ以上のノード330それぞれは、マルチキャストされたデータアクセス要請を受信する。   In step S450, the messaging channel 320 multicasts the data access request to one or more nodes 330. The target of multicast is one or more nodes 330 (ie, all replicas of the selected node). A data access request is also transmitted via multicast to the selected node (second node 334) itself requesting multicast. Each of the one or more nodes 330 receives a multicast data access request.

メッセージングチャネル320がマルチキャストしたデータアクセス要請は、1つ以上のノード330に(論理的に)同時に到着する。また、1つ以上のノード330それぞれは、マルチキャストを介してデータアクセス要請を受信したとき、実際にデータアクセス要請を処理してもよい。   Data access requests multicasted by messaging channel 320 arrive at one or more nodes 330 simultaneously (logically). Each of the one or more nodes 330 may actually process the data access request when receiving the data access request via multicast.

ステップS462、S464、及びS466において、1つ以上のノード330それぞれは、マルチキャストされたデータアクセス要請を処理する。例えば、1つ以上のノード330それぞれは、受信されたデータアクセス要請に応じてデータの書込み、挿入、削除、または更新作業などを行う。   In steps S462, S464, and S466, each of the one or more nodes 330 processes the multicast data access request. For example, each of the one or more nodes 330 performs data writing, insertion, deletion, or update operation in response to the received data access request.

したがって、メッセージングチャネル320が複数のデータアクセス要請を順次マルチキャストすることによって、1つ以上のノード330は、全て同一の順序で複数のデータアクセス要請を処理することができる。システム300は、アクセス要請の順序を把握するために、システム300内の全てのノードを時間同期化してもよく、各要請に対するタイムスタンプを用いてもよい。システム300は、時間同期化のためにNTP(Network Time Protocol)を用いてもよい。したがって、1つ以上のノード330が、管理するデータの一貫性を維持することができる。   Accordingly, the messaging channel 320 sequentially multicasts a plurality of data access requests so that one or more nodes 330 can process the plurality of data access requests in the same order. The system 300 may time-synchronize all the nodes in the system 300 in order to grasp the order of access requests, and may use a time stamp for each request. The system 300 may use NTP (Network Time Protocol) for time synchronization. Therefore, one or more nodes 330 can maintain the consistency of the data managed.

図5は、本発明の一例に係るデータ管理方法の信号フローチャートである。   FIG. 5 is a signal flowchart of a data management method according to an example of the present invention.

ステップS510において、選択されたノード(すなわち、第2ノード334)は、データアクセス要請を受信する。   In step S510, the selected node (ie, the second node 334) receives the data access request.

データアクセス要請は、クライアント310から直接に送信されたものであってもよい。   The data access request may be sent directly from the client 310.

データアクセス要請は、L4スイッチ325を経由して送信されたものであってもよい。L4スイッチ325は、クライアント310からデータアクセス要請を受信する。L4スイッチ325は、1つ以上のノード330のうち1つのノードを選択し、データアクセス要請を選択されたノードに送信する。L4スイッチ325は、ラウンド・ロビン方式などを用いたり、ロードバランシングに基づいて選択されたノードを決定してもよい   The data access request may be transmitted via the L4 switch 325. The L4 switch 325 receives a data access request from the client 310. The L4 switch 325 selects one of the one or more nodes 330 and transmits a data access request to the selected node. The L4 switch 325 may use a round robin method or the like, or may determine a selected node based on load balancing.

ここで、データアクセス要請を受信した選択されたノード(第2ノード334)は、直ちにデータアクセス要請に対する処理を行わない場合がある。   Here, the selected node (second node 334) that has received the data access request may not immediately process the data access request.

ステップS520において、選択されたノード(第2ノード334)は、データアクセス要請に対するマルチキャストをメッセージングチャネル320に要請する。すなわち、選択されたノード(第2ノード334)は、データアクセス要請のマルチキャスト要請をメッセージングチャネル320に送信する。メッセージングチャネル320は、選択されたノード(すなわち、第2ノード334)からデータアクセス要請に対するマルチキャスト要請を受信する。   In step S520, the selected node (second node 334) requests the messaging channel 320 for multicast for the data access request. That is, the selected node (second node 334) transmits a multicast request for a data access request to the messaging channel 320. The messaging channel 320 receives a multicast request for a data access request from a selected node (ie, the second node 334).

ステップS540において、メッセージングチャネル320は、データアクセス要請を1つ以上のノード330にマルチキャストする。マルチキャストの対象は、1つ以上のノード330(すなわち、選択されたノードの全ての複製)である。マルチキャストを要請する選択されたノード(第2ノード334)自体にも、マルチキャストを介してデータアクセス要請が送信される。1つ以上のノード330それぞれは、マルチキャストされたデータアクセス要請を受信する。   In step S540, the messaging channel 320 multicasts the data access request to one or more nodes 330. The target of the multicast is one or more nodes 330 (ie, all replicas of the selected node). A data access request is also transmitted via multicast to the selected node (second node 334) itself requesting multicast. Each of the one or more nodes 330 receives a multicast data access request.

ステップS552、ステップS554、ステップS556において、1つ以上のノード330それぞれは、マルチキャストを介して受信されたデータアクセス要請を処理する。   In step S552, step S554, and step S556, each of the one or more nodes 330 processes a data access request received via multicast.

例えば、1つ以上のノード330それぞれは、受信されたデータアクセス要請に応じてデータの挿入、削除、または更新作業を行う。各ノード(例えば、第1ノード332、第2ノード334、または第3ノード336)は、データアクセス要請をマルチキャストを介して受信した後、データアクセス要請を処理する。データアクセス要請をマルチキャストするメッセージングチャネル320は、各ノードの立場におけるデータアクセス要請の順序を把握することができる。システム300はアクセス要請の順序を把握するため、システム300内の全てのノードを時間同期化してもよく、各要請に対するタイムスタンプを用いてもよい。システム300は、時間同期化のためにNTP(Network Time Protocol)を用いてもよい。したがって、メッセージングチャネル320は、複数のノードが互いに異なるデータを提供する場合、いずれのデータが正しいデータであるかを常に把握できる。したがって、システム300は、マルチマスタモデルを使用するにもかかわらず、読み出し補正を行うことなくクライアント310にデータを提供することができる。   For example, each of the one or more nodes 330 performs a data insertion, deletion, or update operation in response to the received data access request. Each node (eg, the first node 332, the second node 334, or the third node 336) processes the data access request after receiving the data access request via multicast. The messaging channel 320 for multicasting data access requests can grasp the order of data access requests at the standpoint of each node. In order to grasp the order of access requests, the system 300 may synchronize all nodes in the system 300 with time, or may use a time stamp for each request. The system 300 may use NTP (Network Time Protocol) for time synchronization. Therefore, the messaging channel 320 can always know which data is correct data when a plurality of nodes provide different data. Thus, the system 300 can provide data to the client 310 without performing read correction despite using a multi-master model.

1つ以上のノード330のうち、特定ノードに障害が発生したり、1つ以上のノード330から特定ノードを削除するとき、または、1つ以上のノード330に特定ノードを追加するとき、メッセージングチャネル320は、障害、削除、または追加に関する情報を把握することができる。   A messaging channel when a particular node of one or more nodes 330 fails, when a particular node is deleted from one or more nodes 330, or when a particular node is added to one or more nodes 330 320 can keep track of information regarding failures, deletions, or additions.

したがって、図4及び図5を参照して前述した方法は、便宜または目的などに応じてクラスタ内に複製(すなわち、ノード)を自由に追加及び削除できる柔軟な拡張性を提供することができる。また、前述した方法は、クラスタ内のいずれのノードでデータ照会を処理しても同一の結果を提供することができる。したがって、ロードバランシングの効果が提供される。   Therefore, the method described above with reference to FIG. 4 and FIG. 5 can provide flexible extensibility in which replicas (ie, nodes) can be freely added and deleted in the cluster according to convenience or purpose. Also, the above-described method can provide the same result regardless of whether the data query is processed at any node in the cluster. Therefore, a load balancing effect is provided.

図4及び図5を参照して前述した実施形態では、1つ以上のノード330それぞれは、他のノードと直接的に通信せず、自身以外にはどのようなノードが存在するかも把握できないまま動作する。   In the embodiment described above with reference to FIGS. 4 and 5, each of the one or more nodes 330 does not communicate directly with the other nodes, and it is not possible to know what other nodes are present. Operate.

したがって、1つ以上のノード330に特定ノード(すなわち、複製)が追加または削除される場合、追加または削除の処理は、メッセージングチャネル320に対してのみ行われ、他のノードは追加または削除に影響を受けることなく動作することができる。   Thus, when a particular node (ie, a replica) is added or removed from one or more nodes 330, the addition or removal process is only performed on the messaging channel 320, and other nodes affect the addition or removal. Can operate without receiving.

例えば、システム拡張のために1つのノードが追加される場合、該当ノードはメッセージングチャネル320に該当ノードに関する情報を送信し、メッセージングチャネル320との接続を生成する。その後には、該当ノードが含んでいるデータアクセスの要請を受けてもよい。   For example, when one node is added for system expansion, the corresponding node transmits information on the corresponding node to the messaging channel 320 and creates a connection with the messaging channel 320. Thereafter, a request for data access included in the corresponding node may be received.

一方、メッセージングチャネル320は、各ノードの状態をチェックしてもよい。例えば、メッセージングチャネル320はハートビット(heartbeat)メッセージを周期的に受信したり、メッセージ送信に対する応答有無に基づいてシステムの障害有無を判別する。または、システム上、必要に応じて特定ノードを除去する場合、メッセージングチャネル320に除去されたノードに関する情報が送信されてもよい。もし、1つのノードに障害が発生したと判断されたり、特定ノードが除去される場合、メッセージングチャネル320は、該当ノードにこれ以上のメッセージを送信しない。このようにノードがなくなる場合、メッセージングチャネル320は、必要に応じて複製数を維持するための移動作業を指示してもよい。   Meanwhile, the messaging channel 320 may check the status of each node. For example, the messaging channel 320 periodically receives a heartbeat message and determines the presence or absence of a system failure based on the presence or absence of a response to message transmission. Alternatively, when a specific node is removed as necessary on the system, information regarding the removed node may be transmitted to the messaging channel 320. If it is determined that one node has failed or a specific node is removed, the messaging channel 320 does not send any more messages to that node. If there are no nodes in this way, the messaging channel 320 may direct a move operation to maintain the number of replicas as needed.

このようにシステム300、はノードの挿入、削除、または故障を容易に処理することができる。   In this way, the system 300 can easily handle node insertion, deletion, or failure.

図6は、本発明の一実施形態に係るメッセージングチャネル320のブロック図である。   FIG. 6 is a block diagram of a messaging channel 320 according to one embodiment of the invention.

メッセージングチャネル320は、受信部610、制御部620、及び送信部630を備える。   The messaging channel 320 includes a reception unit 610, a control unit 620, and a transmission unit 630.

受信部610は、ネットワークを介してデータを受信する。例えば、ステップS410及びステップS510で、受信部610はクライアント310からデータアクセス要請を受信する。また、ステップS440及びステップS540で、受信部610は、選択されたノードからデータアクセス要請の1つ以上のノード330へのマルチキャスト要請を受信する。   The receiving unit 610 receives data via a network. For example, the reception unit 610 receives a data access request from the client 310 in steps S410 and S510. In step S440 and step S540, the receiving unit 610 receives a multicast request from the selected node to one or more nodes 330 for a data access request.

制御部620は、例えば、ステップS420において、1つ以上のノード330のうち選択されるノードを決定する。制御部620はラウンドロビンまたはロードバランシングに基づいて1つ以上のノード330のうち選択されるノードを決定してもよい。   For example, in step S420, the control unit 620 determines a node to be selected from the one or more nodes 330. The controller 620 may determine a node to be selected from the one or more nodes 330 based on round robin or load balancing.

送信部630は、ネットワークを介してデータを送信する。例えば、ステップS430において、送信部630は、選択されたノードにデータアクセス要請を送信する。また、ステップS450及びステップS540において、送信部630は、データアクセス要請を1つ以上のノード330にマルチキャストする。   The transmission unit 630 transmits data via the network. For example, in step S430, the transmission unit 630 transmits a data access request to the selected node. In step S450 and step S540, the transmission unit 630 multicasts a data access request to one or more nodes 330.

一方、メッセージングチャネル320は、ノード情報を管理する管理部(図示せず)をさらに備えてもよい。管理部は、ノードの情報、同一のデータの複製であるクラスタ情報を管理してもよく、メッセージングチャネル320がクラスタを1つの群として取り扱ってブロードキャスティングできるようにする。管理部では、ノードの追加または除去時に新しいノードに関する情報をアップデートしてもよい。   Meanwhile, the messaging channel 320 may further include a management unit (not shown) that manages node information. The management unit may manage node information and cluster information that is a duplicate of the same data, and allows the messaging channel 320 to handle the cluster as a group and perform broadcasting. The management unit may update information on a new node when adding or removing a node.

先に図1から図5を参照して説明された本発明の一実施形態に係る技術的な内容が本実施形態にそのまま適用されてもよい。したがって、本詳細な説明は以下では省略する。   The technical contents according to the embodiment of the present invention described above with reference to FIGS. 1 to 5 may be directly applied to the present embodiment. Therefore, this detailed description is omitted below.

図7は、本発明の一実施形態に係るデータ格納装置を示す図である。   FIG. 7 is a diagram showing a data storage device according to an embodiment of the present invention.

データ格納装置700は、1つ以上の格納領域710、720、730、740及び750を備えてもよい。ここで「格納領域」とは、データを格納する物理的または論理的な空間を意味する。例えば、「格納領域」とは、1つの関係型データベースまたはファイルシステム、あるいは同一のデータに対する複製の集合である分散クラスタであってもよい。   The data storage device 700 may include one or more storage areas 710, 720, 730, 740 and 750. Here, the “storage area” means a physical or logical space for storing data. For example, the “storage area” may be one relational database or file system, or a distributed cluster that is a collection of replicas for the same data.

データ格納装置700は、図3から図6を参照して説明した第1ノード332、第2ノード334及び第3ノード336の1つ以上に対応してもよい。   The data storage device 700 may correspond to one or more of the first node 332, the second node 334, and the third node 336 described with reference to FIGS.

各格納領域は、論理的にツリー形態の階層的な構造を有してもよい。言い換えれば、各格納領域は、ツリーにおける1つのノードに対応し、任意の2つの格納領域の間には2つの格納領域に対応するノード間の関係によって親−子関係または兄弟関係などが成り立つ。   Each storage area may have a logical tree-like hierarchical structure. In other words, each storage area corresponds to one node in the tree, and a parent-child relationship or a sibling relationship is established between any two storage areas depending on the relationship between the nodes corresponding to the two storage areas.

図7を参照すると、第1格納領域710はツリー構造のルートノードに、第2格納領域720及び第3格納領域730はそれぞれ第1格納領域710の右側の子ノード及び左側の子ノードに対応する。第1格納領域710は、第2格納領域720及び第3格納領域730の親格納領域である。第2格納領域720は、第1格納領域710の(左側)子格納領域である。第2格納領域720は、第3格納領域730の兄弟格納領域である。第4格納領域740及び第5格納領域750はそれぞれ第3格納領域730の左側の子ノード及び右側の子ノードに対応する。   Referring to FIG. 7, the first storage area 710 corresponds to the root node of the tree structure, and the second storage area 720 and the third storage area 730 correspond to the right child node and the left child node of the first storage area 710, respectively. . The first storage area 710 is a parent storage area for the second storage area 720 and the third storage area 730. The second storage area 720 is a (left side) child storage area of the first storage area 710. The second storage area 720 is a sibling storage area of the third storage area 730. The fourth storage area 740 and the fifth storage area 750 correspond to the left child node and the right child node of the third storage area 730, respectively.

格納領域710、720、730、740及び750それぞれには、各格納領域を識別するためのキー(key)が割り当てられてもよい。このキーは、格納領域との間の階層構造を表すことができる形態で構成される。例えば、1つのキーは、1つ以上のサブキー(sub−key)及びこれを区分する区分子(separator)を含んで構成されてもよい。ここで、サブキーは、任意のサブツリー内の全てのノードを代表する値になる。図7を参照すると、「korea」は第1格納領域710をルートにするサブツリーを代表するキーであり、「seoul」は第3格納領域730をルートにするサブツリーを代表するキーある。図7において、「korea」、「kyeonggi」「seoul「kangbuk」「kangnam」などはそれぞれ1つのサブキーであり、「.」を区分子として用いて「korea.seoul.kangnam」のような1つのkeyを構成する。   Each of the storage areas 710, 720, 730, 740 and 750 may be assigned a key for identifying each storage area. This key is configured in a form that can represent a hierarchical structure with the storage area. For example, one key may be configured to include one or more sub-keys and a separator that separates the sub-keys. Here, the subkey is a value representing all nodes in an arbitrary subtree. Referring to FIG. 7, “corea” is a key representing a subtree whose root is the first storage area 710, and “seoul” is a key representing a subtree whose root is the third storage area 730. In FIG. 7, “korea”, “kyeongi”, “seoul“ kangbuk ”,“ kangnam ”, and the like are each one subkey, and one key such as“ korea.seoul. Configure.

下記の数式(1)はこのように階層的なキーを示す正規式の一例である。

(1)
ここで、keyは階層的なキーを示し、keyは英数字(alphanumeric)と区分子「.」で組合わせた文字列(string)である。
The following formula (1) is an example of a regular expression indicating a hierarchical key in this way.

(1)
Here, “key” indicates a hierarchical key, and “key” is a character string (string) formed by combining alphanumeric and “.”

一般的な英文字、数字及び区分子「.」を用いる場合、キーは数式(1)のように表わすことができるが、本発明はこれに限定されることなく他の文字を含んだり、または、他の形態の区分子を用いてもよい。また、キーが必ず1つの文字列で構成される必要はなく、例えば、リンクリスト(linked list)のような形態で構成してもよい。以下では区分子などに区分されたサブキーを順に第1サブキー、第2サブキー、..および第nサブキーとする。ルートノードのレベルを1とするとき、レベルnに位置するノードに対応する格納領域を識別するキーはn個のサブキーを含む。   In the case of using general English letters, numbers, and the numerator “.”, The key can be expressed as Equation (1), but the present invention is not limited thereto and includes other characters, or Other types of molecules may be used. Further, the key is not necessarily composed of one character string, and may be composed in a form such as a linked list. In the following, subkeys divided into compartments and the like are sequentially assigned to a first subkey, a second subkey,. . And the nth sub key. When the level of the root node is 1, the key for identifying the storage area corresponding to the node located at level n includes n subkeys.

一方、ルートノードに対応する格納領域のキーは空白(null)であってもよい。このような場合、ルートノードは0個のサブキーを、レベルnに位置するノードに対応する格納領域を識別するキーはn−1個のサブキーを含んでもよい。例えば、階層的なキーは、数式(1)の正規式によって生成された文字列または空白文字列であってもよい。   On the other hand, the key of the storage area corresponding to the root node may be null. In such a case, the root node may include 0 subkeys, and the key for identifying the storage area corresponding to the node located at level n may include n-1 subkeys. For example, the hierarchical key may be a character string or a blank character string generated by the regular expression of Equation (1).

図7において、第1格納領域710に割り当てられたキー715は、「korea」である。キー715は、第1サブキー「korea」のみを有する。   In FIG. 7, the key 715 assigned to the first storage area 710 is “korea”. The key 715 has only the first subkey “korea”.

第2格納領域720に割り当てられたキー725は、「korea.gyeonggi」である。キー725は、第1サブキー「korea」及び第2サブキー「gyeonggi」を有する。第3格納領域730に割り当てられたキー735は、「korea.seoul」である。キー735は、第1サブキー「korea」及び第2サブキー「seoul」を有する。第4格納領域740に割り当てられたキー745は、「korea.seoul.kangbuk」である。キー735は、第1サブキー「korea」、第2サブキー「seoul」及び第3サブキー「kangbuk」を有する。第5格納領域750に割り当てられたキー755は、「korea.seoul.kangnam」である。キー755は、第1サブキー「korea」、第2サブキー「seoul」及び第3サブキー「kangnam」を有する。   The key 725 assigned to the second storage area 720 is “corea.gyeongi”. The key 725 has a first subkey “korea” and a second subkey “gyeongi”. The key 735 assigned to the third storage area 730 is “corea.seoul”. The key 735 has a first subkey “korea” and a second subkey “seoul”. The key 745 assigned to the fourth storage area 740 is “corea.seoul.kangbuk”. The key 735 has a first subkey “korea”, a second subkey “seoul”, and a third subkey “kangbuk”. The key 755 assigned to the fifth storage area 750 is “corea.seoul.kangnam”. The key 755 has a first subkey “korea”, a second subkey “seoul”, and a third subkey “kannam”.

格納領域に割り当てられたキーは、格納領域の親格納領域のキーに1つ以上のサブキーが連鎖されたキーであってもよい。例えば、第4格納領域740に割り当てられたキーは、第4格納領域の親格納領域である第3格納領域730のキー「korea.seoul」にサブキー「kangbuk」が連鎖されたキーである。   The key assigned to the storage area may be a key in which one or more subkeys are chained to the key of the parent storage area of the storage area. For example, the key assigned to the fourth storage area 740 is a key in which the sub-key “kangbuk” is chained to the key “corea.seul” of the third storage area 730 that is the parent storage area of the fourth storage area.

すなわち、格納領域p及び格納領域cが互いに親格納領域及び子格納領域の関係にある場合、親格納領域pのキーkpが第1サブキーsk1から第nサブキーsknを含むと(ここで、nは1以上の整数である)、子格納領域cのキーkcは第1サブキーsk1から第nsknを含み、第n+1サブキーsk(n+1)から第mサブキーskmを含んでもよい。ここで、mはn+1以上の整数である。   That is, when the storage area p and the storage area c are in the relationship between the parent storage area and the child storage area, if the key kp of the parent storage area p includes the first subkey sk1 to the nth subkey skn (where n is The key kc of the child storage area c may include the first subkey sk1 to nskn, and the (n + 1) th subkey sk (n + 1) to the mth subkey skm. Here, m is an integer of n + 1 or more.

本発明の一実施形態によると、データ格納装置700は、データを各格納領域のキーに応じて分類して格納する。データはキーを有する。データのキーは、データの分類体系に用いられる識別子である。データのキーは、データの分類体系の上位置を表してもよい。データ格納装置700内のツリー構造が分類体系を表す場合、データはデータのキー値に応じて特定の格納領域(または、格納領域のキー)に対応する。   According to an embodiment of the present invention, the data storage device 700 stores data classified according to the key of each storage area. The data has a key. The data key is an identifier used in the data classification system. The key of the data may represent the upper position of the data classification system. When the tree structure in the data storage device 700 represents a classification system, the data corresponds to a specific storage area (or storage area key) according to the key value of the data.

特定の格納領域を示すノードをルートにしたサブツリーにおいて、サブツリー内の格納領域は特定の格納領域のキーに対応するデータを格納する。   In a subtree rooted at a node indicating a specific storage area, the storage area in the subtree stores data corresponding to the key of the specific storage area.

例えば、第3格納領域730をルートにしたサブツリー760において、サブツリー760内の格納領域730、740及び750は、第3格納領域730のキー735「korea.seoul」に対応するデータを格納する。   For example, in the subtree 760 rooted at the third storage area 730, the storage areas 730, 740, and 750 in the subtree 760 store data corresponding to the key 735 “corea.seul” of the third storage area 730.

また、第4格納領域740をルートにしたサブツリーは、第4格納領域740のみを含む。したがって、第4格納領域740は、第4格納領域740のキー745「korea.seoul.kangbuk」に対応するデータを格納してもよい。   Further, the subtree having the fourth storage area 740 as a root includes only the fourth storage area 740. Therefore, the fourth storage area 740 may store data corresponding to the key 745 “corea.seoul.kangbuk” of the fourth storage area 740.

また、第5格納領域750をルートにしたサブツリーは、第5格納領域750のみを含む。したがって、第5格納領域750は、第5格納領域750のキー755「korea.seoul.kangnam」に対応するデータを格納してもよい。   Further, the subtree having the fifth storage area 750 as a root includes only the fifth storage area 750. Therefore, the fifth storage area 750 may store data corresponding to the key 755 “corea.seoul.kannam” of the fifth storage area 750.

ここで、格納領域のキーに対応するデータは、データのキーの接頭語(prefix)のいずれか1つが格納領域のキーと同一のデータを意味する。   Here, the data corresponding to the storage area key means data in which one of the data key prefixes is the same as the storage area key.

キーxの接頭語とは、階層的なキーxがn個のサブキーx1、x2、x3、...、xnを含むとき、xのサブキーのうちのi個(iは1以上n以下)のサブキーを含むキーを意味する。例えば、階層的なキー「a.b.c」の接頭語は「a」、「a.b」及び「a.b.c」であってもよい。   The key x prefix means that the hierarchical key x has n subkeys x1, x2, x3,. . . , Xn means a key including i subkeys of x (i is 1 or more and n or less). For example, the prefix of the hierarchical key “abc” may be “a”, “ab” and “abc”.

例えば、データのキーが「korea.seoul.kangnam」であれば、「korea」、「korea.seoul」は前記キーの接頭語の1つであってもよい。したがって、前記データは、第1格納領域710のキー715「korea」及び第3格納領域730のキー735「korea.seoul」に対応して、第4格納領域740のキー745及び第5格納領域750のキー755には対応しない。   For example, if the data key is “corea.seoul.kannam”, “korea” and “corea.seul” may be one of the key prefixes. Accordingly, the data corresponds to the key 715 “korea” in the first storage area 710 and the key 735 “korea.seoul” in the third storage area 730, and the key 745 and the fifth storage area 750 in the fourth storage area 740. This key 755 does not correspond.

例えば、データのキーが「korea.seoul.kangnam.shinsa」であれば、キーの接頭語は「korea」、「korea.seoul」、「korea.seoul.kangnam」であってもよい。データは、第1格納領域710のキー715、第3格納領域730のキー735及び第5格納領域750のキー755に対応する。   For example, if the key of the data is “corea.seoul.kannam.shinsa”, the prefix of the key may be “corea”, “corea.seoul”, “corea.seoul.kannam”. The data corresponds to the key 715 in the first storage area 710, the key 735 in the third storage area 730, and the key 755 in the fifth storage area 750.

データは、自らのキーに応じてデータ格納装置700の1つ以上の格納領域710、720、730、740及び750のいずれか1つの格納領域内に格納されてもよい。   The data may be stored in any one of the one or more storage areas 710, 720, 730, 740, and 750 of the data storage device 700 according to its own key.

例えば、格納領域は、(1)格納領域のキーに対応し、(2)格納領域の子格納領域のキーには対応しないデータを格納してもよい。   For example, the storage area may store data that does not correspond to (1) the key of the storage area and (2) the key of the child storage area of the storage area.

親格納領域pに対応するデータは、親格納領域pの子格納領域cにも対応する。データが格納領域p及び格納領域cに対応する場合、データは、格納領域pではない格納領域cをルートにしたサブツリー内の格納領域のいずれか1つの格納領域内に格納されてもよい。   The data corresponding to the parent storage area p also corresponds to the child storage area c of the parent storage area p. When the data corresponds to the storage area p and the storage area c, the data may be stored in any one of the storage areas in the subtree rooted at the storage area c that is not the storage area p.

データのキーが「korea.seoul.kangnam.shinsa」または「korea.seoul.kangnam.shinsa.1」であれば、データは、第1格納領域710、第3格納領域730、及び第5格納領域750に対応する。データは第5格納領域750内に格納されてもよい。   If the key of the data is “corea.seul.kannam.shinsa” or “corea.seoul.kannam.shinsa.1”, the data is stored in the first storage area 710, the third storage area 730, and the fifth storage area 750. Corresponding to Data may be stored in the fifth storage area 750.

データのキーが「korea.gangwon」であれば、データは第1格納領域710に対応する。データは第1格納領域710内に格納されてもよい。   If the data key is “corea.gangwon”, the data corresponds to the first storage area 710. Data may be stored in the first storage area 710.

前述のような格納方式が用いられる場合、階層的なキーによって実際のデータが位置する格納領域が検索されてもよい。すなわち、実際のデータが位置する格納領域は、階層的なキー全体またはキーの接頭語によって検索されてもよい。   When the storage method as described above is used, a storage area in which actual data is located may be searched by a hierarchical key. That is, the storage area where the actual data is located may be searched by the entire hierarchical key or the key prefix.

以下では、データのキーが「korea.seoul.kangnam.shinsa」であるデータが検索される場合の例について説明する。ルートノードに対応する第1格納領域710のキー715がデータのキーと比較される。データのキーの接頭語の1つである「korea」は、第1格納領域710のキー715と同一である。また、第3格納領域730及び第1格納領域710は互いに子−親の関係にある。データのキーの接頭語の1つである「korea.seoul」は、第3格納領域730のキー735と同一である。第5格納領域750及び第1格納領域710は互いに子−親の関係にある。データのキーの接頭語の1つである「korea.seoul.kangnam」は、第5格納領域750のキー755と同一である。したがって、キーが「korea.seoul.kangnam.shinsa」であるデータは、第1格納領域710及び第3格納領域730を経由して第5格納領域750内で検索されてもよい。   In the following, an example will be described in which data whose data key is “corea.seoul.kannam.shinsa” is searched. The key 715 in the first storage area 710 corresponding to the root node is compared with the data key. “Korea”, which is one of the data key prefixes, is the same as the key 715 in the first storage area 710. The third storage area 730 and the first storage area 710 are in a child-parent relationship. “Corea.seoul”, which is one of the data key prefixes, is the same as the key 735 in the third storage area 730. The fifth storage area 750 and the first storage area 710 are in a child-parent relationship. One of the data key prefixes, “corea.seoul.gangnam”, is the same as the key 755 in the fifth storage area 750. Accordingly, the data whose key is “corea.seoul.kannam.shinsa” may be searched in the fifth storage area 750 via the first storage area 710 and the third storage area 730.

以下は、データのキーが「korea.jejudo」であるデータが検索される場合について説明する。データのキーの接頭語の1つである「korea」は、第1格納領域710のキー715と同一である。データのキーの接頭語である「korea」及び「korea.jejudo」は、第2格納領域720のキー725及び第3格納領域730のキー735とは同一ではない。したがって、キーが「korea.jejudo」であるデータは第1格納領域710内で検索されてもよい。   The following describes a case where data whose data key is “corea.jejudo” is searched. “Korea”, which is one of the data key prefixes, is the same as the key 715 in the first storage area 710. The data key prefixes “korea” and “korea.jejudo” are not the same as the key 725 in the second storage area 720 and the key 735 in the third storage area 730. Therefore, the data whose key is “corea.jejudo” may be searched in the first storage area 710.

図8は、本発明の一例に係るデータ格納装置に格納領域を追加する過程を説明するための図である。   FIG. 8 is a diagram for explaining a process of adding a storage area to the data storage device according to an example of the present invention.

図7を参照して前述したデータ格納装置700は、格納領域のキーである「korea」に対応するデータを格納するため、格納領域が追加されたと見なすことができる。   Since the data storage device 700 described above with reference to FIG. 7 stores data corresponding to “corea” that is a key of the storage area, it can be considered that the storage area has been added.

初期状態810において、データ格納装置700は第1格納領域710のみを有する。   In the initial state 810, the data storage device 700 has only the first storage area 710.

第1格納領域710のキー715は「korea」である。したがって、キーが「korea」であるデータ、キーが「korea.gyeonggi」から始まるデータ、及びキーが「korea.seoul」から始まるデータは、全て第1格納領域710内に格納される。   The key 715 of the first storage area 710 is “korea”. Therefore, data whose key is “corea”, data whose key starts from “corea.gyeongi”, and data whose key starts from “corea.seoul” are all stored in the first storage area 710.

データ格納装置700が運用されることによって、特定の接頭語を有する(すなわち、特定の文字列から始まる)キーを有するデータ(例えば、「korea.seoul」)が多くなれば、データ格納装置700は、特定の接頭語をキーとして有する格納領域を追加してもよい。この追加は、データ格納装置700のツリー構造が拡張されることを意味する。すなわち、拡張は、データ格納装置700のツリー構造に新しい格納領域(または、新しい格納領域を示すノード)が追加されることを意味する。   When the data storage device 700 is operated, if the data having a key having a specific prefix (that is, starting with a specific character string) (for example, “corea.seoul”) increases, the data storage device 700 A storage area having a specific prefix as a key may be added. This addition means that the tree structure of the data storage device 700 is expanded. That is, expansion means that a new storage area (or a node indicating a new storage area) is added to the tree structure of the data storage device 700.

データが格納された状態820において、第1格納領域710は、キー715に対応する1つ以上のデータ860を格納する。   In the state 820 in which data is stored, the first storage area 710 stores one or more data 860 corresponding to the key 715.

第1格納領域710が1つ以上のデータ860を全て処理できない場合、新しい格納領域の追加が要求される。例えば、データ格納装置700は、下記の状態830、840及び850を経由して拡張されてもよい。   If the first storage area 710 cannot process one or more pieces of data 860, the addition of a new storage area is requested. For example, the data storage device 700 may be expanded via the following states 830, 840, and 850.

ノード生成状態830で示すように、データ格納装置700は、第1格納領域710の子格納領域である第3格納領域730を生成してもよい。   As indicated by the node generation state 830, the data storage device 700 may generate a third storage area 730 that is a child storage area of the first storage area 710.

すなわち、第3キー735に対応するデータ(すなわち、データのキーが「korea.seoul」から始まるデータ)は、第3格納領域730に別個に分離されてもよく、分離後第3格納領域730によって処理されてもよい。   That is, data corresponding to the third key 735 (that is, data whose data key starts with “corea.seoul”) may be separately separated into the third storage area 730, and may be separated by the third storage area 730 after the separation. May be processed.

追加通知状態840において、新しく生成された第3格納領域730は、自らの親格納領域である第1格納領域710に自らが処理するキー(すなわち、第3キー735)を通知してもよい。この通知は、格納領域の追加を通知するものである。   In the addition notification state 840, the newly generated third storage area 730 may notify the first storage area 710, which is its own parent storage area, of the key that it processes (that is, the third key 735). This notification notifies the addition of the storage area.

データ移動状態850において、通知を受信した第1格納領域710は自らが格納したデータのうち通知された第3キー735に対応するデータ870を第3格納領域730に移動させる。例えば、通知を受信した第1格納領域710は、自らが格納したデータのうち通知された第3キー735に対応するデータ870を第3格納領域730にコピーしてもよい。コピーが完了すると、第1格納領域710は子格納領域(すなわち、第3格納領域730)が保有するデータを重複して保有する必要がない。したがって、1格納領域710は、自らが格納したデータのうち第3格納領域730にコピーされたデータを削除してもよい。削除の後、第1格納領域710は、第1キー715に対応するデータのうち第3キー735に対応しないデータを格納する。   In the data movement state 850, the first storage area 710 that has received the notification moves the data 870 corresponding to the notified third key 735 among the data stored therein to the third storage area 730. For example, the first storage area 710 that has received the notification may copy the data 870 corresponding to the notified third key 735 among the data stored therein to the third storage area 730. When the copying is completed, the first storage area 710 does not need to hold the data held in the child storage area (that is, the third storage area 730) redundantly. Therefore, one storage area 710 may delete data copied to the third storage area 730 among the data stored by itself. After the deletion, the first storage area 710 stores data not corresponding to the third key 735 among the data corresponding to the first key 715.

第3格納領域の第3キー735に対応するデータ870を第1格納領域710から第3格納領域730に移動することによって、第1格納領域710の格納量は減少する。   By moving the data 870 corresponding to the third key 735 of the third storage area from the first storage area 710 to the third storage area 730, the storage amount of the first storage area 710 decreases.

データ格納装置700は、第1格納領域710に新しいデータが挿入されることによって第1格納領域710の格納量が予め定義された基準に達したとき、前述した第3格納領域730の生成及び第3格納領域730へのデータ移動を行なってもよい。   When new data is inserted into the first storage area 710 and the storage amount of the first storage area 710 reaches a predefined standard, the data storage device 700 generates the third storage area 730 and generates the third storage area 730 described above. 3 Data movement to the storage area 730 may be performed.

拡張中に、データ格納装置700は(部分的または全体的に)中断されなくてもよい。また、拡張によってデータも自動で複製されてもよい。   During expansion, the data storage device 700 may not be interrupted (partially or entirely). Further, the data may be automatically copied by the extension.

拡張中に、第3キー735に対応する新規の流入データは、拡張によって生成された子ノードに対応する第3格納領域730に送信される。   During expansion, new inflow data corresponding to the third key 735 is transmitted to the third storage area 730 corresponding to the child node generated by the expansion.

データ格納装置700の縮小(すなわち、ツリーノードの削除)は、前述したデータ格納装置700の拡張の逆順に行なわれてもよい。   The reduction of the data storage device 700 (that is, the deletion of the tree node) may be performed in the reverse order of the expansion of the data storage device 700 described above.

図9は、本発明の一例に係るデータ格納装置に対する範囲検索を説明するための図である。   FIG. 9 is a diagram for explaining a range search for a data storage device according to an example of the present invention.

特定の条件が満たされるデータを照会するためにクエリが用いられてもよい。クエリは、特定の検索範囲に対応するキーを有するデータ目録を質疑する文章であってもよい。   Queries may be used to query data that satisfies certain conditions. The query may be a sentence that queries a data list having a key corresponding to a specific search range.

データ格納装置700の格納領域710、720、730、740及び750の全てまたは一部は、クエリに対してデータを検索してもよい。格納領域710、720、730、740及び750の全てまたは一部によって検索された結果を併合することで、特定の格納領域710、720、730、740または750には格納されていないデータも検索されてもよい。   All or part of the storage areas 710, 720, 730, 740, and 750 of the data storage device 700 may retrieve data for a query. Data that is not stored in a specific storage area 710, 720, 730, 740, or 750 is also searched by merging the results searched by all or part of the storage areas 710, 720, 730, 740, and 750. May be.

クエリ提供状態910において、クエリは、任意の格納領域710、720、730、740または750に提供されてもよい。   In the query provision state 910, the query may be provided to any storage area 710, 720, 730, 740 or 750.

本発明の一実施形態では、ルートノードに対応する第1格納領域710にクエリが提供された場合を説明する。   In the embodiment of the present invention, a case where a query is provided to the first storage area 710 corresponding to the root node will be described.

第1格納領域710は、送信されたクエリの分析によって自らの第1キー715がクエリに対応するか否かを判断する。ここで、第1キー715がクエリに対応することは、第1キーに対応するデータのうちクエリの検索範囲に含まれるデータが存在することを意味する。   The first storage area 710 determines whether or not its first key 715 corresponds to the query by analyzing the transmitted query. Here, the fact that the first key 715 corresponds to the query means that there is data included in the query search range among the data corresponding to the first key.

例えば、クエリの検索範囲が「usa.ar」から「usa.ca」までであれは、第1キー715「korea」に対応するデータは検索範囲内には含まれない。したがって、第1キー715はクエリに対応しない。   For example, if the search range of the query is “usa.ar” to “usa.ca”, the data corresponding to the first key 715 “korea” is not included in the search range. Accordingly, the first key 715 does not correspond to a query.

もし、クエリに対応するデータがなければ、第1格納領域710はクエリに対して空白(null)を返還してもよく、または、これ以上の処理を行なわなくてもよい。   If there is no data corresponding to the query, the first storage area 710 may return a null for the query, or no further processing is required.

クエリ送信状態920において、第1格納領域710は、自らの子格納領域である第2格納領域720及び第3格納領域730にクエリを送信してもよい。すなわち、第1格納領域710は、1つ以上の子格納領域(すなわち、第2格納領域720及び第3格納領域730)に検索範囲に対応するキーを有するデータの目録を要請してもよい。   In the query transmission state 920, the first storage area 710 may transmit a query to the second storage area 720 and the third storage area 730, which are its child storage areas. That is, the first storage area 710 may request an inventory of data having a key corresponding to the search range in one or more child storage areas (that is, the second storage area 720 and the third storage area 730).

第2格納領域720及び第3格納領域730も自らの子格納領域にクエリを送信してもよい。すなわち、クエリの送信は階層的に行われてもよい。(図示せず)   The second storage area 720 and the third storage area 730 may also send queries to their child storage areas. That is, the transmission of the query may be performed hierarchically. (Not shown)

目録返還状態930において、第1格納領域710の1つ以上の子格納領域(例えば、第2格納領域720及び第3格納領域730)から検索範囲に対応するキーを有するデータの目録が返還されてもよい。   In the inventory return state 930, a list of data having a key corresponding to the search range is returned from one or more child storage areas (eg, the second storage area 720 and the third storage area 730) of the first storage area 710. Also good.

また、クエリの送信が階層的に行われた場合、第2格納領域720及び第3格納領域730もそれぞれ自らの1つ以上の子格納領域から検索範囲に対応するキーを有するデータの目録が返還されてもよい。   When queries are transmitted hierarchically, the second storage area 720 and the third storage area 730 also return a list of data having keys corresponding to the search ranges from one or more child storage areas of the second storage area 720 and the third storage area 730, respectively. May be.

目録併合及び検索結果の返還状態940において、第1格納領域710は、検索語の検索範囲に対する結果として併合されたデータ目録を返還してもよい。   In the list merge and search result return state 940, the first storage area 710 may return the data list merged as a result of the search term search range.

第2格納領域720及び第3格納領域730が返還したデータの目録も併合されたデータ目録であってもよい。すなわち、併合されたデータ目録の返還は階層的に行われてもよい。   The list of data returned by the second storage area 720 and the third storage area 730 may also be a merged data list. That is, the merged data list may be returned hierarchically.

第1格納領域710は、第1格納領域710が格納したデータのうち検索範囲に対応するデータの第2目録を返還された第1目録として併合してもよく、併合によって生成して併合された目録を検索語の検索範囲に対する結果として返還してもよい。   The first storage area 710 may be merged as a returned first list of data corresponding to the search range among the data stored in the first storage area 710, or generated and merged by the merge. The inventory may be returned as a result of the search term search range.

前述したように、本発明の一例によって、キー・バリューDBまたはハッシュを用いることなく、範囲検索及び空間的なインデックスが支援され得る。   As described above, an example of the present invention can support range search and spatial index without using a key-value DB or hash.

図10は、本発明の一実施形態に係るデータ格納方法のフローチャートである。   FIG. 10 is a flowchart of a data storage method according to an embodiment of the present invention.

ステップS1010において、1つ以上の格納領域がツリー構造で構成される。1つ以上の格納領域それぞれ、はRDBMSであってもよい。   In step S1010, one or more storage areas are configured in a tree structure. Each of the one or more storage areas may be an RDBMS.

ステップS1020において、1つ以上の格納領域それぞれに階層的なキーが割り当てられる。階層的なキーは0個以上のサブキーを有してもよい。階層的なキーは、前記の数式(1)の正規式によって生成された文字列であるか、空白文字列であってもよい。   In step S1020, a hierarchical key is assigned to each of the one or more storage areas. A hierarchical key may have zero or more subkeys. The hierarchical key may be a character string generated by the regular expression of Equation (1) or a blank character string.

ステップS1030において、1つ以上の格納領域のうち、任意の第1格納領域を示す第1ノードをルートにしたサーバツリー内の格納領域内に第1格納領域の第1キーに対応するデータが格納される。   In step S1030, the data corresponding to the first key of the first storage area is stored in the storage area in the server tree rooted at the first node indicating an arbitrary first storage area among the one or more storage areas. Is done.

第1キーは、第1ノードの親ノードを示す第2格納領域の第2キーに1つ以上のサブキーが連鎖されたキーである。   The first key is a key in which one or more subkeys are chained to the second key in the second storage area indicating the parent node of the first node.

第1キーに対応するデータは、データのキーの接頭語のうち1つが第1キーと同一であるデータを意味する。   Data corresponding to the first key means data in which one of the data key prefixes is identical to the first key.

データのキーの接頭語のうち1つが格納領域のキーと同一であれば、データは格納領域に対応するものと見なすことができる。   If one of the data key prefixes is the same as the storage area key, the data can be considered to correspond to the storage area.

第1格納領域に対応するデータのうち、第1ノードの子ノードを示す第3格納領域に対応するデータは第3格納領域に格納され、第3格納領域に対応しないデータは第1格納領域に格納される。したがって、ステップS1030は、第1格納領域に対応するデータのうち、第1ノードの子ノードを示す格納領域に対応しないデータを第1格納領域に格納するステップを含んでもよい。   Of the data corresponding to the first storage area, data corresponding to the third storage area indicating the child node of the first node is stored in the third storage area, and data not corresponding to the third storage area is stored in the first storage area. Stored. Therefore, step S1030 may include a step of storing, in the first storage area, data that does not correspond to the storage area indicating the child node of the first node among the data corresponding to the first storage area.

先に図7から図9を参照して説明した本発明の一実施形態に係る技術的な内容は、本実施形態にもそのまま適用されてもよい。したがって、本詳細な説明は以下では省略する。   The technical contents according to the embodiment of the present invention described above with reference to FIGS. 7 to 9 may be applied to the present embodiment as they are. Therefore, this detailed description is omitted below.

図11は、本発明の一実施形態に係るデータ格納装置における拡張方法のフローチャートである。   FIG. 11 is a flowchart of an expansion method in the data storage device according to the embodiment of the present invention.

後述するステップS1110、S1120、S1130、及びS1140は、前述したステップS1030に含まれてもよい。   Steps S1110, S1120, S1130, and S1140, which will be described later, may be included in step S1030 described above.

ステップS1110において、第1格納領域の格納量が予め定義された基準に達するか否かを判定する。   In step S1110, it is determined whether the storage amount of the first storage area reaches a predefined standard.

第1格納領域の格納量が予め定義された基準に達する場合は、ステップS1120が行われ、そうではない場合は、データの格納を行い終了する。   If the storage amount of the first storage area reaches a predefined standard, step S1120 is performed. If not, data is stored and the process ends.

ステップS1120において、第1格納領域の子格納領域の第3格納領域が生成される。   In step S1120, a third storage area of the child storage area of the first storage area is generated.

ステップS1130において、第3格納領域は第1格納領域に自らの第3キーを通知する。   In step S1130, the third storage area notifies its own third key to the first storage area.

ステップS1140において、第3格納領域の第3キーに対応するデータが第1格納領域から第3格納領域に移動する。   In step S1140, data corresponding to the third key in the third storage area moves from the first storage area to the third storage area.

ステップS1140は、(1)第3格納領域の第3キーに対応するデータが第1格納領域から第3格納領域にコピーされるステップ、及び(2)第1格納領域のデータのうち第3格納領域にコピーされたデータが削除されるステップを含んでもよい。   Step S1140 includes (1) a step of copying data corresponding to the third key of the third storage area from the first storage area to the third storage area, and (2) third storage of the data in the first storage area. A step of deleting data copied to the area may be included.

先に図7から図10を参照して説明した本発明の一実施形態に係る技術的な内容は、本実施形態にそのまま適用されてもよい。したがって、本詳細な説明は以下では省略する。   The technical contents according to the embodiment of the present invention described above with reference to FIGS. 7 to 10 may be directly applied to the present embodiment. Therefore, this detailed description is omitted below.

図12は、本発明の一例に係るデータ格納装置の範囲検索のフローチャートである。   FIG. 12 is a flowchart of range search of the data storage device according to an example of the present invention.

ステップS1210において、クエリが第1格納領域に提供される。   In step S1210, a query is provided to the first storage area.

クエリは、格納領域にクエリ内の検索範囲に対応するキーを有するデータを要請する文章である。   The query is a sentence requesting data having a key corresponding to the search range in the query in the storage area.

ステップS1220において、クエリが第1格納領域の子格納領域に送信される。すなわち、第1格納領域は、1つ以上の子格納領域に検索範囲に対応するキーを有するデータの第1目録を要請する。   In step S1220, the query is transmitted to the child storage area of the first storage area. That is, the first storage area requests a first list of data having a key corresponding to the search range in one or more child storage areas.

ステップS1220は再帰的に行われてもよい。クエリが送信された第1格納領域の子格納領域は、クエリを自らの1つ以上の子格納領域に再送信してもよい。   Step S1220 may be performed recursively. The child storage area of the first storage area to which the query has been sent may retransmit the query to its one or more child storage areas.

ステップS1230において、1つ以上の格納領域が第1目録を返還する。   In step S1230, one or more storage areas return the first inventory.

ステップS1240において、第1格納領域が格納したデータのうち検索範囲に対応するキーを有するデータの第2目録が返還された第1目録に併合されることで併合された目録を生成する。   In step S1240, a merged catalog is generated by merging the second catalog of data having a key corresponding to the search range among the data stored in the first storage area with the returned first catalog.

ステップS1230及びS1240は再帰的に行われてもよい。第1格納領域の子格納領域は、自らの1つ以上の子格納領域から検索範囲に対応するデータの第3目録が返還されてもよい。第1格納領域の子格納領域は、返還された第3目録を第1目録と併合してもよく、併合された第1目録を第1格納領域に返還してもよい。   Steps S1230 and S1240 may be performed recursively. In the child storage area of the first storage area, a third list of data corresponding to the search range may be returned from one or more child storage areas of the first storage area. In the child storage area of the first storage area, the returned third list may be merged with the first list, or the merged first list may be returned to the first storage area.

ステップS1250において、併合された目録が検索範囲に対する結果として返還される。   In step S1250, the merged inventory is returned as a result for the search range.

先に図7から図11を参照して説明した本発明の一実施形態に係る技術的な内容は、本実施形態にそのまま適用されてもよい。したがって、本詳細な説明は以下では省略する。   The technical contents according to the embodiment of the present invention described above with reference to FIGS. 7 to 11 may be applied to the present embodiment as they are. Therefore, this detailed description is omitted below.

一実施形態に係る方法は、多様なコンピュータ手段によって行うことができるプログラム命令形態で実現され、コンピュータ読み出し可能媒体に記録されてもよい。記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせたものを含んでもよい。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含んでもよい。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。上述のハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。   The method according to an embodiment may be implemented in the form of program instructions that can be performed by various computer means and recorded on a computer-readable medium. The recording medium may include a program instruction, a data file, a data structure, etc., alone or in combination. The recording medium and the program instructions may be specially designed and configured for the purpose of the present invention, and may be known and usable by those skilled in the art having computer software technology. . Examples of computer-readable recording media include magnetic media such as hard disks, floppy (registered trademark) disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magnetic-lights such as floppy disks. The medium and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, etc. may be included. Examples of program instructions include not only machine language code generated by a compiler but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

上述したように本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から様々に修正及び変形が可能である。   As described above, the present invention has been described with reference to the limited embodiments and drawings. However, the present invention is not limited to the above-described embodiments, and any person having ordinary knowledge in the field to which the present invention belongs can be used. Various modifications and variations are possible from such an embodiment.

したがって、本発明の範囲は、開示された実施形態に限定して定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。   Therefore, the scope of the present invention is not limited to the disclosed embodiments, but is defined by the claims and equivalents of the claims.

310 クライアント
320 メッセージングチャネル
332 第1ノード
334 第2ノード
336 第3ノード
700 データ格納装置
710 第1格納領域
715 第1キー
310 Client 320 Messaging Channel 332 First Node 334 Second Node 336 Third Node 700 Data Storage Device 710 First Storage Area 715 First Key

Claims (8)

クライアントからのデータアクセス要請に応じてマルチマスター方式によって動作する複数のノードのうち一つを選択し、前記選択されたノードが前記データアクセス要請を受信し、
前記選択されたノードが前記データアクセス要請を処理する前に、前記データアクセス要請のマルチキャスト要請をメッセージングチャネルに送信し、
前記メッセージングチャネルが前記マルチキャスト要請を受信して前記データアクセス要請を前記複数のノードにマルチキャストし、
前記複数のノードそれぞれが前記マルチキャストを受信したときに前記データアクセス要請を処理すること、
を含み、
前記複数のノードは、前記データアクセス要請のデータに対する複製を含み、
前記複数のノードの各々は他のノードと直接的に通信せず、互いに前記データアクセス要請を送信しない
ことを特徴とするデータ管理方法。
Selecting one of the plurality of nodes operated by multimaster system in accordance with the data access request from the client, the selected node receives the data access request,
Before the selected node processes the data access request , it sends a multicast request for the data access request to a messaging channel;
The messaging channel receives the multicast request and multicasts the data access request to the plurality of nodes;
Processing the data access request when each of the plurality of nodes receives the multicast;
Including
The plurality of nodes includes a copy of the data access request data;
Each of the plurality of nodes does not directly communicate with other nodes and does not transmit the data access request to each other .
前記メッセージングチャネルがクライアントから前記データアクセス要請を受信し、
前記メッセージングチャネルが前記複数のノードのうち前記選択されたノードを決定し、
前記メッセージングチャネルが前記データアクセス要請を前記選択されたノードに送信すること、
をさらに含むことを特徴とする請求項1に記載のデータ管理方法。
The messaging channel receives the data access request from a client;
The messaging channel determines the selected node of the plurality of nodes;
The messaging channel sends the data access request to the selected node;
The data management method according to claim 1, further comprising:
データアクセス要請をメッセージングチャネルによって受信し、
前記メッセージングチャネルから前記データアクセス要請を、マルチマスター方式によって動作する複数のノードから選択されたノードに送信し、
前記選択されたノードが前記データアクセス要請を処理する前に、前記データアクセス要請のマルチキャスト要請をメッセージングチャネルに送信し、
前記複数のノードに前記メッセージングチャネルによって前記データアクセス要請を送信
前記複数のノードのそれぞれが前記データアクセス要請を受信したときに前記データアクセス要請を処理すること
を含み、
前記複数のノードは、前記データアクセス要請が要請するデータに対する複製を含むノードであり、
前記複数のノードの各々は他のノードと直接的に通信せず、互いに前記データアクセス要請を送信しない
ことを特徴とするデータ管理方法。
Receiving a data access request via a messaging channel ;
Transmitting the data access request from the messaging channel to a node selected from a plurality of nodes operating in a multi-master manner;
Before the selected node processes the data access request, it sends a multicast request for the data access request to a messaging channel;
Transmits the data access request by said messaging channel to the plurality of nodes,
Each of the plurality of nodes processing the data access request when receiving the data access request ;
The plurality of nodes are nodes including a copy of data requested by the data access request;
Each of the plurality of nodes does not directly communicate with other nodes and does not transmit the data access request to each other .
前記ノードを決定するステップは、ラウンドロビン方式またはロードバランシングに基づいて前記複数のノードのうち前記選択されるノードを決定することを特徴とする請求項2に記載のデータ管理方法。 3. The data management method according to claim 2, wherein the step of determining the node determines the selected node among the plurality of nodes based on a round robin method or load balancing. クライアントからのデータアクセス要請に応じてマルチマスター方式によって動作する複数のノードのうち選択されたノードに前記データアクセス要請をメッセージングチャネルによって送信
前記選択されたノードが前記データアクセス要請を処理する前に、前記データアクセス要請のマルチキャスト要請を前記選択されたノードによってメッセージングチャネルに送信し、
前記メッセージングチャネルからマルチキャストを介して前記データアクセス要請を前記複数のノードによって受信し、
前記複数のノードのそれぞれが前記マルチキャストを受信したときに前記データアクセス要請を処理すること、
を含み、
前記複数のノードの各々は他のノードと直接的に通信せず、互いに前記データアクセス要請を送信しない
ことを特徴とするデータ管理方法。
In response to a data access request from a client , the data access request is transmitted through a messaging channel to a selected node among a plurality of nodes operating in a multi-master scheme .
Before the selected node to process the data access request, and sends to the messaging channel multicast request for the data access request by said selected node,
Said data access request via multicast from the messaging channel received by the plurality of nodes,
Processing the data access request when each of the plurality of nodes receives the multicast ;
Including
Each of the plurality of nodes does not directly communicate with other nodes and does not transmit the data access request to each other .
同一のデータの複製を含む複数のノードと、
データアクセス要請を前記複数のノードに送信するメッセージングチャネルと、
を含み、
前記複数のノードのいずれか1つのノードは、前記メッセージングチャネルから前記データアクセス要請を受信した後、前記データアクセス要請を処理する前に前記データアクセス要請のマルチキャスト要請を前記メッセージングチャネルに送信し、前記メッセージングチャネルは、前記マルチキャスト要請を受信して前記データアクセス要請を前記複数のノードにマルチキャストし、前記複数のノードそれぞれは、前記マルチキャストを受信したときに前記データアクセス要請を処理し、
前記複数のノードの各々は他のノードと直接的に通信せず、互いに前記データアクセス要請を送信しない
ことを特徴とするデータ管理システム。
Multiple nodes containing duplicates of the same data;
A messaging channel for transmitting a data access request to the plurality of nodes;
Including
After receiving the data access request from the messaging channel , any one of the plurality of nodes transmits a multicast request for the data access request to the messaging channel before processing the data access request. The messaging channel receives the multicast request and multicasts the data access request to the plurality of nodes, and each of the plurality of nodes processes the data access request when receiving the multicast,
Each of the plurality of nodes does not directly communicate with other nodes and does not transmit the data access request to each other .
前記メッセージングチャネルは、クライアントからデータアクセス要請を受信し、前記複数のノードのいずれか1つのノードを選択して前記データアクセス要請を前記選択されたノードに送信することを特徴とする請求項6に記載のデータ管理システム。 Wherein the messaging channel receives a data access request from the client, to claim 6, characterized in that by selecting one of the nodes of said plurality of nodes transmitting the data access request to the selected node The data management system described. 前記メッセージングチャネルは、ラウンドロビン方式またはロードバランシングに基づいて前記複数のノードのうち前記1つのノードを選択することを特徴とする請求項7に記載のデータ管理システム。
The data management system according to claim 7, wherein the messaging channel selects the one node among the plurality of nodes based on a round robin method or load balancing.
JP2012149299A 2011-07-28 2012-07-03 Data storage method and apparatus Active JP6180710B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020110075026A KR101477672B1 (en) 2011-07-28 2011-07-28 Apparatus and method for storing data using scalable distributed index
KR10-2011-0075026 2011-07-28
KR10-2011-0080533 2011-08-12
KR20110080533A KR101491452B1 (en) 2011-08-12 2011-08-12 Method and apparatus for data replication using messaging channel

Publications (2)

Publication Number Publication Date
JP2013030165A JP2013030165A (en) 2013-02-07
JP6180710B2 true JP6180710B2 (en) 2017-08-16

Family

ID=47787096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012149299A Active JP6180710B2 (en) 2011-07-28 2012-07-03 Data storage method and apparatus

Country Status (1)

Country Link
JP (1) JP6180710B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2998881B1 (en) * 2014-09-18 2018-07-25 Amplidata NV A computer implemented method for dynamic sharding
JP6459339B2 (en) * 2014-09-22 2019-01-30 富士ゼロックス株式会社 Information management apparatus and information management program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099164A (en) * 2004-09-28 2006-04-13 Megasoft Kk Content synchronization system and method
JP2010109574A (en) * 2008-10-29 2010-05-13 Mitsubishi Electric Corp Gateway device, server unit, repeater and multicast communication system

Also Published As

Publication number Publication date
JP2013030165A (en) 2013-02-07

Similar Documents

Publication Publication Date Title
CN113535656B (en) Data access method, device, equipment and storage medium
US10209893B2 (en) Massively scalable object storage for storing object replicas
US7702640B1 (en) Stratified unbalanced trees for indexing of data items within a computer system
CN108287886B (en) Method and device for synchronizing data change information
US9237193B2 (en) Modification of an object replica
US9639590B2 (en) Database system and method for searching database
US20140040505A1 (en) Massively scalable object storage system
JP6086463B2 (en) Method, device and system for peer-to-peer data replication and method, device and system for master node switching
KR20070110367A (en) Data management method and device
CN111386522A (en) Multi-zone multi-master replication of database tables
US11176111B2 (en) Distributed database management system with dynamically split B-tree indexes
US20090077075A1 (en) Management of logical statements in a distributed database environment
JPWO2010098034A1 (en) Distributed database management system and distributed database management method
CN105677761A (en) A method and system for data segmentation
US11663192B2 (en) Identifying and resolving differences between datastores
CN111213138A (en) Index splitting in distributed databases
WO2016070341A1 (en) Data processing method and apparatus
CN105608228A (en) High-efficiency distributed RDF data storage method
US11226986B2 (en) Data table partitioning management method and apparatus
KR20130038517A (en) System and method for managing data using distributed containers
JP6180710B2 (en) Data storage method and apparatus
CN115757470B (en) Metadata access methods, devices, electronic equipment and storage media
CN109451069B (en) Network data file library storage and query method based on distributed storage
CN101128827A (en) Method and device for distributed data management in a switching network
WO2025097963A1 (en) Data processing method and apparatus, computer device, and computer readable storage medium

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161014

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170602

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170608

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170719

R150 Certificate of patent or registration of utility model

Ref document number: 6180710

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

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