WO2012115194A1 - Distributed data base system and data structure for distributed data base - Google Patents

Distributed data base system and data structure for distributed data base Download PDF

Info

Publication number
WO2012115194A1
WO2012115194A1 PCT/JP2012/054432 JP2012054432W WO2012115194A1 WO 2012115194 A1 WO2012115194 A1 WO 2012115194A1 JP 2012054432 W JP2012054432 W JP 2012054432W WO 2012115194 A1 WO2012115194 A1 WO 2012115194A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
registration request
unit
dsn
crx
Prior art date
Application number
PCT/JP2012/054432
Other languages
French (fr)
Japanese (ja)
Inventor
宏二 伊藤
木村 聡
洋平 日詰
Original Assignee
ディジタル・ワークス株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ディジタル・ワークス株式会社 filed Critical ディジタル・ワークス株式会社
Priority to CN2012800097453A priority Critical patent/CN103384878A/en
Priority to EP12749629.7A priority patent/EP2680151A4/en
Priority to US14/001,284 priority patent/US20140074774A1/en
Publication of WO2012115194A1 publication Critical patent/WO2012115194A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Definitions

  • the present invention relates to a distributed database system that includes a master node that collectively manages a plurality of slave nodes, and that stores key values in a plurality of slave nodes in a distributed manner, and a data structure of the distributed database.
  • a distributed database that stores data in a distributed manner includes a master node that manages and manages a plurality of slave nodes, and stores key value data in a plurality of slave nodes in a distributed manner.
  • Cited Document 1 discloses a database management apparatus that stores data in a distributed manner by combining horizontal and vertical distribution.
  • the database management device includes a plurality of database devices having a hash function calculation unit and a distribution function calculation unit, and a global server having a load information collection unit and an access right management unit.
  • the global server statistically processes the load information to determine the access right including the database device with the lowest load and the access period to the database device. Access to the plurality of database devices is permitted based on the access right determined by the global server.
  • each key value is considered without considering whether or not the key values have the same value.
  • the time delay related to communication that occurs between multiple nodes due to mutual reference of key values having the same value distributed and stored in multiple nodes is a bottle. It becomes difficult to efficiently improve the processing capacity of the entire system.
  • the present invention has been made to solve the above-described problems, and an object of the present invention is to efficiently improve the processing capacity of the entire distributed data system.
  • a key value that is a real value and a key value identifier (NID) that takes a unique value within the range of the data type of the key value in the entire distributed database is distributed and stored in each of the plurality of slave nodes.
  • DSN distributed shared NID
  • each of the plurality of slave nodes performs a data operation such as a join operation based on a command from the master node in parallel, instead of a key value that is an actual value, It operates so as to use a key value identifier (NID) obtained by referring to DSNs distributedly stored in its own node.
  • NID key value identifier
  • the key value identifier (NID) takes a unique value within the range of the data type of the key value in the entire distributed database. That is, if the key value is the same, the same key value identifier (NID) value is taken.
  • the storage location of the distributed shared NID (DSN) data as information about the key value is determined based on the key value. Then, information on the same key value is collected in the same slave node.
  • information related to the same key value is intentionally distributed and stored so as to be aggregated in the same slave node. For this reason, in contrast to the conventional example in which key values having the same value across multiple slave nodes are randomly distributed and stored, for example, when a slave node performs a data operation such as a join operation. No communication between slave nodes for referring to key values having the same value mutually occurs, and processing overhead of the entire system is suppressed.
  • the processing capability of the entire distributed database system can be improved efficiently.
  • D-CRX distributed compression decompression
  • D-CRX distributed compression result set cache
  • D-RIX distributed row identification index
  • FIG. 8 is a diagram showing an example of D-RIX in the internal table shown in FIG. 7. It is a figure which shows the RID contrast table which shows the correspondence of external table RID and internal table RID.
  • FIG. 1 is a configuration diagram showing an overview of a distributed database system according to an embodiment of the present invention.
  • a system 11 of a distributed relational database (hereinafter, “relational database” is abbreviated as “RDB” and “database” is abbreviated as “DB”) is basically a master node 13 according to this embodiment.
  • the first to third slave nodes 15, 17, 19 are connected via a first communication network 21.
  • the master node 13 manages and manages the plurality of slave nodes 15, 17, and 19.
  • Nodes 13, 15, 17, and 19 are computers having an information processing function.
  • a plurality of client terminals 25 a, 25 b and 25 c are connected to the master node 13 via the second communication network 23.
  • the master node 13 accepts a key value registration request issued from any one of the plurality of client terminals 25a, 25b, and 25c or a data operation request such as a table join operation, the master node 13 performs a process according to the request. Executed in cooperation with the third slave nodes 15, 17, 19 and returns the obtained processing result as a response to the requested client terminal.
  • the master node 13 has a master data storage unit 13a for storing master data.
  • the master data includes DB metadata and DB management data.
  • the DB metadata includes a physical configuration table regarding where and how many slave nodes 15, 17, and 19 are installed, a configuration table of table attributes, and the like.
  • the DB management data includes sharing management data such as the latest shared NID described later.
  • the master node 13 includes information on the key value for specifying the key value, including the key value that is the original management target, as the first to third slave nodes 15, Only the management for the distributed storage in 17 and 19 is performed, and neither the master node 13 itself nor the master data storage unit 13a holds the key value or information about the key value.
  • Each of the first to third slave nodes 15, 17, and 19 has first to third local data storage units 15a, 17a, and 19a for storing first to third local data, respectively.
  • the configurations of the first to third slave nodes 15, 17, 19 and the first to third local data storage units 15a, 17a, 19a are equal side by side. Therefore, in order to avoid duplication of description, the first slave node 15, the first local data, and the first local data storage unit 15a will be representatively described below, and the other second, third, The description will be replaced with the description of the slave nodes 17 and 19, the second and third local data, and the second and third local data storage units 17a and 19a.
  • Each of the first to third local data storage units 15a, 17a, and 19a corresponds to a DSN storage unit, a D-CRX storage unit, a D-CRS storage unit, and a D-RIX storage unit.
  • the first local data includes four types of index data. That is, a first distributed shared NID (hereinafter referred to as “DSN”), a first distributed compression and decompression index (hereinafter referred to as “D-CRX”), a first distributed compression result set cache (hereinafter referred to as “D-CRS”). And a first distributed row identification index (hereinafter referred to as “D-RIX”). These will be described in detail later.
  • DSN first distributed shared NID
  • D-CRX first distributed compression and decompression index
  • D-CRS first distributed compression result set cache
  • D-RIX first distributed row identification index
  • FIG. 1 Example of sales management table transaction in multiple slave nodes
  • An example of the transaction of the sales management table in the plurality of slave nodes 15, 17, and 19 generated by the distributed RDB system 11 according to the embodiment of the present invention is described.
  • 2A and 2B are tables showing an example of a transaction of the sales management table in the plurality of slave nodes 15, 17, and 19.
  • FIG. 1 Example of sales management table transaction in multiple slave nodes
  • the distributed RDB system 11 When table data in which tuples (rows) and columns (rows) are arranged two-dimensionally as shown in FIG. 2A and FIG. 2B is input, the distributed RDB system 11 has four types of distributed relational data models. Create index data.
  • the input line numbers shown in FIGS. 2A and 2B are signs for uniquely identifying the input lines, and are assigned sequentially from the first in ascending order. This input line number is a mark given by the master node 13 and is not given to actual input data.
  • the column item names are displayed in the first row of the table shown in FIGS. 2A and 2B.
  • the type of data type for example, character string type, numeric type, date type, etc.
  • 1 to 15 are assigned as input row numbers to the respective tuples.
  • “distributed row identifier” having a unique value for each column in the table constituting the distributed database” is described in the claims. The value is equal to the input line number.
  • the attribute value of each tuple is entered in the lower column of each tuple.
  • the attribute value of each tuple is entered for convenience of explanation and is not included in the actual input data.
  • a key value identifier (hereinafter referred to as “NID”) issued by referring to the DSN data with the key value as an input, the DSN data determined by the consistent hash method, Storage destination node number (hereinafter referred to as “DSN-CNN”), storage destination node number of D-CRX data determined by the consistent hash method (hereinafter referred to as “D-CRX-CNN”), and There is a D-CRX block number (hereinafter referred to as “D-CRX-BN”) used to determine D-CRX-CNN.
  • NID key value identifier issued by referring to the DSN data with the key value as an input
  • DSN-CNN Storage destination node number
  • D-CRX-CNN storage destination node number of D-CRX data determined by the
  • D-CRX-BF a blocking coefficient
  • the value of D-CRX-BF used to determine D-CRX-BN is “7”, and the number of storage destination nodes is the first to third slave nodes 15 and 17. , 19 to correspond to the number of 19.
  • a symbol ⁇ i, j, k ⁇ in which an element is enclosed by braces ⁇ indicates a set having i, j, k as elements.
  • NID is an indicator for uniquely identifying a key value. This NID is assigned to each key value so that it takes a unique value within the range of the data type of the key value related to the registration request in the entire distributed database.
  • the same NID is assigned to key values having the same value. This will be verified in the tables shown in FIGS. 2A and 2B.
  • “2” is assigned as the NID to “Hokkaido Tohoku” which is the key value entered as the region name of the column.
  • “5” in FIG. 2A an example of the tuple with the input line number “1” with respect to “Hokkaido Tohoku”, which is the key value entered as the column name
  • “2” is assigned as the NID.
  • the key values that appear later, the key values that appear earlier, and the key values that do not correspond to these can be identified at a glance.
  • the two boxes have different shading modifiers.
  • a distribution method for distributing key value information (DSN, D-CRX, D-CRS, D-RIX) to a plurality of slave nodes 15, 17, and 19, for example, a known consistent hash method is adopted. be able to.
  • the method is not limited to the consistent hash method as long as the information about the key value can be redistributed at a sufficiently small cost when the number of slave nodes (storage nodes) increases or decreases.
  • FIG. 3A is index data showing an example of the DSN.
  • the DSN is an index in which NIDs are distributed and stored in a plurality of slave nodes 15, 17, and 19 by a consistent hash method using a key value as a distributed key.
  • the DSN is obtained. Referenced.
  • the DSN is an index related to the correspondence between the key value related to the registration request and the NID assigned to the key value.
  • the DSN is stored separately for each data type of the key value related to the registration request. According to the index of the DSN, the corresponding NID can be obtained by inputting the key value.
  • the DSN is generated according to the following rules as shown in FIG. 3A.
  • a common NID is given to the same set of key values of the same data type within the range of the entire distributed database.
  • the key value and NID pair are distributed and stored in a plurality of slave nodes 15, 17, and 19 (DSN-CNN values a to c) by a consistent hash method using the key value as a distributed key.
  • the management unit of the DSN is a distributed database.
  • FIG. 3B shows an example of D-CRX in the case of extracting three columns of area name, price, and order date.
  • the D-CRX is an index in which NIDs are distributedly stored in a plurality of slave nodes 15, 17, and 19 by a consistent hash method using an NID function (including NID itself) as a distributed key. This is used when examining the corresponding NID at the time of searching, or when converting the NID back to the key value.
  • the D-CRX is an index relating to a one-to-one correspondence between a key value related to a registration request and an NID assigned to the key value.
  • the D-CRX is stored separately for each column to which the key value related to the registration request belongs.
  • a corresponding key value can be obtained by using NID as an input, and a corresponding NID can be obtained by using the key value as an input.
  • the difference between DNS and D-CRX is that the key value is converted to NID in one direction in DNS, whereas the key value and NID are converted bidirectionally in D-CRX.
  • a corresponding NID set can be obtained (value range search) by inputting the value range (start price and end price) of the key value. This value range search will be described later.
  • the D-CRX is generated according to the following rules.
  • a one-to-one correspondence between key values and NIDs is given using the same column of the same table in the distributed database as a management unit.
  • the block number (D-CRX-BN) is a quotient obtained by dividing the NID by the blocking coefficient (D-CRX-BF). From the above equation, it can be said that D-CRX-BN is a function of NID.
  • D-CRX-BF is a constant and takes a value of an arbitrary positive integer (in this example, “7”). Thus, D-CRX-BN takes a positive integer value.
  • D-CRX-BN NID function
  • a pair of NID and key value (one-to-one correspondence) is stored in a plurality of slave nodes 15, 17, 19 (stored) Destination node; D-CRX-CNN values are distributed and stored in a to c).
  • the management unit of D-CRX is a column.
  • FIG. 3C shows an example of a D-CRS in the case of extracting three columns of area name, price, and order date.
  • the D-CRS is an index in which NIDs are distributedly stored in a plurality of slave nodes 15, 17, and 19 by a consistent hash method using a RID function (including RID itself) as a distribution key. This is used when creating a RID set as, or when creating a tuple as a join result.
  • the D-CRS is an index related to the correspondence between RID and NID that takes a unique value for each column in the table constituting the distributed database.
  • the D-CRS is stored separately for each column to which the key value related to the registration request belongs.
  • the correspondence between RIDs and NIDs is described on a one-to-one basis, and has a data structure that allows duplicate appearances of NIDs in the same column.
  • a corresponding NID can be obtained by using RID as an input.
  • a corresponding RID set (represented as ⁇ RID ⁇ ) can be obtained using an NID set (represented as ⁇ NID ⁇ ) as an input. That is, the RID set corresponding to the NID set can be obtained by repeatedly performing the full scan of checking the NID to be searched and all the NIDs belonging to the column one by one for the original number of NID sets. .
  • the D-CRS is generated according to the following rules.
  • the NID corresponding to the RID is stored in the same column unit in the distributed database. This is called a column unit NID array.
  • the block number (D-CRS-BN) is a quotient obtained by dividing the RID by the blocking coefficient (D-CRS-BF). From the above formula, it can be said that D-CRS-BN is a function of RID.
  • D-CRS-BF is a constant and takes a value of an arbitrary positive integer (in this example, “7”). Therefore, D-CRS-BN takes a positive integer value.
  • a column unit NID array is converted into a plurality of slave nodes 15, 17, 19 (D-CRS data storage destination nodes;
  • the value of D-CRS-CNN is distributed and stored in a to c).
  • the management unit of D-CRS is a column.
  • FIG. 3D shows an example of D-RIX in the case of extracting three columns of area name, price, and order date.
  • D-RIX is an index in which NIDs are distributed and stored in a plurality of slave nodes 15, 17, and 19 by a constant hash method using NID functions (including NIDs themselves) as distribution keys. This is used to check the corresponding RID when searching for the key value in operation.
  • D-RIX is an index related to a one-to-N correspondence between NID and RID set.
  • This D-RIX is stored separately for each column to which the key value related to the registration request belongs.
  • the difference between D-CRS and D-RIX is that D-CRS can cause duplicate NIDs in the same column, whereas D-RIX has duplicate NIDs in the same column. It is a point that cannot be obtained.
  • This difference is caused by using RID as a distribution key in D-CRS and using NID as a distribution key in D-RIX.
  • a corresponding RID set can be obtained using NID as an input, and a corresponding RID set can be obtained using NID set as an input.
  • the D-RIX is generated according to the following rules.
  • the correspondence between the NID and the RID set is given using the same column of the same table in the distributed database as a management unit.
  • the block number (D-RIX-BN) is a quotient obtained by dividing the NID by the blocking coefficient (D-RIX-BF). From the above equation, it can be said that D-RIX-BN is a function of NID.
  • D-RIX-BF is a constant and takes a value of an arbitrary positive integer (in this example, “7”). Therefore, D-RIX-BN takes a positive integer value.
  • D-RIX-BN NID function
  • a pair of NID and RID set (corresponding to 1 to N) is converted into a plurality of slave nodes 15, 17, 19 (storage destinations)
  • Node: DSN-CNN values are distributed and stored in a to c).
  • the management unit of D-RIX is a column.
  • FIG. 4 is a functional block diagram showing the internal configuration of the master node 13 and the first slave node 15.
  • the master node 13 includes a master reception unit 31, an NID allocation unit 33, an index generation unit 35, a node determination unit 37, a distributed overall management unit 39 including a request issue unit 41 and a processing result integration unit 43, and an update management unit 45. It is configured with.
  • the master reception unit 31 corresponding to the registration request reception unit receives the key value and the data type information related to the registration request.
  • the key value registration request is generally input to the master reception unit 31 in units of tuples in which each key value and data type information are associated for each of a plurality of columns.
  • the key value registration request may be input in the form of table data composed of a set of a plurality of tuples.
  • the master reception unit 31 that has received input data in units of tuples is referred to as a key value associated with any one of a plurality of columns included in the tuple (hereinafter referred to as “processing target key value”).
  • processing target key value a key value associated with any one of a plurality of columns included in the tuple
  • the data type information is the minimum unit, and the sequential processing is advanced. For this reason, in the present embodiment, the description will be made assuming that the master receiving unit 31 has received a set of processing target key values, which are the minimum unit, and information on
  • the master reception unit 31 that has received input data in units of tuples assigns a common RID that takes a unique value for each column in the table to all key values belonging to the tuple.
  • the RID it is preferable to take a natural number and an ordinal number as in the case of NID. This is because a unique RID can be assigned to each column in the table with a very simple procedure of incrementing the latest value of the RID.
  • the master reception unit 31 receives a key value registration request (including information on the data type) issued from any one of the plurality of client terminals 25a, 25b, and 25c, or a data operation request such as a table join operation. Accept. Further, the master accepting unit 31 accepts an existing confirmation result to be described later transmitted from any slave node. The master reception unit 31 passes the request to the NID assignment unit 33 when a key value registration request occurs, and passes the request to the node determination unit 37 when a data operation request occurs.
  • the NID allocation unit 33 refers to the latest shared NID among the DB management data stored in the master data storage unit 13a, and assigns a unique NID to the key value related to the registration request. Assign. Further, when the master reception unit 31 receives an existing confirmation result (information indicating whether or not the key value related to the registration request already exists in the storage destination node), the NID assignment unit 33 is based on the existing confirmation result. Then, the latest shared NID update control signal related to whether or not to update the latest shared NID is generated and sent to the update management unit 45.
  • the index generation unit 35 When an NID is assigned to the key value related to the registration request by the NID assigning unit 33, the index generation unit 35, the key value related to the registration request, the data type of the key value, and the NID assigned to the key value , And D-CRX, D-CRS, and D-RIX data are generated based on the RID assigned by the master node 13, respectively.
  • the DSN data means at least the minimum unit data (a pair of data of one key value and one NID) that is a component of the DSN.
  • D-CRX data means at least the minimum unit data (a pair of data of one key value and one NID) that is a component of D-CRX
  • D-CRS data is: This means at least the minimum unit data (one pair of RID and one NID) that is a component of D-CRS
  • D-RIX data is at least the minimum unit that is a component of D-RIX.
  • Data (pair data of one NID and a group of RID sets).
  • the four types of index data generated in this way are referred to, for example, when a node is determined as described below, or when a data operation request such as a table join operation occurs.
  • the index generation unit 35 corresponds to a DSN generation unit, a D-CRX generation unit, a D-CRS generation unit, and a D-RIX generation unit.
  • the node determination unit 37 determines the slave nodes that are the distributed storage destinations of the DSN, D-CRX, D-CRS, and D-RIX data generated by the index generation unit 35 as key values. , NID function or RID function is determined by a consistent hash method using a distribution key as one of the functions.
  • the node determination unit 37 corresponds to a DSN storage node determination unit, a D-CRX storage node determination unit, a D-CRS storage node determination unit, and a D-RIX storage node determination unit.
  • the node determination unit 37 distributes the data operation request to all of the first to third slave nodes 15, 17, and 19 under the control of the master node 13. It is determined as a node to perform. In response to this, the first to third slave nodes 15, 17, and 19 execute the given data operation requests in parallel. The procedure by which the first to third slave nodes 15, 17, and 19 distribute the data operation request will be described in detail later.
  • the request issuing unit 41 belonging to the distributed overall management unit 39 among the first to third slave nodes 15, 17, 19 under the control of the master node 13 is a node determination unit 37.
  • the DSN, D-CRX, D-CRS, and D-RIX data are respectively sent to the slave node determined in (1) to issue a data registration request.
  • the request issuing unit 41 issues a processing request to the node determined by the node determining unit 37 among the first to third slave nodes 15, 17, and 19.
  • the request issuing unit 41 corresponds to a DSN registration request issuing unit, a D-CRX registration request issuing unit, a D-CRS registration request issuing unit, and a D-RIX registration request issuing unit.
  • the processing result integration unit 43 belonging to the distributed overall management unit 39 receives the data operation results distributed in each of the first to third slave nodes 15, 17, 19 and integrates these processing results.
  • the update management unit 45 controls the update of the latest shared NID in the DB management data in accordance with the latest shared NID update control signal transmitted from the NID assigning unit 33. Specifically, the update management unit 45 updates the latest shared NID to the next shared NID when it receives an existing confirmation result that the key value related to the registration request does not yet exist in the DSN storage unit of the storage destination node. To control.
  • the first slave node 15 includes a first reception unit 51, an existing determination unit 53, a registration management unit 55, a first distributed processing unit 57, and a first response unit 59.
  • the first reception unit 51 requests registration of DSN, D-CRX, D-CRS and D-RIX data (hereinafter referred to as “index data”) sent from the request issuing unit 41 of the master node 13, or Accept data manipulation requests such as table join operations.
  • the first reception unit 51 passes the request to the existing determination unit 53 when an index data registration request occurs, and passes the request to the first distributed processing unit 57 when a data operation request occurs.
  • the existing determination unit 53 refers to the first DSN in the first local data storage unit 15a when an index data registration request is generated, and is the same as the processing target key value included in the DSN data related to the registration request. It is confirmed whether or not the value data already exists in the first DSN, and the result of the existing confirmation is sent to the first response unit 59. Further, the existing determination unit 53 registers the data of the DSN related to the combination of the processing target key value included in the DSN data related to the registration request and the unique NID for the key value based on the existing confirmation result. The command is sent to the registration management unit 55.
  • the registration management unit 55 performs registration management in which the DSN data related to the registration request is additionally stored in the first local data storage unit 15a (corresponding to the DSN storage unit) in accordance with the registration command sent from the existing determination unit 53. .
  • the registration management unit 55 also stores the D-CRX, D-CRS, and D-RIX data related to the registration request in accordance with the registration command sent from the master node 13 in the first local data storage unit 15a (D-CRX). Registration management to be stored in a storage unit, a D-CRS storage unit, and a D-RIX storage unit). Thereby, registration of all index data related to the registration request is completed.
  • the registration management unit 55 corresponds to a DSN registration management unit, a D-CRX registration management unit, a D-CRS registration management unit, and a D-RIX registration management unit.
  • the first distributed processing unit 57 corresponding to the data operation execution unit, when a data operation request related to its own node occurs, the first DSN and the first D stored in the first local data storage unit 15a. Referring to -CRX, first D-CRS, and first D-RIX as appropriate, the distributed processing related to the request is executed in parallel to other nodes. The first distributed processing unit 57 passes the obtained distributed processing result to the first response unit 59.
  • the first response unit 59 responds to the master reception unit 31 of the master node 13 with the existing confirmation result sent from the existing determination unit 53.
  • the master reception unit 31 passes the received existing confirmation result to the NID allocation unit 33.
  • the NID allocation unit 33 generates the latest shared NID update control signal based on the existing confirmation result, and sends this to the update management unit 45.
  • the update management unit 45 controls the update of the latest shared NID in the DB management data according to the latest shared NID update control signal transmitted from the NID assigning unit 33.
  • the first response unit 59 responds to the processing result integration unit 43 of the master node 13 with the distributed processing result sent from the first distributed processing unit 57.
  • FIG. 5A is a flowchart showing the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a DSN data registration request based on the key value registration request is generated.
  • the key value registration request is generally input to the master reception unit 31 in units of tuples.
  • the master reception unit 31 that has received input data in units of tuples includes a plurality of tuples included in the tuple. It is assumed that the processing proceeds with the key value associated with any one of the columns and the data type information as a unit.
  • step S11 the master reception unit 31 of the master node 13 receives a key value registration request issued from any one of the plurality of client terminals 25a, 25b, and 25c, and passes the request to the NID allocation unit 33. .
  • the NID assigning unit 33 that has received the key value registration request refers to the latest shared NID in the DB management data stored in the master data storage unit 13a, and is appropriate for the key value related to the registration request.
  • a shared NID (for example, the next shared NID is a value obtained by incrementing the value of the latest shared NID by “1”) is assigned.
  • Information on the next shared NID assigned to the key value related to the registration request by the NID assigning unit 33 is sent to the index generating unit 35.
  • step S13 the index generation unit 35 of the master node 13 converts the key value related to the registration request, the data type of the key value, and the next shared NID assigned by the NID assignment unit 33 to the key value. Based on this, DSN data is generated.
  • step S14 the node determination unit 37 of the master node 13 determines the slave node that is the distributed storage destination of the DSN data generated by the index generation unit 35 by the consistent hash method using the key value as the distribution key. Then, the decision content is sent to the distributed management unit 39.
  • step S 15 the request issuing unit 41 belonging to the distributed overall management unit 39 of the master node 13 is the node determination unit 37 among the first to third slave nodes 15, 17, 19 under the control of the master node 13.
  • step S23 if it is determined that the processing target key value related to the registration request has already been registered, the registration management unit 55 in response to the registration command sent from the existing determination unit 53 in step S24. Instead, the DSN data relating to the correspondence between the processing target key value related to the registration request and the registered NID is maintained as it is. This ensures the unique NID assignment for the same key value. In this case, the registration management unit 55 cancels the DSN data registration request. This is because the DSN data related to the correspondence between the processing target key value related to the registration request and the registered NID has already been registered, and it is not necessary to additionally register the DSN data.
  • the registration management unit 55 is sent from the existing determination unit 53 in step S25.
  • the DSN data to which the next shared NID is assigned as appropriate for the processing target key value related to the registration request is additionally stored in the first local data storage unit 15a.
  • the additional storage of the DSN data to which the next shared NID is assigned means that the data of the DSN to which the next shared NID is assigned is added without rewriting the already accumulated DSN data.
  • step S26 the first response unit 59 of the first slave node 15 displays the NID actually assigned to the processing target key value related to the registration request together with the existing confirmation result after the processing in step S24 or S25. It returns to the master reception part 31 of the master node 13, and complete
  • step S ⁇ b> 16 the master reception unit 31 of the master node 13 receives the existing confirmation result transmitted from the first slave node 15 and the NID actually assigned to the processing target key value related to the registration request. The result is passed to the NID allocation unit 33.
  • step S ⁇ b> 17 the NID allocation unit 33 performs an existing determination regarding whether or not the processing target key value related to the registration request has already been registered.
  • step S18 the processing target key value related to the registration request is the first slave that is the storage destination.
  • the NID assigning unit 33 receives the existing confirmation result indicating that the node 15 already exists, the NID assigning unit 33 generates a control signal for prohibiting the update of the latest shared NID, and sends the control signal to the update managing unit 45.
  • the update management unit 45 prohibits the update of the latest shared NID according to the latest shared NID update control signal transmitted from the NID assigning unit 33. Thereby, the next shared NID assigned to the processing target key value related to the registration request in step S12 is canceled, and the value of the latest shared NID is maintained as it is without being updated.
  • step S19 the processing target key value related to the registration request is the first storage destination.
  • the NID assigning unit 33 receives the existing confirmation result indicating that the slave node 15 does not yet exist, the NID assigning unit 33 generates a control signal for updating the latest shared NID and sends it to the update managing unit 45.
  • the update managing unit 45 sets the value of the latest shared NID to the value of the next shared NID assigned to the key value related to the registration request in step S12. Update to After this update, the NID allocation unit 33 advances the process flow to step S31 in FIG. 5B.
  • FIG. 5B is a flowchart showing the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a D-CRX / D-RIX data registration request based on the key value registration request is generated.
  • the NID assigning unit 33 of the master node 13 refers to the NID actually assigned to the processing target key value related to the registration request, and the block number (D-CRX-BN) which is a function of the NID. And D-RIX-BN). Specifically, “D-CRX-BN is the quotient obtained by dividing NID by D-CRX-BF” and “D-RIX-BN is the quotient obtained by dividing NID by D-RIX-BF”, respectively. Ask for.
  • step S32 the index generation unit 35 of the master node 13 determines the processing target key value related to the registration request, the NID actually assigned to the key value, and the column name to which the processing target key value related to the registration request belongs. Based on the above, D-CRX data is generated.
  • step S33 the index generation unit 35 of the master node 13 actually assigns the NID assigned to the processing target key value related to the registration request, the RID set corresponding to the NID, and the processing target key value related to the registration request.
  • D-RIX data is generated based on the column name to which the file belongs.
  • step S34 the node determination unit 37 of the master node 13 uses the NID function obtained in step S31 to determine the slave nodes that are the distributed storage destinations of the D-CRX and D-RIX data generated by the index generation unit 35. It is determined by a consistent hash method using a certain block number (D-CRX-BN and D-RIX-BN) as a distribution key, and the determined content is sent to the distribution management unit 39.
  • step S 35 the request issuing unit 41 belonging to the distributed overall management unit 39 of the master node 13 is the node determination unit 37 among the first to third slave nodes 15, 17, 19 under the control of the master node 13.
  • the distributed overall management unit 39 of the master node 13 advances the processing flow to step S51 in FIG. 5C.
  • FIG. 5C shows the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when the D-CRS data registration request is made after the D-CRX and D-RIX data registration is completed.
  • the description will be given with reference.
  • FIG. 5C is a flowchart showing a cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a D-CRS data registration request based on the key value registration request is generated.
  • the NID allocation unit 33 of the master node 13 refers to the RID corresponding to the NID actually allocated to the processing target key value related to the registration request, and the block number (D -CRS-BN). Specifically, “D-CRS-BN is a quotient obtained by dividing RID by D-CRS-BF” is obtained by calculation.
  • step S52 the index generating unit 35 of the master node 13 relates to the NID actually assigned to the processing target key value related to the registration request, the RID to which the processing target key value related to the registration request belongs, and the registration request. Based on the column name to which the processing target key value belongs, D-CRS data is generated.
  • step S53 the node determination unit 37 of the master node 13 determines the slave node that is the distributed storage destination of the D-CRS data generated by the index generation unit 35 as a block number (RID function obtained in step S51).
  • D-CRS-BN is determined by a consistent hash method using a distribution key, and the determined content is sent to the distribution management unit 39.
  • step S 54 the request issuing unit 41 belonging to the distributed overall management unit 39 of the master node 13 is the node determination unit 37 among the first to third slave nodes 15, 17, 19 under the control of the master node 13.
  • the distributed overall management unit 39 of the master node 13 terminates the series of processing flow.
  • the four types of index data registered as described above are processed by the first to third slave nodes 15, 17, and 19, such as a table join operation, for a distributed RDB consisting of a huge amount of data. Demonstrates its power when distributed and executed in parallel.
  • the distributed RDB system 11 provides a distributed RDB service via, for example, WWW (World Wide Web)
  • WWW World Wide Web
  • the number of nodes in the system is aimed at flexible response to a sudden increase in demand.
  • data operations such as table join operations are performed on data distributed and stored in multiple nodes after expansion, the overall processing capacity of the system before and after the expansion is linearly improved.
  • the linear scale-out property that can be achieved can be realized.
  • FIG. 6 is a process diagram showing the flow of distributed query processing.
  • the distributed query process shown in FIG. 6 includes a distributed search process in step S71, a distributed table join process in step S72, a distributed result tuple creation process for aggregation in step S73, and the like.
  • step S71 The distributed search process in step S71, the distributed table join process in step S72, and the distributed result tuple creation process in step S73 can be executed in parallel by the first to third slave nodes 15, 17, and 19. It is.
  • step S72 In the process of step S72 in which the process is executed using the result of the upstream phase, the process cannot be executed until the process of the upstream process (step S71) is completed in all the nodes.
  • the search expression includes a search term, a logical operator, and parentheses that control the priority of operations.
  • a search expression is constituted by any combination of these.
  • the search term includes a left side term, a comparison operator, and a right side term.
  • the left-hand side consists of a column name or a literal (actual value).
  • the right-hand side consists of a column name or a literal (actual value).
  • the logical operator consists of AND “&”, OR “
  • the parentheses consist of an opening parenthesis “(” and a closing parenthesis “)”.
  • D-CRS is searched using the NID set extracted by this search as the search key.
  • the RID set of is acquired.
  • a range search for example, a search for extracting key values belonging to a specified range based on a start price and an end price for numeric data
  • a D-CRX search is performed by giving a specified range of key values in all slave nodes.
  • a D-CRS search is performed using the NID set extracted by this search as a search key, and an RID set as a search result is obtained.
  • a partial match search for example, a search for extracting a key value having at least a part of a specified character string for character string type data
  • the specified character string of the key value is given to all slave nodes and the D-CRX
  • a D-CRS search is performed using the NID set extracted by this search as a search key, and an RID set as a search result is acquired.
  • Table join means a table join operation between an outer table and an inner table.
  • An external table is a table that serves as a basis for table join.
  • the inner table is a table that becomes a partner of the table join to the outer table.
  • the outer table and inner table are joined by the value of the join column.
  • the joined column is a column that exists in common between the outer table and the inner table, and has a role of allowing the outer table and the inner table to be joined through the column.
  • the outer table join column is called the outer table outer key column
  • the inner table join column is called the inner table primary key column. Multiple tables can be joined by repeating the table join operation.
  • step S71 shown in FIG. 6 the content of the distributed search process in step S71 shown in FIG. 6 will be described with reference to FIGS. 2A and 2B with specific examples.
  • a key value whose “region name” is “Kanto” is extracted as an RID set.
  • the search can be stopped when the key value matching the search condition is hit without requiring a full scan collation.
  • D-CRX employs a data structure that does not allow duplication of key values within a certain column. Therefore, according to the data structure of D-CRX, it is possible to contribute to shortening the search time (the same applies hereinafter).
  • the value search of the NID set for D-CRS can be completed in a relatively short time, although full scan verification is required.
  • the actual key value is replaced with an NID (for example, a natural number) by a search using D-CRX in the previous stage, and full scan collation is performed using the replaced NID value.
  • the NID is expressed by a fixed-width binary integer value, so that it is much more efficient in search and reference than the actual key value. good. Therefore, according to the data search related to the combination of D-CRX and D-CRS, it is possible to contribute to shortening the search time (the same applies hereinafter).
  • each of the search conditions in each single term is used to execute a complete match search in a single term according to the procedure in the first embodiment, and a logical sum (OR) between the obtained RID sets is obtained.
  • a target RID set can be obtained by performing the calculation.
  • the distributed processing units of the first to third slave nodes 15, 17 and 19 apply the NID sets of the first and second elements to the search formula and perform a logical product (AND) operation between the NID sets.
  • the NID set ⁇ 8, 11, 22, 30 ⁇ as the search result is obtained.
  • a partial match search with multiple terms for example, a key value including the character string of “Region name” is “Seki” or a character string of “Region name” is “East”
  • a partial match search in a single term is executed by the procedure in the fourth embodiment using search conditions in each single term, respectively, and a logical sum (OR) between the obtained RID sets is obtained. By performing the calculation, an RID set as a search result can be obtained.
  • FIG. 7 is a diagram showing an internal table of the number of customers by region that are distributed and stored in the plurality of slave nodes 15, 17, and 19.
  • FIG. 8 is a diagram showing an example of D-RIX in the internal table shown in FIG.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 obtain the result of joining the outer table and the inner table with reference to the D-RIX of the joined column.
  • FIGS. 2A and 2B showing sales management tables (transactions) distributedly stored in a plurality of slave nodes 15, 17, and 19 are positioned as external tables.
  • FIG. 7 showing the number of customers by region distributedly stored in the plurality of slave nodes 15, 17 and 19 is positioned as an internal table.
  • the combined column is “area name”.
  • the distributed processing units of the first to third slave nodes 15, 17 and 19 that have received the table join operation request from the master node 13 perform D-RIX (hereinafter “OTFK”) of the external table.
  • NID hereinafter abbreviated as “OTFK-NID” sets of the external table external key columns are respectively acquired from “-D-RIX”.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 use the element (NID) of the OTFK-NID set as a search condition, and D-RIX (hereinafter, “Search for “ITPK-D-RIX”.
  • NID element of the OTFK-NID set
  • D-RIX D-RIX
  • the distributed processing units of the first to third slave nodes 15, 17, 19 start from the target column (external table external key column) of the OTFK-D-RIX to the OTFK-NID set.
  • the external table RID (hereinafter abbreviated as “OTRID”) set corresponding to is acquired.
  • the OTRID set ⁇ 1, 2, 25 ⁇ corresponding to the OTFK-NID set ⁇ 2, 6, 25 ⁇ 2, 3, 5, 7, 8, 9, 10, 14 ⁇ .
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 start from the ITPK-D-RIX target column (internal table main key column) to the internal table RID (hereinafter referred to as the ITPK-NID set).
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 respectively create a comparison table (hereinafter abbreviated as “REF-OTRID-ITRID”) of the internal table RID corresponding to the external table RID.
  • REF-OTRID-ITRID plays a role of connecting the external table RID and the corresponding internal table RID with the common OTFK-NID and ITPK-NID in between. Thereby, the RID comparison table as shown in FIG. 9 is obtained.
  • the distributed processing units of the first to third slave nodes 15, 17 and 19 respectively provide the REF-OTRID-ITRID according to the procedure of Embodiment 6 for each of the plurality of coupling conditions.
  • REF-OTRID-ITRID RID comparison table
  • the RID comparison table as a combination result according to the sixth embodiment is expressed by REF-OTRID-ITRID distributedly stored for each of the plurality of slave nodes 15, 17, and 19.
  • the data structure of the RID comparison table as a result of this combination greatly affects the storage efficiency and processing efficiency of data in the RDB. This is because a function equivalent to that of a join table can be achieved without creating a join table that tends to be huge on a real value basis.
  • the RID of the target column (external table external key column) in the external table is pointed by sequentially tracing REF-OTRID-ITRID with the external table as a reference.
  • the RID of the target column inner table main key column
  • the corresponding NID is obtained by referring to the D-CRS using the RID as a pointer can do. If the NID is obtained, the corresponding key value can be obtained by referring to the D-CRX using the NID as a pointer.
  • the data structure of the search result is expressed as an RID set of external tables.
  • the data structure of the join result is expressed as a chain of REF-OTRID-ITRID (RID comparison table) with reference to the external table.
  • REF-OTRID-ITRID REF comparison table
  • Their common point is that both have RID sets of external tables. Therefore, by performing a logical operation between the RID sets of the external tables of the search result and the join result, a logical operation related to the combination of the search result and the join result can be efficiently realized.
  • a complicated operation for the table join operation can be replaced with a simple set operation. For this reason, it is possible to realize a significant reduction in calculation processing time. Further, according to the sixth embodiment, when performing a table join operation, it is possible to make it unnecessary to match key values between the join column of the outer table and the join column of the inner table. This is because the adoption of the DSN guarantees that the same NID is assigned to the same key value, and the external table RID and the corresponding internal table RID with the common NID interposed therebetween. This is based on the existence of a RID comparison table that links.
  • information (NID) related to the same key value is intentionally distributed and stored so as to be aggregated in the same slave node. For this reason, in contrast to the conventional example in which key values having the same value across multiple slave nodes are randomly distributed and stored, for example, when a slave node performs a data operation such as a join operation. , Communication between slave nodes for referring to each other key values having the same value does not occur at all. Therefore, according to the sixth embodiment, the processing overhead of the entire system can be suppressed, so that the processing capability of the distributed RDB system 11 as a whole can be improved efficiently.
  • the number of slave nodes in the system is increased in order to flexibly cope with a sudden increase in demand. Even if data operations such as table join operations are performed on data that is distributed and stored in each of the multiple slave nodes after expansion, the processing capacity of the entire system before and after expansion can be linearly improved. Scale-out property can be realized.
  • step S73 an overview of the distribution result tuple creation process for aggregation in step S73 shown in FIG. 6 will be described separately for cases where there is no table join operation and cases where there is no table join operation.
  • the process of step S73 is executed in parallel in each of the first to third slave nodes 15, 17, and 19.
  • the distributed processing units of the first to third slave nodes 15, 17 and 19 use the RID sets as the respective search results. Each RID that is the source of the is acquired.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 specify which node holds the NID data corresponding to the acquired RID based on the acquired RID. .
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 specify the data storage destination node number D-CRS-CNN by performing the following calculation. That is, the distributed processing unit determines the D-CRS block number D-CRS-BN based on the RID. Then, D-CRS-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRS-BN.
  • the own node acquires the data from a node other than the own node.
  • the own node acquires the NID by referring to the D-CRS of the target column constituting the tuple using the acquired RID as a pointer.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 specify which node holds the key value data corresponding to the acquired NID based on the acquired NID. To do. Specifically, the distributed processing units of the first to third slave nodes 15, 17 and 19 perform the following calculation to identify the data storage node number D-CRX-CNN. That is, the distributed processing unit determines the D-CRX block number D-CRX-BN based on the NID. Further, D-CRX-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRX-BN.
  • the own node acquires the data from a node other than the own node.
  • the node uses the acquired NID as a pointer, and acquires a key value that is an actual value by referring to the D-CRX of the target column that forms the tuple.
  • the distributed processing units of the first to third slave nodes 15, 17, 19 from the RID sets as the respective search results, Get the RID of the external table.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 hold which NID data corresponding to the acquired RID of the external table based on the acquired RID of the external table.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 perform the following calculation to specify the data storage node number D-CRS-CNN. That is, the distributed processing unit determines the D-CRS block number D-CRS-BN based on the RID of the external table. Then, D-CRS-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRS-BN.
  • the own node acquires the data from a node other than the own node.
  • the own node uses the RID of the acquired external table as a pointer, refers to the REF-OTRID-ITRID chain, and determines the RID of the target internal table from the REF-OTRID-ITRID of the target column constituting the tuple. get.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 hold which NID data corresponding to the acquired RID of the internal table based on the acquired RID of the internal table.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 perform the following calculation to specify the data storage node number D-CRS-CNN. That is, the distributed processing unit determines the D-CRS block number D-CRS-BN based on the RID in the internal table. Then, D-CRS-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRS-BN.
  • the own node acquires the data from a node other than the own node.
  • the node acquires the NID by referring to the D-CRS of the target column constituting the tuple using the acquired RID of the internal table as a pointer.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 identify which node holds the key value data corresponding to the acquired NID based on the acquired NID. To do. Specifically, the distributed processing units of the first to third slave nodes 15, 17 and 19 perform the following calculation to identify the data storage node number D-CRX-CNN. That is, the distributed processing unit determines the D-CRX block number D-CRX-BN based on the NID. Further, D-CRX-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRX-BN.
  • the own node acquires the data from a node other than the own node.
  • the node uses the acquired NID as a pointer, and acquires a key value that is an actual value by referring to the D-CRX of the target column that forms the tuple.
  • the distributed processing units of the first to third slave nodes 15, 17, and 19 themselves perform a hash operation by the consistent hash method, so that D-CRX-CNN and D-CRS-
  • this invention is not limited to this.
  • the master node 13 holds D-CRX-CNN and D-CRS-CNN as master data 13a, and the distributed processing units of the first to third slave nodes 15, 17, and 19 make an inquiry to the master node 13. May be.
  • each slave node performs the calculation by itself rather than inquiring to the master node 13.
  • the index generation unit 35 of the master node 13 stores the index data (DSN, D-CRX, D-CRS, and the like) to be distributed and stored in the first to third slave nodes 15, 17, and 19. D-RIX) is created, and the created index data is collectively transmitted to the decision node by the node decision unit 37, and the index data is collectively processed on each decision node.
  • D-RIX D-RIX
  • the DSN uses the key value
  • D-CRX and D-RIX use the NID function
  • D-CRS uses the RID function as the distribution key.
  • the NID and the key value are regulated to have a one-to-one correspondence by the DSN
  • the NID (natural number and order number) is used instead of the key value in the process before the key value is required as a meaningful value. Is preferably used. Thereby, all the calculations can be reduced to numerical calculations. Since the NID is represented by a fixed-width binary integer value in the computer, it is more efficient in search and reference scenes than the actual key value. Therefore, it is possible to contribute to shortening the arithmetic processing time.
  • the first to third slave nodes 15, 17, and 19 have been described as a plurality of slave nodes.
  • the present invention is not limited to this example.
  • the number of slave nodes may be adjusted to an appropriate number in accordance with the increase or decrease in the amount of data to be processed.
  • one master node 13 is exemplified as the master node, but the present invention is not limited to this example.
  • a replica of the master node may be provided. The same may be said about a slave node that a replica may be provided.
  • D-RIX index data is described side by side with DSN, D-CRX, and D-CRS.
  • D-RIX is not an essential data structure. This is because D-RIX can realize processing efficiency at the time of a table join operation, but even without this, the function can be replaced by full scan collation referring to D-CRS.
  • the index generation unit 35, the node determination unit 37, and the update management unit 45 are provided in the master node 13
  • these functional configurations may be provided in the slave nodes 15, 17, and 19.
  • the processing efficiency can be improved by executing the processes related to the index generation unit 35, the node determination unit 37, and the update management unit 45 in parallel in the plurality of slave nodes 15, 17, and 19. it can.
  • the present invention can be used for a distributed database system including a plurality of slave nodes and a master node.

