WO2015000359A1 - 分布式存储系统、集群节点及其区间管理方法 - Google Patents

分布式存储系统、集群节点及其区间管理方法 Download PDF

Info

Publication number
WO2015000359A1
WO2015000359A1 PCT/CN2014/080025 CN2014080025W WO2015000359A1 WO 2015000359 A1 WO2015000359 A1 WO 2015000359A1 CN 2014080025 W CN2014080025 W CN 2014080025W WO 2015000359 A1 WO2015000359 A1 WO 2015000359A1
Authority
WO
WIPO (PCT)
Prior art keywords
interval
sub
cluster node
routing table
node
Prior art date
Application number
PCT/CN2014/080025
Other languages
English (en)
French (fr)
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 EP14819963.1A priority Critical patent/EP3001644B1/en
Publication of WO2015000359A1 publication Critical patent/WO2015000359A1/zh
Priority to US14/983,853 priority patent/US10348827B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Definitions

  • the present invention relates to a distributed storage system, and more particularly to a cluster node and a section management method thereof in a distributed storage system.
  • a networking topology of a distributed storage system is as shown in FIG. 1 , which mainly includes a client, a manager node, and a plurality of cluster nodes.
  • a node is a physical machine
  • a cluster node is a collective name of a master node and a slave node.
  • Each master node has one or more standby nodes, and each node communicates through a network. .
  • the data is generally sliced and sliced.
  • the commonly used fragmentation is a range partition, which divides a large data storage interval into several cells, and each node is responsible for a continuous interval.
  • the so-called "a node is responsible for a certain interval" means that the node manages, controls, and/or performs data read and write operations for the interval.
  • the client traverses the entries of the routing table based on the key fields of the data operation, and finds the node (the master node) responsible for the interval to perform the read and write operations according to the interval in the table entry.
  • the interval that the primary node is responsible for is referred to as a routing range to indicate that the client can find the primary node responsible for the interval and perform the corresponding data operation through the routing table.
  • At least one data backup is typically done for each node in a distributed storage system, and the backup data is usually distributed on different nodes (standby nodes).
  • the master node sends a synchronization request including information such as a data operation record to the standby node, and the standby node traverses the entry of the routing table based on the key segment of the data operation record in response to the synchronization request.
  • the interval in which the primary node and the standby node perform data operations is referred to as a sync range to indicate that the standby node can find the interval through the routing table and perform the corresponding backup data synchronization operation.
  • the size of the routing interval and the synchronization interval are the same. For example, suppose node ⁇ is responsible for interval [0,100] as the primary node, and node B as the preparation node for node A on interval [0,100] Point, then the interval [0, 100] is the routing interval for finding the node ⁇ relative to the client, and the interval [0, 100] is the synchronization interval for the data operation with respect to the node A and the node B.
  • the technical problem to be solved by the embodiments of the present invention is how to perform the interval management on the cluster nodes in the distributed storage system, so as to effectively improve the data processing throughput of the system without increasing the routing overhead of the client. the amount.
  • an inter-area management method is provided, which is applied to a cluster node in a distributed system including a cluster node and a client.
  • the method mainly includes: the cluster node is configured to divide the interval corresponding to the first routing entry in the local routing table into at least two sub-intervals according to the configuration parameter, where the local routing table includes at least one routing entry, each The routing table entry includes at least interval information and replica information, the interval information indicates information of a section corresponding to the routing entry, and the replica information is used to record information of a cluster node set corresponding to the interval.
  • the first routing entry refers to a routing entry in the replica information that records information indicating the cluster node; the cluster node creates a log queue for each of the subintervals; When the data operation request of the client is performed, the cluster node determines a corresponding subinterval according to the key segment of the data operation request; the cluster node performs data corresponding to the data operation request according to the determined subinterval Reading and writing operations, and updating a log queue corresponding to the determined subinterval according to the data read/write operation.
  • the method further includes: the cluster node according to the configuration parameter to the updated location Segmenting the interval corresponding to the first routing entry in the local routing table;
  • the cluster node determines whether there is a log queue corresponding to the sub-interval on the cluster node; if there is a log queue corresponding to the sub-interval on the cluster node, And the cluster node updates the synchronization node information corresponding to the sub-interval based on the replica information in the first routing entry, where the synchronization node information indicates that data synchronization with the cluster node is maintained on the sub-interval Information of other cluster nodes; and if there is no log queue corresponding to the sub-interval on the cluster node, the cluster node creates a queue for the sub-interval.
  • the method further includes: determining, by the cluster node, each subinterval that has a corresponding log queue on the cluster node Whether the sub-interval belongs to the result set and whether the log queue corresponding to the sub-interval is empty; and if the sub-interval does not belong to the result set and the log queue corresponding to the sub-interval is empty, the sub-interval and The log queue corresponding to the subinterval is deleted from the cluster node.
  • the result set refers to a set of sub-intervals obtained by dividing a section corresponding to the first routing entry in the current local routing table of the cluster node according to the configuration parameter.
  • the method further includes: sending, by the cluster node, a segmentation request to other cluster nodes recorded in the replica information of the first routing entry.
  • the split request includes information indicating the interval and the configuration parameter, so that the other cluster nodes also segment the interval according to the configuration parameter.
  • the cluster node is configured according to Determining, by the cluster node, the key segment of the data operation request, the key segment of the data operation request is hashed according to a certain hash algorithm; the cluster node according to the hash The result finds the corresponding subinterval; and if the corresponding subspace is not found, the cluster node returns a response indicating the routing error to the client.
  • the cluster node After the cluster node creates a log queue for each of the sub-intervals, the cluster node further includes: the cluster node separately configuring read and write operation rights for each of the sub-intervals.
  • the set The group node performs a corresponding data read and write operation according to the determined sub-interval, and updates the log queue corresponding to the determined sub-interval, including: the cluster node obtaining the determined read and write operation authority of the sub-interval; The cluster node writes operation data of the data operation request to a log queue corresponding to the determined sub-interval with a new serial number; and the cluster node writes the operation data into a memory, and The client feedback processing results.
  • the method before the cluster node writes the operation data to the memory, the method further includes: the cluster node to the first routing table The other cluster nodes recorded in the copy information of the item send a synchronization request.
  • the other cluster node refers to a node in the distributed storage system for backing up data of the cluster node on the interval; the synchronization request includes information of the sub-interval and the operation Data, such that the other cluster nodes maintain data synchronization with the cluster nodes based on the subintervals.
  • the configuration parameter is a segment number
  • the segment number indicates that the device is to be The number of subintervals segmented by the interval corresponding to the first routing entry.
  • the number of segments corresponding to the information indicating the interval is recorded in the local routing table corresponding to the interval Within the routing table entry.
  • the embodiment of the present invention further provides a cluster node, where the cluster node is applied to a distributed system including a cluster node and a client, and mainly includes: a network module, connected to the client, for receiving from the client a data operation request of the end; a routing table management module, connected to the network module, configured to manage a local routing table of the cluster node, process the data operation request, and follow a configuration parameter with a number in the local routing table
  • the interval corresponding to a routing entry is divided into at least two sub-intervals, where the local routing table includes at least one routing entry, and each of the routing entries includes at least interval information and replica information, and the interval information indicates The information of the interval corresponding to the routing entry, the copy information is used to record the information of the cluster node set corresponding to the interval, and the first routing entry means that the copy information is recorded in the copy information a routing entry of information of the cluster node; a data synchronization management module, and the network module and the routing table management a module
  • the routing table management module determines a corresponding subinterval according to the key segment of the data operation request; the data synchronization management module according to the determined The sub-interval performs a data read/write operation corresponding to the data operation request, and updates a log queue corresponding to the determined sub-interval according to the data read/write operation.
  • the network module is further configured to receive a latest version routing table of the distributed system; the routing table management module is further configured to: The local routing table is updated to the latest version routing table, and the interval corresponding to the first routing entry in the updated local routing table is segmented according to the configuration parameter; and the data synchronization management module is further Configuring, for each sub-interval that is segmented after the updating, determining whether a log queue corresponding to the sub-interval exists on the cluster node, and if the result of the determination is that a log queue corresponding to the sub-interval exists, And the data synchronization management module updates the synchronization node information corresponding to the sub-interval based on the replica information in the first routing entry, where the synchronization node information indicates that data is maintained with the cluster node on the sub-interval Information of other cluster nodes that are synchronized; if the result of the determination is that there is no log queue corresponding to the subinterval, the data Step management module
  • the data synchronization management module is further configured to: have, for each sub-queue of the corresponding queue on the cluster node a section, determining whether the sub-interval belongs to a result set and whether the queue corresponding to the sub-interval is empty; and in a case where the sub-interval does not belong to the result set and the log queue corresponding to the sub-interval is empty, The sub-interval and the log queue corresponding to the sub-interval are deleted from the cluster node.
  • the result set is a set of sub-intervals obtained by dividing the interval corresponding to the first routing entry in the current local routing table of the cluster node according to the configuration parameter.
  • the routing table management module is further configured to: After the interval corresponding to the first routing entry in the local routing table is divided into at least two subintervals according to the configuration parameter, a split request is generated, where the split request includes information indicating the interval and the configuration And the network module is further configured to: send the split request to other cluster nodes recorded in the copy information of the first routing entry, so that the other cluster nodes are also according to the configuration parameter pair The interval is segmented.
  • the data synchronization management module is further configured to: separately configure a read for each of the subintervals Write permission.
  • the configuration parameter is a segment number, where the segment number indicates a number of subintervals to be segmented from a section corresponding to the first routing entry. .
  • the number of segments corresponding to the information indicating the interval is recorded in the local routing table corresponding to the interval Within the routing table entry.
  • an embodiment of the present invention provides a distributed storage system, including a client and at least two cluster nodes according to any of the embodiments of the present invention.
  • Each of the cluster nodes is connected to the client, and each of the cluster nodes is configured to perform a data processing operation in response to a data operation request from the client, and return the data processing operation to the client. process result.
  • the interval management method and apparatus divide and divide a continuous interval into at least two sub-intervals on a cluster node, and create and maintain a log (log) queue for each sub-interval, according to the present invention.
  • the distributed storage system, the cluster node and the interval management method thereof of the embodiment enable the serial operation on the cluster node for the entire continuous interval to become parallel operations for the at least two subintervals respectively divided, so that the whole For distributed storage systems, throughput can be effectively increased, especially in the case of multi-threaded parallel writes.
  • FIG. 1 shows a schematic diagram of a networking topology of a distributed storage system
  • FIG. 2 shows a client in a distributed storage system, a cluster node as a master node (hereinafter also referred to as a cluster master node or a master node), and a cluster node as a standby node (hereinafter also referred to as a cluster standby node or a standby node) And a schematic diagram of the modules of the management node and interactions with each other;
  • 3 is a schematic diagram showing a data structure of an entry of a routing table on a client in a distributed storage system
  • 4 is a schematic diagram showing a data structure of an interval in an entry of a routing table on a client in a distributed storage system
  • Figure 5 is a flow diagram showing the processing performed by a client in response to a data operation requirement in a distributed storage system
  • FIG. 6 is a flow chart showing a process performed by a cluster node in response to a data operation request from a client in a distributed storage system
  • FIG. 7 is a schematic diagram showing a data structure of an entry of a routing table on a cluster node in a distributed storage system
  • FIG. 8 is a schematic diagram showing a correspondence between a section on a cluster node and a log queue in a distributed storage system
  • FIG. 9 is a schematic diagram showing a data structure of a cluster master node synchronized to a cluster standby node in a distributed storage system
  • FIG. 10 is a schematic diagram showing the flow of data in a storage module on a cluster node in a distributed storage system
  • Figure 11 is a diagram showing the flow of data on a cluster node as a master node in a distributed storage system
  • FIG. 12 is a schematic diagram showing a process flow of a first stage of data synchronization between a master and a backup in a synchronous submission manner by a cluster node in a distributed storage system;
  • FIG. 13 is a schematic diagram showing a process flow of a second stage of data synchronization between a master and a backup in a synchronous submission manner by a cluster node in a distributed storage system;
  • FIG. 14 is a schematic diagram showing a processing flow of a management node maintaining a routing table and a table structure in a distributed storage system
  • FIG. 15 is a schematic diagram showing a processing flow of a distributed storage system when a new node joins a cluster
  • FIG. 16 is a diagram showing an example of a section allocation of a distributed storage system before and after a new node is joined
  • FIG. 17 shows an embodiment of the present invention according to an embodiment of the present invention. Schematic diagram of the processing flow of the interval management method
  • FIG. 18 is a schematic diagram showing the correspondence between the interval and the at least two sub-intervals in the section management method shown in FIG. 17;
  • FIG. 19 is a schematic diagram showing a data structure of an interval in an entry of a routing table on a cluster node in an interval management method according to another embodiment of the present invention.
  • 20 is a schematic diagram showing a processing flow of a sub-interval update in an interval management method according to still another embodiment of the present invention
  • 21 is a schematic diagram showing a processing flow of sub-interval cleaning in an interval management method according to still another embodiment of the present invention
  • FIG. 22 is a diagram showing a processing flow of a section management method when a new node joins according to still another embodiment of the present invention.
  • FIG. 23 is a block diagram showing the structure of a cluster node device according to still another embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The technical solutions in the embodiments of the present invention will be clearly described in conjunction with the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are a part of the exemplary embodiments of the present invention, and not all of them are implemented. example. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts shall fall within the scope of the present invention.
  • FIG. 2 is a schematic diagram showing the module components of the client, the master node, the standby node, and the management node in the distributed storage system shown in FIG. 1 and interacting with each other.
  • the communication in the distributed storage system mainly includes:
  • the client mainly includes a routing table management module and a network module, wherein the routing table management module mainly performs initialization and update operations of the routing table, and the network module uses Connect to the cluster master node.
  • the initialization of the routing table on the client is obtained from the first cluster node connected to it.
  • the entries included in the routing table on the client are mainly composed of the interval and the primary node.
  • the specific composition can be as shown in Figure 3.
  • the interval is a set of Big integers.
  • the interval included in the entry of the routing table is mainly composed of a left value (Left_Biglnteger) and a right value (Right_BigInteger), and the specific structure can be as shown in FIG.
  • the client traverses the entry of the local routing table based on the primary key field (for example, hashing the primary key field by using the MD algorithm, and based on the hash result), and finding the corresponding primary node according to the interval value in the entry. And sending a data operation request to the master node to cause the master node to perform a corresponding data read or write operation.
  • the specific processing flow can be as shown in Figure 5.
  • the cluster node After receiving the data operation request from the client, the cluster node returns a failure to the client once it finds a routing error, that is, the local node is not the primary node.
  • the client sends a routing table update request to the connected cluster node, so that the cluster node returns the local routing table to the client, and the client receives the received cluster from the cluster.
  • the routing table of the node updates the local routing table.
  • the specific processing flow can be as shown in Figure 6. It should be noted that the forwarding of the routing table is not performed between the cluster nodes.
  • the cluster node includes a routing table management module, a data synchronization management module, a storage module, and a network module.
  • the routing table management module of the cluster node mainly performs management of the cluster node local routing table and processing of the client data operation request. All cluster nodes and management nodes share a routing table.
  • the routing table entry contains not only the routing information of the cluster node, but also the routing information of all other cluster nodes. For example, suppose there are two cluster nodes A and B. If node A is responsible for interval [0, 10] and node B is responsible for interval [20, 30], then the number of entries in the routing table is 2, node A and node B.
  • the routing table is the same, including both entries. Therefore, it has information about the interval that the cluster node itself is responsible for, and also has information about other nodes that are not related to itself.
  • the entries of the routing table include interval information and replica information, and the specific composition structure can be as shown in FIG. 7.
  • the replica information mainly records the cluster node set corresponding to the interval, and may include a primary node and a standby node, to indicate whether a cluster node is responsible for the interval as a primary node or a standby node.
  • the data synchronization management module of the cluster node is used to manage the interval to achieve data synchronization between the master and the backup.
  • a log queue is used between the cluster nodes to implement data synchronization between the master and the backup.
  • an interval corresponds to a log queue
  • the corresponding log queue on the primary node is consistent with the log queue corresponding to the interval on the standby node.
  • the specific correspondence between the interval and the log queue can be as shown in Figure 8.
  • R1 ⁇ R3 are the values of the interval, L 1 ⁇ LN, L 1, ⁇ LN ' and L l,, ⁇ : LN" respectively correspond to the records in the log queue.
  • the master node sends the new record and the corresponding interval value to the standby node when synchronizing with the standby node.
  • the data structure sent by the master node to the standby node can be as shown in Figure 9.
  • the storage module of the cluster node is used for data storage and persistence, and may include a commit (submitlog) sub-module, a memory (memtree) sub-module, and a persistent (sstree) sub-module, and the data flow between the three sub-modules may be as Figure 10 shows.
  • the master node After receiving the data operation request from the client, the master node locally calls the routing table management module, and passes the data operation request to the data synchronization management module to perform data synchronization between the master and the backup. Then, after receiving the response returned by the standby node, the master node locally calls the storage module to store the data.
  • the data flow on the cluster nodes can be as shown in Figure 11.
  • the data synchronization between the master and the backup of the cluster node is performed in an asynchronous submission manner, that is, after the master node writes the record to the memory and the standby node writes the record to the corresponding 10 g queue, it returns to the client.
  • the data is successfully written, and then the master node periodically sends a commit request to the standby node to cause the standby node to write the record to memory.
  • the data synchronization between the master and the backup in the step submission mode can be divided into two phases, and the flowchart of the first phase can be as shown in FIG.
  • the primary node In response to the data operation request from the client, the primary node sends a synchronization request to the standby node after the local processing of the record, wherein the synchronization request may include information such as the record and the corresponding interval.
  • the standby node In response to receiving the synchronization request from the autonomous node, the standby node returns a response to the primary node after locally processing the synchronization request. Finally, the processing result (success or failure) is returned to the client by the master node.
  • the local processing of the primary node includes: writing the record to the log queue corresponding to the interval by using a new serial number; and, when the standby node returns or times out, does not return a response to the synchronization request, This record is written to memory.
  • the local processing of the standby node includes: writing the record to the log queue corresponding to the interval, and sorting the log queue according to the serial number.
  • the specific processing flow of the second phase of data synchronization between the master and the backup of the cluster node in the asynchronous submission mode can be as shown in FIG.
  • the master node periodically sends a submit request to the standby node, where the commit request may include information such as the interval and the serial number.
  • the standby node determines whether the log queue corresponding to the interval has a record missing, and if so, requests the primary node for the missing record; if not, the log queue corresponds to the serial number. The record is written to the memory.
  • the management node mainly includes a heartbeat detection module, a routing table management module, a table structure management module, and a network module.
  • the heartbeat detection module of the management node periodically checks and maintains the state of the cluster node based on the heartbeat sent by the cluster node, so as to push the latest version of the routing table and the table structure to the cluster node.
  • the main content of the heartbeat sent by the cluster node includes the version number of the local routing table and table structure.
  • the specific processing flow of the management node to maintain the routing table and table structure can be as shown in Figure 14.
  • the routing table management module of the management node is mainly used to: a) maintain the version number of the routing table and the routing table, each time the routing table is updated, the version number is increased by 1, and the management node and all the cluster nodes share a routing table (the table of the routing table)
  • the data structure of the item can be as shown in Figure 7.
  • the version number of the routing table on the management node is always greater than or equal to the version number of the routing table on the cluster node; and b) Segmentation and allocation of intervals, which occurs mainly when new nodes are joined and when load balancing is performed.
  • a join request is directly sent to the management node
  • the management node traverses the entries of the routing table, performs load statistics of the interval, and then according to a certain policy,
  • the interval is segmented, and a segment of the segmentation is assigned to the new node.
  • the new node requests data belonging to the interval from the original primary node corresponding to the interval, and after the data transfer is completed, the original primary node and the new node sequentially update the routing table. In this way, the new node joins the cluster as the primary node responsible for this interval.
  • the specific processing flow can be as shown in Figure 15.
  • the interval division before and after the new node is added can be as shown in FIG. .
  • the interval [751, 900] that the new node is responsible for as the primary node is obtained by dividing the original interval [501, 900].
  • the cluster node (specifically, the routing table management module) divides the interval corresponding to the related entry in the local routing table into at least two according to specific configuration parameters.
  • the related entry refers to a routing entry corresponding to the interval that the cluster node is responsible for as the primary node or the standby node.
  • the related entry refers to a routing entry in which the information indicating the cluster node is recorded in the copy information.
  • the correspondence between the interval and the divided sub-regions can be as shown in FIG. 18.
  • the client can still send a data operation request to the cluster node according to the interval.
  • the client still traverses the entry of the local routing table based on the key field of the data operation request, finds the corresponding cluster node according to the interval value in the entry, and sends a data operation request to the cluster node.
  • the cluster node (specifically by the data synchronization management module) will perform local processing in accordance with the divided sub-intervals (S 1730).
  • the cluster node (specifically, the routing table management module) first determines whether the local is responsible for the data as shown in FIG.
  • the master node of the interval corresponding to the key field of the operation request In the case of a routing error, that is, if the cluster node finds that the local node is not the master node, the cluster node (which may be specifically performed by the network module) will return a failure to the client.
  • the specific processing flow may be as shown in FIG. 6. However, in the case that the routing is correct, the cluster node (specifically, the routing table management module) finds a corresponding subinterval based on the key field of the data operation request, and then (specifically, the data synchronization management module) the subinterval Perform corresponding data read and write operations and update the log queue corresponding to the interval.
  • the specific processing flow can be as shown in Figure 12.
  • each sub-interval can be separately configured with a lock, that is, a permission setting for reading and writing the sub-interval.
  • a lock that is, a permission setting for reading and writing the sub-interval.
  • the cluster node in order to ensure thread security, the cluster node (specifically, the data synchronization management module) configures a read-write lock for each sub-interval, so that although the log queue of the same sub-interval is serially executed, Parallel execution is performed between log queues of different subintervals.
  • the serial operation for the entire continuous interval can be changed into parallel operations for at least two sub-intervals respectively, so that the throughput of the entire distributed storage system can be significantly improved, especially in Multi-threaded concurrent writes.
  • Table 1 shows the experimental results of throughput varying with the number of segments cut into subintervals over a contiguous interval on a single cluster node under 10 million records. Average throughput
  • a management node in the distributed storage system (which may be specifically configured by a heartbeat detection module) controls a continuous interval to be divided into sub-intervals.
  • the number of segments of the interval may be increased as a configuration parameter.
  • the specific data structure can be as shown in Figure 19. In other words, the number of segments can be recorded in the routing table entry corresponding to the interval in the local routing table of the cluster node together with the information indicating the interval.
  • the update of the routing table on the cluster node will include the update of the local routing table (also It is regarded as the routing table update in the routing table management module of the cluster node) and the update of the sub-interval (also can be regarded as the synchronization sub-interval update in the data synchronization management module of the cluster node).
  • the local routing table may be updated by using the full coverage mode, that is, the local routing table is replaced by the latest version routing table pushed by the management node (which may be specifically detected by the heartbeat detection module) as shown in FIG. 14.
  • the update of the sub-interval needs It is combined with the latest version of the routing table and the configuration parameters for the interval segmentation, and the specific processing flow can be as shown in FIG.
  • the update of the local routing table triggers the update of the subinterval (S2010), and the subinterval for the latest version of the routing table is considered only when traversing all the entries in the latest version of the routing table.
  • the update is completed (S2020, S2030, S2030Y).
  • each entry in the routing table first determine whether the entry is a related entry of the cluster node, that is, whether the information indicating the cluster node is recorded in the copy information of the entry (S2030N); If no, the process returns to step S2020 to process the next entry; if the determination is yes, the interval is first segmented according to the configuration parameter (S2040), and then only when the traversal completes all the subintervals that are cut out It is considered that the sub-interval update for the entry is completed (S2050, S2060).
  • the specific updating step may include: first determining, by the cluster node, whether the log queue corresponding to the sub-interval exists locally (S2070); determining that the log corresponding to the sub-interval exists locally In the case of the queue, it is considered that the update of the local routing table may be mainly the update of the replica information, so only the synchronization node information corresponding to the sub-interval needs to be updated based on the replica information in the entry of the local routing table (S2080).
  • the synchronization node information indicates information of other cluster nodes that are synchronized with the cluster node in the sub-interval; however, when it is determined that there is no log queue corresponding to the sub-interval, the sub-interval is considered to be newly generated.
  • the subinterval creates a log queue corresponding to the subinterval (S2090).
  • the sub-interval update is triggered.
  • the corresponding log queue on the master node should not be deleted before the commit on the standby node is completed, especially when the data between the master and the backup is synchronized in the asynchronous submission mode. Therefore, after the sub-interval update in response to the update of the local routing table is completed, it is possible that a new sub-interval and its log queue coexist with the old sub-interval and its log queue on the cluster node, and need to be on the standby node. The old subinterval and its log queue can only be deleted after the submission has been completed.
  • the cluster nodes periodically clear the records in their log queues, for example, by the routing table management module.
  • the timer periodically instructs the data synchronization management module to clear the record of the log queue to prevent the maintenance log queue from occupying too much memory.
  • the cluster node (specifically, the data synchronization management module) can perform the cleaning of the sub-interval as shown in FIG. 21.
  • the log queue clearing by timing triggers the cleaning of the subinterval (S2 1 10), and the subinterval cleaning is considered to be completed only after traversing all the subintervals of the cluster node local (S2120). , S2130), and then wait for the next timed log queue to be emptied.
  • the specific cleaning operation may include: first determining whether the sub-interval belongs to the result set (S2140), where the result set is corresponding to the related entry in the current local routing table according to the configuration parameter.
  • the interval is a set of subintervals obtained by segmentation, wherein the related entry is a routing entry in which the information indicating the cluster node is recorded in the copy information; if it is determined that the subinterval does not belong to the result set, the The sub-interval is the old sub-interval, so as to further determine whether the log queue corresponding to the sub-interval is empty (S21 50); if it is determined that the log queue corresponding to the sub-interval is not empty, then the active/standby based on the sub-interval is considered Inter-data synchronization may not be completed, especially in asynchronous submission mode, so the sub-interval should not be deleted temporarily; however, if the sub-interval is neither part of the result set and the corresponding log queue is empty, then the sub-interval is considered to have been Deprecated old subinterval, so you need to delete the subinterval and its log queue (S2160) to release the memory they occupy. And then returns to step S2120 to process the next subinterval.
  • FIG. 21 shows whether it is first determined whether it belongs to the result set and then determines whether the corresponding log queue is empty, those skilled in the art should understand that the execution order of the two judgments should not be limited to this, as long as it can be filtered out.
  • the new node joining the cluster triggers an update of the routing table.
  • the specific processing flow can be as shown in FIG. 22 .
  • the routing table and the information of the section to be responsible are first acquired from the management node as the identity of the master node (S2211).
  • the new node (specifically, the routing table management module) will segment the interval according to a predetermined configuration parameter (for example, the number of segments included in the interval information in the routing table item, etc.), and (specifically A corresponding log queue is created for each of the segmented sub-intervals by the data synchronization management module (S2212).
  • a predetermined configuration parameter for example, the number of segments included in the interval information in the routing table item, etc.
  • a corresponding log queue is created for each of the segmented sub-intervals by the data synchronization management module (S2212).
  • the division of the interval on the primary node into sub-intervals can occur when the new node is forced into the cluster.
  • joining a new node to a cluster may also trigger interval segmentation on the standby node.
  • the new node specifically, the routing table management module determines whether there is a standby node according to the replica information in the routing entry ( S2214).
  • the management node may trigger the new node to perform copy repair in a manner of periodically sending a copy repair request as shown in FIG. 22 (S2221).
  • the new node (specifically, the routing table management module) usually sends a backup request to the standby node (S2222), so that the new node can implement consistency with the pre-join data and respond to the standby node.
  • the data backup completion report from the standby node reports the copy repair completion to the management node (S2223).
  • the new node in the process of performing copy repair as described above, it is possible for the new node to receive a data operation request from the client, and the data operation is performed based on the data operation request and generated.
  • New log record (S2231).
  • the new node (specifically by the data synchronization management module) needs to send synchronization to the standby node.
  • obtaining (S2232), wherein the synchronization request includes information indicating the subinterval and corresponding operation data, so that the new node can implement consistency of the post-join data with the standby node.
  • FIG. 23 is a block diagram showing the structure of a cluster node device in accordance with another embodiment of the present invention.
  • the cluster node device 2300 may be a host server with computing power, a personal computer PC, or a portable computer or terminal that can be carried.
  • the specific embodiment of the present invention does not limit the specific implementation of the computing node.
  • the cluster node device 2300 includes a processor 2310, a communications interface 2320, a memory array 2330, and a bus 2340.
  • the processor 23 10, the communication interface 2320, and the memory 2330 complete communication with each other through the bus 2340.
  • the communication interface 2320 is configured to communicate with a network element, where the network element includes, for example, a virtual machine management center, shared storage, and the like.
  • the processor 23 10 is for executing a program.
  • the processor 23 10 may be a central processing unit CPU, or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention.
  • ASIC Application Specific Integrated Circuit
  • the memory 2330 is used to store files.
  • the memory 2330 may include a high speed RAM memory and may also include a non-volatile memory such as at least one disk memory.
  • Memory 2330 can also be a memory array.
  • the memory 2330 may also be partitioned, and the blocks may be combined into a virtual volume according to certain rules.
  • the above program may be program code including computer operating instructions.
  • the program is specifically applicable to the cluster node in the distributed system for the cluster node and the client, so that the cluster node: divides the interval corresponding to the first routing entry in the local routing table into at least two subintervals according to the configuration parameter.
  • the local routing table includes at least one routing entry, each of the routing entries includes at least interval information and replica information, and the interval information indicates information of an interval corresponding to the routing entry, the replica
  • the information is used to record the information of the cluster node set corresponding to the interval, where the first routing table entry refers to the information that the cluster node is recorded in the copy information.
  • a routing table entry a log queue is created for each of the sub-intervals; when receiving a data operation request from the client, determining a corresponding sub-interval according to the key segment of the data operation request; The subinterval performs a data read and write operation corresponding to the data operation request, and updates a log queue corresponding to the determined subinterval according to the data read/write operation.
  • the cluster node in a case that the cluster node updates the local routing table, the cluster node is further caused to: the updated local routing table according to the configuration parameter
  • the segment corresponding to the first routing entry in the segment is segmented; for each subinterval segmented after the updating, determining whether there is a log queue corresponding to the subinterval on the cluster node; A log queue corresponding to the sub-interval exists on the node, and the synchronization node information corresponding to the sub-interval is updated based on the replica information in the first routing entry, where the synchronization node information is displayed on the sub-interval Information about other cluster nodes that maintain data synchronization with the cluster node; and if there is no log queue corresponding to the sub-interval on the cluster node, a log queue is created for the sub-interval.
  • the cluster node is further caused to: determine, for each subinterval of the corresponding log queue on the cluster node, whether the subinterval belongs to a result set and the sub Whether the log queue corresponding to the interval is empty; and if the sub-interval does not belong to the result set and the log queue corresponding to the sub-interval is empty, the sub-interval and the log queue corresponding to the sub-interval are taken from Delete on the cluster node.
  • the result set is a set of sub-intervals obtained by dividing the interval corresponding to the first routing entry in the current local routing table of the cluster node according to the configuration parameter.
  • the cluster is further caused.
  • the node sends a split request to other cluster nodes recorded in the copy information of the first routing entry.
  • the split request includes And indicating the information of the interval and the configuration parameter, so that the other cluster nodes also segment the interval according to the configuration parameter.
  • the cluster node is configured to determine a corresponding subinterval according to the key segment of the data operation request, and includes: a keyword that causes the cluster node to request the data operation The segment hashes according to a certain hash algorithm; causing the cluster node to find a corresponding subinterval according to the hash result; and, if the corresponding subspace is not found, causing the cluster node to The client returns a response indicating a routing error.
  • the cluster node is further configured to read and write for each of the sub-intervals. Operational authority.
  • the cluster node is configured to perform a corresponding data read and write operation according to the determined subinterval, and update a log queue corresponding to the determined subinterval, including: The cluster node obtains the determined read and write operation authority of the subinterval; causing the cluster node to write the operation data of the data operation request into a log queue corresponding to the determined subinterval with a new serial number; And causing the cluster node to write the operation data into the memory, and feeding back the processing result to the client.
  • the cluster node before the cluster node is caused to write the operation data into the memory, the cluster node is further caused to record the copy information of the first routing entry.
  • the cluster node sends a synchronization request.
  • the other cluster node refers to a node in the distributed storage system for backing up data of the cluster node on the interval; the synchronization request includes information of the sub-interval and the operation Data, such that the other cluster nodes maintain data synchronization with the cluster nodes based on the subintervals.
  • the configuration parameter is a segment number
  • the segment number indicates that the segment is to be segmented from a corresponding interval of the first routing entry.
  • the number of segments is recorded together with the information indicating the interval in a routing entry corresponding to the interval in the local routing table.
  • the function is implemented in the form of computer software and sold or used as a stand-alone product, it may be considered to some extent that all or part of the technical solution of the present invention (for example, a part contributing to the prior art) is It is embodied in the form of computer software products.
  • the computer software product is typically stored in a computer readable storage medium and includes instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the various embodiments of the present invention.
  • the foregoing storage medium includes a U disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a disk or an optical disk, and the like, which can store program codes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种分布式存储系统、集群节点及其区间管理方法,包括:集群节点按照配置参数将本地路由表中的第一路由表项对应的区间切分为至少两个子区间,其中第一路由表项是指副本信息中记录有表示该集群节点的信息的路由表项;集群节点为每个子区间分别创建一个日志队列;以及集群节点根据来自客户端的数据操作请求的关键字段确定对应的子区间,针对确定的子区间执行相应的数据读写操作,并据此更新与对应的日志队列。通过在集群节点上将一段连续的数据存储区间切分为至少两个子区间、并针对每个子区间创建并维护一个日志队列,使得集群节点上原来针对整段区间的串行操作变成分别针对至少两个子区间的并行操作,可以有效提高系统整体的吞吐量。

Description

分布式存储系统、 集群节点及其区间管理方法
技术领域 本发明涉及分布式存储系统, 尤其涉及分布式存储系统中的集群节点 及其区间管理方法。 背景技术 分布式存储系统的组网拓朴可如图 1所示, 主要包括客户端(client), —个 管理 (manager)节点和若干个集群 (cluster)节点 (node)。 一般来说, 一个节点就 是一个物理机, 集群节点是主 (master)节点和备 (slave)节点的统称, 每个主节 点对应有一个或多个备节点, 并且各个节点之间通过网络进行通信。
对于图 1所示的分布式存储系统, 为了提高数据处理的吞吐量和整体性 能, 一般对数据进行分片存储和分片查询。 其中, 常用的分片是进行区间切 分 (range partition) , 即将一个大的数据存储区间分成几个小区间, 每个节点 (node)负责一段连续的区间。 其中, 所谓 "某个节点负责某个区间" , 是指 由该节点管理、 控制和 /或执行针对该区间的数据读写操作。 在进行读写操作 时, 客户端会基于数据操作的关键字段遍历路由表的表项, 根据表项内的区 间找到负责该区间的节点(主节点)上去执行该读写操作。 以下将主节点负责 的区间称为路由区间(routing range) , 以表示客户端能够通过路由表找到负责 该区间的主节点并执行相应的数据操作的意思。
另一方面, 为了可靠性的考虑, 在分布式存储系统中一般会为每个节点 做至少一个数据备份, 并且备份数据通常分布在不同的节点上 (备节点)。 在 进行主备间数据同步时, 主节点会向备节点发送包含数据操作记录等信息的 同步请求, 备节点会响应于该同步请求, 基于数据操作记录的关键字段遍历 路由表的表项, 针对表项内的区间进行相应的备份数据同步操作。 以下将主 节点和备节点进行数据操作的区间称为同步区间(sync range) , 以表示备节点 能够通过路由表找到该区间并执行相应的备份数据同步操作的意思。
在现有技术中, 路由区间和同步区间的大小是一致的。 例如, 假设节点 Α作为主节点负责区间 [0,100] , 并且节点 B作为节点 A在区间 [0,100]上的备节 点, 则相对于客户端来说, 区间 [0,100]是用于找到节点 Α的路由区间, 而相 对于节点 A和节点 B来说, 区间 [0,100]是两者进行数据操作的同步区间。
这使得, 在集群节点个数一定的情况下, 如果一个节点上维护的区间个 数较少, 例如基于主键进行区间切分的数据库 Spinnake , 则有可能出现多个 线程竟争对同一个区间进行数据操作的权限的情况 ,尤其对于一些热点分区 , 容易造成串行执行现象。 这势必会导致访问时间的延长以及数据读写效率和 备份效率的降低, 从而影响系统的数据处理吞吐量。
另一方面, 在集群节点个数一定的情况下, 如果一个节点上维护的区间 个数较多, 例如基于主键和非主键均进行区间切分的分布式键值数据库 HyperDex, 则由于路由区间的个数比较多, 从而会增加客户端的路由开销。 发明内容 有鉴于此, 本发明实施例要解决的技术问题是, 如何进行分布式存储系 统中的集群节点上的区间管理, 以在不增加客户端的路由开销的前提下有效 提高系统的数据处理吞吐量。
为了解决上述技术问题, 根据本发明实施例的第一方面, 提供了一种区 间管理方法, 该方法应用于包括集群节点和客户端的分布式系统中的集群节 点。 该方法主要包括: 所述集群节点按照配置参数将与本地路由表中的第一 路由表项对应的区间切分为至少两个子区间, 其中, 所述本地路由表包括至 少一个路由表项, 每个所述路由表项至少包括区间信息和副本信息, 所述区 间信息表示与所述路由表项对应的区间的信息, 所述副本信息用于记录与所 述区间相对应的集群节点集的信息, 所述第一路由表项是指所述副本信息中 记录有表示所述集群节点的信息的路由表项; 所述集群节点为每个所述子区 间分别创建一个日志队列; 在接收到来自所述客户端的数据操作请求时, 所 述集群节点根据所述数据操作请求的关键字段确定对应的子区间; 所述集群 节点根据确定的所述子区间执行与所述数据操作请求对应的数据读写操作, 并根据所述数据读写操作更新与确定的所述子区间对应的日志队列。
结合第一方面, 在第一种可能的实现方式中, 在所述集群节点更新了所 述本地路由表的情况下, 该方法还包括: 所述集群节点按照所述配置参数对 更新后的所述本地路由表中的第一路由表项对应的区间进行切分; 对于在所 述更新之后切分出的每个子区间, 所述集群节点判断所述集群节点上是否存 在与所述子区间对应的日志队列; 若所述集群节点上存在与所述子区间对应 的日志队列, 则所述集群节点基于所述第一路由表项中的副本信息更新所述 子区间对应的同步节点信息, 其中所述同步节点信息表示在所述子区间上与 所述集群节点保持数据同步的其它集群节点的信息; 以及若所述集群节点上 不存在与所述子区间对应的日志队列, 则所述集群节点为所述子区间创建一 个曰志队列。
结合第一方面的第一种实现方式, 在第二种可能的实现方式中, 该方法 还包括: 对于在所述集群节点上存在对应的日志队列的每个子区间, 所述集 群节点判断所述子区间是否属于结果集以及所述子区间对应的日志队列是否 为空; 以及在所述子区间不属于结果集并且所述子区间对应的日志队列为空 的情况下, 将所述子区间及所述子区间对应的日志队列从所述集群节点上删 除。 其中, 所述结果集是指根据所述配置参数对所述集群节点当前的本地路 由表中的第一路由表项对应的区间进行切分所得到的子区间的集合。
结合第一方面、 第一方面的第一种实现方式或第一方面的第二种实现方 式, 在第三种可能的实现方式中, 在所述集群节点按照配置参数将本地路由 表中的第一路由表项对应的区间切分为至少两个子区间之后, 还包括: 所述 集群节点向所述第一路由表项的副本信息中记录的其它集群节点发送切分请 求。 其中, 所述切分请求包含表示所述区间的信息以及所述配置参数, 以使 所述其它集群节点也根据所述配置参数对所述区间进行切分。
结合第一方面、 第一方面的第一种实现方式、 第一方面的第二种实现方 式或第一方面的第三种实现方式, 在第四种可能的实现方式中, 所述集群节 点根据所述数据操作请求的关键字段确定对应的子区间, 包括: 所述集群节 点对所述数据操作请求的关键字段按照一定的哈希算法进行哈希; 所述集群 节点根据所述哈希的结果查找对应的子区间; 以及在未查找到对应的子空间 的情况下, 所述集群节点向所述客户端返回表示路由错误的响应。
结合第一方面、 第一方面的第一种实现方式、 第一方面的第二种实现方 式、 第一方面的第三种实现方式或第一方面的第四种实现方式, 在第五种可 能的实现方式中, 在所述集群节点为每个所述子区间分别创建一个日志队列 之后, 还包括: 所述集群节点为每个所述子区间单独配置读写操作权限。
结合第一方面的第五种实现方式, 在第六种可能的实现方式中, 所述集 群节点根据确定的所述子区间执行相应的数据读写操作, 并更新与确定的所 述子区间对应的日志队列, 包括: 所述集群节点获得确定的所述子区间的读 写操作权限; 所述集群节点将所述数据操作请求的操作数据以新的序列号写 入与确定的所述子区间对应的日志队列; 以及所述集群节点将所述操作数据 写入内存, 并向所述客户端反馈处理结果。
结合第一方面的第六种实现方式, 在第七种可能的实现方式中, 在所述 集群节点将所述操作数据写入内存之前, 还包括: 所述集群节点向所述第一 路由表项的副本信息中记录的其它集群节点发送同步请求。 其中, 所述其它 集群节点是指所述分布式存储系统中用于对所述集群节点在所述区间上的数 据进行备份的节点;所述同步请求包含所述子区间的信息以及所述操作数据, 以使所述其它集群节点基于所述子区间与所述集群节点保持数据同步。
结合第一方面和第一方面的上述所有可能的实现方式中的任意一种, 在 第八种可能的实现方式中, 所述配置参数为分段数, 所述分段数表示要从一 个所述第一路由表项对应的区间切分出的子区间的个数。
结合第一方面的第七种可能的实现方式, 在第九种可能的实现方式中, 所述分段数与表示所述区间的信息一起记录在所述本地路由表中的与所述区 间对应的路由表项内。
第二方面, 本发明实施例还提供一种集群节点, 该集群节点应用于包括 集群节点和客户端的分布式系统, 主要包括: 网络模块, 与所述客户端连接, 用于接收来自所述客户端的数据操作请求; 路由表管理模块, 与所述网络模 块连接, 用于管理所述集群节点的本地路由表、 处理所述数据操作请求、 并 按照配置参数将与所述本地路由表中的第一路由表项对应的区间切分为至少 两个子区间, 其中, 所述本地路由表包括至少一个路由表项, 每个所述路由 表项至少包括区间信息和副本信息, 所述区间信息表示与所述路由表项对应 的区间的信息, 所述副本信息用于记录与所述区间相对应的集群节点集的信 息, 所述第一路由表项是指所述副本信息中记录有表示所述集群节点的信息 的路由表项; 数据同步管理模块, 与所述网络模块以及所述路由表管理模块 连接, 用于为每个所述子区间分别创建一个日志队列; 以及存储模块, 与所 述数据同步管理模块连接, 用于进行数据存储以及持久化。 其中, 在所述网 络模块接收到所述数据操作请求时: 所述路由表管理模块根据所述数据操作 请求的关键字段确定对应的子区间; 所述数据同步管理模块根据确定的所述 子区间执行与所述数据操作请求对应的数据读写操作, 并根据所述数据读写 操作更新与确定的所述子区间对应的日志队列。
结合第二方面,在第一种可能的实现方式中, 所述网络模块还被配置为, 接收所述分布式系统的最新版本路由表; 所述路由表管理模块还被配置为, 将所述本地路由表更新为所述最新版本路由表, 并按照所述配置参数对更新 后的所述本地路由表中的第一路由表项对应的区间进行切分; 以及所述数据 同步管理模块还被配置为, 对于在所述更新之后切分出的每个子区间, 判断 所述集群节点上是否存在与所述子区间对应的日志队列, 若判断结果为存在 与所述子区间对应的日志队列, 则所述数据同步管理模块基于所述第一路由 表项中的副本信息更新所述子区间对应的同步节点信息, 其中所述同步节点 信息表示在所述子区间上与所述集群节点保持数据同步的其它集群节点的信 息; 若判断结果为不存在与所述子区间对应的日志队列, 则所述数据同步管 理模块所述数据同步管理模块为所述子区间创建一个日志队列。
结合第二方面的第一种可能的实现方式, 在第二种可能的实现方式中, 所述数据同步管理模块还被配置为: 对于在所述集群节点上存在对应的曰志 队列的每个子区间, 判断所述子区间是否属于结果集以及所述子区间对应的 曰志队列是否为空; 以及在所述子区间不属于结果集并且所述子区间对应的 日志队列为空的情况下, 将所述子区间及所述子区间对应的日志队列从所述 集群节点上删除。 其中, 所述结果集是指根据所述配置参数对所述集群节点 当前的本地路由表中的第一路由表项对应的区间进行切分所得到的子区间的 集合。
结合第二方面、 第二方面的第一种可能的实现方式或第二方面的第二种 可能的实现方式, 在第三种可能的实现方式中, 所述路由表管理模块还被配 置为, 在按照配置参数将本地路由表中的第一路由表项对应的区间切分为至 少两个子区间之后, 生成切分请求, 其中, 所述切分请求包含表示所述区间 的信息以及所述配置参数; 以及所述网络模块还被配置为, 向所述第一路由 表项的副本信息中记录的其它集群节点发送所述切分请求, 以使所述其它集 群节点也根据所述配置参数对所述区间进行切分。
结合第二方面、 第二方面的第一种可能的实现方式、 第二方面的第二种 可能的实现方式或第二方面的第三种可能的实现方式, 在第四种可能的实现 方式中, 所述数据同步管理模块还被配置为: 为每个所述子区间单独配置读 写操作权限。
结合第二方面、 第二方面的第一种可能的实现方式、 第二方面的第二种 可能的实现方式、 第二方面的第三种可能的实现方式或第二方面的第四种可 能的实现方式, 在第五种可能的实现方式中, 所述配置参数为分段数, 所述 分段数表示要从一个所述第一路由表项对应的区间切分出的子区间的个数。
结合第二方面的第五种可能的实现方式, 在第六种可能的实现方式中, 所述分段数与表示所述区间的信息一起记录在所述本地路由表中的与所述区 间对应的路由表项内。
第三方面, 本发明实施例提供一种分布式存储系统, 其包括客户端和至 少两个本发明任一实施例所述的集群节点。 其中, 各所述集群节点与所述客 户端连接, 各所述集群节点用于响应于来自所述客户端的数据操作请求以进 行数据处理操作, 并向所述客户端返回所述数据处理操作的处理结果。
可见, 本发明实施例提供的区间管理方法和装置, 通过在集群节点上将 一段连续的区间切分为至少两个子区间、 并针对每个子区间创建并维护一个 日志(log ) 队列, 根据本发明实施例的分布式存储系统、 集群节点及其区间 管理方法使得集群节点上原来针对整段连续区间的串行操作可变成分别针对 所切分出的至少两个子区间的并行操作,从而对于整个分布式存储系统来说, 可以有效提高吞吐量, 尤其在多线程并行写的情况下。 附图说明 为了更清楚地说明本发明实施例的技术方案, 下面将对本发明实施例中 所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的 前提下, 还可以根据这些附图获得其他的附图。
图 1示出分布式存储系统的组网拓朴的示意图;
图 2示出分布式存储系统中的客户端、作为主节点的集群节点(以下又称 为集群主节点或主节点)、 作为备节点的集群节点(以下又称为集群备节点或 备节点)和管理节点的模块组成以及相互间交互的示意图;
图 3示出分布式存储系统中客户端上路由表的表项的数据结构的示意 图; 图 4示出分布式存储系统中客户端上路由表的表项内的区间的数据结构 的示意图;
图 5示出分布式存储系统中客户端响应于数据操作需求所执行的处理的 流程示意图;
图 6示出分布式存储系统中集群节点响应于来自客户端的数据操作请求 所执行的处理的流程示意图;
图 7示出分布式存储系统中集群节点上路由表的表项的数据结构的示意 图;
图 8示出分布式存储系统中集群节点上区间与日志队列的对应关系的示 意图;
图 9示出分布式存储系统中集群主节点同步给集群备节点的数据结构的 示意图;
图 10示出分布式存储系统中集群节点上存储模块内的数据流向的示意 图;
图 11示出分布式存储系统中作为主节点的集群节点上的数据流向的示 意图;
图 12示出分布式存储系统中集群节点以异步提交方式进行主备间数据 同步的第一阶段的处理流程示意图;
图 13示出分布式存储系统中集群节点以异步提交方式进行主备间数据 同步的第二阶段的处理流程示意图;
图 14示出分布式存储系统中管理节点维护路由表和表结构的处理流程 示意图;
图 15示出分布式存储系统在新节点加入集群时的处理流程的示意图; 图 16示出分布式存储系统在新节点加入前后的区间分配的示例图; 图 17示出根据本发明一实施例的区间管理方法的处理流程的示意图; 图 18示出图 17所示区间管理方法中区间与切分出的至少两个子区间之 间的对应关系的示意图;
图 19示出根据本发明另一实施例的区间管理方法中集群节点上路由表 的表项内的区间的数据结构示意图;
图 20示出根据本发明又一实施例的区间管理方法中子区间更新的处理 流程的示意图; 图 21示出根据本发明又一实施例的区间管理方法中子区间清理的处理 流程的示意图;
图 22示出根据本发明又一实施例的区间管理方法在新节点加入时的处 理流程的示意图; 以及
图 23示出根据本发明又一实施例的一种集群节点设备的结构框图。 具体实施方式 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方 案进行清楚地描述, 显然, 所描述的实施例是本发明的一部分示例性 的实施例, 而不是全部实施例。 基于本发明中的实施例, 本领域普通 技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例, 都应属于本发明保护的范围。
在这里专用的词"示例性 "意为 "用作例子、 实施例或说明性"。 这 里作为 "示例性"所说明的任何实施例不必解释为优于或好于其它实施 例。
另外, 为了更好的说明本发明, 在下文的具体实施方式中给出了 众多的具体细节。 本领域技术人员应当理解, 没有这些具体细节, 本 发明同样可以实施。 在另外一些实例中, 对于大家熟知的方法、 手段、 元件和电路未作详细描述, 以便于凸显本发明的主旨。
如背景技术部分所述, 对于分布式存储系统, 如何进行节点的区 间管理, 以在不增加客户端的路由开销的前提下尽量提高系统数据处 理吞吐量, 是目前亟待解决的问题。
图 2示出了图 1所示分布式存储系统中的客户端、 主节点、 备节点 和管理节点的模块组成以及相互间交互的示意图。 如图 2所示, 分布 式存储系统中的通信主要包括:
①客户端和集群节点之间的交互
如图 2所示, 客户端主要包括路由表管理模块和网络模块, 其中 路由表管理模块主要进行路由表的初始化和更新操作, 而网络模块用 于连接集群主节点。 客户端上路由表的初始化, 是从连接到的第一个 集群节点上获得的。 客户端上路由表所包括的表项主要由区间和主节 点构成, 具体组成结构可如图 3所示。
在一种可能的实现方式中, 区间是大整数(Biglnteger)的集合。 这 样, 路由表的表项所包括的区间主要由左值(Left— Biglnteger)和右值 (Right_BigInteger)组成, 具体结构可如图 4所示。
响应于数据操作需求, 客户端基于主键字段(例如, 利用 MD算法 将主键字段进行哈希, 并基于哈希结果)遍历本地路由表的表项, 根据 表项内的区间值找到对应的主节点, 并向该主节点发送数据操作请 求, 以使该主节点执行相应的数据读或写操作。 具体处理流程可如图 5所示。
集群节点在接收到来自客户端的数据操作请求后, 一旦发现路由 错误、 即本地不是主节点, 则向客户端返回失败。 响应于接收到集群 节点返回的路由失败, 客户端将向所连接的集群节点发送路由表更新 请求, 以使集群节点将本地的路由表返回给客户端, 并且客户端根据 所接收到的来自集群节点的路由表对本地的路由表进行更新, 具体处 理流程可如图 6所示。 需要说明的是, 集群节点之间不进行路由表的 转发。
②集群节点之间的交互
如图 2所示, 集群节点本地包括路由表管理模块、 数据同步管理 模块、 存储模块和网络模块。
其中, 集群节点的路由表管理模块主要进行集群节点本地路由表 的管理和客户端数据操作请求的处理。 所有集群节点和管理节点共用 一份路由表。 路由表的表项不仅包含该集群节点的路由信息, 还包含 其它所有集群节点的路由信息。例如 ,假设一共有两个集群节点 A和 B , 如果节点 A负责区间 [0,10]、 节点 B负责区间 [20,30] , 那么路由表的表 项数就是 2 , 节点 A和节点 B上的路由表都一样, 都包括这两个表项, 从而既具有集群节点自身所负责区间的信息, 也具有与自身无关的其 它节点的信息。 并且, 路由表的表项包括区间信息和副本信息, 具体 组成结构可如图 7所示。 其中, 副本信息主要记录与该区间对应的集 群节点集, 可包括主节点和备节点, 以表示某个集群节点是作为主节 点还是作为备节点负责该区间。
集群节点的数据同步管理模块用来管理区间以实现主备间数据 同步。 在一种可能的实现方式中, 集群节点之间釆用 log队列来实现主 备间数据同步。 具言之, 一个区间对应一个 log队列, 并且主节点上区 间对应的 log队列与备节点上区间对应的 log队列是保持一致的。 区间 与 log队列的具体对应关系可如图 8所示。 其中, R1 ~R3是区间的值, L 1 ~LN、 L 1,~LN '和 L l,,〜: LN"分别为对应 log队列中的记录。 L l、 L l, 和 L 1 "分别为 log队列的头, 有新记录时, 从对应 log队列的尾部写入。 为了保证主备节点间数据的一致性, 主节点向备节点同步时会把新记 录和对应的区间的值一并发送给备节点。 主节点发送给备节点的数据 结构可如图 9所示。
集群节点的存储模块用于进行数据存储以及持久化, 可包括日志 (commitlog)子模块、 内存 (memtree)子模块和持久化 (sstree)子模块, 并 且这三个子模块之间的数据流向可如图 10所示。
主节点在接收到来自客户端的数据操作请求后, 在本地调用路由 表管理模块, 并将该数据操作请求传递给数据同步管理模块以进行主 备间数据同步。 然后, 主节点在接收到备节点返回的响应后, 在本地 调用存储模块以进行数据的存储。 在集群节点上的数据流向可如图 11 所示。
在一种可能的实现方式, 以异步提交方式来进行集群节点的主备 间数据同步, 即在主节点将记录写入内存并且备节点将记录写入对应 的 10 g队列后就向客户端返回数据写入成功的结果,然后再由主节点定 期向备节点发送提交请求以使备节点将记录写入内存。 换言之, 以异 步提交方式进行的主备间数据同步可分为两个阶段, 其中第一阶段的 流程图可如图 12所示。 响应于来自客户端的数据操作请求, 主节点对 记录进行本地处理后, 向备节点发送同步请求, 其中该同步请求可包 含该条记录和对应的区间等信息。 响应于接收到来自主节点的同步请 求, 备节点在对该同步请求进行本地处理后, 返回响应给主节点。 最 后, 由主节点将处理结果(成功或失败)返回给客户端。 如图 12所示, 主节点的本地处理包括: 将该条记录以一个新的序列号写入区间对应 的 log队列; 以及, 当备节点返回或超时未返回针对该同步请求的响应 时, 将该条记录写入内存。 备节点的本地处理包括: 将该条记录写入 区间对应的 log队列, 并根据序列号对 log队列进行排序。
以异步提交方式进行集群节点的主备间数据同步的第二阶段的 具体处理流程可如图 13所示。 主节点定时向备节点发送提交请求, 其 中该提交请求可包含区间和序列号等信息。 响应于接收到来自主节点 的提交请求, 备节点判断该区间对应的 log队列是否有记录缺失, 如果 有, 就向主节点请求缺失的记录; 如果没有, 就将 log队列中与该序列 号对应的记录写入内存。
③集群节点与管理节点之间的交互
如图 2所示, 管理节点主要包括心跳检测模块、 路由表管理模块、 表结构(schema)管理模块和网络模块。
其中, 管理节点的心跳检测模块基于集群节点发送的心跳来定期 检查并维护集群节点的状态, 以向集群节点推送最新版本的路由表和 表结构。 集群节点发送心跳的主要内容包括本地路由表和表结构的版 本号。 管理节点维护路由表和表结构的具体处理流程可如图 14所示。
管理节点的路由表管理模块主要用于: a)维护路由表和路由表的 版本号, 路由表每更新一次, 版本号加 1 , 管理节点和所有集群节点 共用一份路由表(路由表的表项的数据结构可如图 7所示), 管理节点上 路由表的版本号总是大于或等于集群节点上路由表的版本号; 以及 b) 进行区间的切分和分配, 这主要发生在新节点加入时和进行负载均衡 时。
在一种可能的实现方式中, 在有新的集群节点加入时, 直接向管 理节点发送加入请求, 管理节点遍历路由表的表项, 进行区间的负载 统计, 然后按照一定的策略, 对现有的区间进行切分, 将切分出的某 段区间分配给新节点。 新节点从该区间对应的原始主节点上请求属于 该区间的数据, 待数据传送完成后, 原始主节点和新节点依次更新路 由表。 这样, 新节点以负责这个区间的主节点身份加入集群, 具体处 理流程可如图 15所示。
例如, 假设现有六个节点, 分别作为主节点所负责的区间为
[0, 100]、 [ 101 ,200]、 [201 ,300]、 [301 ,400]、 [401 ,500]和 [501 ,900] , 则 新节点加入前后的区间划分可如图 16所示。 其中, 新节点作为主节点 所负责的区间 [751 , 900]是通过切分原区间 [501 , 900]所得。
为了提高集群节点本地的写入速度和并发处理能力、 而不增加客 户端的路由开销, 可以考虑在集群节点上将连续的某段区间切分成更 小的粒度。 例如, 在一种可能的实现方式中, 如图 17所示, 集群节点 (可具体由路由表管理模块)按照特定的配置参数将本地路由表中的相 关表项对应的区间切分为至少两个子区间(S 1710) , 并且(可具体由数 据同步管理模块)为每个子区间分别创建一个日志队列(S 1720)。 其中, 所述相关表项是指该集群节点作为主节点或者备节点所负责的区间 所对应的路由表项。 换言之, 所述相关表项是指副本信息中记录有表 示该集群节点的信息的路由表项。 此外, 所述区间与所切分出的子区 间的对应关系可如图 18所示。
这样, 客户端仍能够按照所述区间向集群节点发送数据操作请 求。 具言之, 客户端仍将基于数据操作请求的关键字段遍历本地路由 表的表项, 根据表项内的区间值找到对应的集群节点, 并向该集群节 点发送数据操作请求。 但是, 集群节点(可具体由数据同步管理模块)将按照所切分出的 子区间执行本地处理(S 1730)。 具言之, 在集群节点(可具体由网络模 块)接收到来自客户端的数据操作请求后, 该集群节点将(可具体由路 由表管理模块)首先如图 6所示判断本地是否为负责该数据操作请求的 关键字段对应的区间的主节点。 在路由错误、 即集群节点发现本地不 是主节点的情况下, 集群节点(可具体由网络模块)将向客户端返回失 败, 具体处理流程可如图 6所示。 然而, 在路由正确的情况下, 集群 节点(可具体由路由表管理模块)将基于该数据操作请求的关键字段找 到对应的子区间, 然后(可具体由数据同步管理模块)对该子区间执行 相应的数据读写操作并更新与该区间对应的日志队列, 具体处理流程 可如图 12所示。
在一种可能的实现方式中, 每个子区间可单独配置一把锁、 即对 该子区间进行读写操作的权限设置。 例如, 在多线程插入时, 为了保 证线程安全, 集群节点(可具体由数据同步管理模块)给每个子区间配 置一把读写锁, 使得虽然同一个子区间的 log队列是串行执行的, 但不 同子区间的 log队列之间是并行执行。 这样, 在集群节点本地, 可将原 来针对整个连续区间的串行操作变成分别针对所切分出的至少两个 子区间的并行操作, 从而能够显著提高整个分布式存储系统的吞吐 量, 尤其在多线程并发写的情况下。
下表 1示出了在 1000万条记录下, 吞吐量随单个集群节点上的一 段连续区间被切分成子区间的段数而变化的实验结果。 吞吐量 平均延
区间:子区
(ops/sec 迟
) (ms)
现有技术 1 : 1 34337 5.6844 本发明实施 1 : 8 43507 4.5916 例 1 : 32 47020 4.2674
从表 1所示可以看出, 通过在集群节点上将一段连续的区间切分 为至少两个子区间、 并针对每个子区间创建并维护一个 log队列, 对于 整个分布式存储系统来说, 不仅可以有效提高吞吐量, 还可以有效降 低平均延迟时间, 这显然非常有助于用户体验的提升。 此外, 可以基 于至少两个子区间进行数据的负载均衡, 从而消除由于数据在多个集 群节点上存放的差异以及数据本身热点的产生和转移而导致的集群 节点间负载不均衡以及集群节点处理性能下降等。
在一种可能的实现方式中,由分布式存储系统中的管理节点(可具 体由心跳检测模块)来控制一段连续区间被切分成子区间的个数。 这 样, 在管理节点向集群节点下发的路由表的表项内所包括的区间的数 据结构中, 可增加区间的分段数作为配置参数。 具体的数据结构可如 图 19所示。 换言之, 分段数可与表示区间的信息一起记录在集群节点 的本地路由表中的与该区间对应的路由表项内。
由于只在集群节点上将一段连续区间切分为至少两个子区间, 而 并不更改整个分布式存储系统的路由表, 这使得集群节点上路由表的 更新将包括本地路由表的更新(也可视为集群节点的路由表管理模块 中的路由表更新)和子区间的更新(也可视为集群节点的数据同步管理 模块中的同步用子区间更新)。 其中, 本地路由表的更新可釆用全部覆 盖的方式, 即用由管理节点(可具体由心跳检测模块)如图 14所示推送 的最新版本路由表来替换本地的路由表。 然而, 子区间的更新却需要 结合最新版本的路由表和关于区间切分的配置参数来进行, 并且具体 的处理流程可如图 20所示。
如图 20所示, 由本地路由表的更新触发子区间的更新(S2010) , 并 且仅在遍历完成最新版本的路由表中的所有表项的情况下才认为针 对该最新版本路由表的子区间更新完成(S2020、 S2030、 S2030Y)。 对 于路由表中的每个表项, 首先要判断该表项是否是该集群节点的相关 表项、 即该表项的副本信息中是否记录有表示该集群节点的信息 (S2030N) ; 如果判断为否, 则返回步骤 S2020以处理下一个表项; 如 果判断为是, 则需要首先根据配置参数对区间进行切分(S2040) , 并然 后仅在遍历完成所切分出的所有子区间的情况下才认为针对该表项 的子区间更新完成(S2050、 S2060)。 并且, 对于所切分出的每个子区 间, 具体的更新步骤可包括: 首先判断该集群节点本地是否存在该子 区间对应的 log队列(S2070); 在判断为本地已存在该子区间对应的 log 队列的情况下, 认为该次本地路由表的更新可能主要是副本信息的更 新, 因此仅需基于本地路由表的表项中的副本信息更新该子区间对应 的同步节点信息(S2080) ,其中所述同步节点信息表示与该集群节点在 该子区间上保持数据同步的其它集群节点的信息; 然而, 在判断为本 地不存在该子区间对应的 log队列的情况下,认为该子区间是新产生的 子区间, 则创建与该子区间对应的 log队列(S2090)。
通过上述介绍可知, 每次本地路由表的更新都会触发子区间的更 新。 然而, 为了确保集群节点的主备间数据的一致性, 在备节点上的 提交完成前不应删除主节点上的对应 log队列,尤其在以异步提交方式 进行主备间数据同步的情况下。 因此, 在响应于本地路由表的更新进 行的子区间更新完成后,在集群节点上有可能出现新的子区间及其 log 队列与旧的子区间及其 log队列共存,并需要在备节点上的提交全部完 成后才能将旧的子区间及其 log队列删除。 此外, 一般来说, 集群节点 会定时清空其上 log队列中的记录, 例如, 可由路由表管理模块起一个 定时器来定时指示数据同步管理模块进行 log队列的记录清空,以避免 维护 log队列占用过多内存。 这样, 集群节点(可具体由数据同步管理 模块)可如图 21所示来进行子区间的清理。
如图 21所示, 由定时进行的 log队列清空触发子区间的清理 (S2 1 10) , 并且仅在遍历完成集群节点本地的所有子区间的情况下才认 为该次的子区间清理完成(S2120、 S2130) , 之后等待下一定时的 log队 列清空。 对于集群节点本地的每个子区间, 具体的清理操作可包括: 首先判断该子区间是否属于结果集(S2140) ,其中所述结果集为根据配 置参数对当前的本地路由表中的相关表项对应的区间进行切分所得 到的子区间的集合, 其中相关表项是指副本信息中记录有表示该集群 节点的信息的路由表项; 若判断为该子区间不属于结果集, 则可认为 该子区间是旧的子区间,从而进一步判断该子区间对应的 log队列是否 为空(S21 50) ; 若判断为该子区间对应的 log队列不为空, 则认为基于 该子区间进行的主备间数据同步可能尚未完成、 尤其在异步提交方式 下, 因此暂时不应该删除该子区间; 然而, 若该子区间既不属于结果 集并且对应的 log队列为空, 则认为该子区间是已被弃用的旧子区间, 因此需要将该子区间及其 log队列删除(S2160) , 以释放它们占用的内 存, 并然后返回步骤 S2120以处理下一个子区间。
需要说明的是, 尽管图 21示出先判断是否属于结果集、 再判断对 应 log队列是否为空, 但本领域技术人员应能理解, 这两个判断的执行 顺序应不限于此,只要能够筛选出既不属于结果集并且对应 10 g队列为 空的子区间即可。 例如, 可以先判断对应 log队列是否为空、 再判断是 否属于结果集, 也可以同时进行这两个判断。
如上参考图 1 5所述, 新节点加入集群会触发路由表的更新。 这使 得, 在集群节点将一个区间切分为至少两个子区间的情况下, 新节点 加入集群还将进一步触发子区间的更新, 具体的处理流程可如图 22所 示。 如图 22所示, 对于加入集群的新节点, 首先将以主节点的身份从 管理节点获取路由表以及要负责的区间的信息(S2211)。 然后, 该新节 点(可具体由路由表管理模块)将根据预定的配置参数(例如, 路由表项 内的区间信息中所包括的分段数等)对该区间进行切分, 并(可具体由 数据同步管理模块)为切分出的每个子区间分别创建对应的 log队列 (S2212)。 换言之, 主节点上的区间切分为子区间可发生在作为新节点 力口入集群时。
在一种可能的实现方式中, 新节点加入集群还可能触发备节点上 的区间切分。具言之,如图 22所示,在以主节点的身份加入集群(S2213) 后, 该新节点(可具体由路由表管理模块)将根据路由表项内的副本信 息判断是否存在备节点(S2214)。并且,在判断为存在备节点的情况下, 向备节点发送切分请求(S2214Y) , 其中所述切分请求包含表示所述区 间的信息以及所述配置参数, 以使得备节点能够响应于该切分请求而 根据配置参数对该区间进行切分、 并为所切分出的每个子区间分别创 建对应的 log队列, 从而使得主备节点对一段区间的切分能够保持一 致。 然而, 在判断为不存在备节点的情况下, 该新节点将直接进入等 待管理节点触发副本修复的状态(S2215)。
在一种可能的具体实现方式中, 管理节点可以如图 22所示以定时 发送副本修复请求的方式来触发新节点进行副本修复(S2221)。响应于 该副本修复请求, 该新节点(可具体由路由表管理模块)通常会向备节 点发送备份请求(S2222) ,以使该新节点能够与备节点实现加入前数据 的一致性, 并响应于来自备节点的数据备份完成报告, 向管理节点报 告副本修复完成 S2223)。
在一种可能的具体实现方式中, 如图 22所示, 在如上进行副本修 复的过程中, 新节点有可能接收到来自客户端的数据操作请求, 并且 将基于该数据操作请求进行数据操作并产生新的 log记录(S2231)。 这 时, 该新节点(可具体由数据同步管理模块)需要向备节点发送同步请 求(S2232) ,其中该同步请求包含表示子区间的信息以及相应的操作数 据, 以使该新节点能够与备节点实现加入后数据的一致性。
图 23示出了本发明的另一个实施例的一种集群节点设备的结构 框图。 所述集群节点设备 2300可以是具备计算能力的主机服务器、 个 人计算机 PC、 或者可携带的便携式计算机或终端等。 本发明具体实施 例并不对计算节点的具体实现做限定。
所述集群节点设备 2300包括处理器(processor) 2310、 通信接口 (Communications Interface) 2320、 存储器 (memory array) 2330和总线 2340。 其中, 处理器 23 10、 通信接口 2320、 以及存储器 2330通过总线 2340完成相互间的通信。
通信接口 2320用于与网元通信, 其中网元包括例如虚拟机管理中 心、 共享存储等。
处理器 23 10用于执行程序。 处理器 23 10可能是一个中央处理器 CPU , 或者是专用集成电路 ASIC (Application Specific Integrated Circuit) , 或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器 2330用于存放文件。 存储器 2330可能包含高速 RAM存储 器, 也可能还包括非易失性存储器(non-volatile memory) , 例如至少一 个磁盘存储器。 存储器 2330也可以是存储器阵列。 存储器 2330还可能 被分块, 并且所述块可按一定的规则组合成虚拟卷。
在一种可能的实施方式中, 上述程序可为包括计算机操作指令的 程序代码。 该程序具体可用于针对集群节点和客户端的分布式系统中 的集群节点, 使得所述集群节点: 按照配置参数将与本地路由表中的 第一路由表项对应的区间切分为至少两个子区间, 其中, 所述本地路 由表包括至少一个路由表项, 每个所述路由表项至少包括区间信息和 副本信息, 所述区间信息表示与所述路由表项对应的区间的信息, 所 述副本信息用于记录与所述区间相对应的集群节点集的信息, 所述第 一路由表项是指所述副本信息中记录有表示所述集群节点的信息的 路由表项; 为每个所述子区间分别创建一个日志队列; 在接收到来自 所述客户端的数据操作请求时, 根据所述数据操作请求的关键字段确 定对应的子区间; 以及根据确定的所述子区间执行与所述数据操作请 求对应的数据读写操作, 并根据所述数据读写操作更新与确定的所述 子区间对应的日志队列。
对于上述程序, 在一种可能的实现方式中, 在所述集群节点更新 了所述本地路由表的情况下, 还使得所述集群节点: 按照所述配置参 数对更新后的所述本地路由表中的第一路由表项对应的区间进行切 分; 对于在所述更新之后切分出的每个子区间, 判断所述集群节点上 是否存在与所述子区间对应的日志队列; 若所述集群节点上存在与所 述子区间对应的日志队列, 则基于所述第一路由表项中的副本信息更 新所述子区间对应的同步节点信息, 其中所述同步节点信息表示在所 述子区间上与所述集群节点保持数据同步的其它集群节点的信息; 以 及若所述集群节点上不存在与所述子区间对应的日志队列, 则为所述 子区间创建一个日志队列。
对于上述程序,在一种可能的实现方式中,还使得所述集群节点: 对于在所述集群节点上存在对应的日志队列的每个子区间, 判断所述 子区间是否属于结果集以及所述子区间对应的日志队列是否为空; 以 及在所述子区间不属于结果集并且所述子区间对应的日志队列为空 的情况下, 将所述子区间及所述子区间对应的日志队列从所述集群节 点上删除。 其中, 所述结果集是指根据所述配置参数对所述集群节点 当前的本地路由表中的第一路由表项对应的区间进行切分所得到的 子区间的集合。
对于上述程序, 在一种可能的实现方式中, 在使得所述集群节点 按照配置参数将本地路由表中的第一路由表项对应的区间切分为至 少两个子区间之后, 还使得所述集群节点向所述第一路由表项的副本 信息中记录的其它集群节点发送切分请求。 其中, 所述切分请求包含 表示所述区间的信息以及所述配置参数, 以使所述其它集群节点也根 据所述配置参数对所述区间进行切分。
对于上述程序, 在一种可能的实现方式中, 使得所述集群节点根 据所述数据操作请求的关键字段确定对应的子区间, 包括: 使得所述 集群节点对所述数据操作请求的关键字段按照一定的哈希算法进行 哈希; 使得所述集群节点根据所述哈希的结果查找对应的子区间; 以 及在未查找到对应的子空间的情况下, 使得所述集群节点向所述客户 端返回表示路由错误的响应。
对于上述程序, 在一种可能的实现方式中, 在使得所述集群节点 为每个所述子区间分别创建一个日志队列之后, 还使得所述集群节点 为每个所述子区间单独配置读写操作权限。
对于上述程序, 在一种可能的实现方式中, 使得所述集群节点根 据确定的所述子区间执行相应的数据读写操作, 并更新与确定的所述 子区间对应的日志队列, 包括: 使得所述集群节点获得确定的所述子 区间的读写操作权限; 使得所述集群节点将所述数据操作请求的操作 数据以新的序列号写入与确定的所述子区间对应的日志队列; 以及使 得所述集群节点将所述操作数据写入内存, 并向所述客户端反馈处理 结果。
对于上述程序, 在一种可能的实现方式中, 在使得所述集群节点 将所述操作数据写入内存之前, 还使得所述集群节点向所述第一路由 表项的副本信息中记录的其它集群节点发送同步请求。 其中, 所述其 它集群节点是指所述分布式存储系统中用于对所述集群节点在所述 区间上的数据进行备份的节点; 所述同步请求包含所述子区间的信息 以及所述操作数据, 以使所述其它集群节点基于所述子区间与所述集 群节点保持数据同步。
对于上述程序, 在一种可能的实现方式中, 所述配置参数为分段 数, 所述分段数表示要从一个所述第一路由表项对应的区间切分出的 子区间的个数。 在一种可能的具体实现方式中, 所述分段数与表示所 述区间的信息一起记录在所述本地路由表中的与所述区间对应的路 由表项内。
本领域普通技术人员可以意识到, 本文所描述的实施例中的各示 例性单元及算法步骤, 能够以电子硬件、 或者计算机软件和电子硬件 的结合来实现。 这些功能究竟以硬件还是软件形式来实现, 取决于技 术方案的特定应用和设计约束条件。 专业技术人员可以针对特定的应 用选择不同的方法来实现所描述的功能, 但是这种实现不应认为超出 本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销 售或使用时, 则在一定程度上可认为本发明的技术方案的全部或部分 (例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现 的。 该计算机软件产品通常存储在计算机可读取的存储介质中, 包括 若干指令用以使得计算机设备(可以是个人计算机、 服务器、 或者网络 设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介 质包括 U盘、 移动硬盘、 只读存储器(ROM , Read-Only Memory) , 随 机存取存储器(RAM , Random Access Memory) , 磁碟或者光盘等各种 可以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并 不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范 围内, 可轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应所述以权利要求的保护范围为准。

Claims

权 利 要 求
1、 一种区间管理方法, 应用于包括集群节点和客户端的分布式 系统中的集群节点, 其特征在于, 包括:
所述集群节点按照配置参数将与本地路由表中的第一路由表项 对应的区间切分为至少两个子区间, 其中, 所述本地路由表包括至少 一个路由表项, 每个所述路由表项至少包括区间信息和副本信息, 所 述区间信息表示与所述路由表项对应的区间的信息,所述副本信息用 于记录与所述区间对应的集群节点集的信息,所述第一路由表项是指 所述副本信息中记录有表示所述集群节点的信息的路由表项;
所述集群节点为每个所述子区间分别创建一个日志队列; 在接收到来自所述客户端的数据操作请求时,所述集群节点根据 所述数据操作请求的关键字段确定对应的子区间;
所述集群节点根据确定的所述子区间执行与所述数据操作请求 对应的数据读写操作,并根据所述数据读写操作更新与确定的所述子 区间对应的日志队列。
2、 根据权利要求 1所述的区间管理方法, 其特征在于, 在所述集 群节点更新了所述本地路由表的情况下, 还包括:
所述集群节点按照所述配置参数对更新后的所述本地路由表中 的第一路由表项对应的区间进行切分;
对于在所述更新之后切分出的每个子区间,所述集群节点判断所 述集群节点上是否存在与所述子区间对应的日志队列;
若所述集群节点上存在与所述子区间对应的日志队列,则所述集 群节点基于所述第一路由表项中的副本信息更新所述子区间对应的 同步节点信息,其中所述同步节点信息表示在所述子区间上与所述集 群节点保持数据同步的其它集群节点的信息; 以及
若所述集群节点上不存在与所述子区间对应的日志队列,则所述 集群节点为所述子区间创建一个日志队列。
3、 根据权利要求 2所述的区间管理方法, 其特征在于, 还包括: 对于在所述集群节点上存在对应的日志队列的每个子区间,所述 集群节点判断所述子区间是否属于结果集以及所述子区间对应的日 志队列是否为空; 以及
在所述子区间不属于结果集并且所述子区间对应的日志队列为 空的情况下,将所述子区间及所述子区间对应的日志队列从所述集群 节点上删除,
其中,所述结果集是指根据所述配置参数对所述集群节点当前的 本地路由表中的第一路由表项对应的区间进行切分所得到的子区间 的集合。
4、 根据权利要求 1至 3中任一项所述的区间管理方法, 其特征在 于,在所述集群节点按照配置参数将本地路由表中的第一路由表项对 应的区间切分为至少两个子区间之后, 还包括:
所述集群节点向所述第一路由表项的副本信息中记录的其它集 群节点发送切分请求,
其中, 所述切分请求包含表示所述区间的信息以及所述配置参 数, 以使所述其它集群节点也根据所述配置参数对所述区间进行切 分。
5、 根据权利要求 1至 4中任一项所述的区间管理方法, 其特征在 于,所述集群节点根据所述数据操作请求的关键字段确定对应的子区 间, 包括:
所述集群节点对所述数据操作请求的关键字段按照一定的哈希 算法进行哈希;
所述集群节点根据所述哈希的结果查找对应的子区间; 以及 在未查找到对应的子空间的情况下,所述集群节点向所述客户端 返回表示路由错误的响应。
6、 根据权利要求 1至 5中任一项所述的区间管理方法, 其特征在 于, 在所述集群节点为每个所述子区间分别创建一个日志队列之后, 还包括:
所述集群节点为每个所述子区间单独配置读写操作权限。
7、 根据权利要求 6所述的区间管理方法, 其特征在于, 所述集群 节点根据确定的所述子区间执行相应的数据读写操作,并更新与确定 的所述子区间对应的日志队列, 包括:
所述集群节点获得确定的所述子区间的读写操作权限;
所述集群节点将所述数据操作请求的操作数据以新的序列号写 入与确定的所述子区间对应的日志队列; 以及
所述集群节点将所述操作数据写入内存,并向所述客户端反馈处 理结果。
8、 根据权利要求 7所述的区间管理方法, 其特征在于, 在所述集 群节点将所述操作数据写入内存之前, 还包括:
所述集群节点向所述第一路由表项的副本信息中记录的其它集 群节点发送同步请求,
其中,所述其它集群节点是指所述分布式储系统中用于对所述集 群节点在所述区间上的数据进行备份的节点,
所述同步请求包含所述子区间的信息以及所述操作数据,以使所 述其它集群节点基于所述子区间与所述集群节点保持数据同步。
9、 根据权利要求 1至 8中任一项所述的区间管理方法, 其特征在 于, 所述配置参数为分段数, 所述分段数表示要从一个所述第一路由 表项对应的区间切分出的子区间的个数。
10、 根据权利要求 8所述的区间管理方法, 其特征在于, 所述分 段数与表示所述区间的信息一起记录在所述本地路由表中的与所述 区间对应的路由表项内。
1 1、一种集群节点,应用于包括集群节点和客户端的分布式系统, 其特征在于, 包括: 网络模块, 与所述客户端连接, 用于接收来自所述客户端的数据 操作请求;
路由表管理模块, 与所述网络模块连接, 用于管理所述集群节点 的本地路由表、 处理所述数据操作请求、 并按照配置参数将与所述本 地路由表中的第一路由表项对应的区间切分为至少两个子区间, 其 中, 所述本地路由表包括至少一个路由表项, 每个所述路由表项至少 包括区间信息和副本信息,所述区间信息表示与所述路由表项对应的 区间的信息,所述副本信息用于记录与所述区间对应的集群节点集的 信息,所述第一路由表项是指所述副本信息中记录有表示所述集群节 点的信息的路由表项;
数据同步管理模块,与所述网络模块以及所述路由表管理模块连 接, 用于为每个所述子区间分别创建一个日志队列; 以及
存储模块, 与所述数据同步管理模块连接, 用于进行数据存储以 及持久化,
其中, 在所述网络模块接收到所述数据操作请求时: 所述路由表 管理模块根据所述数据操作请求的关键字段确定对应的子区间;所述 数据同步管理模块根据确定的所述子区间执行与所述数据操作请求 对应的数据读写操作,并根据所述数据读写操作更新与确定的所述子 区间对应的日志队列。
12、 根据权利要求 11所述的集群节点, 其特征在于,
所述网络模块还被配置为,接收所述分布式系统的最新版本路由 表;
所述路由表管理模块还被配置为,将所述本地路由表更新为所述 最新版本路由表,并按照所述配置参数对更新后的所述本地路由表中 的第一路由表项对应的区间进行切分; 以及
所述数据同步管理模块还被配置为,对于在所述更新之后切分出 的每个子区间,判断所述集群节点上是否存在与所述子区间对应的日 志队列,
若判断结果为存在与所述子区间对应的日志队列,则所述数据同 步管理模块基于所述第一路由表项中的副本信息更新所述子区间对 应的同步节点信息,其中所述同步节点信息表示在所述子区间上与所 述集群节点保持数据同步的其它集群节点的信息;
若判断结果为不存在与所述子区间对应的日志队列,则所述数据 同步管理模块所述数据同步管理模块为所述子区间创建一个日志队 列。
13、 根据权利要求 12所述的集群节点, 其特征在于, 所述数据同 步管理模块还被配置为:
对于在所述集群节点上存在对应的日志队列的每个子区间,判断 所述子区间是否属于结果集以及所述子区间对应的日志队列是否为 空; 以及
在所述子区间不属于结果集并且所述子区间对应的日志队列为 空的情况下,将所述子区间及所述子区间对应的日志队列从所述集群 节点上删除,
其中,所述结果集是指根据所述配置参数对所述集群节点当前的 本地路由表中的第一路由表项对应的区间进行切分所得到的子区间 的集合。
14、根据权利要求 11至 13中任一项所述的集群节点,其特征在于, 所述路由表管理模块还被配置为,在按照配置参数将本地路由表 中的第一路由表项对应的区间切分为至少两个子区间之后,生成切分 请求, 其中, 所述切分请求包含表示所述区间的信息以及所述配置参 数; 以及
所述网络模块还被配置为,向所述第一路由表项的副本信息中记 录的其它集群节点发送所述切分请求,以使所述其它集群节点也根据 所述配置参数对所述区间进行切分。
15、根据权利要求 11至 14中任一项所述的集群节点 ,其特征在于, 所述数据同步管理模块还被配置为:为每个所述子区间单独配置读写 操作权限。
16、根据权利要求 11至 15中任一项所述的集群节点,其特征在于, 所述配置参数为分段数,所述分段数表示要从一个所述第一路由表项 对应的区间切分出的子区间的个数。
17、 根据权利要求 16所述的集群节点, 其特征在于, 所述分段数 与表示所述区间的信息一起记录在所述本地路由表中的与所述区间 对应的路由表项内。
18、 一种分布式系统, 其特征在于, 包括:
客户端; 和
至少两个根据权利要求 11至 17中任一项所述的集群节点, 其中, 各所述集群节点与所述客户端连接, 各所述集群节点用于 响应于来自所述客户端的数据操作请求以进行数据处理操作,并向所 述客户端返回所述数据处理操作的处理结果。
PCT/CN2014/080025 2013-07-02 2014-06-17 分布式存储系统、集群节点及其区间管理方法 WO2015000359A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14819963.1A EP3001644B1 (en) 2013-07-02 2014-06-17 Distributed storage system, cluster node and interval management method thereof
US14/983,853 US10348827B2 (en) 2013-07-02 2015-12-30 Distributed storage system, cluster node and range management method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310274957.0 2013-07-02
CN201310274957.0A CN104283906B (zh) 2013-07-02 2013-07-02 分布式存储系统、集群节点及其区间管理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/983,853 Continuation US10348827B2 (en) 2013-07-02 2015-12-30 Distributed storage system, cluster node and range management method thereof

Publications (1)

Publication Number Publication Date
WO2015000359A1 true WO2015000359A1 (zh) 2015-01-08

Family

ID=52143087

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/080025 WO2015000359A1 (zh) 2013-07-02 2014-06-17 分布式存储系统、集群节点及其区间管理方法

Country Status (4)

Country Link
US (1) US10348827B2 (zh)
EP (1) EP3001644B1 (zh)
CN (1) CN104283906B (zh)
WO (1) WO2015000359A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017097059A1 (zh) * 2015-12-07 2017-06-15 中兴通讯股份有限公司 分布式数据库系统及其自适应方法
EP3397932A4 (en) * 2015-12-29 2019-05-15 Alibaba Group Holding Limited SYSTEM AND METHOD FOR ACQUIRING, PROCESSING AND UPDATING GLOBAL INFORMATION
EP3398043A4 (en) * 2015-12-29 2019-08-14 Alibaba Group Holding Limited SYSTEM AND METHOD FOR ACQUIRING, PROCESSING AND UPDATING GLOBAL INFORMATION
CN110555075A (zh) * 2018-03-29 2019-12-10 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备以及计算机可读存储介质
CN113822015A (zh) * 2020-06-16 2021-12-21 北京沃东天骏信息技术有限公司 序列号生成方法、装置、电子设备及计算机可读介质
CN114625595A (zh) * 2020-12-14 2022-06-14 网联清算有限公司 一种业务系统动态配置信息的复核方法、装置和系统

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150030036A (ko) * 2013-09-11 2015-03-19 삼성전자주식회사 분산 처리 방법, 마스터 서버 및 분산 클러스터
US10554749B2 (en) 2014-12-12 2020-02-04 International Business Machines Corporation Clientless software defined grid
US10469580B2 (en) * 2014-12-12 2019-11-05 International Business Machines Corporation Clientless software defined grid
US9826030B1 (en) 2015-06-04 2017-11-21 Amazon Technologies, Inc. Placement of volume partition replica pairs
US9826041B1 (en) * 2015-06-04 2017-11-21 Amazon Technologies, Inc. Relative placement of volume partitions
CN105391755B (zh) * 2015-09-30 2018-10-19 华为技术有限公司 一种分布式系统中数据处理方法、装置及系统
CN105491101B (zh) * 2015-11-17 2018-09-21 华为技术有限公司 数据的处理方法和装置
CN106933550B (zh) * 2015-12-29 2021-01-08 阿里巴巴集团控股有限公司 全局信息获取、处理及更新方法、装置和系统
CN107094114A (zh) * 2016-01-13 2017-08-25 英特尔公司 用于模块化转发表可缩放性的技术
JP6846111B2 (ja) * 2016-02-26 2021-03-24 オムロン株式会社 マスタ装置、スレーブ装置、情報処理装置、イベントログ収集システム、マスタ装置の制御方法、スレーブ装置の制御方法、および制御プログラム
CN107181686B (zh) * 2016-03-09 2020-06-23 阿里巴巴集团控股有限公司 路由表的同步方法、装置及系统
CN112054961B (zh) * 2016-04-21 2023-12-08 华为技术有限公司 数据传输系统、方法及装置
TWI620074B (zh) * 2016-07-12 2018-04-01 緯創資通股份有限公司 伺服器系統及儲存單元的控制方法
CN107644035B (zh) * 2016-07-21 2022-07-22 百度在线网络技术(北京)有限公司 一种数据库系统及其部署方法
US10873501B2 (en) * 2016-12-09 2020-12-22 Vmware, Inc. Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
WO2018233820A1 (en) * 2017-06-21 2018-12-27 Huawei Technologies Co., Ltd. SYSTEMS AND METHODS FOR MANAGING JOURNAL STRUCTURE
CN109729129B (zh) * 2017-10-31 2021-10-26 华为技术有限公司 存储集群系统的配置修改方法、存储集群及计算机系统
WO2019098860A1 (en) * 2017-11-20 2019-05-23 Mako Networks Limited Method and system for transmitting data
CN110198269B (zh) * 2018-04-03 2021-10-08 腾讯科技(深圳)有限公司 分布式机群的路由同步系统、方法及相关装置
CN110377577B (zh) * 2018-04-11 2022-03-04 北京嘀嘀无限科技发展有限公司 数据同步方法、装置、系统和计算机可读存储介质
CN108830724B (zh) * 2018-04-12 2023-04-14 平安科技(深圳)有限公司 一种资源数据包处理方法及终端设备
CN109542356B (zh) * 2018-11-30 2021-12-31 中国人民解放军国防科技大学 面向容错的nvm持久化过程冗余信息的压缩方法和装置
CN109981467B (zh) * 2019-03-29 2022-02-11 中国人民银行清算总中心 静态路由更新方法和路由集中管理分发方法
CN111078712B (zh) * 2019-10-15 2022-08-26 平安科技(深圳)有限公司 大数据集群的更新方法、装置、计算机设备和存储介质
CN111008233B (zh) * 2019-11-24 2023-02-28 浪潮电子信息产业股份有限公司 一种kv数据库的访问方法、装置及设备
CN111541762B (zh) * 2020-04-20 2023-08-01 广州酷狗计算机科技有限公司 数据处理的方法、管理服务器、设备及存储介质
CN113297318B (zh) * 2020-07-10 2023-05-02 阿里云计算有限公司 数据处理方法、装置、电子设备及存储介质
CN112052230B (zh) * 2020-09-02 2024-03-15 掌阅科技股份有限公司 多机房数据同步方法、计算设备及存储介质
CN112162698B (zh) * 2020-09-17 2024-02-13 北京浪潮数据技术有限公司 一种缓存分区重建方法、装置、设备及可读存储介质
CN112162883A (zh) * 2020-09-27 2021-01-01 北京浪潮数据技术有限公司 一种副本数据恢复方法、系统、电子设备及存储介质
CN112671905B (zh) * 2020-12-23 2023-04-28 广州三七互娱科技有限公司 服务调度方法、装置及系统
CN112953835B (zh) * 2021-01-18 2023-03-14 广州三七互娱科技有限公司 数据传输方法、装置及系统
CN113297159B (zh) * 2021-02-08 2024-03-08 阿里巴巴集团控股有限公司 数据存储方法以及装置
CN113505177A (zh) * 2021-07-08 2021-10-15 中国工商银行股份有限公司 分布式系统集群在线分片扩容方法及装置
CN113726546B (zh) * 2021-07-12 2023-11-21 锐捷网络股份有限公司 配置方法、装置、系统、计算设备及存储介质
WO2023070633A1 (zh) * 2021-10-30 2023-05-04 华为技术有限公司 一种d2d通信方法
CN114237497B (zh) * 2021-11-30 2024-03-12 北京达佳互联信息技术有限公司 一种分布式存储方法及装置
CN114844910B (zh) * 2022-04-19 2023-07-25 重庆紫光华山智安科技有限公司 分布式存储系统的数据传输方法、系统、设备及介质
CN115809301B (zh) * 2023-02-03 2023-04-21 天翼云科技有限公司 数据库处理方法、装置、电子设备及可读存储介质
CN116055397B (zh) * 2023-03-27 2023-08-18 井芯微电子技术(天津)有限公司 队列表项维护方法与装置
CN116975076B (zh) * 2023-07-28 2024-05-07 深圳市丕微科技企业有限公司 一种多终端交互的数据传输控制方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483670A (zh) * 2009-02-25 2009-07-15 南京邮电大学 基于分布式哈希表的区域化对等计算数据一致性维护方法
CN102325093A (zh) * 2011-11-01 2012-01-18 西安电子科技大学 一种结构化p2p网络中的路由系统构建方法
CN102739526A (zh) * 2012-06-13 2012-10-17 烽火通信科技股份有限公司 一种高效分布式路由表的实现方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
WO2003094446A1 (en) * 2002-04-30 2003-11-13 International Business Machines Corporation Method and arrangement for local synchronization in master-slave distributed communication systems
IL185417A (en) * 2005-02-24 2012-06-28 Xeround Systems Ltd Method and apparatus for distributed data management in a switching network
WO2010037794A2 (en) * 2008-10-03 2010-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Monitoring mechanism for a distributed database
US8862617B2 (en) 2010-02-09 2014-10-14 Google Inc. System and method for replicating objects in a distributed storage system
US8595267B2 (en) * 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483670A (zh) * 2009-02-25 2009-07-15 南京邮电大学 基于分布式哈希表的区域化对等计算数据一致性维护方法
CN102325093A (zh) * 2011-11-01 2012-01-18 西安电子科技大学 一种结构化p2p网络中的路由系统构建方法
CN102739526A (zh) * 2012-06-13 2012-10-17 烽火通信科技股份有限公司 一种高效分布式路由表的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3001644A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017097059A1 (zh) * 2015-12-07 2017-06-15 中兴通讯股份有限公司 分布式数据库系统及其自适应方法
EP3397932A4 (en) * 2015-12-29 2019-05-15 Alibaba Group Holding Limited SYSTEM AND METHOD FOR ACQUIRING, PROCESSING AND UPDATING GLOBAL INFORMATION
EP3398043A4 (en) * 2015-12-29 2019-08-14 Alibaba Group Holding Limited SYSTEM AND METHOD FOR ACQUIRING, PROCESSING AND UPDATING GLOBAL INFORMATION
US10440069B2 (en) 2015-12-29 2019-10-08 Alibaba Group Holding Limited System and method for acquiring, processing, and updating global information
CN110555075A (zh) * 2018-03-29 2019-12-10 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备以及计算机可读存储介质
CN110555075B (zh) * 2018-03-29 2023-07-07 阿里云计算有限公司 数据处理方法、装置、电子设备以及计算机可读存储介质
CN113822015A (zh) * 2020-06-16 2021-12-21 北京沃东天骏信息技术有限公司 序列号生成方法、装置、电子设备及计算机可读介质
CN114625595A (zh) * 2020-12-14 2022-06-14 网联清算有限公司 一种业务系统动态配置信息的复核方法、装置和系统

Also Published As

Publication number Publication date
US10348827B2 (en) 2019-07-09
US20160112516A1 (en) 2016-04-21
CN104283906A (zh) 2015-01-14
EP3001644B1 (en) 2018-08-08
EP3001644A4 (en) 2016-06-01
CN104283906B (zh) 2018-06-19
EP3001644A1 (en) 2016-03-30

Similar Documents

Publication Publication Date Title
WO2015000359A1 (zh) 分布式存储系统、集群节点及其区间管理方法
US10185497B2 (en) Cluster federation and trust in a cloud environment
US9560093B2 (en) Higher efficiency storage replication using compression
US9213719B2 (en) Peer-to-peer redundant file server system and methods
WO2015027513A1 (zh) 交付点跨域迁移系统
CN115687250A (zh) 一种存储方法、设备、系统和计算机存储介质
CN112398640A (zh) 一种优化的区块链共识算法
CN117909136A (zh) 分布式日志存储备份方法、装置、设备及存储介质

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2014819963

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE