WO2014107901A1 - 数据存储方法、数据库存储节点故障处理方法及装置 - Google Patents
数据存储方法、数据库存储节点故障处理方法及装置 Download PDFInfo
- Publication number
- WO2014107901A1 WO2014107901A1 PCT/CN2013/070420 CN2013070420W WO2014107901A1 WO 2014107901 A1 WO2014107901 A1 WO 2014107901A1 CN 2013070420 W CN2013070420 W CN 2013070420W WO 2014107901 A1 WO2014107901 A1 WO 2014107901A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- storage node
- partition
- node
- storage
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Definitions
- the present invention relates to the field of Internet, and in particular to a data storage method, a database storage node failure processing method and apparatus. Background technique
- NOSQL Structured Query Language
- DFS distributed file system
- Namenodes independent scheduling nodes
- FIG 1 is a deployment diagram of a distributed non-relational database, where the thick solid line box represents a storage node, and the upper horizontal line indicates that the storage node deploys NOSQL.
- the slave process of the database Below the thick horizontal line represents the data node (DataNode) process deployed by the storage node.
- DataNode data node
- Each of the slave processes is also a client of the DFS file system, calling the data files stored in the DFS file system.
- the partition region-1 is a partition of a table in the NOSQL database, and is deployed on the storage node S1. After the region-1 is created, the data write operation is completed, and a data file is formed.
- the data file is divided into four data blocks (Blocks) on the DFS, which are respectively Rl-bl, Rl-b2, Rl-b3, and Rl. -b4.
- the block copy distribution for each block is shown in Figure 1. All the data query operations involving region-1 are all completed by the slave node process of the storage node S1, and all the data blocks of the corresponding data file of the region-1 are stored on the storage node S1, which is expressed as a representation. For all data blocks corresponding to region-1, so storage node S1 only needs to read local hard The disk data can complete the data query operation, and does not involve reading the data block copy on other storage nodes through the network to complete the operation.
- the storage node S1 is original according to the pre-configured data block copy replication mechanism.
- the stored block copy is recovered from the block copy on the other non-faulty storage nodes and placed on other non-faulty storage nodes in accordance with the load balancing policy.
- the slave process of the NOSQL database on the storage node S1 is still normal, the partition of the NOSQL database will not be redistributed. For example, storage node S1 is still responsible for all data query operations of region-1.
- the data node process on the storage node S1 of the DFS is faulty, which causes the storage node S1 to fail to provide the file reading service.
- the storage node S1 needs to read data through the network to another storage node that stores a copy of the data block corresponding to the partition region-1.
- the storage node S1 causes the entire storage node to fail due to hardware or a network.
- the scheduling node starts the data block copy recovery according to the established data block copy replication mechanism, similar to the state in FIG. 1B.
- the master node of the NOSQL database will also find that the slave node process of the storage node is faulty, and the master node will redistribute the partitions on the storage node S1 according to the load condition of the system, similar to FIG. 1A. Number
- the storage node S4 is responsible for all data query operations of region-1.
- an embodiment of the present invention provides a data storage method, where the method includes: deploying a partition of a table in a database to a first storage node in a database; and dividing the data file of the partition into N Data blocks, the N data blocks are located at the first storage node; the backup data blocks of the N data blocks are deployed on the second storage node, the second storage node and the first storage node Is a different storage node; where N is a natural number and N is not less than 2.
- the method before the one of the tables in the database is deployed in the first storage node in the database, the method further includes: the partition in the database Allocating a partition identifier; naming the N data blocks of the partition according to the partition identifier.
- a second possible implementation manner is further provided, where the backup data block of all data blocks in the N data blocks is deployed in the second On the storage node, the second storage node and the first storage node are different storage nodes, and the method includes: following the deployment policy, the first one of the partitions on the second storage node corresponding to the deployment policy The data block performs data block backup; acquiring storage node distribution information of the backup data block of the first data block in the data file of the partition; and backing up N-1 data blocks in the data file of the partition to the storage node The storage node indicated by the distribution information.
- an embodiment of the present invention provides a database storage node fault processing method, where the method includes: acquiring partition information of a first storage node that is faulty in a storage node cluster and distribution information of a data block corresponding to the partition; Determining, in the storage node cluster, a backup of M data blocks corresponding to the partition in which the first storage node is backed up according to the partition information of the first storage node and the distribution information of the data block corresponding to the partition a non-faulty second storage node of the data block; wherein M is a natural number; redistributing the partition of the first storage node to the second storage node.
- the method further includes: if the partition load of the second storage node exceeds a load balancing threshold, the second storage The L partitions on the storage node are migrated to other non-faulty storage nodes in the storage node cluster except the second storage node; where L is a natural number.
- a second possible implementation manner is further provided, when the fault on the first storage node is a data node process failure, After the partitioning of the partition of the first storage node to the second storage node, the method further includes: backing up the backup data block of the M data blocks on the second storage node to the storage node cluster
- the third storage node is a non-faulty storage node.
- an embodiment of the present invention provides a data storage device, where the device includes: a first deployment unit, configured to deploy a partition of a table in a database in a first storage node in a database; The data file of the partition is divided into N data blocks, where the N data blocks are located in the first storage node, and the second deployment unit is configured to deploy the backup data blocks of the N data blocks.
- the second storage node and the first storage node are different storage nodes; wherein N is a natural number, and N is not less than 2.
- the method further includes: a processing unit, configured to: before the first storage node in the database is deployed in the database: The partition is allocated a partition identifier; and the partition identifier is named for the N data blocks of the partition.
- the second deployment unit is specifically configured to: Performing a data block backup on the first data block in the partition on the second storage node corresponding to the deployment policy according to the deployment policy; acquiring the backup data block of the first data block in the data file of the partition Storing node distribution information; backing up N-1 data blocks in the data file of the partition to a storage node indicated by the storage node distribution information.
- the embodiment of the present invention provides a database storage node fault processing apparatus, where the apparatus includes: an obtaining unit, configured to acquire partition information of a first storage node that is faulty in a storage node cluster, and data corresponding to the partition And a determining unit, configured to determine, in the storage node cluster, where the first storage node is deployed, according to the partition information of the first storage node and the distribution information of the data block corresponding to the partition a non-faulty second storage node of the backup data block of the plurality of data blocks corresponding to the partition; and a processing unit, configured to redistribute the partition of the first storage node to the second storage node.
- the slave node process of the first storage node is faulty, and the processing unit is further configured to: if a partition load of the second storage node exceeds a load balancing threshold, And locating L partitions on the second storage node to other non-faulty storage nodes of the storage node cluster except the second storage node; wherein L is a natural number.
- a second In a possible implementation manner, the data node process on the first storage node is faulty, and the processing unit is further configured to: back up the M data blocks on the second storage node to the storage node cluster a third storage node, where the third storage node is a non-faulty storage node.
- an embodiment of the present invention provides a data storage device, where the device includes: a network interface;
- An application physically stored in the memory the central processor executing the application, causing the data storage device to perform the following steps:: deploying a partition of a table in a database to a first storage in a database And dividing the data file of the partition into N data blocks, where the N data blocks are located in the first storage node; and deploying the backup data blocks of the N data blocks on the second storage node, wherein N is a natural number, and N is not less than 2.
- the method before the one of the ones in the database is deployed in the first storage node in the database, the method further includes: the partition in the database Allocating a partition identifier; naming the N data blocks of the partition according to the partition identifier.
- the N data blocks are The backup data block is deployed on the second storage node, and the second storage node and the first storage node are different storage nodes
- the method includes: performing, according to the deployment policy, the second storage node corresponding to the deployment policy
- the first data block in the partition performs data block backup; acquires storage node distribution information of the backup data block of the first data block in the data file of the partition; and backs up N-1 data in the data file of the partition Block to the storage node indicated by the storage node distribution information.
- an embodiment of the present invention provides a database storage node fault processing apparatus, where the apparatus includes:
- the method further includes: if the partition load of the second storage node exceeds a load balancing threshold, And locating L partitions on the second storage node to other non-faulty storage nodes of the storage node cluster except the second storage node; wherein L is a natural number.
- the method further includes: backing up the M data blocks on the second storage node to a third storage node in the storage node cluster, where the third storage node is a non-faulty storage node.
- an embodiment of the present invention provides a non-transitory computer readable storage medium, when the computer executes the computer readable storage medium, the computer performs the following steps: partitioning a table in a database a first storage node deployed in the database; dividing the data file of the partition into N data blocks, where the N data blocks are located in the first storage node; deploying the backup data blocks of the N data blocks On the second storage node, the second storage node and the first storage node are different storage nodes; wherein N is a natural number, and N is not less than 2.
- the method before the one of the one of the databases is deployed in the first storage node in the database, the method further includes: the partition in the database Assign a partition ID; Name the N data blocks of the partition according to the partition identifier.
- the backup data block of the N data blocks is deployed on a second storage node, where the second storage node and the first storage node are
- the different storage nodes include: performing, according to the deployment policy, performing a data block backup on the first data block in the partition on the second storage node corresponding to the deployment policy; acquiring the first data in the data file of the partition Storage node distribution information of the backup data block of the block; backing up N-1 data blocks of the data file of the partition to the storage node indicated by the storage node distribution information.
- an embodiment of the present invention provides a non-transitory computer readable storage medium.
- the computer executes the computer readable storage medium, the computer performs the following steps: acquiring a first fault in a storage node cluster Storing information of the storage node and the distribution information of the data block corresponding to the partition; determining, according to the partition information of the first storage node and the distribution information of the data block corresponding to the partition, in the storage node cluster a non-faulty second storage node of the M data blocks corresponding to the partition of the first storage node; wherein, M is a natural number; and the partition of the first storage node is redistributed to the second storage node.
- the method further includes: if the partition load of the second storage node exceeds a load balancing threshold, the second storage The L partitions on the storage node are migrated to other non-faulty storage nodes in the storage node cluster except the second storage node; where L is a natural number.
- the method further includes: backing up the M data blocks on the second storage node to a third storage node in the storage node cluster, where the third storage node is a non-faulty storage node.
- a partition in a table in the database is deployed in a first storage node in the database, and then the data file of the partition is divided into N data blocks, and the N a data block is located at the first storage node; and finally, a backup data block of all the data blocks of the plurality of data blocks is deployed on the same second storage node, where the second storage node and the first storage node are Different storage nodes.
- the cross-node data range can be minimized to reduce the delay and reduce the network traffic.
- FIG. 1 is a schematic diagram of a distribution of NOSQL data in the prior art
- 1A is a schematic diagram of a fault processing of a slave node process in a prior art NOSQL database
- FIG. 1B is a schematic diagram of a fault processing of a data node process in a NOSQL database in the prior art
- FIG. 1C is a schematic diagram of a node fault processing in a cluster of a NOSQL database storage node in the prior art
- FIG. 2 is a schematic diagram of an application scenario of a data storage method according to an embodiment of the present invention
- 3 is a flowchart of an embodiment of a data storage method according to an embodiment of the present invention
- FIG. 4 is a schematic diagram of a storage state of a data storage method according to an embodiment of the present invention
- FIG. 5 is a flowchart of a method for processing a fault of a database storage node according to an embodiment of the present invention
- FIG. 6 is a schematic diagram of a fault processing method for processing a database storage node according to an embodiment of the present invention
- FIG. 7 is a schematic diagram of a fault processing method of a database storage node fault processing method according to an embodiment of the present invention.
- FIG. 8 is a schematic diagram of a fault processing method of a database storage node fault processing method according to an embodiment of the present invention.
- FIG. 9 is a schematic structural diagram of an embodiment of a data storage device according to an embodiment of the present invention.
- FIG. 10 is a schematic structural diagram of an embodiment of a database storage node processing apparatus according to an embodiment of the present invention.
- FIG. 11 is a schematic structural diagram of an embodiment of a data storage device according to an embodiment of the present invention.
- FIG. 12 is a schematic structural diagram of an embodiment of a database storage node processing device according to an embodiment of the present invention.
- FIG. 2 is a schematic diagram of an application scenario of a data storage method and a database storage node fault processing method according to an embodiment of the present invention.
- the NOSQL database only performs logical management of data, and actually the data is stored in a distributed file system DFS.
- DFS is also a master-slave distributed architecture.
- the master node in the NOSQL database acts as a scheduling node for the metadata service inside the DFS.
- a slave node in a NOSQL database, a data node that provides file storage and file operations as DFS, is collectively referred to as a storage node.
- two systems are simultaneously deployed in the database provided by the embodiment of the present invention, one is a NOSQL database, and the other is a DFS, on each storage node of the database, the same
- the data node (datanode) process of the DFS and the slave (slave) process in the NOSQL database are deployed, and the slave process (master) process is controlled in the NOSQL database, and the data node process is controlled in the DFS.
- the process is a scheduling (namenode) process, and the storage node jointly arranged by the master process and the namenode process is the master node of the NOSQL database, and is also the scheduling node of the DFS.
- data files stored in DFS are generally divided into blocks of a certain size.
- a block of data is typically stored in multiple storage nodes.
- the scheduling node is not only responsible for managing the file system namespace and controlling access by external clients, but also deciding which data nodes to map to which storage node in the cluster of storage nodes.
- the first data block generally selects the nearest node from the client that initiated the write request as the storage node, and the storage node where the second data block is located stores the first data.
- the storage node of the block is on the same rack, and the storage node where the third data block is located belongs to a different rack from the storage node where the first data block and the second data block are located.
- the actual data block read does not pass through the scheduling node, and only the metadata indicating the mapping relationship between the storage node and the data block passes through the scheduling node.
- the storage node responds to read and write requests from DFS clients.
- the storage node also responds to commands from the scheduling node to create, delete, and copy data blocks.
- an embodiment of the present invention provides a data storage method applied in the foregoing scenario, where the method includes: 301: deploying a partition of a table in a database in a first storage node in a database;
- the NOSQL database generally gives the partition a partition identifier, which is the file name of the data file created by the underlying DFS.
- the partition region-1 is deployed in one of the storage node clusters composed of the storage node S1, the storage node S2, the storage node S3, the storage node S4, the storage node S5, and the storage node S6.
- the storage node in the embodiment shown in FIG.
- the partition corresponding to region-1 is deployed in the storage node S1.
- the partition identifier is first allocated to the partition in the database; when the data block of the data file corresponding to the partition is created, the N data blocks of the partition are named according to the partition identifier.
- the data file corresponding to the partition is divided into N data blocks, where the N data blocks are located in the first storage node.
- region-1 is a partition of a table in the NOSQL database that is deployed on storage node S1.
- the region-1 partition is created, and the data writing operation is completed to form a data file.
- the data file is divided into four data blocks on the DFS, which are Rl-bl, Rl-b2, Rl-b3, and Rl-b4, respectively. All four data blocks are deployed on storage node S1.
- N is a natural number, and N is not less than 2, that is, the number of storage nodes constituting the cluster of storage nodes, and the number of data blocks into which the data files corresponding to one partition are divided are set according to actual needs. It should not be construed as limiting the technical solution of the present invention.
- the backup data block of the N data blocks is deployed on the second storage node, where the second storage node and the first storage node are different storage nodes.
- a copy For example, shown in FIG. 4 are two copies, one is deployed at the storage node S3, one is deployed at the storage node S5, and the storage node S5 and the storage node S3 are both storage nodes.
- the step 303 further includes: following the deployment policy, the number of the partitions on the second storage node corresponding to the deployment policy Performing a data block backup according to the first data block in the file; acquiring storage node distribution information of the backup data block of the first data block in the data file of the partition; and backing up N-1 data blocks of the partition to the A storage node indicated by storage node distribution information.
- Rl-bl is the first data block of the data file corresponding to Region-1, and the copy of Rl-bl is deployed according to the DFS default deployment policy.
- the data storage node distribution information of the data block R1-bl is obtained, and it is known that the copy of the data block R1-bl is distributed in the data storage node S3 and the data storage node S5.
- the data blocks R1-b2 are distributed according to the distribution of the replica data storage nodes of the data blocks R1-bl.
- data block Rl-b3 and data block Rl-b4 are the same as data block Rl-b2.
- the embodiment of the present invention provides a database storage node fault processing method, which can be applied to several fault conditions of the database system shown in FIG. 2. As shown in FIG. 5, the method includes:
- partition information of the first storage node that is faulty in the storage node cluster and distribution information of the data block corresponding to the partition Specifically, when one storage node in the storage node cluster fails, first obtain a storage node.
- the partition distribution information of the faulty storage node in the cluster for example, which partitions are deployed on the first storage node, and the distribution information of the backup data blocks of the data blocks corresponding to the partitions, so as to know which storage node is deployed on the non-faulty storage node.
- the partition of the first storage node Redistribute the partition of the first storage node to the second storage node. Specifically, after the second storage node of the backup data block of the M data blocks corresponding to the partition of the first storage node is determined in the non-faulty storage node in the storage node cluster, The partition of a storage node is redistributed onto the second storage node. In this way, the backup data blocks of the data blocks of the data files of the same partition are placed in the same storage node, so that as long as one storage node fails, as long as the partition on the storage node is distributed to the second storage node, Open on the second storage node. This avoids accessing data across nodes. As shown in FIG.
- the main control node distributes the L partitions stored by the fault storage node to the non-faulty storage node with the corresponding data block according to the partition distribution information of the non-faulty storage node and the backup data block distribution of the data block corresponding to the fault storage node partition. , where L is a natural number.
- the partition of the non-faulty second storage node Before the faulty storage node partition is redistributed, if the partition of the non-faulty second storage node does not reach the load balancing threshold, the partition of the first storage node is redistributed to the second storage node, and the entire storage node cluster If the partition of the second storage node exceeds the load balancing threshold, the number of partitions of the second storage node is too large, and multiple partitions are randomly selected on the second storage node, and the partitions are randomly selected. The redistribution is performed such that the partition on the second storage node reaches load balancing.
- the partition load of the second storage node exceeds a load balancing threshold, redistributing a plurality of partitions on the second storage node to the storage section Point to other non-faulty storage nodes in the cluster other than the second storage node.
- the scheduling node of the DFS finds that the process is abnormal.
- the scheduling node allocates all the data blocks that the original storage node S1 is responsible to to other storage nodes in the storage node cluster according to the data block copy replication mechanism. Only if the data node process fails and the slave node process still works normally, whether it needs to redistribute the partition responsible for the node process to the corresponding non-faulty storage node storing the copy of the data block corresponding to the partition, and operate according to the configuration. .
- the scheduling node identifies the corresponding data block belonging to the same partition as a data block group according to the ownership of the data block on the fault storage node S1.
- the scheduling node redistributes the data block group of the same partition of the fault storage node on the non-faulty storage node S2 according to the data block distribution information of the non-faulty storage node, that is, the entire data block of the same partition that the first storage node is responsible for is heavy.
- the scheduling node checks the configuration. If the data read rate requirement is low, the partition of the fault storage node does not need to be redistributed, and the redistribution is completed.
- the dispatch node reports the fault storage node to the master node, and the master node finds that the slave node process has not failed, and then finds the fault storage. Partition information on the node.
- the master node redistributes the backup data blocks of the M data blocks of the same partition of the faulty storage node to the non-faulty storage node according to the partition distribution information of the non-faulty storage node and the distribution of the data blocks in the partition on the faulty storage node.
- the storage node S1 is faulty due to hardware or a network or the like.
- the scheduling node of DFS will soon find that the process is abnormal.
- the master node of the NOSQL database will also find that the storage node S1 slave node process is abnormal.
- the master node will redistribute the partitions on the storage node S1 according to the load condition of the system, which is similar to the case where the slave node fails.
- the scheduling node is opened according to the established copy replication mechanism. The initial copy is restored. This process is similar to the data node process failure situation, and will not be repeated.
- the embodiment of the present invention provides a data storage device, where the device includes: a first deployment unit 901, configured to deploy a partition in a table in a database to a first storage node in a database;
- the unit 902 is configured to divide the data file of the partition into N data blocks, where the N data blocks are located in the first storage node, and the second deployment unit 903 is configured to backup the N data blocks.
- the data block is deployed on the second storage node, where the second storage node and the first storage node are different storage nodes; wherein N is a natural number, and N is not less than 2.
- the apparatus further includes a processing unit, configured to: before the first storage node in the database is deployed in the database, a partition in a table in the database: The partition allocates a partition identifier; and names the N data blocks of the partition according to the partition identifier.
- the second deployment unit is specifically configured to: perform a first data block in the data file of the partition on a second storage node corresponding to the deployment policy according to a deployment policy. Data block backup; acquiring storage node distribution information of the backup data block of the first data block in the data file of the partition; backing up N-1 data blocks in the data file of the partition to the storage node distribution information indication Storage node.
- a partition in a table in the database may be deployed in a first storage node in the database, and then the data file of the partition is divided into N data blocks, where the N The data blocks are located at the first storage node; finally, the backup data blocks of all the data blocks of the plurality of data blocks are deployed on the same second storage node, the second storage node and the first storage node For different storage nodes.
- This can make the distributed non-relational database, in the case of data node failure, minimize the cross-node data range to reduce the delay and reduce the network traffic. As shown in FIG.
- an embodiment of the present invention further provides a database storage node fault processing apparatus, where the apparatus includes: an obtaining unit 1001, configured to acquire partition information of a first storage node that is faulty in a storage node cluster, and the The distribution information of the data block corresponding to the partition; the determining unit 1002, configured to determine, according to the partition information of the first storage node and the distribution information of the data block corresponding to the partition, that the backup is performed in the storage node cluster a non-faulty second storage node of the M data blocks corresponding to the partition of the storage node; wherein, M is a natural number; and the processing unit 1003 is configured to redistribute the partition of the first storage node to the second storage node.
- the processing unit 1003 is further configured to: before redistributing the partition of the first storage node to the second storage node: If the partition load of the second storage node exceeds the load balancing threshold, the L partitions on the second storage node are migrated to other non-faulty storage nodes in the storage node cluster except the second storage node; where L is a natural number .
- the processing unit 1003 And after re-distributing the partition of the first storage node to the second storage node: backing up the M data blocks on the second storage node to the storage node cluster a third storage node, where the third storage node is a non-faulty storage node.
- the database storage node fault processing apparatus is capable of acquiring partition information of a storage node of a fault in the storage node cluster and distribution information of the data block corresponding to the partition; and then, according to the storage node And the partition information and the distribution information of the data block corresponding to the partition, determining, in the storage node cluster, a non-faulty second storage node that backs up a data block corresponding to the partition of the first storage node, and then The partition of the storage node is redistributed to the second storage node.
- the cross-node data range can be minimized to reduce latency and reduce network traffic.
- an embodiment of the present invention further provides a data storage device.
- the embodiment includes a network interface 11, a processor 12, and a memory 13.
- the system bus 14 is used to connect the network interface 11, the processor 12, and the memory 13.
- Network interface 11 is used to communicate with other storage nodes in the network and storage node clusters.
- the memory 13 has a software module and a device driver.
- the software modules are capable of performing various functional modules of the above described methods of the present invention; the device drivers can be network and interface drivers.
- a partition of a table in the database is deployed to a first storage node in the database; data of the partition is to be The file is divided into N data blocks, where the N data blocks are located in the first storage node; the backup data blocks of the N data blocks are deployed on the second storage node, and the second storage node is The first storage node is a different storage node; wherein N is a natural number, and N is not small At 2.
- the method further includes: assigning a partition identifier to the partition in the database; The N data blocks of the partition are named.
- the backup data block of the N data blocks is deployed on the second storage node, where the second storage node and the first storage node are different storage nodes, specifically: according to the deployment strategy, And obtaining, by the second storage node corresponding to the deployment policy, a data block backup of the first data block in the data file of the partition; acquiring a storage node of the backup data block of the first data block in the data file of the partition Distributing information; backing up N-1 data blocks in the data file of the partition to a storage node indicated by the storage node distribution information.
- a partition in a table in the database may be deployed in a first storage node in the database, and then the data file of the partition is divided into N data blocks, where the N The data blocks are located at the first storage node; finally, the backup data blocks of all the data blocks of the plurality of data blocks are deployed on the same second storage node, the second storage node and the first storage node For different storage nodes.
- This can make the distributed non-relational database, in the case of data node failure, minimize the cross-node data range to reduce the delay and reduce the network traffic.
- an embodiment of the present invention further provides a database storage node fault processing apparatus.
- the apparatus includes: a network interface 21, a central processing unit 22, and a memory 23.
- the system bus 24 is used to connect the network interface 21, the central processing unit 22, and the memory 23.
- Network interface 21 is used to communicate with other storage nodes in the network and storage node clusters.
- the memory 23 has software modules and device drivers.
- the software modules are capable of executing various functional modules of the above described method of the present invention; the device drivers can be network and interface drivers.
- these software components are loaded into memory 23 and then accessed by central processor 22 and executed as follows: Obtain partition information for the first storage node in the cluster of storage nodes and the distribution of data blocks corresponding to the partition Determining, according to the partition information of the first storage node and the distribution information of the data block corresponding to the partition, M data blocks corresponding to the partition backed by the first storage node in the storage node cluster a non-faulty second storage node; wherein M is a natural number; redistributing the partition of the first storage node to the second storage node.
- the partitioning of the first storage node to the second storage node further includes: if the If the partition load of the second storage node exceeds the load balancing threshold, the L partitions on the second storage node are migrated to other non-faulty storage nodes of the storage node cluster except the second storage node; where L is a natural number.
- the redistributing the partition of the first storage node to the second storage node further includes: The M data blocks on the storage node are backed up to a third storage node in the storage node cluster, and the third storage node is a non-faulty storage node.
- the database storage node fault processing apparatus can obtain storage Partition information of a storage node that is faulty in the node cluster and distribution information of the data block corresponding to the partition; and then, according to the partition information of the storage node and the distribution information of the data block corresponding to the partition, Determining, in the cluster of storage nodes, a non-faulty second storage node that backs up a data block corresponding to the partition of the first storage node, and then redistributing the partition of the storage node to the second storage node.
- the cross-node data range can be minimized to reduce latency and reduce network traffic.
- the embodiment of the present invention further provides a non-transitory computer readable storage medium, when the computer executes the computer readable storage medium, the computer performs the following steps: Deploying a partition of a table in the database in a database a first storage node; dividing the data file of the partition into N data blocks, the N data blocks are located at the first storage node; and deploying the backup data blocks of the N data blocks in a second On the storage node, the second storage node and the first storage node are different storage nodes; wherein N is a natural number, and N is not less than 2.
- the method further includes: assigning a partition identifier to the partition in the database;
- the N data blocks of the partition are named.
- the backup data block of the N data blocks is deployed on the second storage node, and the second storage node and the first storage node are different storage nodes, specifically: according to the deployment strategy, Performing a data block backup on the first data block in the data file of the partition on the second node corresponding to the deployment policy; Obtaining storage node distribution information of the backup data block of the first data block in the data file of the partition; and backing up N-1 data blocks in the data file of the partition to the node indicated by the storage node distribution information.
- an embodiment of the present invention further provides a non-transitory computer readable storage medium, when the computer executes the computer readable storage medium, the computer performs the following steps: acquiring a first fault in the storage node cluster Storing information of the storage node and the distribution information of the data block corresponding to the partition; determining, according to the partition information of the first storage node and the distribution information of the data block corresponding to the partition, in the storage node cluster a non-faulty second storage node of the M data blocks corresponding to the partition of the first storage node; wherein, M is a natural number; and the partition of the first storage node is redistributed to the second storage node.
- the partitioning of the first storage node to the second storage node further includes: if the If the partition load of the second storage node exceeds the load balancing threshold, the L partitions on the second storage node are migrated to other non-faulty storage nodes of the storage node cluster except the second storage node; where L is a natural number.
- the redistributing the partition of the first storage node to the second storage node further includes: The M data blocks on the storage node are backed up to a third storage node in the storage node cluster, and the third storage node is a non-faulty storage node.
- the disclosed systems, devices, and methods may be implemented in other ways.
- the device embodiments described above are merely illustrative.
- the division of the unit is only a logical function division.
- there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not executed.
- the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be electrical, mechanical or otherwise.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solution of the embodiment.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the functions may be stored in a computer readable storage medium if implemented in the form of a software functional unit and sold or used as a standalone product.
- the technical solution of the present invention which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including a number of instructions to make a computer device (either a personal computer, a server, or Network devices, etc.) perform all or part of the steps of the methods described in various embodiments of the present invention.
- the foregoing storage medium includes: NAS (Network At tached S torage), U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM, Random Acces s Memory), disk or A variety of media such as optical discs that can store program code.
- NAS Network At tached S torage
- U disk mobile hard disk
- ROM read-only memory
- RAM random access memory
- disk or A variety of media such as optical discs that can store program code.
- RAM random access memory
- ROM read-only memory
- EEPROM electrically programmable ROM
- EEPROM electrically erasable programmable ROM
- registers hard disk, removable disk, CD-ROM, or technical field Any other form of storage medium known.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Software Systems (AREA)
Abstract
本发明实施例提供了一种数据存储方法,所述方法包括:将数据库中的一个表的一个分区部署在数据库中的第一存储节点;将所述分区的数据文件划分为N个数据块,所述N个数据块位于所述第一存储节点;将所述N个数据块中全部数据块的备份数据块部署在第二存储节点上,所述第二存储节点与所述第一存储节点为不同节点。本发明实施例可以使得分布式非关系型数据库中,节点故障的情况下,能够尽量减少跨节点数据范围,以减少时延、降低网络流量。
Description
说明书
数据存储方法、 数据库存储节点故障处理方法及装置 技术领域
本发明涉及互联网领域, 具体涉及到一种数据存储方法, 数据库存储节 点故障处理方法及装置。 背景技术
分布式非关系型数据库( Not only Structured Query Language ,NOSQL ) 物理上一般由大规模的集群组成。 大多数物理存储节点不仅部署分布式文件 系统( Distributed file system , DFS )的数据节点( DataNode )进程, 还部署 NOSQL数据库的从( slave )进程, 同时存储节点集群需要部署独立的调度节 点 ( Namenode ) 。 NOSQL和 DFS的信息分布各自按照各自策略进行独立分 配, 图 1是一个分布式非关系型数据库的部署图, 其中粗的实线方框代表一 个存储节点,粗横线上方表示该存储节点部署 NOSQL数据库的从节点进程。 粗横线下方表示该存储节点部署的数据节点 (DataNode )进程。 其中每一个 从节点进程同时也是一个 DFS文件系统的客户,调用 DFS文件系统中存储的 数据文件。
其中, 分区 region-1为 NOSQL数据库中一个表的一个分区, 其部署在 存储节点 S1上。 在 region-1创建后, 完成数据写入操作, 形成数据文件, 该 数据文件在 DFS上的被划为 4个数据块(Block ) , 分别是 Rl-bl、 Rl-b2、 Rl-b3、 Rl-b4。 每一个 Block 的数据块副本分布如图 1 所示。 所有涉及到 region-1的数据查询操作全部由存储节点 S1的从节点进程来完成, 而在存储 节点 S1上存储了 region-1的对应的数据文件的所有数据块, 为表述方面, 下 面筒称为与 region-1对应的所有数据块,所以存储节点 S1只需要读取本地硬
盘数据即可完成数据查询操作, 不会涉及到通过网络读取其他存储节点上数 据块副本来完成操作。
但是, 在 NOSQL数据库的从节点进程故障时, 如图 1A所示, NOSQL 数据库的主控节点发现从节点进程异常之后, 按照负载均衡原则将存储节点 S1负责的分区全部分配给存储节点集群中的存储节点 S4。 在存储节点 S1故 障后, 存储节点 S4将负责 region-1的全部数据查询操作。 由于 DFS并不会 感觉到这样的故障, 所以与 region-1对应的数据文件位置将不会发生任何变 化。 在这样的数据分布下, 涉及到 region-1的 Rl-bl、 Rl-b3 两个数据块中的 数据读取时, 存储节点 S4将需要通过网络去其他存储 Rl-bl、 Rl-b3数据块 副本的存储节点上读取数据。
如图 1B所示, 在存储节点 S1上分布式 DFS的数据节点( DataNode )进 程故障时, DFS的调度节点发现数据节点进程故障后, 按照预先配置的数据 块副本复制机制,将存储节点 S1原来存储的数据块副本通过其他非故障存储 节点上的数据块副本恢复出来, 并按照负载均衡策略放置在其他非故障存储 节点上。 但是, 由于存储节点 S1上 NOSQL数据库的从节点进程依旧正常, NOSQL数据库的分区不会重新分布。 如存储节点 S1依旧负责 region-1全部 数据查询操作。 而 DFS的存储节点 S1上的数据节点进程故障, 导致存储节 点 S1无法提供文件读取服务。 在这样的数据分布下, 涉及到 region-1的数据 读取时,存储节点 S1需要通过网络去其他存储该分区 region-1对应的数据块 副本的存储节点上读取数据。
如图 1C所示, 存储节点 S1由于硬件或者是网络等原因导致整个存储节 点故障。 DFS的调度节点发现数据节点进程异常后, 同时调度节点按照既定 的数据块副本复制机制, 开始数据块副本恢复, 类似图 1B中的状态。 同时, NOSQL数据库的主控节点也会发现该存储节点的从节点进程故障,主控节点 将根据系统的负载情况将存储节点 S1上的分区重新分布, 与图 1A类似。 数
据库再一次达到稳定数据分布时,存储节点 S4负责 region-1全部数据查询操 作。 由于 DFS的存储 S1节点故障后重新分布数据块副本后, 存储节点 S4上 只有 region-1的 Rl-b2、 Rl-b4副本。 涉及到 region-1的 Rl-bl、 Rl-b3中的 数据读取时, 存储节点 S4需要通过网络去其他存储该 Rl-bl、 Rl-b3的数据 块副本的存储节点上读取数据。
综上所述, 在现有技术的数据存储方式下, 发生以上几种故障时, 就会 出现跨节点数据访问甚至是跨机架的访问数据, 这样不仅增大了数据访问时 延, 还会增加网络流量。 发明内容
本发明的目的是提供一种数据存储方法, 以解决现有技术在节点故障时, 出现跨节点访问, 增加访问数据时延的问题。
第一方面, 本发明实施例提供了一种数据存储方法, 所述方法包括: 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点; 将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。 基于第一方面, 在第一种可能的实施方式中, 在所述将数据库中的一个 表中的一个分区部署在数据库中的第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。
基于第一方面或第一方面的第一种可能的实施方式中, 还提供了第二种 可能的实施方式, 所述将所述 N个数据块中全部数据块的备份数据块部署在 第二存储节点上, 所述第二存储节点与所述第一存储节点为不同存储节点, 具体包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区中的 第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。 第二方面, 本发明实施例提供了一种数据库存储节点故障处理方法, 所 述方法包括: 获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的备份数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。 基于第二方面, 在第一种可能的实施方式中, 当所述第一存储节点故障 为的从节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到所 述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存
储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 基于第二方面或第二方面的第一种可能的实施方式中, 还提供了第二种 可能的实施方式, 当所述第一存储节点上故障为数据节点进程故障时, 所述 将所述第一存储节点的所述分区重新分布到所述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块的备份数据块备份到所述存储 节点集群中的第三存储节点, 所述第三存储节点为非故障存储节点。
第三方面, 本发明实施例提供了一种数据存储装置, 所述装置包括: 第一部署单元, 用以将数据库中的一个表的一个分区部署在数据库中的 第一存储节点; 划分单元, 用以将所述分区的数据文件划分为 N个数据块, 所述 N个数 据块位于所述第一存储节点; 第二部署单元, 用以将所述 N个数据块的备份数据块部署在第二存储节 点上, 所述第二存储节点与所述第一存储节点为不同存储节点; 其中, N 为 自然数, 并且 N不小于 2。 基于第三方面, 在第一种可能的实施方式中, 还包括处理单元, 用以在 所述将数据库中的一个表中的一个分区部署在数据库中的第一存储节点之前: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。 基于第三方面, 在第二种可能的实施方式中, 所述将第二部署单元具体 用于:
按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区中的 第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。 第四方面, 本发明实施例提供了一种数据库存储节点故障处理装置, 所 述装置包括: 获取单元, 用以获取存储节点集群中故障的第一存储节点的分区信息以 及所述分区对应的数据块的分布信息; 确定单元, 用以根据所述第一存储节点的分区信息以及所述分区对应的 数据块的分布信息, 在所述存储节点集群中确定部署有所述第一存储节点的 所述分区对应的多个数据块的备份数据块的非故障第二存储节点; 处理单元, 用以将所述第一存储节点的所述分区重新分布到所述第二存 储节点。 基于第四方面, 在第一种可能的实施方式中, 所述第一存储节点的从节 点进程故障, 所述处理单元还用以: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 基于第四方面或第四方面的第一种可能的实施方式中, 还提供了第二种
可能的实施方式, 所述第一存储节点上的数据节点进程故障, 所述处理单元 还用以: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。 第五方面, 本发明实施例提供了一种数据存储装置, 所述装置包括: 网络接口;
中央处理器;
存储器;
物理存储在所述存储器中的应用程序, 所述中央处理器执行所述应用程 序, 使得所述数据存储装置执行以下步骤: : 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点; 将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。 基于第五方面, 在第一种可能的实施方式中, 在所述将数据库中的一个 表中的一个分区部署在数据库中的第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。 基于第五方面, 在第二种可能的实施方式中, 所述将所述 N个数据块的
备份数据块部署在第二存储节点上, 所述第二存储节点与所述第一存储节点 为不同存储节点具体包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区中的 第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。 第六方面, 本发明实施例提供了一种数据库存储节点故障处理装置, 所 述装置包括:
网络接口;
中央处理器;
存储器;
物理存储在所述存储器中的应用程序, 所述中央处理器执行所述应用程 序, 使得所述数据库存储节点故障处理装置执行以下步骤:
获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的备份数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。 基于第六方面, 在第一种可能的实施方式中, 当所述第一存储节点故障
为的从节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到所 述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 基于第六方面, 在第二种可能的实施方式中, 当所述第一存储节点上故 障为数据节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到 所述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。
第七方面, 本发明实施例提供了一种非易失性计算机可读存储介质, 当计算机执行所述计算机可读存储介质时, 所述计算机执行如下步骤: 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点; 将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。 基于第七方面, 在第一种可能的实施方式中, 在所述将数据库中的一个 表中的一个分区部署在数据库中的第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识;
根据所述分区标识为所述分区的所述 N个数据块命名。 基于第七方面, 在第二种可能的实施方式中, 所述将所述 N个数据块的 备份数据块部署在第二存储节点上, 所述第二存储节点与所述第一存储节点 为不同存储节点具体包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区中的 第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件的 N-1个数据块至所述存储节点分布信息指示 的存储节点。
第八方面, 本发明实施例提供了一种非易失性计算机可读存储介质, 当计算机执行所述计算机可读存储介质时, 所述计算机执行如下步骤: 获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。 基于第八方面, 在第一种可能的实施方式中, 当所述第一存储节点故障 为的从节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到所 述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存
储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 基于第八方面, 在第二种可能的实施方式中, 当所述第一存储节点上故 障为数据节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到 所述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。 通过本发明实施例提供的数据存储方法, 将数据库中的一个表中的一个 分区部署在数据库中的第一存储节点, 之后将所述分区的数据文件划分为 N 个数据块, 所述 N个数据块位于所述第一存储节点; 最后将所述多个数据块 中全部数据块的备份数据块部署在相同的第二存储节点上, 所述第二存储节 点与所述第一存储节点为不同存储节点。 使得分布式非关系型数据库中, 数 据节点故障的情况下, 能够尽量减少跨节点数据范围, 以减少时延、 降低网 络流量。
附图说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作筒单地介绍, 显而易见地, 下面描述中 的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不 付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1是现有技术的 NOSQL数据分布示意图;
图 1A是现有技术 NOSQL数据库从节点进程故障处理示意图;
图 1B是现有技术 NOSQL数据库数据节点进程故障处理示意图; 图 1 C是现有技术 NOSQL数据库存储节点集群中的节点故障处理示意图; 图 2是本发明实施例提供的数据存储方法的应用场景示意图;
图 3是本发明实施例提供的数据存储方法一种实施方式的流程图; 图 4是本发明实施例提供的数据存储方法的存储状态示意图;
图 5是本发明实施例提供的数据库存储节点故障处理方法的流程图; 图 6是本发明实施例提供的数据库存储节点故障处理方法一种故障处理 示意图;
图 7是本发明实施例提供的数据库存储节点故障处理方法一种故障处理 示意图;
图 8是本发明实施例提供的数据库存储节点故障处理方法一种故障处理 示意图;
图 9是本发明实施例提供的数据存储装置一实施例的结构示意图; 图 10是本发明实施例提供的数据库存储节点处理装置一种实施例的结 构示意图;
图 11是本发明实施例提供的数据存储装置一实施例的结构示意图; 图 12是本发明实施例提供的数据库存储节点处理装置一种实施例的结 构示意图。 具体实施方式
以下结合附图, 对本发明实施例做进一步详细叙述。
图 2是本发明实施例提供的数据存储方法和数据库存储节点故障处理方 法的应用场景示意图, NOSQL数据库只完成数据的逻辑管理, 而实际上数 据存储在分布式文件系统 DFS。 DFS也是一个主从分布式架构, 在 NOSQL 数据库中的主控节点作为 DFS 内部提供元数据服务的调度节点。 NOSQL数 据库中的从节点, 作为 DFS提供文件存储以及文件操作的数据节点, 统一称 为存储节点。 也就是说, 在本发明实施例提供的数据库中同时部署了两种系 统, 一种是 NOSQL数据库, 一种是 DFS, 在数据库的各个存储节点上, 同
时部署了 DFS的数据节点( datanode )进程和 NOSQL数据库中的从节点( slave ) 进程, 在 NOSQL数据库中控制从节点 (slave )进程为主控(master )进程, 在 DFS中控制数据节点进程的进程为调度( namenode )进程,主控( master ) 进程和调度(namenode )进程共同布置的存储节点为 NOSQL数据库的主控 节点, 也是 DFS的调度节点。
为方便系统内部管理,存储在 DFS中的数据文件一般被分割为一定大小 的数据块 (block)。 为防止由于硬件故障导致丟失数据, 一个数据块一般会被 存储在多个存储节点。 调度节点不仅负责管理文件系统名称空间和控制外部 客户端的访问, 同时决定将数据块映射到存储节点集群中的哪个存储节点上。 对于最常见的 3个数据块副本备份机制来说, 第一个数据块一般选择离发起 写请求的客户端最近一个节点作为存储节点, 第二个数据块所在的存储节点 与存储第一个数据块的存储节点在同一机架上, 第三个数据块所在的存储节 点与第一数据块和第二数据块所在的存储节点属于不同的机架。
在进行数据块读取时, 实际的数据块读取并不经过调度节点, 只有表示 存储节点和数据块之间映射关系的元数据经过调度节点。 存储节点响应来自 DFS客户端的读写请求。 存储节点还响应来自调度节点的创建、 删除和复制 数据块的命令。
如图 3所示,本发明实施例提供一种应用在上述场景中的数据存储方法, 所述方法包括: 301 , 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 具体而言, NOSQL数据库在创建分区时, 一般是给这个分区一个分区 标识, 该分区标识就是底层 DFS创建数据文件的文件名。 如图 4所示的应用 实例中, 分区 region-1 , 部署在由存储节点 Sl、 存储节点 S2、 存储节点 S3、 存储节点 S4、存储节点 S5和存储节点 S6等组成的存储节点集群中的一个存 储节点中,图 4所示的实施例中,将 region-1对应的分区部署在存储节点 Sl。
概括而言, 首先为数据库中的所述分区分配分区标识; 之在创建分区对应的数据文件的数据块时, 根据所述分区标识为所述分 区的 N个数据块命名。
302, 将所述分区对应的数据文件划分为 N个数据块, 所述 N个数据块 位于所述第一存储节点;
具体而言, region- 1为 NOSQL数据库中表的一个分区, 其部署在存储节 点 S1上。 region-1分区创建, 完成数据写入操作, 形成数据文件, 该数据文 件在 DFS上的被划为 4个数据块, 分别是 Rl-bl、 Rl-b2、 Rl-b3、 Rl-b4, 这 四个数据块都被部署在存储节点 S1上。
上述实施例中, N为自然数, 并且 N不小于 2, 也就是说组成存储节点 集群的存储节点数目, 以及一个分区对应的数据文件被划分成的数据块个数 都是根据实际需求设定的, 不应理解为对本发明技术方案的限制。
303 , 将所述 N 个数据块的备份数据块部署在第二存储节点上, 所述第 二存储节点与所述第一存储节点为不同存储节点。 具体而言, 为了满足数据安全, 通常需要为分区的数据文件对应的每个 数据块设置多份备份数据块, 也可以称之为副本。 例如图 4所示的为两份副 本, 一份部署在存储节点 S3, —份部署在存储节点 S5, 存储节点 S5和存储 节点 S3都为第二存储节点。分别将同一分区的数据文件对应的数据块的一份 副本放置在同一存储节点, 这样一个存储节点上从节点进程出现故障, 只要 将该从节点进程所负责的分区重新在备份该分区对应的数据块的其他非故障 的存储节点上打开即可, 这样就避免了跨节点访问数据。 更具体的说, 步骤 303进一步包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区的数
据文件中的第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的 N-1个数据块至所述存储节点分布信息指示的存储节点。 以图 4 所示的架构为例, 在对数据块 Rl-bl 副本部署时, 发现数据块
Rl-bl为 Region-1对应的数据文件的第一个数据块, 则根据 DFS默认部署策 略对 Rl-bl的副本进行部署,
对数据块 Rl-b2进行副本部署时, 获取数据块 Rl-bl的数据存储节点分 布信息, 得知数据块 Rl-bl 的副本分布在数据存储节点 S3和数据存储节点 S5。
之后,对数据块 Rl-b2按照数据块 Rl-bl的副本数据存储节点分布情况, 进行分布。
同理, 数据块 Rl-b3和数据块 Rl-b4的分布过程与数据块 Rl-b2相同不
相应的, 本发明实施例提供了一种数据库存储节点故障处理方法, 可以 应用在图 2所示的数据库系统的几种故障状况下。 如图 5所示, 所述方法包 括:
501 ,获取存储节点集群中故障的第一存储节点的分区信息以及所述分区 对应的数据块的分布信息; 具体而言, 在存储节点集群中的一个存储节点发生故障时, 首先要获取 存储节点集群中故障存储节点的分区分布信息, 例如在第一存储节点上部署 了哪些分区, 这些分区对应的数据块的备份数据块的分布信息, 以获知在非 故障存储节点上哪个存储节点上部署了故障存储节点上的分区对应的数据块
备份。 502, 根据所述第一存储节点的分区信息以及所述分区对应的数据块的 分布信息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区 对应的 M个数据块的备份数据块的非故障第二存储节点,其中, M为自然数。
503 , 将所述第一存储节点的分区重新分布到所述第二存储节点。 具体而言, 在所述存储节点集群中的非故障存储节点中确定了部署有所 述第一存储节点的所述分区对应的 M个数据块的备份数据块的第二存储节点 之后, 将第一存储节点的所述分区重新分布到第二存储节点上。 这样, 同一 分区的数据文件的数据块的备份数据块放置在同一存储节点, 这样只要一个 存储节点出现故障, 只要将该存储节点上的所述分区分布到所述第二存储节 点, 重新在第二存储节点上打开即可。 这样就避免了跨节点访问数据。 如图 6所示, 在一种可能的实施方式中, 假设存储节点 S1上的 NOSQL 数据库的从节点进程异常终止, NOSQL数据库的主控节点很快就会发现该进 程异常。 主控节点根据非故障存储节点的分区分布信息以及故障存储节点分区对 应的数据块的备份数据块分布情况, 将故障存储节点存储的的 L个分区分布 到有对应数据块的非故障存储节点上, 其中 L为自然数。 在故障存储节点分区重新分布之前, 如果非故障的第二存储节点的分区 未达到负载均衡阈值, 则将所述第一存储节点的分区重新分布在所述第二存 储节点, 整个存储节点集群的分区重分布完成; 如果所述第二存储节点的分 区超过负载均衡阈值, 说明所述第二存储节点分区数过多, 此时在所述第二 存储节点上随机选取多个分区, 将这些分区进行重分布, 使得所述第二存储 节点上分区达到负载均衡。 也就是说, 如果所述第二存储节点的分区负载超 过负载均衡阈值, 则将所述第二存储节点上的多个分区重分布至所述存储节
点集群中除第二存储节点外的其它非故障存储节点。
如图 7所示, 在另一种可能的实施方式中, 假设存储节点 S1上 DFS的 数据节点进程异常终止, DFS的调度节点发现该进程异常。 调度节点按照数 据块副本复制机制将原来存储节点 S1 负责的全部数据块分配给存储节点集 群中其他存储节点。 只有数据节点进程故障而从节点进程依旧可以正常工作 的情况, 是否需要重分布从节点进程负责的分区到对应的存储有该分区对应 的数据块的副本的非故障存储节点上, 根据配置进行操作。
调度节点根据故障存储节点 S1上的数据块归属情况,将属于同一分区的 对应的数据块作为一个数据块组进行标识。 调度节点根据非故障存储节点的数据块分布信息, 将故障存储节点的同 一分区的数据块组重分布在非故障存储节点 S2上,也就是将第一存储节点负 责的同一分区的全部数据块重分布在所述存储节点集群中的非故障存储节点。
调度节点检查配置, 如果对数据读取速率要求较低, 则不需要将故障存 储节点的分区进行重分布, 则重分布完成。
如果根据读取速率需求, 用户发现需要将故障存储节点的分区进行重分 布, 则调度节点将故障存储节点报告给主控节点, 主控节点发现该存储节点 从节点进程未失效, 则查找故障存储节点上分区信息。 主控节点根据非故障 存储节点的分区分布信息以及故障存储节点上分区中数据块分布情况, 将故 障存储节点的同一分区的 M个数据块的备份数据块重分布到非故障存储节点 上。
如图 8所示,在另一种可能的实施方式中,假设存储节点 S1由于硬件或 者是网络等原因导致故障。 DFS的调度节点很快就会发现该进程异常。同时, NOSQL数据库的主控节点也会发现该存储节点 S1从节点进程异常。
主控节点将根据系统的负载情况将存储节点 S1上的分区重新分布,该过 程类似从节点进程故障的情况。 同时调度节点按照既定的副本复制机制, 开
始副本恢复, 该过程类似数据节点进程故障情况, 不多赘述。
如图 9所示, 本发明实施例提供一种数据存储装置, 所述装置包括: 第一部署单元 901 , 用以将数据库中一个表中的一个分区部署在数据库 中的第一存储节点; 划分单元 902, 用以将所述分区的数据文件划分为 N个数据块, 所述 N 个数据块位于所述第一存储节点; 第二部署单元 903, 用以将所述 N个数据块的备份数据块部署在第二存 储节点上, 所述第二存储节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小于 2。 在一种可能的实施方式中, 所述装置还包括处理单元, 用以在所述将数 据库中的一个表中的一个分区部署在数据库中的第一存储节点之前: 为所述数据库中的所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。 在一种可能的实施方式中, 所述第二部署单元具体用于: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区的数 据文件中的第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。
通过本发明实施例提供的数据存储装置, 可以将数据库中的一个表中的 一个分区部署在数据库中的第一存储节点, 之后将所述分区的数据文件划分 为 N个数据块, 所述 N个数据块位于所述第一存储节点; 最后将所述多个数 据块中全部数据块的备份数据块部署在相同的第二存储节点上, 所述第二存 储节点与所述第一存储节点为不同存储节点。 这样可以使得使得分布式非关 系型数据库中, 在数据节点故障的情况下, 能够尽量减少跨节点数据范围, 以减少时延、 降低网络流量。 如图 10所示,本发明实施例还提供了一种数据库存储节点故障处理装置, 所述装置包括: 获取单元 1001 , 用以获取存储节点集群中故障的第一存储节点的分区信 息以及所述分区对应的数据块的分布信息; 确定单元 1002, 用以根据所述第一存储节点的分区信息以及所述分区对 应的数据块的分布信息, 在所述存储节点集群中确定备份有所述第一存储节 点的分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数; 处理单元 1003, 用以将所述第一存储节点的所述分区重新分布到所述第 二存储节点。 当所述第一存储节点故障为的从节点进程故障时,所述处理单元 1003还 用以在将所述第一存储节点的所述分区重新分布到所述第二存储节点之前: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 当所述第一存储节点上故障为数据节点进程故障时, 所述处理单元 1003
还用以在将所述第一存储节点的所述分区重新分布在所述第二存储节点之后: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。 通过本发明实施例提供的数据库存储节点故障处理装置, 能够获取存储 节点集群中故障的某一存储节点的分区信息以及所述分区对应的数据块的分 布信息; 之后, 根据所述该存储节点的分区信息以及所述分区对应的数据块 的分布信息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分 区对应的数据块的非故障第二存储节点, 之后将所述该存储节点的所述分区 重新分布到所述第二存储节点。 这样, 在数据节点故障的情况下, 处理存储 节点故障时, 能够尽量减少跨节点数据范围, 以减少时延、 降低网络流量。
如图 11所示, 本发明实施例还提供了一种数据存储装置, 本实施例包括 网络接口 11、 处理器 12和存储器 13。 系统总线 14用于连接网络接口 11、 处理器 12和存储器 13。
网络接口 11用于与网络和存储节点集群中的其他存储节点通信。
存储器 13具有软件模块和设备驱动程序。软件模块能够执行本发明上述 方法的各种功能模块; 设备驱动程序可以是网络和接口驱动程序。
在启动时, 这些软件组件被加载到存储器 13中, 然后被处理器 12访问 并执行如下指令: 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点; 将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小
于 2。 进一步地, 在所述将数据库中的一个表中的一个分区部署在数据库中的 第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。 更具体的,所述将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储节点与所述第一存储节点为不同存储节点具体包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区的数 据文件中的第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。 通过本发明实施例提供的数据存储装置, 可以将数据库中的一个表中的 一个分区部署在数据库中的第一存储节点, 之后将所述分区的数据文件划分 为 N个数据块, 所述 N个数据块位于所述第一存储节点; 最后将所述多个数 据块中全部数据块的备份数据块部署在相同的第二存储节点上, 所述第二存 储节点与所述第一存储节点为不同存储节点。 这样可以使得使得分布式非关 系型数据库中, 在数据节点故障的情况下, 能够尽量减少跨节点数据范围, 以减少时延、 降低网络流量。 如图 12所示,本发明实施例还提供了一种数据库存储节点故障处理装置,
所述装置包括: 网络接口 21、 中央处理器 22和存储器 23。 系统总线 24用于 连接网络接口 21、 中央处理器 22和存储器 23。
网络接口 21用于与网络和存储节点集群中的其他存储节点通信。
存储器 23中具有软件模块和设备驱动程序。软件模块能够执行本发明上 述方法的各种功能模块; 设备驱动程序可以是网络和接口驱动程序。
在启动时, 这些软件组件被加载到存储器 23中, 然后被中央处理器 22 访问并执行如下指令: 获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。 进一步地, 当所述第一存储节点故障为的从节点进程故障时, 所述将所 述第一存储节点的所述分区重新分布到所述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 进一步地, 当所述第一存储节点上故障为数据节点进程故障时, 所述将 所述第一存储节点的所述分区重新分布到所述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。 通过本发明实施例提供的数据库存储节点故障处理装置, 能够获取存储
节点集群中故障的某一存储节点的分区信息以及所述分区对应的数据块的分 布信息; 之后, 根据所述该存储节点的分区信息以及所述分区对应的数据块 的分布信息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分 区对应的数据块的非故障第二存储节点, 之后将所述该存储节点的所述分区 重新分布到所述第二存储节点。 这样, 在数据节点故障的情况下, 处理存储 节点故障时, 能够尽量减少跨节点数据范围, 以减少时延、 降低网络流量。
本发明实施例还提供了一种非易失性计算机可读存储介质, 当计算机 执行所述计算机可读存储介质时, 所述计算机执行如下步骤: 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点; 将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。 进一步的, 在所述将数据库中的一个表中的一个分区部署在数据库中的 第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。 进一步的,所述将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储节点与所述第一存储节点为不同存储节点具体包括: 按照部署策略, 在所述部署策略对应的第二节点上对所述分区的数据文 件中的第一个数据块进行数据块备份;
获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的节点。
相应的, 本发明实施例还提供了一种非易失性计算机可读存储介质, 当计算机执行所述计算机可读存储介质时, 所述计算机执行如下步骤: 获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。 进一步的, 当所述第一存储节点故障为的从节点进程故障时, 所述将所 述第一存储节点的所述分区重新分布到所述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。 进一步的, 当所述第一存储节点上故障为数据节点进程故障时, 所述将 所述第一存储节点的所述分区重新分布到所述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。
本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、 或者计算机软件和电子硬件的结
合来实现。 这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特 定应用和设计约束条件。 专业技术人员可以对每个特定的应用来使用不同方 法来实现所描述的功能, 但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到, 为描述的方便和筒洁, 上述描 述的系统、 装置和单元的具体工作过程, 可以参考前述方法实施例中的对应 过程, 在此不再赘述。
在本申请所提供的几个实施例中, 应该理解到, 所公开的系统、 装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是示 意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可 以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到另一个 系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间 的耦合或直接耦合或通信连接可以是通过一些接口, 装置或单元的间接耦合 或通信连接, 可以是电性, 机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作 为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个单 元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用 时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的 技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可 以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或者
网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的 存储介质包括: NAS ( Network At tached S torage ) 、 U盘、 移动硬盘、 只读 存储器(ROM, Read-Only Memory ) 、 随机存取存储器( RAM, Random Acces s Memory ) 、 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应所述以权利要求的保护范围为准。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、 处理 器执行的软件模块, 或者二者的结合来实施。 软件模块可以置于随机存储器 ( RAM ) 、 内存、 只读存储器(ROM ) 、 电可编程 R0M、 电可擦除可编程 R0M、 寄存器、 硬盘、 可移动磁盘、 CD-ROM, 或技术领域内所公知的任意其它形式 的存储介质中。
以上所述的具体实施方式, 对本发明的目的、 技术方案和有益效果进行 了进一步详细说明, 所应理解的是, 以上所述仅为本发明的具体实施方式而 已, 并不用于限定本发明的保护范围, 凡在本发明的精神和原则之内, 所做 的任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。
Claims
权利要求书
1、 一种数据存储方法, 其特征在于, 所述方法包括: 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点; 将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。
2、 如权利要求 1所述的方法, 其特征在于, 在所述将数据库中的一个表 中的一个分区部署在数据库中的第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。
3、 如权利要求 1或 2所述的方法, 其特征在于, 所述将所述 N个数据 块的备份数据块部署在第二存储节点上, 所述第二存储节点与所述第一存储 节点为不同节点具体包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区的第 一个数据块进行数据块备份; 获取所述分区的第一个数据块的备份数据块的存储节点分布信息; 备份所述分区的 N-1个数据块至所述存储节点分布信息指示的节点。
5、 一种数据库存储节点故障处理方法, 其特征在于, 所述方法包括:
获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息;
根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。
6、 如权利要求 5所述的方法, 其特征在于, 当所述第一存储节点故障为 从节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到所述第 二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。
7、 如权利要求 5所述的方法, 其特征在于, 当所述第一存储节点上故障 为数据节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到所 述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。
8、 一种数据存储装置, 其特征在于, 包括: 第一部署单元, 用以将数据库中一个表中的一个分区部署在数据库中的 第一存储节点; 划分单元, 用以将所述分区的数据文件划分为 N个数据块, 所述 N个数 据块位于所述第一存储节点;
第二部署单元, 用以将所述 N个数据块的备份数据块部署在第二存储节 点上, 所述第二存储节点与所述第一存储节点为不同存储节点; 其中, N 为 自然数, 并且 N不小于 2。
9、 如权利要求 8所述的装置, 其特征在于, 还包括处理单元, 用以在所 述将数据库中的一个表中的一个分区部署在数据库中的第一存储节点之前, 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。
10、 如权利要求 8或 9所述的装置, 其特征在于, 所述将第二部署单元 具体用于: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区的数 据文件中的第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。
11、 一种数据库存储节点故障处理装置, 其特征在于, 所述装置包括: 获取单元, 用以获取存储节点集群中故障的第一存储节点的分区信息以 及所述分区对应的数据块的分布信息; 确定单元, 用以根据所述第一存储节点的分区信息以及所述分区对应的 数据块的分布信息, 在所述存储节点集群中确定备份有所述第一存储节点的 分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数;
处理单元, 用以将所述第一存储节点的所述分区重新分布到所述第二存 储节点。
12、 如权利要求 11所述的装置, 其特征在于, 所述当所述第一存储节点 故障为的从节点进程故障时, 所述处理单元还用以在将所述第一存储节点的 所述分区重新分布到所述第二存储节点之前: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。
13、 如权利要求 10所述的装置, 其特征在于, 当所述第一存储节点上故 障为数据节点进程故障时, 所述处理单元还用以在将所述第一存储节点的所 述分区重新分布到所述第二存储节点之后: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。
14、 一种数据存储装置, 其特征在于, 所述装置包括:
网络接口;
中央处理器;
存储器;
物理存储在所述存储器中的应用程序, 所述中央处理器执行所述应用程 序, 使得所述数据存储装置执行以下步骤: : 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第
将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。
15、 如权利要求 14所述的装置, 其特征在于, 在所述将数据库中的一个 表中的一个分区部署在数据库中的第一存储节点之前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。
16、 如权利要求 14或 15所述的装置, 其特征于, 所述将所述 N个数据 块的备份数据块部署在第二存储节点上, 所述第二存储节点与所述第一存储 节点为不同节点具体包括: 按照部署策略, 在所述部署策略对应的第二存储节点上对所述分区的数 据文件中的第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的存储节点。
17、 一种数据库存储节点故障处理装置, 其特征在于, 所述装置包括: 网络接口;
中央处理器;
存储器;
物理存储在所述存储器中的应用程序, 所述中央处理器执行所述应用程 序, 使得所述数据库存储节点故障处理装置执行以下步骤:
获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信 息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的 M个数据块的非故障第二存储节点; 其中, M为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。
18、 如权利要求 17所述的装置, 其特征在于, 当所述第一存储节点故障 为的从节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到所 述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。
19、 如权利要求 17所述的装置, 其特征在于, 当所述第一存储节点上故 障为数据节点进程故障时, 所述将所述第一存储节点的所述分区重新分布到 所述第二存储节点之后还包括: 将所述第二存储节点上的所述 M个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。
20、 一种非易失性计算机可读存储介质, 其特征在于, 当计算机执行 所述计算机可读存储介质时, 所述计算机执行如下步骤: 将数据库中的一个表的一个分区部署在数据库中的第一存储节点; 将所述分区的数据文件划分为 N个数据块,所述 N个数据块位于所述第 一存储节点;
将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第二存储 节点与所述第一存储节点为不同存储节点; 其中, N为自然数, 并且 N不小 于 2。
21、 如权利要求 20所述的非易失性计算机可读存储介质, 其特征在于, 在所述将数据库中的一个表中的一个分区部署在数据库中的第一存储节点之 前, 还包括: 为所述数据库中所述分区分配分区标识; 根据所述分区标识为所述分区的所述 N个数据块命名。
22、 如权利要求 20或 21所述的非易失性计算机可读存储介质, 其特征 在于, 所述将所述 N个数据块的备份数据块部署在第二存储节点上, 所述第 二存储节点与所述第一存储节点为不同存储节点具体包括: 按照部署策略, 在所述部署策略对应的第二节点上对所述分区的数据文 件中的第一个数据块进行数据块备份; 获取所述分区的数据文件中第一个数据块的备份数据块的存储节点分布 信息; 备份所述分区的数据文件中的 N-1个数据块至所述存储节点分布信息指 示的节点。
23、 一种非易失性计算机可读存储介质, 其特征在于, 当计算机执行 所述计算机可读存储介质时, 所述计算机执行如下步骤: 获取存储节点集群中故障的第一存储节点的分区信息以及所述分区对应 的数据块的分布信息; 根据所述第一存储节点的分区信息以及所述分区对应的数据块的分布信
息, 在所述存储节点集群中确定备份有所述第一存储节点的所述分区对应的
Μ个数据块的非故障第二存储节点; 其中, Μ为自然数; 将所述第一存储节点的所述分区重新分布到所述第二存储节点。
24、 如权利要求 23所述的非易失性计算机可读存储介质, 其特征在于, 当所述第一存储节点故障为的从节点进程故障时, 所述将所述第一存储节点 的所述分区重新分布到所述第二存储节点之前, 还包括: 如果所述第二存储节点的分区负载超过负载均衡阈值, 则将所述第二存 储节点上的 L个分区迁移至所述存储节点集群中除第二存储节点外的其它非 故障存储节点; 其中 L为自然数。
25、 如权利要求 23所述的非易失性计算机可读存储介质, 其特征在于, 当所述第一存储节点上故障为数据节点进程故障时, 所述将所述第一存储节 点的所述分区重新分布到所述第二存储节点之后还包括: 将所述第二存储节点上的所述 Μ个数据块备份到所述存储节点集群中的 第三存储节点, 所述第三存储节点为非故障存储节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/070420 WO2014107901A1 (zh) | 2013-01-14 | 2013-01-14 | 数据存储方法、数据库存储节点故障处理方法及装置 |
CN201380000058.XA CN104054076B (zh) | 2013-01-14 | 2013-01-14 | 数据存储方法、数据库存储节点故障处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/070420 WO2014107901A1 (zh) | 2013-01-14 | 2013-01-14 | 数据存储方法、数据库存储节点故障处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014107901A1 true WO2014107901A1 (zh) | 2014-07-17 |
Family
ID=51166520
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/070420 WO2014107901A1 (zh) | 2013-01-14 | 2013-01-14 | 数据存储方法、数据库存储节点故障处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104054076B (zh) |
WO (1) | WO2014107901A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106100882A (zh) * | 2016-06-14 | 2016-11-09 | 西安电子科技大学 | 一种基于流量值的网络故障诊断模型的构建方法 |
CN108933796A (zh) * | 2017-05-22 | 2018-12-04 | 中兴通讯股份有限公司 | 数据存储方法及装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547471B (zh) * | 2015-09-17 | 2020-03-03 | 北京国双科技有限公司 | 非关系型数据库的扩展方法和装置 |
US10558637B2 (en) * | 2015-12-17 | 2020-02-11 | Sap Se | Modularized data distribution plan generation |
US10649996B2 (en) * | 2016-12-09 | 2020-05-12 | Futurewei Technologies, Inc. | Dynamic computation node grouping with cost based optimization for massively parallel processing |
CN108874918B (zh) * | 2018-05-30 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种数据处理装置、数据库一体机及其数据处理方法 |
US11842063B2 (en) | 2022-03-25 | 2023-12-12 | Ebay Inc. | Data placement and recovery in the event of partition failures |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510223A (zh) * | 2009-04-03 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法和系统 |
CN102063438A (zh) * | 2009-11-17 | 2011-05-18 | 阿里巴巴集团控股有限公司 | 一种受损文件的恢复方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595184B2 (en) * | 2010-05-19 | 2013-11-26 | Microsoft Corporation | Scaleable fault-tolerant metadata service |
CN102857554B (zh) * | 2012-07-26 | 2016-07-06 | 福建网龙计算机网络信息技术有限公司 | 基于分布式存储系统进行数据冗余处理方法 |
-
2013
- 2013-01-14 CN CN201380000058.XA patent/CN104054076B/zh active Active
- 2013-01-14 WO PCT/CN2013/070420 patent/WO2014107901A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510223A (zh) * | 2009-04-03 | 2009-08-19 | 成都市华为赛门铁克科技有限公司 | 一种数据处理方法和系统 |
CN102063438A (zh) * | 2009-11-17 | 2011-05-18 | 阿里巴巴集团控股有限公司 | 一种受损文件的恢复方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106100882A (zh) * | 2016-06-14 | 2016-11-09 | 西安电子科技大学 | 一种基于流量值的网络故障诊断模型的构建方法 |
CN108933796A (zh) * | 2017-05-22 | 2018-12-04 | 中兴通讯股份有限公司 | 数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104054076B (zh) | 2017-11-17 |
CN104054076A (zh) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107005596B (zh) | 用于在集群重新配置后的工作负载平衡的复制型数据库分配 | |
WO2014107901A1 (zh) | 数据存储方法、数据库存储节点故障处理方法及装置 | |
CN107430603B (zh) | 大规模并行处理数据库的系统和方法 | |
US8595184B2 (en) | Scaleable fault-tolerant metadata service | |
US8639878B1 (en) | Providing redundancy in a storage system | |
JP2019101703A (ja) | 記憶システム及び制御ソフトウェア配置方法 | |
US20120311003A1 (en) | Clustered File Service | |
US9201747B2 (en) | Real time database system | |
US7529887B1 (en) | Methods, systems, and computer program products for postponing bitmap transfers and eliminating configuration information transfers during trespass operations in a disk array environment | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
US11070979B2 (en) | Constructing a scalable storage device, and scaled storage device | |
US8239402B1 (en) | Standard file system access to data that is initially stored and accessed via a proprietary interface | |
US11188258B2 (en) | Distributed storage system | |
JP2019191951A (ja) | 情報処理システム及びボリューム割当て方法 | |
Malkhi et al. | From paxos to corfu: a flash-speed shared log | |
CN107948229B (zh) | 分布式存储的方法、装置及系统 | |
US10749921B2 (en) | Techniques for warming up a node in a distributed data store | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
US10067949B1 (en) | Acquired namespace metadata service for controlling access to distributed file system | |
CN107566341B (zh) | 一种基于联邦分布式文件存储系统的数据持久化存储方法及系统 | |
US11449398B2 (en) | Embedded container-based control plane for clustered environment | |
CN116389233B (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
US9037762B2 (en) | Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data | |
WO2023070935A1 (zh) | 一种数据存储方法、装置及相关设备 | |
WO2014054173A1 (ja) | 分散データ管理システム及びプログラム |
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: 13870925 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13870925 Country of ref document: EP Kind code of ref document: A1 |