Abstract

A distributed data base system that distributes and stores distributed shared NID (DSN) data to a plurality of slave nodes, separated into data type, said data relating to the correspondence between a key value that is an actual value and a key value identifier (NID) that takes any value within a range for the data types for key values within a whole distributed data base. When distributing and storing the DSN data to the plurality of slave nodes (15, 17, 19), the storage destination slave node is determined from among the plurality of slave nodes (15, 17, 19) on the basis of the key value relating to the registration request.

Description

分散型データベースシステムおよび分散型データベースのデータ構造Distributed database system and data structure of distributed database
 本発明は、複数のスレーブノードを統括管理するマスターノードを備え、複数のスレーブノードにキー値を分散格納する構成の分散型データベースシステム、および分散型データベースのデータ構造に関する。 The present invention relates to a distributed database system that includes a master node that collectively manages a plurality of slave nodes, and that stores key values in a plurality of slave nodes in a distributed manner, and a data structure of the distributed database.
 データベースとしては、データ処理を行うノードの物理的な配置の観点から、集中型データベースと分散型データベースとが知られている。このうち、データを分散格納する分散型データベースでは、複数のスレーブノードを統括管理するマスターノードを備え、キー値のデータを複数のスレーブノードに分散格納するものが知られている。 As a database, a centralized database and a distributed database are known from the viewpoint of physical arrangement of nodes that perform data processing. Among them, a distributed database that stores data in a distributed manner includes a master node that manages and manages a plurality of slave nodes, and stores key value data in a plurality of slave nodes in a distributed manner.
 こうした分散型データベースの一例として、引用文献1には、水平垂直分散を組みあわせてデータを分散格納するデータベース管理装置が開示されている。このデータベース管理装置は、ハッシュ関数演算部および分散関数演算部を有する複数のデータベース装置と、負荷情報収集部およびアクセス権管理部を有する大域サーバとを備える。大域サーバは、負荷情報を統計的にデータ処理することで、最も負荷の低いデータベース装置とそのデータベース装置へのアクセス期間を含むアクセス権を決定する。複数のデータベース装置へのアクセスは、大域サーバが決定するアクセス権に基づいて許可される。 As an example of such a distributed database, Cited Document 1 discloses a database management apparatus that stores data in a distributed manner by combining horizontal and vertical distribution. The database management device includes a plurality of database devices having a hash function calculation unit and a distribution function calculation unit, and a global server having a load information collection unit and an access right management unit. The global server statistically processes the load information to determine the access right including the database device with the lowest load and the access period to the database device. Access to the plurality of database devices is permitted based on the access right determined by the global server.
特開2006-350741号公報JP 2006-350741 A
 しかしながら、水平垂直分散を組み合わせてキー値を複数のノードに分散格納する特許文献1に係る分散型データベース装置では、同一の値を有するキー値か否かを考慮することなしに、それぞれのキー値は複数のノード間にわたって無作為に分散格納される。こうした無作為な分散格納下においてデータ操作を実行した場合、複数のノードに分散格納された同一の値を有するキー値を相互に参照するために複数のノード間で生じる通信に係る時間遅延がボトルネックとなって、システム全体としての処理能力を効率的に向上させることは難しい。 However, in the distributed database apparatus according to Patent Document 1 in which key values are distributedly stored in a plurality of nodes by combining horizontal and vertical distributions, each key value is considered without considering whether or not the key values have the same value. Are randomly distributed across multiple nodes. When data operations are executed under such random distributed storage, the time delay related to communication that occurs between multiple nodes due to mutual reference of key values having the same value distributed and stored in multiple nodes is a bottle. It becomes difficult to efficiently improve the processing capacity of the entire system.
 本発明は、上述した課題を解決するためになされたものであり、分散型データシステム全体としての処理能力を効率的に向上させることができるようにすることを目的とする。 The present invention has been made to solve the above-described problems, and an object of the present invention is to efficiently improve the processing capacity of the entire distributed data system.
 上述した課題を解決するために、本発明では、実値であるキー値と、分散型データベースの全体においてキー値が有するデータ型の範囲内で一意の値をとるキー値識別子(NID)との対応関係に係る分散共有NID(DSN)のデータを、複数のスレーブノードの各々に分散格納する。
 DSNのデータを複数のスレーブノードの各々に分散格納するに際しては、格納先となる一のスレーブノードを、複数のスレーブノードのなかから、登録要求に係るキー値に基づいて決定する。
In order to solve the above-described problem, in the present invention, a key value that is a real value and a key value identifier (NID) that takes a unique value within the range of the data type of the key value in the entire distributed database. The distributed shared NID (DSN) data related to the correspondence is distributed and stored in each of the plurality of slave nodes.
When the DSN data is distributed and stored in each of the plurality of slave nodes, one slave node as a storage destination is determined based on the key value related to the registration request from among the plurality of slave nodes.
 上記のように構成した本発明によれば、複数のスレーブノードの各々は、マスターノードからの指令に基づく結合演算などのデータ操作を並列に実行する際、実値であるキー値に代えて、自ノードに分散格納されたDSNを参照して得られるキー値識別子(NID)を用いるように動作する。
 ここで、キー値識別子(NID)は、分散型データベースの全体においてキー値が有するデータ型の範囲内で一意の値をとる。つまり、同一のキー値であれば同一のキー値識別子(NID)の値をとる。一方、キー値に関する情報としての分散共有NID(DSN)のデータの格納先は、そのキー値に基づいて決定される。そうすると、同一のキー値に関する情報は、同一のスレーブノードに集約されることになる。
According to the present invention configured as described above, each of the plurality of slave nodes performs a data operation such as a join operation based on a command from the master node in parallel, instead of a key value that is an actual value, It operates so as to use a key value identifier (NID) obtained by referring to DSNs distributedly stored in its own node.
Here, the key value identifier (NID) takes a unique value within the range of the data type of the key value in the entire distributed database. That is, if the key value is the same, the same key value identifier (NID) value is taken. On the other hand, the storage location of the distributed shared NID (DSN) data as information about the key value is determined based on the key value. Then, information on the same key value is collected in the same slave node.
 要するに、本発明では、同一のキー値に関する情報は同一のスレーブノードに集約するように作為的に分散格納される。このため、複数のスレーブノード間にまたがって同一の値を有するキー値が無作為に分散格納される従来例とは対照的に、例えばあるスレーブノードが結合演算などのデータ操作を実行した場合に、同一の値を有するキー値を相互に参照するためのスレーブノード間の通信はまったく生じず、システム全体としての処理のオーバーヘッドが抑制される。 In short, in the present invention, information related to the same key value is intentionally distributed and stored so as to be aggregated in the same slave node. For this reason, in contrast to the conventional example in which key values having the same value across multiple slave nodes are randomly distributed and stored, for example, when a slave node performs a data operation such as a join operation. No communication between slave nodes for referring to key values having the same value mutually occurs, and processing overhead of the entire system is suppressed.
 従って、本発明によれば、分散型データベースシステム全体としての処理能力を効率的に向上させることができる。 Therefore, according to the present invention, the processing capability of the entire distributed database system can be improved efficiently.
本発明の実施形態に係る分散型データベースシステムの概要を示す構成図である。It is a block diagram which shows the outline | summary of the distributed database system which concerns on embodiment of this invention. 第1~第3のスレーブノードにおける売上管理表のトランザクションの一例を示す図である。It is a figure which shows an example of the transaction of the sales management table in the 1st-3rd slave node. 第1~第3のスレーブノードにおける売上管理表のトランザクションの一例を示す図である。It is a figure which shows an example of the transaction of the sales management table in the 1st-3rd slave node. 分散共有NID(DSN)の一例を示す図である。It is a figure which shows an example of a distributed shared NID (DSN). 分散圧縮復元インデックス(D-CRX)の一例を示す図である。It is a figure which shows an example of a distributed compression decompression | restoration index (D-CRX). 分散圧縮結果セットキャッシュ(D-CRS)の一例を示す図である。It is a figure which shows an example of a distributed compression result set cache (D-CRS). 分散行識別インデックス(D-RIX)の一例を示す図である。It is a figure which shows an example of a distributed row identification index (D-RIX). マスターノードと第1のスレーブノードの内部構成を示す機能ブロック図である。It is a functional block diagram which shows the internal structure of a master node and a 1st slave node. DSNのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。It is a flowchart which shows the cooperation operation | movement with the master node 13 and the slave nodes 15, 17, and 19 when the registration request | requirement of the data of DSN arises. D-CRX/D-RIXのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。It is a flowchart which shows the cooperative operation | movement with the master node 13 and the slave nodes 15, 17, and 19 when the registration request of the data of D-CRX / D-RIX arises. D-CRSのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。It is a flowchart which shows the cooperation operation | movement with the master node 13 and the slave nodes 15, 17, and 19 when the registration request of the data of D-CRS arises. 本実施形態に係る分散型データベースシステムで実行される分散クエリー処理の流れを示す工程図である。It is process drawing which shows the flow of the distributed query process performed with the distributed database system which concerns on this embodiment. 複数のローカルノードに分散格納される地域別顧客数(内部表)を示す図である。It is a figure which shows the number of customers according to area (internal table) distributedly stored in a plurality of local nodes. 図7に示す内部表のD-RIXの一例を示す図である。FIG. 8 is a diagram showing an example of D-RIX in the internal table shown in FIG. 7. 外部表RIDと内部表RIDとの対応関係を示すRID対照表を示す図である。It is a figure which shows the RID contrast table which shows the correspondence of external table RID and internal table RID.
 以下、本発明の実施形態に係る分散型データベースシステムについて、図面を参照して詳細に説明する。 Hereinafter, a distributed database system according to an embodiment of the present invention will be described in detail with reference to the drawings.
(本発明の実施形態に係る分散型データベースシステムの概要)
 まず、本発明の実施形態に係る分散型データベースシステムの概要について説明する。図1は、本発明の実施形態に係る分散型データベースシステムの概要を示す構成図である。本実施形態に係る分散型リレーショナルデータベース(以下では、原則として、“リレーショナルデータベース”を“RDB”と省略し、“データベース”を“DB”と省略する。)のシステム11は、ひとつのマスターノード13と、第1~第3のスレーブノード15,17,19との間を、第1通信網21を介して接続して構成されている。マスターノード13は、複数のスレーブノード15,17,19を統括管理する。なお、ノード13,15,17,19とは、情報処理機能を有するコンピューターである。
(Overview of distributed database system according to an embodiment of the present invention)
First, an overview of a distributed database system according to an embodiment of the present invention will be described. FIG. 1 is a configuration diagram showing an overview of a distributed database system according to an embodiment of the present invention. A system 11 of a distributed relational database (hereinafter, “relational database” is abbreviated as “RDB” and “database” is abbreviated as “DB”) is basically a master node 13 according to this embodiment. And the first to third slave nodes 15, 17, 19 are connected via a first communication network 21. The master node 13 manages and manages the plurality of slave nodes 15, 17, and 19. Nodes 13, 15, 17, and 19 are computers having an information processing function.
 分散型RDBシステム11外の構成要素として、マスターノード13には、第2通信網23を介して、複数のクライアント端末25a,25b,25cが接続されている。マスターノード13は、複数のクライアント端末25a,25b,25cのうちいずれか一つより発行されたキー値登録要求、または、表結合操作などのデータ操作要求を受付けると、その要求に従う処理を第1~第3のスレーブノード15,17,19と連携して実行し、得られた処理結果を応答として要求のあったクライアント端末に返す。 As a component outside the distributed RDB system 11, a plurality of client terminals 25 a, 25 b and 25 c are connected to the master node 13 via the second communication network 23. When the master node 13 accepts a key value registration request issued from any one of the plurality of client terminals 25a, 25b, and 25c or a data operation request such as a table join operation, the master node 13 performs a process according to the request. Executed in cooperation with the third slave nodes 15, 17, 19 and returns the obtained processing result as a response to the requested client terminal.
 マスターノード13は、マスターデータを記憶するマスターデータ記憶部13aを有する。マスターデータは、DBメタデータおよびDB管理データを含んで構成される。DBメタデータは、複数のスレーブノード15,17,19がどこに何台設置されているのかに関する物理構成表や、テーブル属性の構成表などを含む。DB管理データは、後述する最新共有NIDなどの共有管理データを含む。ここで、本発明の主要な特徴として、マスターノード13は、本来の管理対象であるキー値を含む、キー値を特定するためのキー値に関する情報を、第1~第3のスレーブノード15,17,19に分散格納するための管理を行うのみで、キー値またはキー値に関する情報を、マスターノード13それ自体またはマスターデータ記憶部13aのいずれも保持していない。 The master node 13 has a master data storage unit 13a for storing master data. The master data includes DB metadata and DB management data. The DB metadata includes a physical configuration table regarding where and how many slave nodes 15, 17, and 19 are installed, a configuration table of table attributes, and the like. The DB management data includes sharing management data such as the latest shared NID described later. Here, as a main feature of the present invention, the master node 13 includes information on the key value for specifying the key value, including the key value that is the original management target, as the first to third slave nodes 15, Only the management for the distributed storage in 17 and 19 is performed, and neither the master node 13 itself nor the master data storage unit 13a holds the key value or information about the key value.
 第1~第3のスレーブノード15,17,19の各々は、第1~第3のローカルデータを記憶する第1~第3のローカルデータ記憶部15a,17a,19aをそれぞれ有する。なお、第1~第3のスレーブノード15,17,19および第1~第3のローカルデータ記憶部15a,17a,19aの構成は横並びに等しい。そこで、説明の重複を避けるため、以下では、第1のスレーブノード15、第1のローカルデータおよび第1のローカルデータ記憶部15aについて代表的に説明することで、その他の第2,第3のスレーブノード17,19、第2,第3のローカルデータおよび第2,第3のローカルデータ記憶部17a,19aについての説明に代えることとする。第1~第3のローカルデータ記憶部15a,17a,19aのそれぞれは、DSN格納部、D-CRX格納部、D-CRS格納部およびD-RIX格納部に相当する。 Each of the first to third slave nodes 15, 17, and 19 has first to third local data storage units 15a, 17a, and 19a for storing first to third local data, respectively. The configurations of the first to third slave nodes 15, 17, 19 and the first to third local data storage units 15a, 17a, 19a are equal side by side. Therefore, in order to avoid duplication of description, the first slave node 15, the first local data, and the first local data storage unit 15a will be representatively described below, and the other second, third, The description will be replaced with the description of the slave nodes 17 and 19, the second and third local data, and the second and third local data storage units 17a and 19a. Each of the first to third local data storage units 15a, 17a, and 19a corresponds to a DSN storage unit, a D-CRX storage unit, a D-CRS storage unit, and a D-RIX storage unit.
 第1のローカルデータは、4種類のインデックスデータを含んで構成される。すなわち、第1の分散共有NID(以下、「DSN」という)、第1の分散圧縮復元インデックス(以下、「D-CRX」という)、第1の分散圧縮結果セットキャッシュ(以下、「D-CRS」という)および第1の分散行識別インデックス(以下、「D-RIX」という)がそれである。これらについて、詳しくは後述する。 The first local data includes four types of index data. That is, a first distributed shared NID (hereinafter referred to as “DSN”), a first distributed compression and decompression index (hereinafter referred to as “D-CRX”), a first distributed compression result set cache (hereinafter referred to as “D-CRS”). And a first distributed row identification index (hereinafter referred to as “D-RIX”). These will be described in detail later.
(複数のスレーブノードにおける売上管理表のトランザクションの一例)
 本発明の実施形態に係る分散型RDBシステム11で生成される、複数のスレーブノード15,17,19における売上管理表のトランザクションの一例について説明する。図2A,図2Bは、複数のスレーブノード15,17,19における売上管理表のトランザクションの一例を示すテーブルである。
(Example of sales management table transaction in multiple slave nodes)
An example of the transaction of the sales management table in the plurality of slave nodes 15, 17, and 19 generated by the distributed RDB system 11 according to the embodiment of the present invention is described. 2A and 2B are tables showing an example of a transaction of the sales management table in the plurality of slave nodes 15, 17, and 19. FIG.
 図2A,図2Bに示すような、タプル(行)とカラム(列)を二次元に配置したテーブルデータが入力されると、分散型RDBシステム11は、分散リレーショナル・データ・モデルの4種類のインデックスデータを作成する。図2A,図2Bに示す入力行番号は、入力行を一意に識別するための標識であり、1番から昇順に連番で割り振られるものとする。この入力行番号は、マスターノード13により付される標識であり、実際の入力データには付与されていない。 When table data in which tuples (rows) and columns (rows) are arranged two-dimensionally as shown in FIG. 2A and FIG. 2B is input, the distributed RDB system 11 has four types of distributed relational data models. Create index data. The input line numbers shown in FIGS. 2A and 2B are signs for uniquely identifying the input lines, and are assigned sequentially from the first in ascending order. This input line number is a mark given by the master node 13 and is not given to actual input data.
 図2A,図2Bに示すテーブルの第1行目にはカラムの項目名が、同テーブルの第2行目にはデータ型の種別(例えば、文字列型か、数値型か、日付型か等)がそれぞれ記入してある。図2A,図2Bに示すテーブルでは、それぞれのタプルに入力行番号として1~15が割り振られている。なお、図2A,図2Bに示すテーブルでは、特許請求の範囲に記載の“分散型データベースを構成するテーブル内のカラム毎に一意の値をとる分散行識別子(以下、「RID」という)”は、入力行番号と等しい値になっている。 In the first row of the table shown in FIGS. 2A and 2B, the column item names are displayed. In the second row of the table, the type of data type (for example, character string type, numeric type, date type, etc.) ) Is filled in. In the tables shown in FIGS. 2A and 2B, 1 to 15 are assigned as input row numbers to the respective tuples. In the tables shown in FIGS. 2A and 2B, “distributed row identifier (hereinafter referred to as“ RID ”) having a unique value for each column in the table constituting the distributed database” is described in the claims. The value is equal to the input line number.
 図2A,図2Bに示すテーブルにおいて、それぞれのタプルの下段の欄には、各タプルの属性値が記入してある。ただし、各タプルの属性値は、説明の便宜上記入したものであり、実際の入力データには含まれていない。この属性値としては、例えば、キー値を入力としてDSNのデータを参照することにより払い出されたキー値識別子(以下、「NID」という)、コンシステント・ハッシュ法によって決定されたDSNのデータの格納先ノード番号(以下、「DSN-CNN」という)、同じくコンシステント・ハッシュ法によって決定されたD-CRXのデータの格納先ノード番号(以下、「D-CRX-CNN」という)、および、D-CRX-CNNの決定に使用したD-CRXのブロック番号(以下、「D-CRX-BN」という)がある。D-CRX-BNを決定する際には、ブロック化係数(以下、「D-CRX-BF」という)を使用する。なお、NID、DSN、DSN-CNN、D-CRX-CNN、D-CRX-BNおよびD-CRX-BFについて、詳しくは後述する。 In the tables shown in FIGS. 2A and 2B, the attribute value of each tuple is entered in the lower column of each tuple. However, the attribute value of each tuple is entered for convenience of explanation and is not included in the actual input data. As this attribute value, for example, a key value identifier (hereinafter referred to as “NID”) issued by referring to the DSN data with the key value as an input, the DSN data determined by the consistent hash method, Storage destination node number (hereinafter referred to as “DSN-CNN”), storage destination node number of D-CRX data determined by the consistent hash method (hereinafter referred to as “D-CRX-CNN”), and There is a D-CRX block number (hereinafter referred to as “D-CRX-BN”) used to determine D-CRX-CNN. When determining D-CRX-BN, a blocking coefficient (hereinafter referred to as “D-CRX-BF”) is used. NID, DSN, DSN-CNN, D-CRX-CNN, D-CRX-BN, and D-CRX-BF will be described in detail later.
 図2A,図2Bに示すテーブルにおいて、D-CRX-BNの決定に用いるD-CRX-BFの値を“7”とし、格納先ノードの数は、第1~第3のスレーブノード15,17,19の数に対応して3分散とした。第1~第3のスレーブノード15,17,19には、それぞれにCNNの識別子としてa~cを付した。つまり、第1のスレーブノード15がCNN=aの格納先ノードに相当し、第2のスレーブノード17がCNN=bの格納先ノードに相当し、第3のスレーブノード19がCNN=cの格納先ノードに相当するものとして、以降の説明を進める。なお、以下の説明において、中括弧{}により要素を囲んだ記号{i,j,k}は、i,j,kを要素とする集合を示す。 In the tables shown in FIGS. 2A and 2B, the value of D-CRX-BF used to determine D-CRX-BN is “7”, and the number of storage destination nodes is the first to third slave nodes 15 and 17. , 19 to correspond to the number of 19. The first to third slave nodes 15, 17, and 19 are assigned a to c as CNN identifiers, respectively. That is, the first slave node 15 corresponds to the storage node of CNN = a, the second slave node 17 corresponds to the storage node of CNN = b, and the third slave node 19 stores CNN = c. The following description will be made on the assumption that it corresponds to the previous node. In the following description, a symbol {i, j, k} in which an element is enclosed by braces {} indicates a set having i, j, k as elements.
 管理対象となる値の集合(以下、「値集合」という)の元をキー値と呼ぶ。NIDとは、キー値を一意に識別するための標識である。このNIDは、分散型データベースの全体において登録要求に係るキー値が有するデータ型の範囲内で一意の値をとるように、それぞれのキー値に対して割り当てられる。 The element of a set of values to be managed (hereinafter referred to as “value set”) is called a key value. NID is an indicator for uniquely identifying a key value. This NID is assigned to each key value so that it takes a unique value within the range of the data type of the key value related to the registration request in the entire distributed database.
 要するに、同一の値を有するキー値には、同一のNIDが割り当てられる。このことを、図2A,図2Bに示すテーブルにおいて検証してみる。図2Aのうち入力行番号が“1”であるタプルでは、カラムの地域名として記入されたキー値である“北海道東北”に対し、NIDとして“2”が割り当てられている。また、図2Aのうち入力行番号が“5”であるタプルでは、カラムの地域名として記入されたキー値である“北海道東北”に対し、入力行番号が“1”であるタプルの例と同様に、NIDとして“2”が割り当てられている。なお、図2A,図2Bに示すテーブルにおいて、後に同じ値が現れるキー値と、先に同じ値が現れるキー値と、これらに相当しないキー値とを一見して識別できるように、上記の前二者の記入枠に対し、相互に異なる網掛け修飾を付与してある。 In short, the same NID is assigned to key values having the same value. This will be verified in the tables shown in FIGS. 2A and 2B. In the tuple whose input row number is “1” in FIG. 2A, “2” is assigned as the NID to “Hokkaido Tohoku” which is the key value entered as the region name of the column. In addition, in the tuple with the input line number “5” in FIG. 2A, an example of the tuple with the input line number “1” with respect to “Hokkaido Tohoku”, which is the key value entered as the column name, Similarly, “2” is assigned as the NID. In the tables shown in FIGS. 2A and 2B, the key values that appear later, the key values that appear earlier, and the key values that do not correspond to these can be identified at a glance. The two boxes have different shading modifiers.
 NIDは、自然数の値をとるのが好ましい。キー値に代えてNIDを用いて表結合操作などのデータ操作を行う際に、その演算に係る処理負荷を低く抑え、演算処理の高速化を図れるからである。その理由の詳細については後述する。また、NIDは、順序数の値をとるのが好ましい。最新共有NIDの値をインクリメントするといったきわめて簡素な手順で、登録要求に係るキー値に対してユニークなNIDの払い出しを行うことができるからである。なお、図2A,図2Bに示すテーブルでは、NID=0は無効値、NID=1はNULL値、NID=2以上が有効値と定義してある。 NID is preferably a natural number. This is because when NID is used instead of the key value and data operation such as table join operation is performed, the processing load related to the calculation can be suppressed and the calculation process can be speeded up. Details of the reason will be described later. Moreover, it is preferable that NID takes the value of an order number. This is because a unique NID can be paid out for a key value related to a registration request by a very simple procedure such as incrementing the value of the latest shared NID. In the tables shown in FIGS. 2A and 2B, NID = 0 is defined as an invalid value, NID = 1 is defined as a NULL value, and NID = 2 or greater is defined as a valid value.
 キー値に関する情報(DSN、D-CRX、D-CRS、D-RIX)を複数のスレーブノード15,17,19に分散するための分散方式としては、例えば公知のコンシステント・ハッシュ法を採用することができる。ただし、スレーブノード(格納先ノード)の増減が生じた際に、キー値に関する情報を充分に小さいコストで再分散可能な方式であれば、コンシステント・ハッシュ法に限定されない。 As a distribution method for distributing key value information (DSN, D-CRX, D-CRS, D-RIX) to a plurality of slave nodes 15, 17, and 19, for example, a known consistent hash method is adopted. be able to. However, the method is not limited to the consistent hash method as long as the information about the key value can be redistributed at a sufficiently small cost when the number of slave nodes (storage nodes) increases or decreases.
(DSNの一例)
 次に、本発明の実施形態に係る分散型RDBシステム11で生成されるDSNの一例について説明する。図3Aは、DSNの一例を示すインデックスデータである。DSNとは、キー値を分散キーとして用いたコンシステント・ハッシュ法によって、NIDを複数のスレーブノード15,17,19に分散格納したインデックスであり、キー値を入力として対応するNIDを得る際に参照される。
(Example of DSN)
Next, an example of the DSN generated by the distributed RDB system 11 according to the embodiment of the present invention will be described. FIG. 3A is index data showing an example of the DSN. The DSN is an index in which NIDs are distributed and stored in a plurality of slave nodes 15, 17, and 19 by a consistent hash method using a key value as a distributed key. When obtaining a corresponding NID by using the key value as an input, the DSN is obtained. Referenced.
 詳しく述べると、DSNは、登録要求に係るキー値と、そのキー値に割り当てられたNIDとの対応関係に係るインデックスである。このDSNは、登録要求に係るキー値が有するデータ型毎に分けて格納される。DSNのインデックスによれば、キー値を入力として対応するNIDを得ることができる。 More specifically, the DSN is an index related to the correspondence between the key value related to the registration request and the NID assigned to the key value. The DSN is stored separately for each data type of the key value related to the registration request. According to the index of the DSN, the corresponding NID can be obtained by inputting the key value.
 DSNは、図3Aに示すように、次の規則に従って生成される。
(1)分散型データベース全体の範囲内において、同一のデータ型の同一のキー値の集合に対して共通のNIDを与える。
(2)キー値を分散キーとして用いたコンシステント・ハッシュ法によって、キー値とNIDの対を複数のスレーブノード15,17,19(DSN-CNNの値がa~c)に分散格納する。
(3)DSNの管理単位は、分散型データベースである。
The DSN is generated according to the following rules as shown in FIG. 3A.
(1) A common NID is given to the same set of key values of the same data type within the range of the entire distributed database.
(2) The key value and NID pair are distributed and stored in a plurality of slave nodes 15, 17, and 19 (DSN-CNN values a to c) by a consistent hash method using the key value as a distributed key.
(3) The management unit of the DSN is a distributed database.
(D-CRXの一例)
 次に、本発明の実施形態に係る分散型RDBシステム11で生成されるD-CRXの一例について説明する。図3Bは、地域名、価格、および受注日の3つのカラムを抜粋した場合のD-CRXの一例を示す。D-CRXとは、NIDの関数(NIDそれ自体を含む)を分散キーとして用いたコンシスタント・ハッシュ法によって、複数のスレーブノード15,17,19にNIDを分散格納したインデックスであり、キー値の検索時に対応するNIDを調べる際、または、NIDをキー値へ逆変換する際に用いられる。
(Example of D-CRX)
Next, an example of D-CRX generated by the distributed RDB system 11 according to the embodiment of the present invention will be described. FIG. 3B shows an example of D-CRX in the case of extracting three columns of area name, price, and order date. The D-CRX is an index in which NIDs are distributedly stored in a plurality of slave nodes 15, 17, and 19 by a consistent hash method using an NID function (including NID itself) as a distributed key. This is used when examining the corresponding NID at the time of searching, or when converting the NID back to the key value.
 詳しく述べると、D-CRXは、登録要求に係るキー値と、そのキー値に割り当てられたNIDとの1対1の対応関係に係るインデックスである。このD-CRXは、登録要求に係るキー値が属するカラム毎に分けて格納される。D-CRXのインデックスによれば、NIDを入力として対応するキー値を得ること、および、キー値を入力として対応するNIDを得ることができる。DNSとD-CRXとの相違点は、DNSではキー値をNIDに一方向に変換するのに対し、D-CRXではキー値とNIDとを双方向に変換する点である。また、D-CRXのインデックスによれば、キー値の値範囲(始値と終値)を入力として対応するNID集合を得ることができる(値範囲検索)。この値範囲検索については後述する。 More specifically, the D-CRX is an index relating to a one-to-one correspondence between a key value related to a registration request and an NID assigned to the key value. The D-CRX is stored separately for each column to which the key value related to the registration request belongs. According to the index of D-CRX, a corresponding key value can be obtained by using NID as an input, and a corresponding NID can be obtained by using the key value as an input. The difference between DNS and D-CRX is that the key value is converted to NID in one direction in DNS, whereas the key value and NID are converted bidirectionally in D-CRX. Further, according to the index of D-CRX, a corresponding NID set can be obtained (value range search) by inputting the value range (start price and end price) of the key value. This value range search will be described later.
 D-CRXは、図3Bに示すように、次の規則に従って生成される。
(1)分散型データベース内における同一テーブルの同一カラムを管理単位として、キー値とNIDとの1対1の対応関係を与える。
(2)ブロック番号(D-CRX-BN)は、NIDをブロック化係数(D-CRX-BF)で割った商である。上記式より、D-CRX-BNはNIDの関数であるといえる。
(3)D-CRX-BFは定数であり、任意の正の整数(本例では“7”)の値をとる。このため、D-CRX-BNは正の整数の値をとる。
(4)D-CRX-BN(NIDの関数)を分散キーとするコンシステント・ハッシュ法によって、NIDとキー値との対(1対1対応)を複数のスレーブノード15,17,19(格納先ノード;D-CRX-CNNの値がa~c)に分散格納する。
(5)D-CRXの管理単位は、カラムである。
As shown in FIG. 3B, the D-CRX is generated according to the following rules.
(1) A one-to-one correspondence between key values and NIDs is given using the same column of the same table in the distributed database as a management unit.
(2) The block number (D-CRX-BN) is a quotient obtained by dividing the NID by the blocking coefficient (D-CRX-BF). From the above equation, it can be said that D-CRX-BN is a function of NID.
(3) D-CRX-BF is a constant and takes a value of an arbitrary positive integer (in this example, “7”). Thus, D-CRX-BN takes a positive integer value.
(4) By a consistent hash method using D-CRX-BN (NID function) as a distributed key, a pair of NID and key value (one-to-one correspondence) is stored in a plurality of slave nodes 15, 17, 19 (stored) Destination node; D-CRX-CNN values are distributed and stored in a to c).
(5) The management unit of D-CRX is a column.
(D-CRSの一例)
 次に、本発明の実施形態に係る分散型RDBシステム11で生成されるD-CRSの一例について説明する。図3Cは、地域名、価格、および受注日の3つのカラムを抜粋した場合のD-CRSの一例を示す。D-CRSとは、RIDの関数(RIDそれ自体を含む)を分散キーとして用いたコンシスタント・ハッシュ法によって、複数のスレーブノード15,17,19にNIDを分散格納したインデックスであり、検索結果としてのRID集合を作成する際、または、結合結果としてのタプルを作成する際に用いられる。
(Example of D-CRS)
Next, an example of D-CRS generated by the distributed RDB system 11 according to the embodiment of the present invention will be described. FIG. 3C shows an example of a D-CRS in the case of extracting three columns of area name, price, and order date. The D-CRS is an index in which NIDs are distributedly stored in a plurality of slave nodes 15, 17, and 19 by a consistent hash method using a RID function (including RID itself) as a distribution key. This is used when creating a RID set as, or when creating a tuple as a join result.
 詳しく述べると、D-CRSは、分散型データベースを構成するテーブル内のカラム毎に一意の値をとるRIDとNIDとの対応関係に係るインデックスである。このD-CRSは、登録要求に係るキー値が属するカラム毎に分けて格納される。D-CRSでは、RIDとNIDとの対応関係が1対1で記述されており、同一のカラム内においてNIDの重複した出現を許すデータ構造となっている。D-CRSによれば、RIDを入力として対応するNIDを得ることができる。また、NID集合({NID}と表記する)を入力として対応するRID集合({RID}と表記する)を得ることができる。つまり、検索対象となるNIDと、カラムに属する全てのNIDとを逐一照合してゆくフルスキャンを、NID集合の元の数だけ繰り返し行うことにより、NID集合に対応するRID集合を得ることができる。 More specifically, the D-CRS is an index related to the correspondence between RID and NID that takes a unique value for each column in the table constituting the distributed database. The D-CRS is stored separately for each column to which the key value related to the registration request belongs. In D-CRS, the correspondence between RIDs and NIDs is described on a one-to-one basis, and has a data structure that allows duplicate appearances of NIDs in the same column. According to D-CRS, a corresponding NID can be obtained by using RID as an input. In addition, a corresponding RID set (represented as {RID}) can be obtained using an NID set (represented as {NID}) as an input. That is, the RID set corresponding to the NID set can be obtained by repeatedly performing the full scan of checking the NID to be searched and all the NIDs belonging to the column one by one for the original number of NID sets. .
 D-CRSは、図3Cに示すように、次の規則に従って生成される。
(1)分散型データベース内における同一のカラム単位にRIDに対応するNIDを格納する。これを列単位NID配列と呼ぶ。
(2)ブロック番号(D-CRS-BN)は、RIDをブロック化係数(D-CRS-BF)で割った商である。上記式より、D-CRS-BNはRIDの関数であるといえる。
(3)D-CRS-BFは定数であり、任意の正の整数(本例では“7”)の値をとる。このため、D-CRS-BNは正の整数の値をとる。
(4)D-CRS-BN(RIDの関数)を分散キーとするコンシステント・ハッシュ法によって、列単位NID配列を複数のスレーブノード15,17,19(D-CRSのデータの格納先ノード;D-CRS-CNNの値がa~c)に分散格納する。
(5)D-CRSの管理単位は、カラムである。
As shown in FIG. 3C, the D-CRS is generated according to the following rules.
(1) The NID corresponding to the RID is stored in the same column unit in the distributed database. This is called a column unit NID array.
(2) The block number (D-CRS-BN) is a quotient obtained by dividing the RID by the blocking coefficient (D-CRS-BF). From the above formula, it can be said that D-CRS-BN is a function of RID.
(3) D-CRS-BF is a constant and takes a value of an arbitrary positive integer (in this example, “7”). Therefore, D-CRS-BN takes a positive integer value.
(4) By a consistent hash method using D-CRS-BN (RID function) as a distribution key, a column unit NID array is converted into a plurality of slave nodes 15, 17, 19 (D-CRS data storage destination nodes; The value of D-CRS-CNN is distributed and stored in a to c).
(5) The management unit of D-CRS is a column.
(D-RIXの一例)
 次に、本発明の実施形態に係る分散型RDBシステム11で生成されるRIXの一例について説明する。図3Dは、地域名、価格、および受注日の3つのカラムを抜粋した場合のD-RIXの一例を示す。D-RIXとは、NIDの関数(NIDそれ自体を含む)を分散キーとして用いたコンシスタント・ハッシュ法によって、複数のスレーブノード15,17,19にNIDを分散格納したインデックスであり、表結合操作でのキー値の検索時に対応するRIDを調べる際に用いられる。
(Example of D-RIX)
Next, an example of RIX generated by the distributed RDB system 11 according to the embodiment of the present invention will be described. FIG. 3D shows an example of D-RIX in the case of extracting three columns of area name, price, and order date. D-RIX is an index in which NIDs are distributed and stored in a plurality of slave nodes 15, 17, and 19 by a constant hash method using NID functions (including NIDs themselves) as distribution keys. This is used to check the corresponding RID when searching for the key value in operation.
 詳しく述べると、D-RIXは、NIDとRID集合との1対Nの対応関係に係るインデックスである。このD-RIXは、登録要求に係るキー値が属するカラム毎に分けて格納される。D-CRSとD-RIXとの相違点は、D-CRSでは同一のカラム内においてNIDの重複した出現が起こり得るのに対し、D-RIXでは同一のカラム内においてNIDの重複した出現が起こり得ない点である。この相違点は、D-CRSではRIDを分散キーとして用いるのに対し、D-RIXではNIDを分散キーとして用いることに由来して生じている。D-RIXのインデックスによれば、NIDを入力として対応するRID集合を得ること、およびNID集合を入力として対応するRID集合を得ることができる。また、D-RIXを用いて表結合操作などのデータ操作を行うことにより、複数のスレーブノード15,17,19(格納先ノード;DSN-CNNの値がa~c)間でのデータの移動を抑止すること、並びに、表結合操作での検索時のフルスキャンを抑止することができる。その理由については後述する。 More specifically, D-RIX is an index related to a one-to-N correspondence between NID and RID set. This D-RIX is stored separately for each column to which the key value related to the registration request belongs. The difference between D-CRS and D-RIX is that D-CRS can cause duplicate NIDs in the same column, whereas D-RIX has duplicate NIDs in the same column. It is a point that cannot be obtained. This difference is caused by using RID as a distribution key in D-CRS and using NID as a distribution key in D-RIX. According to the D-RIX index, a corresponding RID set can be obtained using NID as an input, and a corresponding RID set can be obtained using NID set as an input. Also, by performing data operations such as table join operations using D-RIX, data movement between a plurality of slave nodes 15, 17, 19 (storage destination nodes; DSN-CNN values a to c) And a full scan at the time of a search in a table join operation can be suppressed. The reason will be described later.
 D-RIXは、図3Dに示すように、次の規則に従って生成される。
(1)分散型データベース内における同一テーブルの同一カラムを管理単位として、NIDとRID集合の対応関係を与える。
(2)ブロック番号(D-RIX-BN)は、NIDをブロック化係数(D-RIX-BF)で割った商である。上記式より、D-RIX-BNはNIDの関数であるといえる。
(3)D-RIX-BFは定数であり、任意の正の整数(本例では“7”)の値をとる。このため、D-RIX-BNは正の整数の値をとる。
(4)D-RIX-BN(NIDの関数)を分散キーとするコンシステント・ハッシュ法によって、NIDとRID集合の対(1対N対応)を複数のスレーブノード15,17,19(格納先ノード;DSN-CNNの値がa~c)に分散格納する。
(5)D-RIXの管理単位は、カラムである。
As shown in FIG. 3D, the D-RIX is generated according to the following rules.
(1) The correspondence between the NID and the RID set is given using the same column of the same table in the distributed database as a management unit.
(2) The block number (D-RIX-BN) is a quotient obtained by dividing the NID by the blocking coefficient (D-RIX-BF). From the above equation, it can be said that D-RIX-BN is a function of NID.
(3) D-RIX-BF is a constant and takes a value of an arbitrary positive integer (in this example, “7”). Therefore, D-RIX-BN takes a positive integer value.
(4) By a consistent hash method using D-RIX-BN (NID function) as a distribution key, a pair of NID and RID set (corresponding to 1 to N) is converted into a plurality of slave nodes 15, 17, 19 (storage destinations) Node: DSN-CNN values are distributed and stored in a to c).
(5) The management unit of D-RIX is a column.
(マスターノードと第1のスレーブノードの内部構成)
 次に、本実施形態に係る分散型RDBシステム11において重要な役割を果たすマスターノード13と第1のスレーブノード15の内部構成について説明する。図4は、マスターノード13と第1のスレーブノード15の内部構成を示す機能ブロック図である。
(Internal configuration of master node and first slave node)
Next, an internal configuration of the master node 13 and the first slave node 15 that play an important role in the distributed RDB system 11 according to the present embodiment will be described. FIG. 4 is a functional block diagram showing the internal configuration of the master node 13 and the first slave node 15.
 はじめに、マスターノード13の内部構成について説明する。マスターノード13は、マスター受付部31、NID割当部33、インデックス生成部35、ノード決定部37、要求発行部41と処理結果統合部43とを有する分散統括管理部39、および、更新管理部45を備えて構成される。 First, the internal configuration of the master node 13 will be described. The master node 13 includes a master reception unit 31, an NID allocation unit 33, an index generation unit 35, a node determination unit 37, a distributed overall management unit 39 including a request issue unit 41 and a processing result integration unit 43, and an update management unit 45. It is configured with.
 登録要求受付部に相当するマスター受付部31は、登録要求に係るキー値およびそのデータ型の情報を受け付ける。キー値登録要求は、実際には、複数のカラム毎にそれぞれのキー値およびそのデータ型の情報が関連付られたタプル単位でマスター受付部31に入力されるのが一般的である。ただし、キー値登録要求は、複数のタプルの組からなるテーブルデータの形態で入力される場合もある。いずれの場合でも、タプル単位の入力データを受け付けたマスター受付部31は、タプルに含まれる複数のカラムのうちいずれか一つのカラムに関連付けられたキー値(以下、「処理対象キー値」と呼ぶ場合がある。)およびそのデータ型の情報を最小単位として逐次処理を進める。このため、本実施形態では、最小単位である一組の処理対象キー値およびそのデータ型の情報をマスター受付部31が受け付けたものとして説明を進めるものとする。 The master reception unit 31 corresponding to the registration request reception unit receives the key value and the data type information related to the registration request. In practice, the key value registration request is generally input to the master reception unit 31 in units of tuples in which each key value and data type information are associated for each of a plurality of columns. However, the key value registration request may be input in the form of table data composed of a set of a plurality of tuples. In any case, the master reception unit 31 that has received input data in units of tuples is referred to as a key value associated with any one of a plurality of columns included in the tuple (hereinafter referred to as “processing target key value”). ) And the data type information is the minimum unit, and the sequential processing is advanced. For this reason, in the present embodiment, the description will be made assuming that the master receiving unit 31 has received a set of processing target key values, which are the minimum unit, and information on the data type thereof.
 タプル単位の入力データを受け付けたマスター受付部31は、そのタプルに属する全てのキー値に対し、テーブル内のカラム毎に一意の値をとる共通のRIDを付与する。RIDとしては、NIDと同様に、自然数かつ順序数の値を採るのが好ましい。RIDの最新値をインクリメントするといったきわめて簡素な手順で、テーブル内のカラム毎にユニークなRIDの付与を行うことができるからである。 The master reception unit 31 that has received input data in units of tuples assigns a common RID that takes a unique value for each column in the table to all key values belonging to the tuple. As the RID, it is preferable to take a natural number and an ordinal number as in the case of NID. This is because a unique RID can be assigned to each column in the table with a very simple procedure of incrementing the latest value of the RID.
 マスター受付部31は、複数のクライアント端末25a,25b,25cのうちいずれか一つより発行されたキー値登録要求(そのデータ型の情報を含む)、または、表結合操作などのデータ操作要求を受付ける。また、マスター受付部31は、いずれかのスレーブノードから送信されてくる後述の既存確認結果を受付ける。マスター受付部31は、キー値登録要求が生じた場合、その要求をNID割当部33へ渡す一方、データ操作要求が生じた場合、その要求をノード決定部37へ渡す。 The master reception unit 31 receives a key value registration request (including information on the data type) issued from any one of the plurality of client terminals 25a, 25b, and 25c, or a data operation request such as a table join operation. Accept. Further, the master accepting unit 31 accepts an existing confirmation result to be described later transmitted from any slave node. The master reception unit 31 passes the request to the NID assignment unit 33 when a key value registration request occurs, and passes the request to the node determination unit 37 when a data operation request occurs.
 NID割当部33は、キー値登録要求が生じた場合、マスターデータ記憶部13aに記憶されたDB管理データのうち最新共有NIDを参照して、登録要求に係るキー値に対してユニークなNIDを割当てる。また、NID割当部33は、マスター受付部31が既存確認結果(登録要求に係るキー値がその格納先ノードに既に存在するか否かを示す情報)を受け付けた場合、その既存確認結果に基づいて、最新共有NIDを更新すべか否かに係る最新共有NID更新制御信号を生成し、これを更新管理部45に送る。 When a key value registration request is generated, the NID allocation unit 33 refers to the latest shared NID among the DB management data stored in the master data storage unit 13a, and assigns a unique NID to the key value related to the registration request. Assign. Further, when the master reception unit 31 receives an existing confirmation result (information indicating whether or not the key value related to the registration request already exists in the storage destination node), the NID assignment unit 33 is based on the existing confirmation result. Then, the latest shared NID update control signal related to whether or not to update the latest shared NID is generated and sent to the update management unit 45.
 インデックス生成部35は、NID割当部33により登録要求に係るキー値に対してNIDが割り当てられた場合、登録要求に係るキー値、そのキー値が有するデータ型、そのキー値に割り当てられたNID、およびマスターノード13により付与されたRIDに基づいて、DSN、D-CRX、D-CRS、および、D-RIXのデータをそれぞれ生成する。ここで、DSNのデータとは、DSNの構成要素となる少なくとも最小単位のデータ(ひとつのキー値とひとつのNIDとの対データ)を意味する。同様に、D-CRXのデータとは、D-CRXの構成要素となる少なくとも最小単位のデータ(ひとつのキー値とひとつのNIDとの対データ)を意味し、D-CRSのデータとは、D-CRSの構成要素となる少なくとも最小単位のデータ(ひとつのRIDとひとつのNIDとの対データ)を意味し、D-RIXのデータとは、D-RIXの構成要素となる少なくとも最小単位のデータ(ひとつのNIDと一群のRID集合との対データ)を意味する。こうして生成された4種類のインデックスデータは、例えば、次述するノード決定の際や、表結合操作等のデータ操作要求が生じた際などに参照される。インデックス生成部35は、DSN生成部、D-CRX生成部、D-CRS生成部およびD-RIX生成部に相当する。 When an NID is assigned to the key value related to the registration request by the NID assigning unit 33, the index generation unit 35, the key value related to the registration request, the data type of the key value, and the NID assigned to the key value , And D-CRX, D-CRS, and D-RIX data are generated based on the RID assigned by the master node 13, respectively. Here, the DSN data means at least the minimum unit data (a pair of data of one key value and one NID) that is a component of the DSN. Similarly, D-CRX data means at least the minimum unit data (a pair of data of one key value and one NID) that is a component of D-CRX, and D-CRS data is: This means at least the minimum unit data (one pair of RID and one NID) that is a component of D-CRS, and D-RIX data is at least the minimum unit that is a component of D-RIX. Data (pair data of one NID and a group of RID sets). The four types of index data generated in this way are referred to, for example, when a node is determined as described below, or when a data operation request such as a table join operation occurs. The index generation unit 35 corresponds to a DSN generation unit, a D-CRX generation unit, a D-CRS generation unit, and a D-RIX generation unit.
 ノード決定部37は、キー値登録要求が生じた場合、インデックス生成部35で生成されたDSN、D-CRX、D-CRSおよびD-RIXのデータの分散格納先となるスレーブノードを、キー値、NIDの関数またはRIDの関数のうちいずれか一つを分散キーとするコンシステント・ハッシュ法によって決定する。ノード決定部37は、DSN格納ノード決定部、D-CRX格納ノード決定部、D-CRS格納ノード決定部およびD-RIX格納ノード決定部に相当する。 When a key value registration request is generated, the node determination unit 37 determines the slave nodes that are the distributed storage destinations of the DSN, D-CRX, D-CRS, and D-RIX data generated by the index generation unit 35 as key values. , NID function or RID function is determined by a consistent hash method using a distribution key as one of the functions. The node determination unit 37 corresponds to a DSN storage node determination unit, a D-CRX storage node determination unit, a D-CRS storage node determination unit, and a D-RIX storage node determination unit.
 ノード決定部37は、表結合操作などのデータ操作要求が生じた場合、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19の全てを、データ操作要求を分散処理するノードとして決定する。これを受けて第1~第3のスレーブノード15,17,19では、与えられたデータ操作要求を並列に実行する。第1~第3のスレーブノード15,17,19がデータ操作要求を分散処理する手順について、詳しくは後述する。 When a data operation request such as a table join operation occurs, the node determination unit 37 distributes the data operation request to all of the first to third slave nodes 15, 17, and 19 under the control of the master node 13. It is determined as a node to perform. In response to this, the first to third slave nodes 15, 17, and 19 execute the given data operation requests in parallel. The procedure by which the first to third slave nodes 15, 17, and 19 distribute the data operation request will be described in detail later.
 分散統括管理部39に属する要求発行部41は、キー値登録要求が生じた場合、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたスレーブノードに対し、DSN、D-CRX、D-CRSおよびD-RIXのデータをそれぞれ送ってデータ登録要求を発行する。また、要求発行部41は、データ操作要求が生じた場合、第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたノードに対し、処理要求を発行する。要求発行部41は、DSN登録要求発行部、D-CRX登録要求発行部、D-CRS登録要求発行部およびD-RIX登録要求発行部に相当する。 When a key value registration request is generated, the request issuing unit 41 belonging to the distributed overall management unit 39 among the first to third slave nodes 15, 17, 19 under the control of the master node 13 is a node determination unit 37. The DSN, D-CRX, D-CRS, and D-RIX data are respectively sent to the slave node determined in (1) to issue a data registration request. Further, when a data operation request is generated, the request issuing unit 41 issues a processing request to the node determined by the node determining unit 37 among the first to third slave nodes 15, 17, and 19. The request issuing unit 41 corresponds to a DSN registration request issuing unit, a D-CRX registration request issuing unit, a D-CRS registration request issuing unit, and a D-RIX registration request issuing unit.
 分散統括管理部39に属する処理結果統合部43は、第1~第3のスレーブノード15,17,19のそれぞれで分散処理されたデータ操作結果を受けて、これらの処理結果を統合する。 The processing result integration unit 43 belonging to the distributed overall management unit 39 receives the data operation results distributed in each of the first to third slave nodes 15, 17, 19 and integrates these processing results.
 更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、DB管理データのうち最新共有NIDの更新を制御する。具体的には、更新管理部45は、登録要求に係るキー値がその格納先ノードのDSN格納部に未だ存在しない旨の既存確認結果を受けた場合に、最新共有NIDを次共有NIDに更新するように制御を行う。 The update management unit 45 controls the update of the latest shared NID in the DB management data in accordance with the latest shared NID update control signal transmitted from the NID assigning unit 33. Specifically, the update management unit 45 updates the latest shared NID to the next shared NID when it receives an existing confirmation result that the key value related to the registration request does not yet exist in the DSN storage unit of the storage destination node. To control.
 次に、第1のスレーブノード15の内部構成について説明する。第1のスレーブノード15は、第1の受付部51、既存判定部53、登録管理部55、第1の分散処理部57および第1の応答部59を備えて構成される。 Next, the internal configuration of the first slave node 15 will be described. The first slave node 15 includes a first reception unit 51, an existing determination unit 53, a registration management unit 55, a first distributed processing unit 57, and a first response unit 59.
 第1の受付部51は、マスターノード13の要求発行部41から送られてきたDSN、D-CRX、D-CRSおよびD-RIXのデータ(以下、「インデックスデータ」という)の登録要求、または、表結合操作などのデータ操作要求を受付ける。第1の受付部51は、インデックスデータの登録要求が生じた場合、その要求を既存判定部53へ渡す一方、データ操作要求が生じた場合、その要求を第1の分散処理部57へ渡す。 The first reception unit 51 requests registration of DSN, D-CRX, D-CRS and D-RIX data (hereinafter referred to as “index data”) sent from the request issuing unit 41 of the master node 13, or Accept data manipulation requests such as table join operations. The first reception unit 51 passes the request to the existing determination unit 53 when an index data registration request occurs, and passes the request to the first distributed processing unit 57 when a data operation request occurs.
 既存判定部53は、インデックスデータの登録要求が生じた場合、第1のローカルデータ記憶部15aの第1のDSNを参照して、登録要求に係るDSNのデータに含まれる処理対象キー値と同じ値のデータが第1のDSNに既に存在するか否かを確認し、その既存確認結果を第1の応答部59に送る。また、既存判定部53は、既存確認結果に基づいて、登録要求に係るDSNのデータに含まれる処理対象キー値と、そのキー値に対してユニークなNIDとの組み合わせに係るDSNのデータの登録指令を登録管理部55に送る。 The existing determination unit 53 refers to the first DSN in the first local data storage unit 15a when an index data registration request is generated, and is the same as the processing target key value included in the DSN data related to the registration request. It is confirmed whether or not the value data already exists in the first DSN, and the result of the existing confirmation is sent to the first response unit 59. Further, the existing determination unit 53 registers the data of the DSN related to the combination of the processing target key value included in the DSN data related to the registration request and the unique NID for the key value based on the existing confirmation result. The command is sent to the registration management unit 55.
 登録管理部55は、既存判定部53から送られてきた登録指令に従って、登録要求に係るDSNのデータを第1のローカルデータ記憶部15a(DSN格納部に相当)に追加格納させる登録管理を行う。また、登録管理部55は、マスターノード13から送られてきた登録指令に従って、登録要求に係るD-CRX、D-CRSおよびD-RIXのデータを第1のローカルデータ記憶部15a(D-CRX格納部、D-CRS格納部およびD-RIX格納部に相当)に格納させる登録管理を行う。これにより、登録要求に係る全てのインデックスデータの登録が完了する。登録管理部55は、DSN登録管理部、D-CRX登録管理部、D-CRS登録管理部およびD-RIX登録管理部に相当する。 The registration management unit 55 performs registration management in which the DSN data related to the registration request is additionally stored in the first local data storage unit 15a (corresponding to the DSN storage unit) in accordance with the registration command sent from the existing determination unit 53. . The registration management unit 55 also stores the D-CRX, D-CRS, and D-RIX data related to the registration request in accordance with the registration command sent from the master node 13 in the first local data storage unit 15a (D-CRX). Registration management to be stored in a storage unit, a D-CRS storage unit, and a D-RIX storage unit). Thereby, registration of all index data related to the registration request is completed. The registration management unit 55 corresponds to a DSN registration management unit, a D-CRX registration management unit, a D-CRS registration management unit, and a D-RIX registration management unit.
 データ操作実行部に相当する第1の分散処理部57は、自ノードに関連するデータ操作要求が生じた場合、第1のローカルデータ記憶部15aに格納された第1のDSN、第1のD-CRX、第1のD-CRS、第1のD-RIXを適宜参照して、要求に係る分散処理を他ノードに対し並列に実行する。第1の分散処理部57は、得られた分散処理結果を第1の応答部59へ渡す。 The first distributed processing unit 57 corresponding to the data operation execution unit, when a data operation request related to its own node occurs, the first DSN and the first D stored in the first local data storage unit 15a. Referring to -CRX, first D-CRS, and first D-RIX as appropriate, the distributed processing related to the request is executed in parallel to other nodes. The first distributed processing unit 57 passes the obtained distributed processing result to the first response unit 59.
 第1の応答部59は、既存判定部53から送られてきた既存確認結果を、マスターノード13のマスター受付部31へ応答する。マスターノード13では、前述したように、マスター受付部31は、受け付けた既存確認結果をNID割当部33に渡す。NID割当部33は、その既存確認結果に基づいて最新共有NID更新制御信号を生成し、これを更新管理部45に送る。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、DB管理データのうち最新共有NIDの更新を制御する。また、第1の応答部59は、第1の分散処理部57から送られてきた分散処理結果を、マスターノード13の処理結果統合部43へ応答する。 The first response unit 59 responds to the master reception unit 31 of the master node 13 with the existing confirmation result sent from the existing determination unit 53. In the master node 13, as described above, the master reception unit 31 passes the received existing confirmation result to the NID allocation unit 33. The NID allocation unit 33 generates the latest shared NID update control signal based on the existing confirmation result, and sends this to the update management unit 45. The update management unit 45 controls the update of the latest shared NID in the DB management data according to the latest shared NID update control signal transmitted from the NID assigning unit 33. Further, the first response unit 59 responds to the processing result integration unit 43 of the master node 13 with the distributed processing result sent from the first distributed processing unit 57.
(キー値登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作)
 次に、キー値登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について説明する。まず、DSNのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について、図5Aを参照して説明する。図5Aは、キー値登録要求に基づくDSNのデータの登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。なお、キー値登録要求は、前述したとおり、タプル単位でマスター受付部31に入力されるのが一般的であるが、タプル単位の入力データを受け付けたマスター受付部31は、タプルに含まれる複数のカラムのうちいずれか一つのカラムに関連付けられたキー値およびそのデータ型の情報を単位として処理を進めるものとする。
(Cooperation between the master node 13 and the slave nodes 15, 17, 19 when a key value registration request is generated)
Next, a cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a key value registration request is generated will be described. First, a cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a DSN data registration request is generated will be described with reference to FIG. 5A. FIG. 5A is a flowchart showing the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a DSN data registration request based on the key value registration request is generated. As described above, the key value registration request is generally input to the master reception unit 31 in units of tuples. However, the master reception unit 31 that has received input data in units of tuples includes a plurality of tuples included in the tuple. It is assumed that the processing proceeds with the key value associated with any one of the columns and the data type information as a unit.
 ステップS11において、マスターノード13のマスター受付部31は、複数のクライアント端末25a,25b,25cのうちいずれか一つより発行されたキー値登録要求を受付けて、その要求をNID割当部33へ渡す。 In step S11, the master reception unit 31 of the master node 13 receives a key value registration request issued from any one of the plurality of client terminals 25a, 25b, and 25c, and passes the request to the NID allocation unit 33. .
 ステップS12において、キー値登録要求を受け付けたNID割当部33は、マスターデータ記憶部13aに記憶されたDB管理データのうち最新共有NIDを参照して、登録要求に係るキー値に対してふさわしい次共有NID(例えば、次共有NIDは最新共有NIDの値を“1”だけインクリメントした値である)を割当てる。NID割当部33で登録要求に係るキー値に対して割り当てられた次共有NIDの情報はインデックス生成部35へと送られる。 In step S12, the NID assigning unit 33 that has received the key value registration request refers to the latest shared NID in the DB management data stored in the master data storage unit 13a, and is appropriate for the key value related to the registration request. A shared NID (for example, the next shared NID is a value obtained by incrementing the value of the latest shared NID by “1”) is assigned. Information on the next shared NID assigned to the key value related to the registration request by the NID assigning unit 33 is sent to the index generating unit 35.
 ステップS13において、マスターノード13のインデックス生成部35は、登録要求に係るキー値と、そのキー値が有するデータ型と、そのキー値に対してNID割当部33で割り当てられた次共有NIDとに基づいて、DSNのデータを生成する。 In step S13, the index generation unit 35 of the master node 13 converts the key value related to the registration request, the data type of the key value, and the next shared NID assigned by the NID assignment unit 33 to the key value. Based on this, DSN data is generated.
 ステップS14において、マスターノード13のノード決定部37は、インデックス生成部35で生成されたDSNのデータの分散格納先となるスレーブノードを、キー値を分散キーとするコンシステント・ハッシュ法によって決定し、その決定内容を分散統括管理部39へ送る。ここでは、CNN=x(ただし、xはa~cのいずれか)の値をもつノードが、DSNの分散格納先となるスレーブノードとして決定されたとする。また、CNN=xの値をもつノードは、第1のスレーブノード15であるとして以降の説明を進める。 In step S14, the node determination unit 37 of the master node 13 determines the slave node that is the distributed storage destination of the DSN data generated by the index generation unit 35 by the consistent hash method using the key value as the distribution key. Then, the decision content is sent to the distributed management unit 39. Here, it is assumed that a node having a value of CNN = x (where x is any one of a to c) is determined as a slave node that is a distributed storage destination of the DSN. Further, the following description will be made assuming that the node having the value of CNN = x is the first slave node 15.
 ステップS15において、マスターノード13の分散統括管理部39に属する要求発行部41は、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたCNN=xの値をもつ第1のスレーブノード15に対し、ステップS13で生成したDSNのデータを送ってデータ登録要求を発行する。 In step S 15, the request issuing unit 41 belonging to the distributed overall management unit 39 of the master node 13 is the node determination unit 37 among the first to third slave nodes 15, 17, 19 under the control of the master node 13. A data registration request is issued by sending the DSN data generated in step S13 to the first slave node 15 having the determined value of CNN = x.
 ここで、マスターノード13での処理の流れの説明が途中であるが、マスターノード13と第1のスレーブノード15との間の協調動作を円滑に説明する便宜上、以下では、CNN=xの値をもつ第1のスレーブノード15での処理内容について説明する。ステップS21において、CNN=xの値をもつ第1のスレーブノード15の第1の受付部51は、マスターノード13の要求発行部41から送られてきたDSNのデータ登録要求を受付けて、その要求を既存判定部53に渡す。 Here, although the description of the processing flow in the master node 13 is in progress, for the sake of convenience in smoothly explaining the cooperative operation between the master node 13 and the first slave node 15, the value of CNN = x will be described below. The contents of processing in the first slave node 15 having In step S21, the first receiving unit 51 of the first slave node 15 having a value of CNN = x receives the DSN data registration request sent from the request issuing unit 41 of the master node 13, and receives the request. Is passed to the existing determination unit 53.
 ステップS22において、CNN=xの値をもつ第1のスレーブノード15の既存判定部53は、第1のローカルデータ記憶部15aの第1のDSNを参照して、登録要求に係るDSNのデータに含まれる処理対象キー値と同じ値のデータが第1のDSNに既に存在するか否かを確認し、この既存確認結果に基づいて、ステップS23において、登録要求に係る処理対象キー値が既に登録済みか否かに係る既存判定を行う。そして、既存判定部53は、既存判定結果に基づいて、登録要求に係る処理対象キー値と、そのキー値に対してユニークなNIDとの組み合わせに係るDSNのデータの登録指令を登録管理部55に対して行う。 In step S22, the existing determination unit 53 of the first slave node 15 having a value of CNN = x refers to the first DSN in the first local data storage unit 15a and sets the DSN data related to the registration request. It is confirmed whether or not data having the same value as the included processing target key value already exists in the first DSN. Based on the existing confirmation result, the processing target key value related to the registration request is already registered in step S23. The existing determination regarding whether or not it is completed is performed. Then, based on the existing determination result, the existing determination unit 53 registers a registration command for the DSN data related to the combination of the processing target key value related to the registration request and the unique NID for the key value. To do.
 ステップS23の既存判定の結果、登録要求に係る処理対象キー値が既に登録済みであると判定された場合、ステップS24において、登録管理部55は、既存判定部53から送られてきた登録指令に従わずに、登録要求に係る処理対象キー値と登録済みのNIDとの対応関係に係るDSNのデータをそのまま維持する。これにより、同一のキー値に対するユニークなNIDの割り当てを担保する。この場合、登録管理部55は、DSNのデータの登録要求をキャンセルする。登録要求に係る処理対象キー値と登録済みのNIDとの対応関係に係るDSNのデータは既に登録済みであり、DSNのデータを追加登録する必要もないからである。 As a result of the existing determination in step S23, if it is determined that the processing target key value related to the registration request has already been registered, the registration management unit 55 in response to the registration command sent from the existing determination unit 53 in step S24. Instead, the DSN data relating to the correspondence between the processing target key value related to the registration request and the registered NID is maintained as it is. This ensures the unique NID assignment for the same key value. In this case, the registration management unit 55 cancels the DSN data registration request. This is because the DSN data related to the correspondence between the processing target key value related to the registration request and the registered NID has already been registered, and it is not necessary to additionally register the DSN data.
 一方、ステップS23の既存判定の結果、登録要求に係る処理対象キー値が未登録の値であると判定された場合、ステップS25において、登録管理部55は、既存判定部53から送られてきた登録指令に従って、登録要求に係る処理対象キー値にふさわしいものとして次共有NIDが割り当てられたDSNのデータを第1のローカルデータ記憶部15aに追加格納する。ここで、次共有NIDが割り当てられたDSNのデータを追加格納するとは、既に蓄積されているDSNのデータを書き換えることなく、次共有NIDが割り当てられたDSNのデータを追加するように格納することをいう。 On the other hand, if it is determined as a result of the existing determination in step S23 that the processing target key value related to the registration request is an unregistered value, the registration management unit 55 is sent from the existing determination unit 53 in step S25. In accordance with the registration command, the DSN data to which the next shared NID is assigned as appropriate for the processing target key value related to the registration request is additionally stored in the first local data storage unit 15a. Here, the additional storage of the DSN data to which the next shared NID is assigned means that the data of the DSN to which the next shared NID is assigned is added without rewriting the already accumulated DSN data. Say.
 ステップS26において、第1のスレーブノード15の第1の応答部59は、ステップS24またはS25の処理後に、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDを、既存確認結果と共にマスターノード13のマスター受付部31へ返し、一連の処理の流れを終了させる。 In step S26, the first response unit 59 of the first slave node 15 displays the NID actually assigned to the processing target key value related to the registration request together with the existing confirmation result after the processing in step S24 or S25. It returns to the master reception part 31 of the master node 13, and complete | finishes the flow of a series of processes.
 ここで、マスターノード13での処理の流れの説明に戻る。ステップS16において、マスターノード13のマスター受付部31は、第1のスレーブノード15から送信されてきた既存確認結果、および登録要求に係る処理対象キー値に対して現実に割り当てられたNIDを受付けて、その結果をNID割当部33へ渡す。ステップS17において、NID割当部33は、登録要求に係る処理対象キー値が既に登録済みか否かに係る既存判定を行う。 Here, the description returns to the process flow in the master node 13. In step S <b> 16, the master reception unit 31 of the master node 13 receives the existing confirmation result transmitted from the first slave node 15 and the NID actually assigned to the processing target key value related to the registration request. The result is passed to the NID allocation unit 33. In step S <b> 17, the NID allocation unit 33 performs an existing determination regarding whether or not the processing target key value related to the registration request has already been registered.
 ステップS17の既存判定の結果、登録要求に係る処理対象キー値が既に登録済みであると判定された場合、ステップS18において、登録要求に係る処理対象キー値がその格納先である第1のスレーブノード15に既に存在する旨の既存確認結果を受けたNID割当部33は、最新共有NIDの更新を禁止する制御信号を生成し、これを更新管理部45に送る。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、最新共有NIDの更新を禁止する。これにより、ステップS12で登録要求に係る処理対象キー値に対して割り当てられた次共有NIDはキャンセルされ、最新共有NIDの値は更新されることなくそのまま維持される。 As a result of the existing determination in step S17, if it is determined that the processing target key value related to the registration request has already been registered, in step S18, the processing target key value related to the registration request is the first slave that is the storage destination. Receiving the existing confirmation result indicating that the node 15 already exists, the NID assigning unit 33 generates a control signal for prohibiting the update of the latest shared NID, and sends the control signal to the update managing unit 45. The update management unit 45 prohibits the update of the latest shared NID according to the latest shared NID update control signal transmitted from the NID assigning unit 33. Thereby, the next shared NID assigned to the processing target key value related to the registration request in step S12 is canceled, and the value of the latest shared NID is maintained as it is without being updated.
 一方、ステップS17の既存判定の結果、登録要求に係るキー値が未登録の値であると判定された場合、ステップS19において、登録要求に係る処理対象キー値がその格納先である第1のスレーブノード15にまだ存在しない旨の既存確認結果を受けたNID割当部33は、最新共有NIDを更新させる制御信号を生成し、これを更新管理部45に送る。更新管理部45は、NID割当部33から送信されてきた最新共有NID更新制御信号に従って、最新共有NIDの値を、ステップS12で登録要求に係るキー値に対して割り当てられた次共有NIDの値に更新する。この更新後に、NID割当部33は、処理の流れを図5BのステップS31へと進ませる。 On the other hand, if it is determined as a result of the existing determination in step S17 that the key value related to the registration request is an unregistered value, in step S19, the processing target key value related to the registration request is the first storage destination. Receiving the existing confirmation result indicating that the slave node 15 does not yet exist, the NID assigning unit 33 generates a control signal for updating the latest shared NID and sends it to the update managing unit 45. In accordance with the latest shared NID update control signal transmitted from the NID assigning unit 33, the update managing unit 45 sets the value of the latest shared NID to the value of the next shared NID assigned to the key value related to the registration request in step S12. Update to After this update, the NID allocation unit 33 advances the process flow to step S31 in FIG. 5B.
 次に、DSNのデータ登録が完了した後に、D-CRX/D-RIXのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について、図5Bを参照して説明する。図5Bは、キー値登録要求に基づくD-CRX/D-RIXのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。 Next, with reference to FIG. 5B, the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a D-CRX / D-RIX data registration request occurs after the DSN data registration is completed. I will explain. FIG. 5B is a flowchart showing the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a D-CRX / D-RIX data registration request based on the key value registration request is generated.
 ステップS31において、マスターノード13のNID割当部33は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDを参照して、そのNIDの関数であるブロック番号(D-CRX-BNおよびD-RIX-BN)を演算する。具体的には、「D-CRX-BNは、NIDをD-CRX-BFで割った商」と、「D-RIX-BNは、NIDをD-RIX-BFで割った商」をそれぞれ演算により求める。 In step S31, the NID assigning unit 33 of the master node 13 refers to the NID actually assigned to the processing target key value related to the registration request, and the block number (D-CRX-BN) which is a function of the NID. And D-RIX-BN). Specifically, “D-CRX-BN is the quotient obtained by dividing NID by D-CRX-BF” and “D-RIX-BN is the quotient obtained by dividing NID by D-RIX-BF”, respectively. Ask for.
 ステップS32において、マスターノード13のインデックス生成部35は、登録要求に係る処理対象キー値と、そのキー値に対して現実に割り当てられたNIDと、登録要求に係る処理対象キー値が属するカラム名とに基づいて、D-CRXのデータを生成する。 In step S32, the index generation unit 35 of the master node 13 determines the processing target key value related to the registration request, the NID actually assigned to the key value, and the column name to which the processing target key value related to the registration request belongs. Based on the above, D-CRX data is generated.
 ステップS33において、マスターノード13のインデックス生成部35は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDと、そのNIDに対応するRID集合と、登録要求に係る処理対象キー値が属するカラム名とに基づいて、D-RIXのデータを生成する。 In step S33, the index generation unit 35 of the master node 13 actually assigns the NID assigned to the processing target key value related to the registration request, the RID set corresponding to the NID, and the processing target key value related to the registration request. D-RIX data is generated based on the column name to which the file belongs.
 ステップS34において、マスターノード13のノード決定部37は、インデックス生成部35で生成されたD-CRXおよびD-RIXのデータの分散格納先となるスレーブノードを、ステップS31で求めたNIDの関数であるブロック番号(D-CRX-BNおよびD-RIX-BN)を分散キーとするコンシステント・ハッシュ法によって決定し、その決定内容を分散統括管理部39へ送る。ここでは、CNN=y(ただし、yはa~cのいずれか)の値をもつノードが、D-CRXおよびD-RIXのデータの分散格納先となるスレーブノードとして決定されたとする。また、CNN=yの値をもつノードは、第1のスレーブノード15であるとして以降の説明を進める。 In step S34, the node determination unit 37 of the master node 13 uses the NID function obtained in step S31 to determine the slave nodes that are the distributed storage destinations of the D-CRX and D-RIX data generated by the index generation unit 35. It is determined by a consistent hash method using a certain block number (D-CRX-BN and D-RIX-BN) as a distribution key, and the determined content is sent to the distribution management unit 39. Here, it is assumed that a node having a value of CNN = y (where y is any of a to c) is determined as a slave node serving as a distributed storage destination of D-CRX and D-RIX data. Further, the following description will be made assuming that the node having the value of CNN = y is the first slave node 15.
 ステップS35において、マスターノード13の分散統括管理部39に属する要求発行部41は、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたCNN=yの値をもつ第1のスレーブノード15に対し、ステップS32で生成したD-CRXのデータ、および、ステップS33で生成したD-RIXのデータを送ってデータ登録要求を発行する。このデータ登録要求の発行後に、マスターノード13の分散統括管理部39は、処理の流れを図5CのステップS51へと進ませる。 In step S 35, the request issuing unit 41 belonging to the distributed overall management unit 39 of the master node 13 is the node determination unit 37 among the first to third slave nodes 15, 17, 19 under the control of the master node 13. A data registration request is issued by sending the D-CRX data generated in step S32 and the D-RIX data generated in step S33 to the first slave node 15 having the determined value of CNN = y. To do. After issuing this data registration request, the distributed overall management unit 39 of the master node 13 advances the processing flow to step S51 in FIG. 5C.
 ここで、マスターノード13での処理の流れの説明が途中であるが、マスターノード13と第1のスレーブノード15との間の協調動作を円滑に説明する便宜上、以下では、CNN=yの値をもつ第1のスレーブノード15での処理内容について説明する。ステップS41において、CNN=yの値をもつ第1のスレーブノード15の第1の受付部51は、マスターノード13の要求発行部41から送られてきたD-CRXおよびD-RIXのデータの登録要求を受付けて、その要求を既存判定部53を介して登録管理部55に渡す。 Here, although the description of the processing flow in the master node 13 is in progress, for the sake of convenience in smoothly explaining the cooperative operation between the master node 13 and the first slave node 15, the value of CNN = y is described below. The contents of processing in the first slave node 15 having In step S41, the first receiving unit 51 of the first slave node 15 having a value of CNN = y registers the D-CRX and D-RIX data sent from the request issuing unit 41 of the master node 13. The request is accepted, and the request is passed to the registration management unit 55 via the existing determination unit 53.
 ステップS42~S43において、CNN=yの値をもつ第1のスレーブノード15の登録管理部55は、マスターノード13の要求発行部41から送られてきた登録要求に応じて、D-CRXおよびD-RIXのデータをカラム毎に分けて第1のローカルデータ記憶部15aにそれぞれ格納させる。ステップS42~S43においてD-CRXおよびD-RIXのデータの格納後に、第1のスレーブノード15の登録管理部55は、一連の処理の流れを終了させる。 In steps S42 to S43, the registration management unit 55 of the first slave node 15 having a value of CNN = y responds to the registration request sent from the request issuing unit 41 of the master node 13 with D-CRX and D -RIX data is divided into columns and stored in the first local data storage unit 15a. After storing the D-CRX and D-RIX data in steps S42 to S43, the registration management unit 55 of the first slave node 15 ends the series of processing flow.
 次に、D-CRXおよびD-RIXのデータ登録が完了した後に、D-CRSのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作について、図5Cを参照して説明する。図5Cは、キー値登録要求に基づくD-CRSのデータ登録要求が生じた場合のマスターノード13とスレーブノード15,17,19との協調動作を示すフロー図である。 Next, FIG. 5C shows the cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when the D-CRS data registration request is made after the D-CRX and D-RIX data registration is completed. The description will be given with reference. FIG. 5C is a flowchart showing a cooperative operation between the master node 13 and the slave nodes 15, 17, and 19 when a D-CRS data registration request based on the key value registration request is generated.
 ステップS51において、マスターノード13のNID割当部33は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDに対応するRIDを参照して、そのRIDの関数であるブロック番号(D-CRS-BN)を演算する。具体的には、「D-CRS-BNは、RIDをD-CRS-BFで割った商」を演算により求める。 In step S51, the NID allocation unit 33 of the master node 13 refers to the RID corresponding to the NID actually allocated to the processing target key value related to the registration request, and the block number (D -CRS-BN). Specifically, “D-CRS-BN is a quotient obtained by dividing RID by D-CRS-BF” is obtained by calculation.
 ステップS52において、マスターノード13のインデックス生成部35は、登録要求に係る処理対象キー値に対して現実に割り当てられたNIDと、登録要求に係る処理対象キー値が属するRIDと、登録要求に係る処理対象キー値が属するカラム名とに基づいて、D-CRSのデータを生成する。 In step S52, the index generating unit 35 of the master node 13 relates to the NID actually assigned to the processing target key value related to the registration request, the RID to which the processing target key value related to the registration request belongs, and the registration request. Based on the column name to which the processing target key value belongs, D-CRS data is generated.
 ステップS53において、マスターノード13のノード決定部37は、インデックス生成部35で生成されたD-CRSのデータの分散格納先となるスレーブノードを、ステップS51で求めたRIDの関数であるブロック番号(D-CRS-BN)を分散キーとするコンシステント・ハッシュ法によって決定し、その決定内容を分散統括管理部39へ送る。ここでは、CNN=z(ただし、zはa~cのいずれか)の値をもつノードが、D-CRSの分散格納先となるスレーブノードとして決定されたとする。また、CNN=zの値をもつノードは、第1のスレーブノード15であるとして以降の説明を進める。 In step S53, the node determination unit 37 of the master node 13 determines the slave node that is the distributed storage destination of the D-CRS data generated by the index generation unit 35 as a block number (RID function obtained in step S51). D-CRS-BN) is determined by a consistent hash method using a distribution key, and the determined content is sent to the distribution management unit 39. Here, it is assumed that a node having a value of CNN = z (where z is any one of a to c) is determined as a slave node serving as a D-CRS distributed storage destination. Further, the following description will be made assuming that the node having the value of CNN = z is the first slave node 15.
 ステップS54において、マスターノード13の分散統括管理部39に属する要求発行部41は、マスターノード13の支配下にある第1~第3のスレーブノード15,17,19のうち、ノード決定部37で決定されたCNN=zの値をもつ第1のスレーブノード15に対し、ステップS52で生成したD-CRSのデータを送ってデータ登録要求を発行する。このデータ登録要求の発行後に、マスターノード13の分散統括管理部39は、一連の処理の流れを終了させる。 In step S 54, the request issuing unit 41 belonging to the distributed overall management unit 39 of the master node 13 is the node determination unit 37 among the first to third slave nodes 15, 17, 19 under the control of the master node 13. The D-CRS data generated in step S52 is sent to the first slave node 15 having the determined value of CNN = z to issue a data registration request. After issuing this data registration request, the distributed overall management unit 39 of the master node 13 terminates the series of processing flow.
 次に、ステップS61において、CNN=zの値をもつ第1のスレーブノード15の第1の受付部51は、マスターノード13の要求発行部41から送られてきたD-CRSのデータの登録要求を受付けて、その要求を既存判定部53を介して登録管理部55に渡す。 Next, in step S61, the first receiving unit 51 of the first slave node 15 having a value of CNN = z sends a registration request for D-CRS data sent from the request issuing unit 41 of the master node 13. And passes the request to the registration management unit 55 via the existing determination unit 53.
 ステップS62において、CNN=zの値をもつ第1のスレーブノード15の登録管理部55は、マスターノード13の要求発行部41から送られてきた登録要求に応じて、D-CRSのデータをカラム毎に分けて第1のローカルデータ記憶部15aに格納させる。ステップS62のD-CRSのデータの格納後に、第1のスレーブノード15の登録管理部55は、一連の処理の流れを終了させる。 In step S 62, the registration management unit 55 of the first slave node 15 having a value of CNN = z displays the D-CRS data in the column according to the registration request sent from the request issuing unit 41 of the master node 13. Each of them is stored in the first local data storage unit 15a. After storing the D-CRS data in step S62, the registration management unit 55 of the first slave node 15 ends the series of processes.
 上述のようにして登録された4種類のインデックスデータは、膨大な量のデータからなる分散型RDBを対象として、第1~第3のスレーブノード15,17,19が表結合操作などの処理を並列に分散して実行する際に、その威力を発揮する。特に、本実施形態に係る分散型RDBシステム11は、例えばWWW(World Wide Web)経由で分散型RDBサービスを提供するに際し、急激な需要増大への柔軟な対応を狙ってシステム内のノードの台数を増設し、増設後の複数の各ノードに分散格納されたデータに対して表結合操作などのデータ操作を実行した場合であっても、増設前後でのシステム全体としての処理能力を線形に向上させ得る線形スケールアウト性を実現することができる。以下では、4種類のインデックスデータを導入することによって、どのようにしてシステム全体としての処理能力を効率的に向上させ、また、線形スケールアウト性を実現することができるのかについて、分散クエリー処理を例示して説明する。 The four types of index data registered as described above are processed by the first to third slave nodes 15, 17, and 19, such as a table join operation, for a distributed RDB consisting of a huge amount of data. Demonstrates its power when distributed and executed in parallel. In particular, when the distributed RDB system 11 according to the present embodiment provides a distributed RDB service via, for example, WWW (World Wide Web), the number of nodes in the system is aimed at flexible response to a sudden increase in demand. Even when data operations such as table join operations are performed on data distributed and stored in multiple nodes after expansion, the overall processing capacity of the system before and after the expansion is linearly improved. The linear scale-out property that can be achieved can be realized. In the following, we introduce distributed query processing on how to improve the processing capacity of the system as a whole and to achieve linear scale-out by introducing four types of index data. An example will be described.
 図6は、分散クエリー処理の流れを示す工程図である。図6に示す分散クエリー処理は、ステップS71の分散検索処理と、ステップS72の分散表結合処理と、ステップS73の集計用としての分散結果タプル作成処理となどから構成される。 FIG. 6 is a process diagram showing the flow of distributed query processing. The distributed query process shown in FIG. 6 includes a distributed search process in step S71, a distributed table join process in step S72, a distributed result tuple creation process for aggregation in step S73, and the like.
 ステップS71の分散検索処理と、ステップS72の分散表結合処理と、ステップS73の集計用としての分散結果タプル作成処理とは、第1~第3のスレーブノード15,17,19で並列に実行可能である。上流側フェーズの結果を用いて処理を実行するステップS72の工程では、上流側工程(ステップS71)の処理が全てのノードで完了するまでその処理を実行することができない。 The distributed search process in step S71, the distributed table join process in step S72, and the distributed result tuple creation process in step S73 can be executed in parallel by the first to third slave nodes 15, 17, and 19. It is. In the process of step S72 in which the process is executed using the result of the upstream phase, the process cannot be executed until the process of the upstream process (step S71) is completed in all the nodes.
 ここで、分散クエリー処理の流れを説明するに先立って、説明に用いることばの意味を定義しておく。
 検索式は、検索項と、論理演算子と、演算の優先順位を制御する括弧とからなる。これらの任意の組合せによって検索式が構成される。
 検索項は、左辺項と、比較演算子と、右辺項とからなる。左辺項は、列名もしくはリテラル(実値)からなる。右辺項は、列名もしくはリテラル(実値)からなる。比較演算子は、等しい「=」、等しくない「≠」、大なり「>」、大なりイコール「≧」、小なり「<」、小なりイコール「≦」からなる。
Here, prior to explaining the flow of distributed query processing, the meaning of words used in the explanation is defined.
The search expression includes a search term, a logical operator, and parentheses that control the priority of operations. A search expression is constituted by any combination of these.
The search term includes a left side term, a comparison operator, and a right side term. The left-hand side consists of a column name or a literal (actual value). The right-hand side consists of a column name or a literal (actual value). The comparison operators are equal “=”, not equal “≠”, greater than “>”, greater than equal “≧”, less than “<”, and less than equal “≦”.
 論理演算子は、AND「&」、OR「|」、NOT「¬」からなる。ANDは積演算、ORは和演算、NOTは否定演算を行う。括弧は、開き括弧「(」および閉じ括弧「)」からなる。 The logical operator consists of AND “&”, OR “|”, and NOT “¬”. AND is a product operation, OR is a sum operation, and NOT is a negative operation. The parentheses consist of an opening parenthesis “(” and a closing parenthesis “)”.
 検索では、全スレーブノードにおいてキー値それ自体を検索キーとするD-CRXの検索を行った後、この検索により抽出されたNID集合を検索キーとするD-CRSの検索を行い、検索結果としてのRID集合を取得する。範囲検索(例えば、数値型のデータを対象として、始値と終値による指定範囲に属するキー値を抽出する検索)では、全スレーブノードにおいてキー値の指定範囲を与えてD-CRXの検索を行った後、この検索により抽出されたNID集合を検索キーとするD-CRSの検索を行い、検索結果としてのRID集合を取得する。部分一致検索(例えば、文字列型のデータを対象として、指定文字列を少なくとも一部に有するキー値を抽出する検索)では、全スレーブノードにおいてキー値の指定文字列を与えてD-CRXの検索を行った後、この検索により抽出されたNID集合を検索キーとするD-CRSの検索を行い、検索結果としてのRID集合を取得する。 In the search, after searching for D-CRX using the key value itself as a search key in all slave nodes, D-CRS is searched using the NID set extracted by this search as the search key. The RID set of is acquired. In a range search (for example, a search for extracting key values belonging to a specified range based on a start price and an end price for numeric data), a D-CRX search is performed by giving a specified range of key values in all slave nodes. Thereafter, a D-CRS search is performed using the NID set extracted by this search as a search key, and an RID set as a search result is obtained. In a partial match search (for example, a search for extracting a key value having at least a part of a specified character string for character string type data), the specified character string of the key value is given to all slave nodes and the D-CRX After the search, a D-CRS search is performed using the NID set extracted by this search as a search key, and an RID set as a search result is acquired.
 表結合とは、外部表と内部表との表結合操作を意味する。外部表は、表結合の基準となる表である。内部表は、外部表に対する表結合の相手となる表である。外部表と内部表は、結合カラムの値によって結合される。結合カラムとは、外部表と内部表とに共通して存在するカラムであって、そのカラムを介して外部表と内部表との結合を行わせる役割をもつカラムである。外部表の結合カラムを外部表外部キーカラム、内部表の結合カラムを内部表主キーカラムと呼ぶ。表結合操作を繰り返すことによって、複数の表を結合することができる。 “Table join” means a table join operation between an outer table and an inner table. An external table is a table that serves as a basis for table join. The inner table is a table that becomes a partner of the table join to the outer table. The outer table and inner table are joined by the value of the join column. The joined column is a column that exists in common between the outer table and the inner table, and has a role of allowing the outer table and the inner table to be joined through the column. The outer table join column is called the outer table outer key column, and the inner table join column is called the inner table primary key column. Multiple tables can be joined by repeating the table join operation.
 次に、図6に示すステップS71の分散検索処理の内容について、図2A,図2Bを参照しながら、具体例をあげて説明する。単一項での完全一致検索の実施例1として、“地域名”が“関東”であるキー値をRID集合として抽出する例を挙げる。この実施例1では、まず、マスターノード13からの検索要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、検索式から検索項を抽出し、検索項集合{地域名=“関東”}を求める。そして、カラム名が“地域名”のD-CRX(CNN=a~c)を対象として、検索項集合の元{地域名=“関東”}を用いて第1~第3のスレーブノード15,17,19の分散処理部で一斉に検索を実行する。この検索により、元{地域名=“関東”}からNID集合={6}を得る。 Next, the content of the distributed search process in step S71 shown in FIG. 6 will be described with reference to FIGS. 2A and 2B with specific examples. As a first example of a complete match search using a single term, an example in which a key value whose “region name” is “Kanto” is extracted as an RID set will be described. In the first embodiment, first, the distributed processing units of the first to third slave nodes 15, 17, 19 that have received the search request from the master node 13 extract the search terms from the search formula, and set the search term set { Find the region name = "Kanto"}. Then, for the D-CRX (CNN = a to c) whose column name is “area name”, the first to third slave nodes 15, using the element {area name = “Kanto”} of the search term set, The search is performed simultaneously by the distributed processing units 17 and 19. By this search, the NID set = {6} is obtained from the original {area name = “Kanto”}.
 ここで、D-CRX(CNN=a~c)を対象とする一斉検索では、フルスキャン照合を要することなく、検索条件に合致したキー値がヒットした時点において検索をやめることができる。D-CRXは、あるカラム内でのキー値の重複を許さないデータ構造を採用しているからである。従って、D-CRXのデータ構造によれば、検索時間の短縮化に寄与することができる(以下、同様)。 Here, in the simultaneous search for D-CRX (CNN = a to c), the search can be stopped when the key value matching the search condition is hit without requiring a full scan collation. This is because D-CRX employs a data structure that does not allow duplication of key values within a certain column. Therefore, according to the data structure of D-CRX, it is possible to contribute to shortening the search time (the same applies hereinafter).
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、カラム名が“地域名”のD-CRS(CNN=a~c)を対象として、元単位にNID集合={6}でフルスキャン照合することにより、そのNID集合の値に合致したRID集合を求める。この処理を第1~第3のスレーブノード15,17,19の分散処理部で一斉に行うことにより、RID集合={2,3,7,9}を取得する。RID集合={2,3,7,9}が求める答えとなる。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 target N-ID sets = D-CRS (CNN = a to c) whose column name is “region name” as an object unit = By performing full scan collation with {6}, an RID set that matches the value of the NID set is obtained. This processing is performed simultaneously by the distributed processing units of the first to third slave nodes 15, 17, 19 to obtain RID set = {2, 3, 7, 9}. RID set = {2, 3, 7, 9} is the answer to be obtained.
 ここで、D-CRSを対象とするNID集合の値検索は、フルスキャン照合を要するにも関わらず、比較的短時間で完遂することができる。これは、前段のD-CRXを用いた検索により、実値であるキー値をNID(例えば自然数)に代替し、代替したNIDの値を用いてフルスキャン照合を行っているからである。第1~第3のスレーブノード15,17,19の分散処理部では、NIDは固定幅のバイナリー整数値で表現されるため、実値であるキー値に比べて検索や参照において格段に効率が良い。従って、D-CRXおよびD-CRSの組み合わせに係るデータ検索によれば、検索時間の短縮化に寄与することができる(以下、同様)。 Here, the value search of the NID set for D-CRS can be completed in a relatively short time, although full scan verification is required. This is because the actual key value is replaced with an NID (for example, a natural number) by a search using D-CRX in the previous stage, and full scan collation is performed using the replaced NID value. In the distributed processing units of the first to third slave nodes 15, 17, and 19, the NID is expressed by a fixed-width binary integer value, so that it is much more efficient in search and reference than the actual key value. good. Therefore, according to the data search related to the combination of D-CRX and D-CRS, it is possible to contribute to shortening the search time (the same applies hereinafter).
 複数項(単一項の組み合わせ)での完全一致検索としては、例えば、“地域名”が“関東”であるキー値、または、“地域名”が“関西”であるキー値をRID集合として抽出する実施例2を挙げる。この実施例2では、各単一項での検索条件をそれぞれ用いて、実施例1の手順により単一項での完全一致検索を各々実行し、得られたRID集合同士の論理和(OR)演算を行うことにより、目的とするRID集合を得ることができる。 As an exact match search in a plurality of terms (combination of single terms), for example, a key value whose “region name” is “Kanto” or a key value whose “region name” is “Kansai” is used as an RID set. Example 2 to extract is given. In the second embodiment, each of the search conditions in each single term is used to execute a complete match search in a single term according to the procedure in the first embodiment, and a logical sum (OR) between the obtained RID sets is obtained. A target RID set can be obtained by performing the calculation.
 単一項での範囲検索の実施例3として、“価格”が500000以上かつ800000以下であるRID集合を抽出する例を挙げる。この実施例3では、まず、マスターノード13からの検索要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、検索式から検索項を抽出し、検索項集合{[価格≧500000,価格≦800000]}を求める。そして、カラム名が“価格”のD-CRX(CNN=a~c)を対象として、検索項集合の元{[価格≧500000,価格≦800000]}を用いて第1~第3のスレーブノード15,17,19の分散処理部で一斉に検索を実行する。この検索により、第1の元{[価格≧500000]}からNID集合={5,8,11,14,22,30}を得る。第2の元{[価格≦800000]}からNID集合={2,8,11,17,22,30}を得る。次に、第1~第3のスレーブノード15,17,19の分散処理部は、第1および第2の元毎のNID集合を検索式に当てはめてNID集合同士の論理積(AND)演算を求め、検索結果としてのNID集合={8,11,22,30}を求める。そして、カラム名が“価格”のD-CRS(CNN=a~c)を対象として、元単位にNID集合={8,11,22,30}でフルスキャン照合することにより、そのNID集合の値に合致したRID集合を求める。 As a third example of the range search in a single term, an example in which an RID set whose “price” is 500,000 or more and 800,000 or less is extracted. In the third embodiment, first, the distributed processing units of the first to third slave nodes 15, 17, 19 that have received the search request from the master node 13 extract the search terms from the search formula, and the search term set { [Price ≧ 500000, Price ≦ 800000]} is obtained. Then, for the D-CRX (CNN = a to c) whose column name is “price”, the first to third slave nodes using the element {[price ≧ 500000, price ≦ 800000]} of the search term set Searches are simultaneously performed by the distributed processing units 15, 17, and 19. By this search, the NID set = {5, 8, 11, 14, 22, 30} is obtained from the first element {[price ≧ 500000]}. NID set = {2, 8, 11, 17, 22, 30} is obtained from the second element {[price ≦ 800000]}. Next, the distributed processing units of the first to third slave nodes 15, 17 and 19 apply the NID sets of the first and second elements to the search formula and perform a logical product (AND) operation between the NID sets. The NID set = {8, 11, 22, 30} as the search result is obtained. Then, for the D-CRS (CNN = a to c) whose column name is “price”, by performing a full scan collation with the NID set = {8, 11, 22, 30} in the original unit, Find the RID set that matches the value.
 単一項での部分一致検索の実施例4として、「“地域名”=LIKE”%関%“」(SQL表記法に従うと、LIKEは曖昧検索指示のキーワード、%はワイルドカード記号を表わす。この例の場合、“地域名”が”関“の文字列を含むキー値を検索する。)の検索条件に合致するキー値をRID集合として抽出する例を挙げる。この実施例4では、まず、マスターノード13からの検索要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、検索式から検索項を抽出し、検索項集合{“地域名”=LIKE”%関%“}を求める。そして、カラム名が“地域名”のD-CRX(CNN=a~c)を対象として、検索項集合の元{“地域名”=LIKE”%関%“}を用いて第1~第3のスレーブノード15,17,19の分散処理部で一斉に検索を実行する。この検索により、元{“地域名”=LIKE”%関%“}からNID集合={6,33}を得る。 As a fourth example of partial match search in a single term, ““ area name ”= LIKE”% relation% ”(in accordance with SQL notation, LIKE represents a keyword for an ambiguous search instruction, and% represents a wild card symbol. In the case of this example, an example of extracting a key value that matches a search condition of “search for a key value including a character string having“ region name ”as“ related ”” as an RID set will be given. In the fourth embodiment, first, the distributed processing units of the first to third slave nodes 15, 17, 19 that have received the search request from the master node 13 extract the search terms from the search formula, and set the search term set { "Region name" = LIKE "% relation%"} is obtained. Then, for the D-CRX (CNN = a to c) whose column name is “region name”, the first to third using the element {“region name” = LIKE ”% relation“} of the search term set. Searches are simultaneously performed by the distributed processing units of the slave nodes 15, 17, and 19. By this search, the NID set = {6, 33} is obtained from the source {“area name” = LIKE ”% relation%”}.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、カラム名が“地域名”のD-CRS(CNN=a~c)を対象として、元単位にNID集合={6,33}でフルスキャン照合することにより、そのNID集合の値に合致したRID集合を求める。この処理を第1~第3のスレーブノード15,17,19の分散処理部で一斉に行うことにより、RID集合={2,3,7,9,12,15}を取得する。このRID集合={2,3,7,9,12,15}が求める答えとなる。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 target N-ID sets = D-CRS (CNN = a to c) whose column name is “region name” as an object unit = By performing full scan collation with {6, 33}, an RID set that matches the value of the NID set is obtained. This processing is performed simultaneously by the distributed processing units of the first to third slave nodes 15, 17 and 19, thereby obtaining RID set = {2, 3, 7, 9, 12, 15}. This RID set = {2, 3, 7, 9, 12, 15} is the answer to be obtained.
 複数項(単一項の組み合わせ)での部分一致検索としては、例えば、“地域名”が”関“の文字列を含むキー値、または、“地域名”が”東“の文字列を含むキー値をRID集合として抽出する実施例5を挙げる。この実施例5では、各単一項での検索条件をそれぞれ用いて、実施例4の手順により単一項での部分一致検索を各々実行し、得られたRID集合同士の論理和(OR)演算を行うことにより、検索結果としてのRID集合を得ることができる。 As a partial match search with multiple terms (combination of single terms), for example, a key value including the character string of “Region name” is “Seki” or a character string of “Region name” is “East” A fifth embodiment in which key values are extracted as RID sets will be described. In the fifth embodiment, a partial match search in a single term is executed by the procedure in the fourth embodiment using search conditions in each single term, respectively, and a logical sum (OR) between the obtained RID sets is obtained. By performing the calculation, an RID set as a search result can be obtained.
 次に、図6に示すステップS72の分散表結合処理の手順について、図2A,図2B、図7および図8を参照しながら、具体例をあげて説明する。図7は、複数のスレーブノード15,17,19に分散格納される地域別顧客数の内部表を示す図である。図8は、図7に示す内部表のD-RIXの一例を示す図である。実施例6では、第1~第3のスレーブノード15,17,19の分散処理部において、結合カラムのD-RIXを参照して外部表と内部表との結合結果を求める。実施例6において、複数のスレーブノード15,17,19に分散格納された売上管理表(トランザクション)を示す図2A,図2Bは、外部表として位置づけられる。複数のスレーブノード15,17,19に分散格納された地域別顧客数を示す図7は、内部表として位置づけられる。実施例6において、結合カラムは“地域名”である。 Next, the procedure of the distributed table join process in step S72 shown in FIG. 6 will be described with reference to FIGS. 2A, 2B, 7 and 8. FIG. 7 is a diagram showing an internal table of the number of customers by region that are distributed and stored in the plurality of slave nodes 15, 17, and 19. FIG. 8 is a diagram showing an example of D-RIX in the internal table shown in FIG. In the sixth embodiment, the distributed processing units of the first to third slave nodes 15, 17, and 19 obtain the result of joining the outer table and the inner table with reference to the D-RIX of the joined column. In the sixth embodiment, FIGS. 2A and 2B showing sales management tables (transactions) distributedly stored in a plurality of slave nodes 15, 17, and 19 are positioned as external tables. FIG. 7 showing the number of customers by region distributedly stored in the plurality of slave nodes 15, 17 and 19 is positioned as an internal table. In Example 6, the combined column is “area name”.
 この実施例6では、まず、マスターノード13からの表結合操作要求を受けた第1~第3のスレーブノード15,17,19の分散処理部は、外部表のD-RIX(以下、「OTFK-D-RIX」と省略する)から、外部表外部キーカラムのNID(以下、「OTFK-NID」と省略する)集合をそれぞれ取得する。具体的には、例えば第1のスレーブノード(CNN=a)15では、図3Dに示す“地域名”のカラムからOTFK-NID集合{2,6,25}を取得する。 In the sixth embodiment, first, the distributed processing units of the first to third slave nodes 15, 17 and 19 that have received the table join operation request from the master node 13 perform D-RIX (hereinafter “OTFK”) of the external table. NID (hereinafter abbreviated as “OTFK-NID”) sets of the external table external key columns are respectively acquired from “-D-RIX”. Specifically, for example, the first slave node (CNN = a) 15 acquires the OTFK-NID set {2, 6, 25} from the “region name” column shown in FIG. 3D.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、OTFK-NID集合の元(NID)を検索条件として用いて、内部表主キーカラムのD-RIX(以下、「ITPK-D-RIX」と省略する)をそれぞれ検索する。具体的には、例えば第1のスレーブノード(CNN=a)15では、OTFK-NID集合の元{2,6,25}を検索条件として用いて、図8に示す“地域名”のカラムから、OTFK-NID集合の元{2,6,25}に合致する内部表主キーカラムのNID(以下、「ITPK-NID」と省略する)集合を検索する。この検索により、ITPK-NID集合{2,6,25}が得られる。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 use the element (NID) of the OTFK-NID set as a search condition, and D-RIX (hereinafter, “ Search for “ITPK-D-RIX”. Specifically, for example, in the first slave node (CNN = a) 15, using the element {2, 6, 25} of the OTFK-NID set as a search condition, the column “region name” shown in FIG. , The NID (hereinafter abbreviated as “ITPK-NID”) set of the internal table primary key column that matches the element {2, 6, 25} of the OTFK-NID set is searched. By this search, an ITPK-NID set {2, 6, 25} is obtained.
 ITPK-NID集合の検索が成功した場合、第1~第3のスレーブノード15,17,19の分散処理部は、OTFK-D-RIXの目標カラム(外部表外部キーカラム)から、OTFK-NID集合に対応する外部表RID(以下「OTRID」と省略する)集合をそれぞれ取得する。具体的には、例えば第1のスレーブノード(CNN=a)15では、図3Dに示す“地域名”のカラムから、OTFK-NID集合{2,6,25}に対応するOTRID集合{1,2,3,5,7,8,9,10,14}を取得する。 When the search for the ITPK-NID set is successful, the distributed processing units of the first to third slave nodes 15, 17, 19 start from the target column (external table external key column) of the OTFK-D-RIX to the OTFK-NID set. The external table RID (hereinafter abbreviated as “OTRID”) set corresponding to is acquired. Specifically, for example, in the first slave node (CNN = a) 15, from the column of “area name” shown in FIG. 3D, the OTRID set {1, 2, 25} corresponding to the OTFK-NID set {2, 6, 25} 2, 3, 5, 7, 8, 9, 10, 14}.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、ITPK-D-RIXの目標カラム(内部表主キーカラム)から、ITPK-NID集合に対応する内部表RID(以下「ITRID」と省略する)集合をそれぞれ取得する。具体的には、例えば第1のスレーブノード(CNN=a)15では、図8に示す“地域名”のカラムから、ITPK-NID集合{2,6,25}に対応するITRID集合{1,2,7}を取得する。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 start from the ITPK-D-RIX target column (internal table main key column) to the internal table RID (hereinafter referred to as the ITPK-NID set). Each of the sets is acquired. Specifically, for example, in the first slave node (CNN = a) 15, from the column of “area name” shown in FIG. 8, the ITRID set {1, 2, 25} corresponding to the ITPK-NID set {2, 6, 25}. 2,7}.
 そして、第1~第3のスレーブノード15,17,19の分散処理部は、外部表RIDに対応する内部表RIDの対照表(以下、「REF-OTRID-ITRID」と省略する)をそれぞれ作成する。REF-OTRID-ITRIDは、相互に共通のOTFK-NIDおよびITPK-NIDを間にはさんで、外部表RIDとこれに対応する内部表RIDとを結びつける役割を果たす。これにより、図9に示すようなRID対照表が得られる。 Then, the distributed processing units of the first to third slave nodes 15, 17, and 19 respectively create a comparison table (hereinafter abbreviated as “REF-OTRID-ITRID”) of the internal table RID corresponding to the external table RID. To do. The REF-OTRID-ITRID plays a role of connecting the external table RID and the corresponding internal table RID with the common OTFK-NID and ITPK-NID in between. Thereby, the RID comparison table as shown in FIG. 9 is obtained.
 結合条件が複数ある場合には、第1~第3のスレーブノード15,17,19の分散処理部は、複数の結合条件のそれぞれ毎に、実施例6の手順に従ってREF-OTRID-ITRIDをそれぞれ作成し、得られたREF-OTRID-ITRID同士に論理演算を施すことにより、結合結果としてのREF-OTRID-ITRID(RID対照表)を、複数のスレーブノード15,17,19のそれぞれ毎に得ることができる。 When there are a plurality of coupling conditions, the distributed processing units of the first to third slave nodes 15, 17 and 19 respectively provide the REF-OTRID-ITRID according to the procedure of Embodiment 6 for each of the plurality of coupling conditions. REF-OTRID-ITRID (RID comparison table) as a combined result is obtained for each of the plurality of slave nodes 15, 17, 19 by performing a logical operation between the created REF-OTRID-ITRIDs. be able to.
 実施例6に係る結合結果としてのRID対照表は、複数のスレーブノード15,17,19のそれぞれ毎に分散格納されたREF-OTRID-ITRIDによって表現される。この結合結果としてのRID対照表のデータ構造は、RDBにおけるデータの格納効率および処理効率に多大な影響を与える。巨大になりがちな結合表を実値ベースで作成することなしに、結合表と同等の機能を果たすことができるからである。第1~第3のスレーブノード15,17,19の分散処理部では、外部表を基準としてREF-OTRID-ITRIDを順に辿ることによって、外部表における目標カラム(外部表外部キーカラム)のRIDをポインタとして用いて、内部表における目標カラム(内部表主キーカラム)のRIDを効率的に参照することができる。目標カラム(外部表外部キーカラムまたは内部表主キーカラム)に属する実表(外部表または内部表)のRIDが得られれば、そのRIDをポインタとしてD-CRSを参照することにより、対応するNIDを取得することができる。NIDが得られれば、そのNIDをポインタとしてD-CRXを参照することにより、対応するキー値を取得することができる。 The RID comparison table as a combination result according to the sixth embodiment is expressed by REF-OTRID-ITRID distributedly stored for each of the plurality of slave nodes 15, 17, and 19. The data structure of the RID comparison table as a result of this combination greatly affects the storage efficiency and processing efficiency of data in the RDB. This is because a function equivalent to that of a join table can be achieved without creating a join table that tends to be huge on a real value basis. In the distributed processing units of the first to third slave nodes 15, 17, and 19, the RID of the target column (external table external key column) in the external table is pointed by sequentially tracing REF-OTRID-ITRID with the external table as a reference. Can be used to efficiently refer to the RID of the target column (inner table main key column) in the inner table. If the RID of the base table (external table or internal table) belonging to the target column (external table external key column or internal table primary key column) is obtained, the corresponding NID is obtained by referring to the D-CRS using the RID as a pointer can do. If the NID is obtained, the corresponding key value can be obtained by referring to the D-CRX using the NID as a pointer.
 検索結果のデータ構造は、外部表のRID集合として表現される。これに対し、結合結果のデータ構造は、外部表を基準としたREF-OTRID-ITRID(RID対照表)の連鎖として表現される。これらの共通点は、両者共に外部表のRID集合を持つことである。従って、検索結果と結合結果とのそれぞれの外部表のRID集合同士で論理演算を行わせることにより、検索結果と結合結果との組み合わせに係る論理演算を効率的に実現することができる。 The data structure of the search result is expressed as an RID set of external tables. On the other hand, the data structure of the join result is expressed as a chain of REF-OTRID-ITRID (RID comparison table) with reference to the external table. Their common point is that both have RID sets of external tables. Therefore, by performing a logical operation between the RID sets of the external tables of the search result and the join result, a logical operation related to the combination of the search result and the join result can be efficiently realized.
 実施例6によれば、表結合操作のための複雑な演算を、簡素な集合演算に置き換えることができる。そのため、演算処理時間の大幅の短縮を実現することができる。また、実施例6によれば、表結合操作を行う際に、外部表の結合カラムと、内部表の結合カラムとの間でのキー値の突き合わせを不要とすることができる。これは、DSNの採用によって同一のキー値に対して同一のNIDを割り当てることが担保されていること、並びに、共通のNIDを間にはさんで外部表RIDとこれに対応する内部表RIDとを結びつけるRID対照表が存在すること等に基づく。 According to the sixth embodiment, a complicated operation for the table join operation can be replaced with a simple set operation. For this reason, it is possible to realize a significant reduction in calculation processing time. Further, according to the sixth embodiment, when performing a table join operation, it is possible to make it unnecessary to match key values between the join column of the outer table and the join column of the inner table. This is because the adoption of the DSN guarantees that the same NID is assigned to the same key value, and the external table RID and the corresponding internal table RID with the common NID interposed therebetween. This is based on the existence of a RID comparison table that links.
 また、実施例6では、同一のキー値に関する情報(NID)は同一のスレーブノードに集約するように作為的に分散格納される。このため、複数のスレーブノード間にまたがって同一の値を有するキー値が無作為に分散格納される従来例とは対照的に、例えばあるスレーブノードが結合演算などのデータ操作を実行した場合に、同一の値を有するキー値を相互に参照するためのスレーブノード間の通信はまったく生じない。従って、実施例6によれば、システム全体としての処理のオーバーヘッドを抑制することができるため、分散型RDBシステム11全体としての処理能力を効率的に向上させることができる。 In the sixth embodiment, information (NID) related to the same key value is intentionally distributed and stored so as to be aggregated in the same slave node. For this reason, in contrast to the conventional example in which key values having the same value across multiple slave nodes are randomly distributed and stored, for example, when a slave node performs a data operation such as a join operation. , Communication between slave nodes for referring to each other key values having the same value does not occur at all. Therefore, according to the sixth embodiment, the processing overhead of the entire system can be suppressed, so that the processing capability of the distributed RDB system 11 as a whole can be improved efficiently.
 要するに、実施例6によれば、例えばWWW(World Wide Web)経由で分散型RDBサービスを提供するに際し、急激な需要増大への柔軟な対応を狙ってシステム内のスレーブノードの台数を増設し、増設後の複数の各スレーブノードに分散格納されたデータに対して表結合操作などのデータ操作を実行した場合であっても、増設前後でのシステム全体としての処理能力を線形に向上させ得る線形スケールアウト性を実現することができる。 In short, according to the sixth embodiment, for example, when providing a distributed RDB service via WWW (World Wide Web), the number of slave nodes in the system is increased in order to flexibly cope with a sudden increase in demand. Even if data operations such as table join operations are performed on data that is distributed and stored in each of the multiple slave nodes after expansion, the processing capacity of the entire system before and after expansion can be linearly improved. Scale-out property can be realized.
 次に、図6に示すステップS73の集計用としての分散結果タプル作成処理の概要について、表結合操作がない場合とある場合とに分けて説明する。ステップS73の処理は、第1~第3のスレーブノード15,17,19のそれぞれにおいて並列に実行される。表結合操作がない場合の集計用としての分散結果タプル作成処理において、第1~第3のスレーブノード15,17,19の分散処理部は、それぞれの検索結果としてのRID集合から、そのRID集合の元となるRIDをそれぞれ取得する。 Next, an overview of the distribution result tuple creation process for aggregation in step S73 shown in FIG. 6 will be described separately for cases where there is no table join operation and cases where there is no table join operation. The process of step S73 is executed in parallel in each of the first to third slave nodes 15, 17, and 19. In the distributed result tuple creation process for aggregation when there is no table join operation, the distributed processing units of the first to third slave nodes 15, 17 and 19 use the RID sets as the respective search results. Each RID that is the source of the is acquired.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得したRIDに基づいて、取得したRIDに対応するNIDのデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRS-CNNを特定する。すなわち、分散処理部は、RIDに基づいて、D-CRSのブロック番号D-CRS-BNを決定する。そして、当該決定したD-CRS-BNを用いてコンシステント・ハッシュ法によるハッシュ演算を行うことにより、D-CRS-CNNを決定する。ここで、自ノード以外のノードが、取得したRIDに対応するNIDのデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得したRIDをポインタとして用いて、タプルを構成する目標カラムのD-CRSを参照してNIDを取得する。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 specify which node holds the NID data corresponding to the acquired RID based on the acquired RID. . Specifically, the distributed processing units of the first to third slave nodes 15, 17, and 19 specify the data storage destination node number D-CRS-CNN by performing the following calculation. That is, the distributed processing unit determines the D-CRS block number D-CRS-BN based on the RID. Then, D-CRS-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRS-BN. Here, when a node other than the own node holds NID data corresponding to the acquired RID, the own node acquires the data from a node other than the own node. Next, the own node acquires the NID by referring to the D-CRS of the target column constituting the tuple using the acquired RID as a pointer.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得したNIDに基づいて、取得したNIDに対応するキー値のデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRX-CNNを特定する。すなわち、分散処理部は、NIDに基づいて、D-CRXのブロック番号D-CRX-BNを決定する。さらに、当該決定したD-CRX-BNを用いてコンシステント・ハッシュ法によるハッシュ演算を行うことにより、D-CRX-CNNを決定する。ここで、自ノード以外のノードが、取得したNIDに対応するキー値のデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得したNIDをポインタとして用いて、タプルを構成する目標カラムのD-CRXを参照して実値であるキー値を取得する。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 specify which node holds the key value data corresponding to the acquired NID based on the acquired NID. To do. Specifically, the distributed processing units of the first to third slave nodes 15, 17 and 19 perform the following calculation to identify the data storage node number D-CRX-CNN. That is, the distributed processing unit determines the D-CRX block number D-CRX-BN based on the NID. Further, D-CRX-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRX-BN. Here, when a node other than the own node holds data of a key value corresponding to the acquired NID, the own node acquires the data from a node other than the own node. Next, the node uses the acquired NID as a pointer, and acquires a key value that is an actual value by referring to the D-CRX of the target column that forms the tuple.
 次に、表結合操作がある場合の集計用としての分散結果タプル作成処理において、第1~第3のスレーブノード15,17,19の分散処理部は、それぞれの検索結果としてのRID集合から、外部表のRIDをそれぞれ取得する。 Next, in the distributed result tuple creation process for aggregation when there is a table join operation, the distributed processing units of the first to third slave nodes 15, 17, 19 from the RID sets as the respective search results, Get the RID of the external table.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得した外部表のRIDに基づいて、取得した外部表のRIDに対応するNIDのデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRS-CNNを特定する。すなわち、分散処理部は、外部表のRIDに基づいて、D-CRSのブロック番号D-CRS-BNを決定する。そして、当該決定したD-CRS-BNを用いてコンシステント・ハッシュ法によるハッシュ演算を行うことにより、D-CRS-CNNを決定する。ここで、自ノード以外のノードが、取得した外部表のRIDに対応するNIDのデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得した外部表のRIDをポインタとして用い、REF-OTRID-ITRIDの連鎖を参照して、タプルを構成する目標カラムのREF-OTRID-ITRIDから目標となる内部表のRIDを取得する。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 hold which NID data corresponding to the acquired RID of the external table based on the acquired RID of the external table. To identify. Specifically, the distributed processing units of the first to third slave nodes 15, 17, and 19 perform the following calculation to specify the data storage node number D-CRS-CNN. That is, the distributed processing unit determines the D-CRS block number D-CRS-BN based on the RID of the external table. Then, D-CRS-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRS-BN. Here, when a node other than the own node holds NID data corresponding to the acquired RID of the external table, the own node acquires the data from a node other than the own node. Next, the own node uses the RID of the acquired external table as a pointer, refers to the REF-OTRID-ITRID chain, and determines the RID of the target internal table from the REF-OTRID-ITRID of the target column constituting the tuple. get.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得した内部表のRIDに基づいて、取得した内部表のRIDに対応するNIDのデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRS-CNNを特定する。すなわち、分散処理部は、内部表のRIDに基づいて、D-CRSのブロック番号D-CRS-BNを決定する。そして、当該決定したD-CRS-BNを用いてコンシステント・ハッシュ法によるハッシュ演算を行うことにより、D-CRS-CNNを決定する。ここで、自ノード以外のノードが、取得した内部表のRIDに対応するNIDのデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得した内部表のRIDをポインタとして用いて、タプルを構成する目標カラムのD-CRSを参照してNIDを取得する。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 hold which NID data corresponding to the acquired RID of the internal table based on the acquired RID of the internal table. To identify. Specifically, the distributed processing units of the first to third slave nodes 15, 17, and 19 perform the following calculation to specify the data storage node number D-CRS-CNN. That is, the distributed processing unit determines the D-CRS block number D-CRS-BN based on the RID in the internal table. Then, D-CRS-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRS-BN. Here, when a node other than the own node holds NID data corresponding to the acquired RID of the internal table, the own node acquires the data from a node other than the own node. Next, the node acquires the NID by referring to the D-CRS of the target column constituting the tuple using the acquired RID of the internal table as a pointer.
 次に、第1~第3のスレーブノード15,17,19の分散処理部は、取得したNIDに基づいて、取得したNIDに対応するキー値のデータをどのノードが保持しているのかを特定する。具体的には、第1~第3のスレーブノード15,17,19の分散処理部が以下の計算を行うことにより、データの格納先ノード番号D-CRX-CNNを特定する。すなわち、分散処理部は、NIDに基づいて、D-CRXのブロック番号D-CRX-BNを決定する。さらに、当該決定したD-CRX-BNを用いてコンシステント・ハッシュ法によるハッシュ演算を行うことにより、D-CRX-CNNを決定する。ここで、自ノード以外のノードが、取得したNIDに対応するキー値のデータを保持している場合、自ノードは、そのデータを自ノード以外のノードから取得する。次いで、自ノードは、取得したNIDをポインタとして用いて、タプルを構成する目標カラムのD-CRXを参照して実値であるキー値を取得する。 Next, the distributed processing units of the first to third slave nodes 15, 17, and 19 identify which node holds the key value data corresponding to the acquired NID based on the acquired NID. To do. Specifically, the distributed processing units of the first to third slave nodes 15, 17 and 19 perform the following calculation to identify the data storage node number D-CRX-CNN. That is, the distributed processing unit determines the D-CRX block number D-CRX-BN based on the NID. Further, D-CRX-CNN is determined by performing a hash operation by the consistent hash method using the determined D-CRX-BN. Here, when a node other than the own node holds data of a key value corresponding to the acquired NID, the own node acquires the data from a node other than the own node. Next, the node uses the acquired NID as a pointer, and acquires a key value that is an actual value by referring to the D-CRX of the target column that forms the tuple.
 なお、本実施形態では、第1~第3のスレーブノード15,17,19の分散処理部が自身でコンシステント・ハッシュ法によるハッシュ演算を行うことにより、D-CRX-CNNやD-CRS-CNNを決定する例について説明したが、本発明はこれに限定されない。例えば、D-CRX-CNNやD-CRS-CNNをマスターノード13がマスターデータ13aとして保持し、第1~第3のスレーブノード15,17,19の分散処理部がマスターノード13に問い合わせるようにしてもよい。ただし、マスターノード13に問い合わせるよりも、各スレーブノードが自身で演算する方が効率的で好ましい。 In this embodiment, the distributed processing units of the first to third slave nodes 15, 17, and 19 themselves perform a hash operation by the consistent hash method, so that D-CRX-CNN and D-CRS- Although the example which determines CNN was demonstrated, this invention is not limited to this. For example, the master node 13 holds D-CRX-CNN and D-CRS-CNN as master data 13a, and the distributed processing units of the first to third slave nodes 15, 17, and 19 make an inquiry to the master node 13. May be. However, it is more efficient and preferable that each slave node performs the calculation by itself rather than inquiring to the master node 13.
 以上説明したように、マスターノード13のインデックス生成部35は、第1~第3のスレーブノード15,17,19に分散して格納させるためのインデックスデータ(DSN、D-CRX、D-CRS、D-RIX)をそれぞれ作成した後、作成したインデックスデータを、ノード決定部37による決定ノードに一括送信し、それぞれの決定ノード上でインデックスデータを一括処理する。 As described above, the index generation unit 35 of the master node 13 stores the index data (DSN, D-CRX, D-CRS, and the like) to be distributed and stored in the first to third slave nodes 15, 17, and 19. D-RIX) is created, and the created index data is collectively transmitted to the decision node by the node decision unit 37, and the index data is collectively processed on each decision node.
 コンシステント・ハッシュ法によりインデックスデータの格納先ノードを決定するに際しては、DSNではキー値、D-CRXおよびD-RIXではNIDの関数、D-CRSではRIDの関数を分散キーとしてそれぞれ用いる。これにより、例えばあるスレーブノードが結合演算などのデータ操作を実行した場合に、同一の値を有するキー値を相互に参照するためのスレーブノード間の通信はまったく生じないため、インデックスデータの処理の効率化を実現することができる。 When determining the index data storage node by the consistent hash method, the DSN uses the key value, D-CRX and D-RIX use the NID function, and D-CRS uses the RID function as the distribution key. As a result, for example, when a slave node performs a data operation such as a join operation, communication between slave nodes for referring to key values having the same value does not occur at all. Efficiency can be realized.
 また、DSNによってNIDとキー値とは1対1で対応するように規制されるため、意味のある値としてキー値が必要になる以前の処理では、キー値に代えてNID(自然数かつ順序数の値をとる)を用いるのが好ましい。これにより、全ての演算を数値演算に還元することができる。計算機内においてNIDは固定幅のバイナリー整数値で表現されるため、実値であるキー値に比べて検索や参照の場面で効率が良い。従って、演算処理時間の短縮化に貢献することができる。 In addition, since the NID and the key value are regulated to have a one-to-one correspondence by the DSN, the NID (natural number and order number) is used instead of the key value in the process before the key value is required as a meaningful value. Is preferably used. Thereby, all the calculations can be reduced to numerical calculations. Since the NID is represented by a fixed-width binary integer value in the computer, it is more efficient in search and reference scenes than the actual key value. Therefore, it is possible to contribute to shortening the arithmetic processing time.
 以上説明した実施形態は、本発明の具現化の例を示したものである。従って、これらによって本発明の技術的範囲が限定的に解釈されることがあってはならない。本発明はその要旨またはその主要な特徴から逸脱することなく、様々な形態で実施することができるからである。 The embodiment described above shows an example of realization of the present invention. Therefore, the technical scope of the present invention should not be limitedly interpreted by these. This is because the present invention can be implemented in various forms without departing from the gist or main features thereof.
 例えば、本実施形態において、複数のスレーブノードとして第1~第3のスレーブノード15,17,19を例示して説明したが、本発明はこの例に限定されない。スレーブノードの数は、処理対象となるデータ量の増減にあわせて、適宜の数に調整すればよい。 For example, in the present embodiment, the first to third slave nodes 15, 17, and 19 have been described as a plurality of slave nodes. However, the present invention is not limited to this example. The number of slave nodes may be adjusted to an appropriate number in accordance with the increase or decrease in the amount of data to be processed.
 また、本実施形態において、マスターノードとしてひとつのマスターノード13を例示して説明したが、本発明はこの例に限定されない。負荷分散や耐障害性の向上を図る目的で、マスターノードの複製を設けてもよい。複製を設けてもよいのは、スレーブノードについても同様である。 In this embodiment, one master node 13 is exemplified as the master node, but the present invention is not limited to this example. For the purpose of improving load distribution and fault tolerance, a replica of the master node may be provided. The same may be said about a slave node that a replica may be provided.
 また、本実施形態において、D-RIXのインデックスデータを、DSN、D-CRX、D-CRSと横並びで説明したが、本発明において、D-RIXは必須のデータ構造でない。D-RIXは、表結合操作時における処理の効率化を実現することができるものの、これがなくてもD-CRSを参照したフルスキャン照合によって、その機能を代替することができるからである。 In this embodiment, the D-RIX index data is described side by side with DSN, D-CRX, and D-CRS. However, in the present invention, D-RIX is not an essential data structure. This is because D-RIX can realize processing efficiency at the time of a table join operation, but even without this, the function can be replaced by full scan collation referring to D-CRS.
 また、上記実施形態では、インデックス生成部35、ノード決定部37および更新管理部45をマスターノード13に設ける例について説明したが、本発明はこれに限定されない。例えば、これらの各機能構成をスレーブノード15,17,19に設けてもよい。大量のデータを登録する際は、複数のスレーブノード15,17,19でインデックス生成部35、ノード決定部37および更新管理部45に関する処理を並列に実行することにより、処理の効率を上げることができる。 In the above embodiment, the example in which the index generation unit 35, the node determination unit 37, and the update management unit 45 are provided in the master node 13 has been described, but the present invention is not limited to this. For example, these functional configurations may be provided in the slave nodes 15, 17, and 19. When registering a large amount of data, the processing efficiency can be improved by executing the processes related to the index generation unit 35, the node determination unit 37, and the update management unit 45 in parallel in the plurality of slave nodes 15, 17, and 19. it can.
 本発明は、複数のスレーブノードとマスターノードとを備えた分散型データベースシステムに利用可能である。 The present invention can be used for a distributed database system including a plurality of slave nodes and a master node.

Claims (15)

  1. 複数のスレーブノードを統括管理するマスターノードを備え、キー値を前記複数のスレーブノードに分散格納し、この分散格納されたキー値を用いて、前記マスターノードからの指令に基づくデータ操作を前記複数のスレーブノードが並列に実行する分散型データベースシステムであって、
     登録要求に係るキー値およびそのデータ型の情報を受け付ける登録要求受付部と、
     前記登録要求受付部で受け付けた登録要求に係るキー値に対し、前記分散型データベースの全体において前記登録要求に係るキー値が有するデータ型の範囲内で一意の値をとるキー値識別子(以下、「NID」という)を割り当てるNID割当部と、
     前記登録要求に係るキー値と、前記NID割当部で割り当てられたNIDとの対応関係に係る分散共有NID(以下、「DSN」という)のデータを生成するDSN生成部と、
     前記DSN生成部で生成された前記DSNのデータの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記登録要求に係るキー値に基づいて決定するDSN格納ノード決定部と、
     を備えたことを特徴とする分散型データベースシステム。
    A master node for managing and managing a plurality of slave nodes, wherein key values are distributedly stored in the plurality of slave nodes, and data operations based on commands from the master node are performed using the distributedly stored key values. A distributed database system in which multiple slave nodes execute in parallel,
    A registration request accepting unit that accepts the key value and the data type information relating to the registration request;
    A key value identifier (hereinafter referred to as a key value identifier) that takes a unique value within the range of the data type of the key value related to the registration request in the entire distributed database with respect to the key value related to the registration request received by the registration request receiving unit An NID assigning unit for assigning (NID)),
    A DSN generation unit that generates data of a distributed shared NID (hereinafter referred to as “DSN”) related to the correspondence between the key value related to the registration request and the NID allocated by the NID allocation unit;
    A DSN storage node determination unit that determines one slave node that is a storage destination of the DSN data generated by the DSN generation unit based on a key value related to the registration request from among the plurality of slave nodes; ,
    A distributed database system characterized by comprising:
  2. 請求項1に記載の分散型データベースシステムであって、
     前記登録要求に係るキー値と、前記NID割当部で割り当てられたNIDとの対応関係に係る分散圧縮復元インデックス(以下、「D-CRX」という)のデータを生成するD-CRX生成部と、
     前記D-CRX生成部で生成された前記D-CRXのデータの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記NIDの関数に基づいて決定するD-CRX格納ノード決定部と、
     前記分散型データベースを構成するテーブル内のカラム毎に一意の値をとる分散行識別子(以下、「RID」という)と、前記NID割当部で割り当てられたNIDとの対応関係に係る分散圧縮結果セットキャッシュ(以下、「D-CRS」という)のデータを生成するD-CRS生成部と、
     前記D-CRS生成部で生成された前記D-CRSのデータの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記RIDの関数に基づいて決定するD-CRS格納ノード決定部と、
     を更に備えたことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 1, wherein
    A D-CRX generation unit that generates data of a distributed compression / decompression index (hereinafter referred to as “D-CRX”) related to the correspondence between the key value related to the registration request and the NID allocated by the NID allocation unit;
    A D-CRX storage node that determines one slave node as a storage destination of the D-CRX data generated by the D-CRX generation unit from the plurality of slave nodes based on the function of the NID A decision unit;
    A distributed compression result set relating to a correspondence relationship between a distributed row identifier (hereinafter referred to as “RID”) having a unique value for each column in the table constituting the distributed database and the NID allocated by the NID allocation unit. A D-CRS generator that generates data of a cache (hereinafter referred to as “D-CRS”);
    A D-CRS storage node that determines one slave node serving as a storage destination of the D-CRS data generated by the D-CRS generation unit from the plurality of slave nodes based on the function of the RID A decision unit;
    A distributed database system further comprising:
  3. 請求項2に記載の分散型データベースシステムであって、
     前記登録要求に係るキー値に対して割り当てられたNIDと前記RIDの集合との対応関係に係る分散行識別インデックス(以下、「D-RIX」という)のデータを生成するD-RIX生成部と、
     前記D-RIX生成部で生成された前記D-RIXの格納先となる一のスレーブノードを、前記複数のスレーブノードのなかから、前記NIDの関数に基づいて決定するD-RIX格納ノード決定部と、
     を更に備えたことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 2,
    A D-RIX generation unit that generates data of a distributed row identification index (hereinafter referred to as “D-RIX”) relating to a correspondence relationship between the NID assigned to the key value related to the registration request and the set of RIDs; ,
    A D-RIX storage node determination unit that determines one slave node that is a storage destination of the D-RIX generated by the D-RIX generation unit based on the NID function from the plurality of slave nodes. When,
    A distributed database system further comprising:
  4. 請求項1~3のいずれか一項に記載の分散型データベースシステムであって、
     前記登録要求受付部、前記NID割当部、前記DSN生成部および前記DSN格納ノード決定部は前記マスターノードに備えられ、
     前記マスターノードは、前記DSN格納ノード決定部で決定された一のスレーブノード宛に前記DSNのデータおよび前記登録要求に係るキー値が有するデータ型の情報を送って前記DSNのデータの登録要求を発行するDSN登録要求発行部を更に備え、
     前記複数のスレーブノードの各々は、
     前記DSN登録要求発行部による前記DSNのデータの登録要求に応じて、前記DSNのデータを、前記登録要求に係るキー値が有するデータ型毎に分けてDSN格納部に格納させる登録管理を行うDSN登録管理部と、
     前記登録要求に係るキー値が前記DSN格納部に既に存在するか否かを判定する既存判定部とを備え、
     前記DSN登録管理部は、前記既存判定部により前記登録要求に係るキー値が前記DSN格納部に既に登録済みと判定された場合、前記登録要求に係るキー値に対して既に割り当てられているNIDが属する前記DSNの登録内容をそのまま維持する一方、前記既存判定部により前記登録要求に係るキー値が前記DSN格納部に未だ存在しないと判定された場合、前記登録要求に係るキー値と今回割り当てられたNIDとの対応関係に係る前記DSNのデータを前記DSN格納部に格納させる登録管理を行う、
     ことを特徴とする分散型データベースシステム。
    A distributed database system according to any one of claims 1 to 3,
    The registration request reception unit, the NID allocation unit, the DSN generation unit, and the DSN storage node determination unit are provided in the master node,
    The master node sends the DSN data and the data type information of the key value related to the registration request to the one slave node determined by the DSN storage node determination unit, and sends a registration request for the DSN data. It further includes a DSN registration request issuing unit for issuing,
    Each of the plurality of slave nodes is
    In accordance with a registration request for the DSN data by the DSN registration request issuing unit, the DSN performs registration management in which the DSN data is stored in the DSN storage unit for each data type of the key value related to the registration request. The registration management department;
    An existing determination unit that determines whether or not the key value related to the registration request already exists in the DSN storage unit,
    The DSN registration management unit, if the existing determination unit determines that the key value related to the registration request has already been registered in the DSN storage unit, the NID already assigned to the key value related to the registration request If the key value related to the registration request is determined not to exist in the DSN storage unit yet by the existing determination unit, the registration value of the DSN to which Registration management for storing the data of the DSN related to the correspondence relationship with the received NID in the DSN storage unit;
    A distributed database system characterized by that.
  5. 請求項1~3のいずれか一項に記載の分散型データベースシステムであって、
     前記DSN生成部および前記DSN格納ノード決定部は前記複数のスレーブノードに備えられていることを特徴とする分散型データベースシステム。
    A distributed database system according to any one of claims 1 to 3,
    The distributed database system, wherein the DSN generation unit and the DSN storage node determination unit are provided in the plurality of slave nodes.
  6. 請求項2に記載の分散型データベースシステムであって、
     前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部および前記D-CRS格納ノード決定部は前記マスターノードに備えられ、
     前記マスターノードは、
     前記DSN格納ノード決定部で決定された一のスレーブノード宛に前記DSNのデータおよび前記登録要求に係るキー値が有するデータ型の情報を送って前記DSNのデータの登録要求を発行するDSN登録要求発行部と、
     前記D-CRX格納ノード決定部で決定された一のスレーブノード宛に前記D-CRXのデータおよび前記登録要求に係るキー値が属するカラムの情報を送って前記D-CRXのデータの登録要求を発行するD-CRX登録要求発行部と、
     前記D-CRS格納ノード決定部で決定された一のスレーブノード宛に前記D-CRSのデータおよび前記カラムの情報を送って前記D-CRSのデータの登録要求を発行するD-CRS登録要求発行部とを更に備え、
     前記複数のスレーブノードの各々は、
     前記DSN登録要求発行部による前記DSNのデータの登録要求に応じて、前記DSNのデータを、前記登録要求に係るキー値が有するデータ型毎に分けてDSN格納部に格納させる登録管理を行うDSN登録管理部と、
     前記D-CRX登録要求発行部による前記D-CRXのデータの登録要求に応じて、前記D-CRXのデータを、前記登録要求に係るキー値が属するカラム毎に分けてD-CRX格納部に格納させる登録管理を行うD-CRX登録管理部と、
     前記D-CRS登録要求発行部による前記D-CRSのデータの登録要求に応じて、前記D-CRSのデータを、前記カラム毎に分けてD-CRS格納部に格納させる登録管理を行うD-CRS登録管理部と、
     前記マスターノードからの指令に基づくデータ操作を、前記DSN格納部、前記D-CRX格納部および前記D-CRS格納部に格納された情報を用いて並列に実行するデータ操作実行部とを更に備え、
     前記マスターノードは、前記複数のスレーブノードのデータ操作実行部で並列に実行された処理結果を統合する処理結果統合部を更に備えた、
     ことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 2,
    The DSN generation unit, the DSN storage node determination unit, the D-CRX generation unit, the D-CRX storage node determination unit, the D-CRS generation unit, and the D-CRS storage node determination unit are provided in the master node. ,
    The master node is
    A DSN registration request for issuing a registration request for the DSN data by sending the data of the DSN and the data type of the key value related to the registration request to one slave node determined by the DSN storage node determination unit The issuing department;
    Sending the D-CRX data registration request to the D-CRX data by sending the D-CRX data and the column information to which the key value related to the registration request belongs to one slave node determined by the D-CRX storage node determination unit. A D-CRX registration request issuing unit to be issued;
    Issuing a D-CRS registration request issuance for sending the D-CRS data and the column information to the one slave node determined by the D-CRS storage node determination unit and issuing a registration request for the D-CRS data And further comprising
    Each of the plurality of slave nodes is
    In accordance with a registration request for the DSN data by the DSN registration request issuing unit, the DSN performs registration management in which the DSN data is stored in the DSN storage unit for each data type of the key value related to the registration request. The registration management department;
    In response to the D-CRX data registration request from the D-CRX registration request issuing unit, the D-CRX data is divided into columns for the key value related to the registration request and stored in the D-CRX storage unit. A D-CRX registration management unit for performing registration management to be stored;
    In accordance with a registration request for the D-CRS data by the D-CRS registration request issuing unit, the D-CRS data is stored for each column in the D-CRS storage unit. A CRS registration manager,
    A data operation execution unit that executes data operation based on a command from the master node in parallel using the information stored in the DSN storage unit, the D-CRX storage unit, and the D-CRS storage unit; ,
    The master node further includes a processing result integration unit that integrates processing results executed in parallel by the data operation execution units of the plurality of slave nodes.
    A distributed database system characterized by that.
  7. 請求項2に記載の分散型データベースシステムであって、
     前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部および前記D-CRS格納ノード決定部は前記複数のスレーブノードに備えられていることを特徴とする分散型データベースシステム。
    The distributed database system according to claim 2,
    The DSN generation unit, the DSN storage node determination unit, the D-CRX generation unit, the D-CRX storage node determination unit, the D-CRS generation unit, and the D-CRS storage node determination unit are connected to the plurality of slave nodes. A distributed database system characterized by being provided.
  8. 請求項3に記載の分散型データベースシステムであって、
     前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部、前記D-CRS格納ノード決定部、前記D-RIX生成部および前記D-RIX格納ノード決定部は前記マスターノードに備えられ、
     前記マスターノードは、
     前記DSN格納ノード決定部で決定された一のスレーブノード宛に前記DSNのデータおよび前記登録要求に係るキー値が有するデータ型の情報を送って前記DSNのデータの登録要求を発行するDSN登録要求発行部と、
     前記D-CRX格納ノード決定部で決定された一のスレーブノード宛に前記D-CRXのデータおよび前記登録要求に係るキー値が属するカラムの情報を送って前記D-CRXのデータの登録要求を発行するD-CRX登録要求発行部と、
     前記D-CRS格納ノード決定部で決定された一のスレーブノード宛に前記D-CRSのデータおよび前記カラムの情報を送って前記D-CRSのデータの登録要求を発行するD-CRS登録要求発行部と、
     前記D-RIX格納ノード決定部で決定された一のスレーブノード宛に前記D-RIXのデータおよび前記カラムの情報を送って前記D-RIXのデータの登録要求を発行するD-RIX登録要求発行部とを更に備え、
     前記複数のスレーブノードの各々は、
     前記DSN登録要求発行部による前記DSNのデータの登録要求に応じて、前記DSNのデータを、前記登録要求に係るキー値が有するデータ型毎に分けてDSN格納部に格納させる登録管理を行うDSN登録管理部と、
     前記D-CRX登録要求発行部による前記D-CRXのデータの登録要求に応じて、前記D-CRXのデータを、前記登録要求に係るキー値が属するカラム毎に分けてD-CRX格納部に格納させる登録管理を行うD-CRX登録管理部と、
     前記D-CRS登録要求発行部による前記D-CRSのデータの登録要求に応じて、前記D-CRSのデータを、前記カラム毎に分けてD-CRS格納部に格納させる登録管理を行うD-CRS登録管理部と、
     前記D-RIX登録要求発行部による前記D-RIXのデータの登録要求に応じて、前記D-RIXのデータを、前記カラム毎に分けてD-RIX格納部に格納させる登録管理を行うD-RIX登録管理部と、
     前記マスターノードからの指令に基づくデータ操作を、前記DSN格納部、前記D-CRX格納部、前記D-CRS格納部および前記D-RIX格納部に格納された情報を用いて並列に実行するデータ操作実行部とを更に備え、
     前記マスターノードは、前記複数のスレーブノードのデータ操作実行部で並列に実行された処理結果を統合する処理結果統合部を更に備えた、
     ことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 3, wherein
    The DSN generation unit, the DSN storage node determination unit, the D-CRX generation unit, the D-CRX storage node determination unit, the D-CRS generation unit, the D-CRS storage node determination unit, and the D-RIX generation unit And the D-RIX storage node determination unit is provided in the master node,
    The master node is
    A DSN registration request for issuing a registration request for the DSN data by sending the data of the DSN and the data type of the key value related to the registration request to one slave node determined by the DSN storage node determination unit The issuing department;
    Sending the D-CRX data registration request to the D-CRX data by sending the D-CRX data and the column information to which the key value related to the registration request belongs to one slave node determined by the D-CRX storage node determination unit. A D-CRX registration request issuing unit to be issued;
    Issuing a D-CRS registration request issuance for sending the D-CRS data and the column information to the one slave node determined by the D-CRS storage node determination unit and issuing a registration request for the D-CRS data And
    Issuing a D-RIX registration request issuance request for sending the D-RIX data and the column information to the one slave node determined by the D-RIX storage node determination unit and issuing a registration request for the D-RIX data And further comprising
    Each of the plurality of slave nodes is
    In accordance with a registration request for the DSN data by the DSN registration request issuing unit, the DSN performs registration management in which the DSN data is stored in the DSN storage unit for each data type of the key value related to the registration request. The registration management department;
    In response to the D-CRX data registration request from the D-CRX registration request issuing unit, the D-CRX data is divided into columns for the key value related to the registration request and stored in the D-CRX storage unit. A D-CRX registration management unit for performing registration management to be stored;
    In accordance with a registration request for the D-CRS data by the D-CRS registration request issuing unit, the D-CRS data is stored for each column in the D-CRS storage unit. A CRS registration manager,
    In response to the D-RIX data registration request from the D-RIX registration request issuing unit, the D-RIX data is stored in the D-RIX storage unit separately for each column. A RIX registration manager,
    Data for executing data operations based on commands from the master node in parallel using information stored in the DSN storage unit, the D-CRX storage unit, the D-CRS storage unit, and the D-RIX storage unit An operation execution unit,
    The master node further includes a processing result integration unit that integrates processing results executed in parallel by the data operation execution units of the plurality of slave nodes.
    A distributed database system characterized by that.
  9. 請求項3に記載の分散型データベースシステムであって、
     前記DSN生成部、前記DSN格納ノード決定部、前記D-CRX生成部、前記D-CRX格納ノード決定部、前記D-CRS生成部、前記D-CRS格納ノード決定部、前記D-RIX生成部および前記D-RIX格納ノード決定部は前記複数のスレーブノードに備えられていることを特徴とする分散型データベースシステム。
    The distributed database system according to claim 3, wherein
    The DSN generation unit, the DSN storage node determination unit, the D-CRX generation unit, the D-CRX storage node determination unit, the D-CRS generation unit, the D-CRS storage node determination unit, and the D-RIX generation unit And the D-RIX storage node determination unit is provided in the plurality of slave nodes.
  10. 請求項1~9のいずれか一項に記載の分散型データベースシステムであって、
     前記NID割当部は、前記登録要求に係るキー値に対し、自然数かつ順序数の値をとるNIDを割り当てる、
     ことを特徴とする分散型データベースシステム。
    A distributed database system according to any one of claims 1 to 9,
    The NID assigning unit assigns a natural number and an order number to the key value related to the registration request,
    A distributed database system characterized by that.
  11. 請求項1に記載の分散型データベースシステムであって、
     前記DSN格納ノード決定部は、前記登録要求に係るキー値を分散キーとして用いたコンシステント・ハッシュ法により前記DSNのデータの格納先となる一のスレーブノードを決定する、
     ことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 1, wherein
    The DSN storage node determination unit determines one slave node that is a storage destination of the DSN data by a consistent hash method using a key value related to the registration request as a distribution key.
    A distributed database system characterized by that.
  12. 請求項2に記載の分散型データベースシステムであって、
     前記D-CRX格納ノード決定部は、前記NIDの関数を分散キーとして用いたコンシステント・ハッシュ法により前記D-CRXのデータの格納先となる一のスレーブノードを決定し、
     前記D-CRS格納ノード決定部は、前記RIDの関数を分散キーとして用いたコンシステント・ハッシュ法により前記D-CRSのデータの格納先となる一のスレーブノードを決定する、
     ことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 2,
    The D-CRX storage node determination unit determines one slave node as a storage destination of the D-CRX data by a consistent hash method using the NID function as a distribution key,
    The D-CRS storage node determination unit determines one slave node that is a storage destination of the D-CRS data by a consistent hash method using the RID function as a distribution key.
    A distributed database system characterized by that.
  13. 請求項3に記載の分散型データベースシステムであって、
     前記D-RIX格納ノード決定部は、前記NIDの関数を分散キーとして用いたコンシステント・ハッシュ法により前記D-RIXのデータの格納先となる一のスレーブノードを決定する、
     ことを特徴とする分散型データベースシステム。
    The distributed database system according to claim 3, wherein
    The D-RIX storage node determination unit determines one slave node as a storage destination of the D-RIX data by a consistent hash method using the NID function as a distribution key.
    A distributed database system characterized by that.
  14. 複数のスレーブノードを統括管理するマスターノードを備え、キー値を前記複数のスレーブノードに分散格納し、この分散格納されたキー値を用いて、前記マスターノードからの指令に基づくデータ操作を前記複数のスレーブノードが並列に実行する分散型データベースシステムのデータ構造であって、
     登録要求に係るキー値と、前記分散型データベースの全体において前記登録要求に係るキー値が有するデータ型の範囲内で一意の値をとるキー値識別子(NID)との対応関係に係る分散共有NID(DSN)を、前記登録要求に係るキー値が有するデータ型毎に分けて示した情報と、
     前記登録要求に係るキー値と前記NIDとの対応関係に係る分散圧縮復元インデックス(D-CRX)を、前記登録要求に係るキー値が属するカラム毎に分けて示した情報と、
     前記分散型データベースを構成するテーブル内のカラム毎に一意の値をとる分散行識別子(RID)と前記NIDとの対応関係に係る分散圧縮結果セットキャッシュ(D-CRS)を、前記カラム毎に分けて示した情報とを、キー値を特定するためのキー値に関する情報として有する、
     ことを特徴とする分散型データベースのデータ構造。
    A master node for managing and managing a plurality of slave nodes, wherein key values are distributedly stored in the plurality of slave nodes, and data operations based on commands from the master node are performed using the distributedly stored key values. The data structure of the distributed database system that the slave nodes of
    The distributed shared NID related to the correspondence between the key value related to the registration request and the key value identifier (NID) that takes a unique value within the range of the data type of the key value related to the registration request in the entire distributed database Information indicating (DSN) separately for each data type included in the key value related to the registration request;
    Information indicating a distributed compression / decompression index (D-CRX) related to the correspondence between the key value related to the registration request and the NID, for each column to which the key value related to the registration request belongs;
    The distributed compression result set cache (D-CRS) related to the correspondence between the distributed row identifier (RID) taking a unique value for each column in the table constituting the distributed database and the NID is divided for each column. The information shown as the information about the key value for specifying the key value,
    A data structure of a distributed database characterized by that.
  15. 請求項14記載の分散型データベースのデータ構造であって、
     前記NIDと前記RIDの集合との対応関係に係る分散行識別インデックス(D-RIX)を、前記登録要求に係るキー値が属するカラム毎に分けて示した情報を、前記キー値に関する情報としてさらに有する、
     ことを特徴とする分散型データベースのデータ構造。
    15. A data structure of a distributed database according to claim 14,
    Information indicating the distributed row identification index (D-RIX) relating to the correspondence between the NID and the set of RIDs divided for each column to which the key value related to the registration request belongs is further provided as information relating to the key value. Have
    A data structure of a distributed database characterized by that.
PCT/JP2012/054432 2011-02-25 2012-02-23 Distributed data base system and data structure for distributed data base WO2012115194A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2012800097453A CN103384878A (en) 2011-02-25 2012-02-23 Distributed data base system and data structure for distributed data base
EP12749629.7A EP2680151A4 (en) 2011-02-25 2012-02-23 Distributed data base system and data structure for distributed data base
US14/001,284 US20140074774A1 (en) 2011-02-25 2012-02-23 Distributed data base system and data structure for distributed data base

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-040257 2011-02-25
JP2011040257A JP5727258B2 (en) 2011-02-25 2011-02-25 Distributed database system

Publications (1)

Publication Number Publication Date
WO2012115194A1 true WO2012115194A1 (en) 2012-08-30

Family

ID=46720968

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/054432 WO2012115194A1 (en) 2011-02-25 2012-02-23 Distributed data base system and data structure for distributed data base

Country Status (5)

Country Link
US (1) US20140074774A1 (en)
EP (1) EP2680151A4 (en)
JP (1) JP5727258B2 (en)
CN (1) CN103384878A (en)
WO (1) WO2012115194A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534456A (en) * 2013-08-29 2016-11-04 華為技術有限公司Huawei Technologies Co.,Ltd. Method and apparatus for storing data
JP2018026158A (en) * 2017-10-05 2018-02-15 華為技術有限公司Huawei Technologies Co.,Ltd. Method and device for storing data

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005102307A2 (en) * 2004-04-19 2005-11-03 Strategic Science & Technologies, Llc Beneficial effects of increasing local blood flow
WO2013157099A1 (en) * 2012-04-18 2013-10-24 株式会社Murakumo Database management method, database system and program
JP5907902B2 (en) * 2013-01-21 2016-04-26 日本電信電話株式会社 Table equijoin system by secret calculation, method
US9681003B1 (en) * 2013-03-14 2017-06-13 Aeris Communications, Inc. Method and system for managing device status and activity history using big data storage
KR101642072B1 (en) * 2014-05-08 2016-07-22 주식회사 알티베이스 Method and Apparatus for Hybrid storage
GB2532469A (en) 2014-11-20 2016-05-25 Ibm Self-optimizing table distribution with transparent replica cache
CN104794162B (en) * 2015-03-25 2018-02-23 中国人民大学 Real-time data memory and querying method
CN105282045B (en) * 2015-11-17 2018-11-16 高新兴科技集团股份有限公司 A kind of distributed computing and storage method based on consistency hash algorithm
JP6697158B2 (en) 2016-06-10 2020-05-20 富士通株式会社 Information management program, information management method, and information management device
JP6253725B1 (en) * 2016-07-12 2017-12-27 株式会社東芝 Database system, data coupling method, integrated server, data coupling program, database system linkage method, and database system linkage program
CN106294538B (en) 2016-07-19 2019-07-16 浙江大华技术股份有限公司 A kind of moving method and device from the data record in node
CN106940715B (en) * 2017-03-09 2019-11-15 星环信息科技(上海)有限公司 A kind of method and apparatus of the inquiry based on concordance list
US11030204B2 (en) 2018-05-23 2021-06-08 Microsoft Technology Licensing, Llc Scale out data storage and query filtering using data pools

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09508734A (en) * 1994-02-08 1997-09-02 テレフオンアクチーボラゲツト エル エム エリクソン Distributed database system
JP2002197099A (en) * 2000-12-26 2002-07-12 Degital Works Kk Processing method of database
JP2003157249A (en) * 2001-11-21 2003-05-30 Degital Works Kk Document compressing and storing method
JP2006350741A (en) 2005-06-16 2006-12-28 Nippon Telegr & Teleph Corp <Ntt> Database management device, distributed database management system, distributed database management method, and distributed database management program
JP2007122302A (en) * 2005-10-27 2007-05-17 Hitachi Ltd Information retrieval system, index management method, and program

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471617A (en) * 1991-06-24 1995-11-28 Compaq Computer Corporation Computer management system and associated management information base
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5757924A (en) * 1995-09-18 1998-05-26 Digital Secured Networks Techolognies, Inc. Network security device which performs MAC address translation without affecting the IP address
US5913217A (en) * 1997-06-30 1999-06-15 Microsoft Corporation Generating and compressing universally unique identifiers (UUIDs) using counter having high-order bit to low-order bit
US6167427A (en) * 1997-11-28 2000-12-26 Lucent Technologies Inc. Replication service system and method for directing the replication of information servers based on selected plurality of servers load
DE602004030013D1 (en) * 2003-07-16 2010-12-23 Skype Ltd DISTRIBUTED DATABASE SYSTEM
US20060036633A1 (en) * 2004-08-11 2006-02-16 Oracle International Corporation System for indexing ontology-based semantic matching operators in a relational database system
EP1851662A2 (en) * 2005-02-24 2007-11-07 Xeround Systems Ltd. Method and apparatus for distributed data management in a switching network
US7840774B2 (en) * 2005-09-09 2010-11-23 International Business Machines Corporation Compressibility checking avoidance
US20070136476A1 (en) * 2005-12-12 2007-06-14 Isaac Rubinstein Controlled peer-to-peer network
US9325802B2 (en) * 2009-07-16 2016-04-26 Microsoft Technology Licensing, Llc Hierarchical scale unit values for storing instances of data among nodes of a distributed store
CN101916261B (en) * 2010-07-28 2013-07-17 北京播思软件技术有限公司 Data partitioning method for distributed parallel database system
US9805108B2 (en) * 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US8843441B1 (en) * 2012-01-17 2014-09-23 Amazon Technologies, Inc. System and method for maintaining a master replica for reads and writes in a data store
WO2014030235A1 (en) * 2012-08-23 2014-02-27 ディジタル・ワークス株式会社 Distributed database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09508734A (en) * 1994-02-08 1997-09-02 テレフオンアクチーボラゲツト エル エム エリクソン Distributed database system
JP2002197099A (en) * 2000-12-26 2002-07-12 Degital Works Kk Processing method of database
JP2003157249A (en) * 2001-11-21 2003-05-30 Degital Works Kk Document compressing and storing method
JP2006350741A (en) 2005-06-16 2006-12-28 Nippon Telegr & Teleph Corp <Ntt> Database management device, distributed database management system, distributed database management method, and distributed database management program
JP2007122302A (en) * 2005-10-27 2007-05-17 Hitachi Ltd Information retrieval system, index management method, and program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016534456A (en) * 2013-08-29 2016-11-04 華為技術有限公司Huawei Technologies Co.,Ltd. Method and apparatus for storing data
US10331642B2 (en) 2013-08-29 2019-06-25 Huawei Technologies Co., Ltd. Data storage method and apparatus
JP2018026158A (en) * 2017-10-05 2018-02-15 華為技術有限公司Huawei Technologies Co.,Ltd. Method and device for storing data

Also Published As

Publication number Publication date
US20140074774A1 (en) 2014-03-13
EP2680151A4 (en) 2015-11-25
EP2680151A1 (en) 2014-01-01
CN103384878A (en) 2013-11-06
JP2012178025A (en) 2012-09-13
JP5727258B2 (en) 2015-06-03

Similar Documents

Publication Publication Date Title
JP5727258B2 (en) Distributed database system
JP5238915B1 (en) Distributed database system
US10013456B2 (en) Parallel processing database system with a shared metadata store
US8943059B2 (en) Systems and methods for merging source records in accordance with survivorship rules
JP6050272B2 (en) Low latency query engine for APACHE HADOOP
JP5719323B2 (en) Distributed processing system, dispatcher and distributed processing management device
CN107004013A (en) System and method for providing distributed tree traversal using hardware based processing
JPWO2010098034A1 (en) Distributed database management system and distributed database management method
CN102640151A (en) High throughput, reliable replication of transformed data in information systems
CN107506464A (en) A kind of method that HBase secondary indexs are realized based on ES
CN108287886A (en) The method and device of synchrodata modification information
CN103514229A (en) Method and device used for processing database data in distributed database system
CN103246749A (en) Matrix data base system for distributed computing and query method thereof
CN102495853A (en) Aspect-oriented cloud storage engine construction method
US20200341965A1 (en) Data Tokenization System Maintaining Data Integrity
JP2004110219A (en) Data processing system and join processing method
JP6111186B2 (en) Distributed information linkage system and data operation method and program thereof
WO2013175611A1 (en) Data distributed search system, data distributed search method, and administrative computer
WO2013136442A1 (en) Data usage system, history management system for timed data and data processing system
JP5608633B2 (en) Data utilization system
CN103377236B (en) A kind of Connection inquiring method and system for distributed data base
CN112905601A (en) Routing method and device for database sub-tables
US10963426B1 (en) Method of providing access controls and permissions over relational data stored in a hadoop file system
JP2014032530A (en) Distribution processing system and distribution processing method
JP6549537B2 (en) Service providing system and service providing method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12749629

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2012749629

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012749629

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE