WO2014101108A1 - 分布式存储系统的缓存方法、节点和计算机可读介质 - Google Patents
分布式存储系统的缓存方法、节点和计算机可读介质 Download PDFInfo
- Publication number
- WO2014101108A1 WO2014101108A1 PCT/CN2012/087842 CN2012087842W WO2014101108A1 WO 2014101108 A1 WO2014101108 A1 WO 2014101108A1 CN 2012087842 W CN2012087842 W CN 2012087842W WO 2014101108 A1 WO2014101108 A1 WO 2014101108A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- lock
- client node
- owner
- striped data
- node
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000004044 response Effects 0.000 claims description 79
- 230000008859 change Effects 0.000 claims description 33
- 238000004891 communication Methods 0.000 claims description 19
- 238000012217 deletion Methods 0.000 claims description 13
- 230000037430 deletion Effects 0.000 claims description 13
- 230000005055 memory storage Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000011664 signaling Effects 0.000 description 10
- 230000005012 migration Effects 0.000 description 9
- 238000013508 migration Methods 0.000 description 9
- 230000003139 buffering effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
Definitions
- Embodiments of the present invention relate to storage technologies, and in particular, to a cache method, a node, and a computer readable medium of a distributed storage system. Background technique
- a distributed storage system multiple node devices are connected to form a cluster, and each node device has a data storage function. All node devices are connected through a front-end network (Front-End Network) and a back-end network (Back-End Network).
- the front-end network is used for request and data interaction between the user service and the distributed storage system
- the back-end network is used for request and data interaction between the various node devices in the distributed storage system.
- a distributed storage system user data is striped to obtain stripe, and then each stripe data in the stripe is distributed and stored in a hard disk of a different node device.
- the application server When accessing user data, the application server first sends an access request to a node device through the front-end network, and then the node device reads the strip data of the user data from the other node device to the local node device through the back-end network, and uses the disk.
- the Redundant Array of Independent Disks (RAID) algorithm or the erasure code (Erasure Code) algorithm restores the stripe data to user data and returns it to the application server through the front-end network.
- the cache method is as follows: The hotspot data block on the local node device is cached in the cache of each node device.
- the node device needs to obtain the data block constituting the stripe data from the cache of each node device, and if the required data block cannot be obtained in the cache of the node device,
- the hard disk of the node device is accessed, the data block is obtained from the hard disk, and the obtained data block is summarized, reconstructed, and redundantly checked to obtain the stripe data.
- Another caching method is as follows: The cache file of the hotspot file counted by the local device is cached in the cache of each node device.
- the node device When the node device needs to obtain the stripe data, the node device first obtains the stripe data from the cache, and if the stripe data to be accessed cannot be obtained in the cache of the node device, It also needs to be obtained from the cache of other node devices in turn. When the cache of other node devices is not available, it needs to be obtained from the hard disk of the node device.
- the data caching technology adopted in the distributed storage system is the above two caching methods or a combination of the above two caching methods.
- each node device determines the hot content in the content stored on the hard disk according to the access statistics, and caches the hot content in the cache, because each node device independently performs the above cache, so The phenomenon that the same content is cached on different node devices causes the cache utilization of the node device to be low. Summary of the invention
- a first aspect of the present invention provides a method for caching a distributed storage system to address the deficiencies in the prior art and improve the cache utilization of the node device.
- Another aspect of the present invention is to provide a stripe data owner server node and a lock client node to solve the defects in the prior art and improve the cache utilization of the node device.
- Still another aspect of the present invention is to provide a computer readable medium for solving the deficiencies in the prior art and improving cache utilization of a node device.
- a first aspect of the present invention provides a method for caching a distributed storage system, including: a stripe data owner server node receives a lock notification for a stripe data from a lock client node, and performs the lock notification Judge
- the stripe data owner server node When the lock notification is a first read lock notification or a write lock notification, the stripe data owner server node records the lock client node as an owner of the stripe data, to the lock client node Returning, the owner of the stripe data is a response message of the lock client node, so that the lock client node caches the stripe data;
- the stripe data owner server node When the lock notification is a non-first read lock notification, the stripe data owner server node returns a response message containing the owner information of the stripe data to the lock client node, so that the lock client The end node reads the stripe data from a cache of the owner of the stripe data.
- the method further includes:
- the stripe data owner server node When the lock notification is a read lock notification, the stripe data owner server node is recording The attribute information of the stripe data is searched for the attribute information of the stripe data, and if not found, the read lock notification is determined to be the first read lock notification.
- the stripe data owner server node receives a request message from the lock client node to change the owner of the stripe data to another lock client node;
- the stripe data owner server node changes the owner of the stripe data to the other lock client node
- the stripe data owner server node returns an owner change success response message of the stripe data to the lock client node, so that the lock client node deletes the locally cached stripe data, and causes the stripe data to be Another lock client node caches the stripe data.
- any possible implementation manner further provide an implementation manner, when the stripe data owner server node is integrated in the lock server node device,
- the read lock notification includes a read lock request
- the write lock notification includes a write lock request
- the returning the response message of the owner of the stripe data to the lock client node as the lock client node further includes: returning a lock success response message to the lock client node;
- the response message that the lock client node returns the owner information of the stripe data further includes: returning a lock success response message to the lock client node.
- Another aspect of the present invention provides a method for caching a distributed storage system, comprising: a lock client node transmitting a read lock notification or a write lock notification to a stripe data owner server node;
- the lock client node caches the stripe data ;
- the lock client node when the lock client node receives an identifier ID of an owner of the stripe data returned by the stripe data owner server node, the lock client node sets an ID of the owner of the stripe data and itself The IDs are compared, and when the two are different, the lock client node reads the stripe data from the cache of the lock client node corresponding to the ID of the owner of the stripe data.
- the aspect as described above and any possible implementation manner further provide an implementation manner, after the lock client node sends a read lock notification or a write lock notification to the stripe data owner server node for the stripe data, Before the lock client node receives the response message that the owner of the stripe data returning the stripe data is the lock client node, the lock client node further includes:
- the stripe data owner server node records the lock client node as the owner of the stripe data upon receiving the first read lock notification or the write lock notification for the stripe data.
- lock client node sends a write lock notification to the stripe data owner server node for the stripe data
- the lock client node caches the stripe data send a lock downgrade request to the lock server node, So that the lock server node modifies the record to the lock client node holding a read lock on the stripe data.
- the lock client node receives a read request or a write request for the stripe data from an application server;
- the lock client node locally searches for a read lock or a write lock for the stripe data; if found, determines the owner of the stripe data according to the read lock or write lock of the stripe data, The owner of the stripe data reads or writes the stripe data;
- the step of executing the lock client node to send a read lock notification or a write lock notification to the stripe data to the stripe data owner server node is performed.
- the lock client node sends the stripe data owner server to the stripe data owner server Sending, by the node, a request message that changes an owner of the stripe data to a target lock client node, so that the stripe data owner server node changes an owner of the stripe data to a target lock client node;
- the lock client node receives an owner change success response message of the stripe data returned by the stripe data owner server node, deletes the stripe data of the local cache, and sends the stripe data to the target lock client node Demarcating the data so that the target lock client node caches the stripe data.
- the stripe data specifically includes:
- the lock client node sends a request for reading the stripe data to the lock client node corresponding to the ID of the owner of the stripe data, so that the lock client node corresponding to the ID of the owner of the stripe data Finding the stripe data in the locally cached data, and if found, returning the stripe data to the lock client node, otherwise reading the lock client node from the distributed storage system
- Each stripe data of the stripe data is constructed and converted into the stripe data, and returned to the lock client node.
- a stripe data owner server node including: a receiving unit, configured to receive a lock notification for a stripe data from a lock client node; and a determining unit, configured to notify the lock Make judgments;
- a recording unit configured to: when the determining unit determines that the lock notification is a first read lock notification or a write lock notification, record the lock client node as an owner of the stripe data;
- a sending unit configured to: when the receiving determining unit determines that the lock notification is a first read lock notification or a write lock notification, returning the owner of the stripe data to the lock client node as the lock client node Responding message, so that the lock client node caches the stripe data; and when the receiving judging unit judges that the lock notification is a non-first read lock notification, returning the score to the lock client node a response message of the owner information of the piece of data, such that the lock client node reads the stripe data from the cache of the owner of the stripe data.
- the determining unit is specifically configured to: when the lock notification is a read lock notification, search for attribute information of the stripe data in attribute information of the recorded stripe data, and if not found, determine the read lock The notification is the first read lock notification.
- the receiving unit is further configured to receive a request message from the lock client node to change an owner of the stripe data to another lock client node;
- the recording unit is further configured to change an owner of the stripe data to the another lock client node;
- the sending unit is further configured to return an owner change success response message of the stripe data to the lock client node, so that the lock client node deletes the stripped data of the local cache, and causes the other A lock client node caches the stripe data.
- the read lock notification includes a read lock request
- the write lock notification includes a write lock request
- the sending unit is further configured to return a lock success response message to the lock client node.
- a lock client node including:
- a sending unit configured to send a read lock notification or a write lock notification to the stripe data owner server node
- a receiving unit configured to receive, by the stripe data owner server node, a response message that returns an owner of the stripe data to the lock client node, or receive the returned by the stripe data owner server node The ID of the owner of the stripe data;
- a comparing unit configured to compare an ID of an owner of the stripe data with an ID of the own; when the two are different, the reading and writing unit is turned on;
- the buffering unit is configured to: when the receiving unit receives the response message that the owner of the stripe data owner node returns the stripe data is the lock client node, buffering the stripe data ;
- the reading and writing unit is configured to read the stripe data from a cache of a lock client node corresponding to an ID of an owner of the stripe data.
- the sending unit is further configured to send a lock downgrade request to the lock server node, so that the lock server node modifies the record to The lock client node holds a read lock on the stripe data.
- search unit a search unit
- the receiving unit is further configured to receive a read request or a write request for the stripe data from an application server;
- the searching unit is configured to locally search for a read lock or a write lock for the stripe data; if found, determine an owner of the stripe data according to a read lock or a write lock of the stripe data, Turning on the read/write unit; if not found, turning on the sending unit;
- the read/write unit is further configured to read or write the stripe data in an owner of the stripe data.
- the cache unit is further configured to use a pre-removal rate in a unit time greater than or equal to a total amount of caches of the lock client node.
- the sending unit is controlled to send, to the stripe data owner server node, a request message for changing the owner of the stripe data to a target lock client node; and is further configured to receive the strip according to the receiving unit
- the owner of the data changes the success response message, deletes the stripped data of the local cache, and controls the sending unit to send the stripe data to the target lock client node;
- the sending unit is further configured to send, according to the control of the cache unit, a request message for changing the owner of the stripe data to a target lock client node to the stripe data owner server node, so that the The stripe data owner server node changes the owner of the stripe data to a target lock client node; and is further configured to send the stripe data to the target lock client node according to the control of the cache unit, to Causing the target lock client node to cache the stripe data;
- the receiving unit is further configured to receive an owner change success response message of the stripe data returned by the stripe data owner server node.
- the read/write unit is specifically configured to send a read score to a lock client node corresponding to an ID of an owner of the stripe data. a request for the strip data, so that the lock client node corresponding to the ID of the owner of the stripe data searches for the stripe data in the locally cached data, and if found, returns the score to the read/write unit Strip data, otherwise, the strip data of the stripe data is read from each lock client node of the distributed storage system, and is constructed into the stripe data, and then returned to the read/write unit.
- a stripe data owner server node including: a processor, a memory, a communication interface, and a bus; the processor, the memory, and the communication interface communicate via the bus;
- the memory is configured to store execution instructions, the communication interface is configured to communicate with a first lock client node and a second lock client node; when the stripe data owner server node is running, the processor executes the The execution instructions stored by the memory to cause the stripe data owner server node to perform a caching method of the distributed storage system as described above.
- a lock client node including: a processor, a memory, a communication interface, and a bus; the processor, the memory, and the communication interface communicate through the bus; Executing an execution instruction in the depositing program; the communication interface is configured to communicate with the stripe data owner server node and other lock client nodes; when the lock client node is running, the processor executes the memory storage Executing instructions to cause the stripe data owner server node to perform a caching method of the distributed storage system as described above.
- Another aspect of the present invention provides a computer readable medium, comprising computer execution instructions for causing a stripe data owner server node to perform the method of any of the above.
- Another aspect of the present invention provides a computer readable medium, comprising computer execution instructions for causing a lock client node to perform the method of any of the above.
- the lock client node that initiated the request is recorded as all of the stripe data.
- the stripe data is cached by the lock client node; when the lock stripe data owner server node receives the non-first read lock request for the stripe data, the lock client node that initiates the request according to the record is Informing the owner of the stripe data that the requesting lock client node reads the stripe data from the owner's cache.
- each lock client node By locking the stripe data owner server node to record and feedback the stripe data owner, so that the same stripe data is cached only once in the owner of the stripe data in the entire distributed storage system, each lock client node The stripe data can be read from the owner of the stripe data, thereby avoiding the phenomenon that the same stripe data is cached on different node devices, and the cache utilization of the node device is improved.
- FIG. 1 is a schematic structural diagram of a distributed storage system according to Embodiment 1 of the present invention.
- FIG. 2a is a flowchart of a method for caching a distributed storage system according to a second embodiment of the present invention
- FIG. 2b is a schematic structural diagram of attribute information of N stripe data according to Embodiment 2 of the present invention
- FIG. 4 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 4 of the present invention
- FIG. 5 is a flowchart of a method for caching a distributed storage system according to Embodiment 5 of the present invention
- FIG. 6 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 6 of the present invention
- FIG. 7 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 7 of the present invention
- 8 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 8 of the present invention
- FIG. 9 is a schematic structural diagram of a node data owner server node according to Embodiment 9 of the present invention. Schematic diagram of the structure of the lock client node;
- FIG. 11 is a schematic structural diagram of a stripe data owner server node according to Embodiment 11 of the present invention.
- FIG. 12 is a schematic structural diagram of a lock client node according to Embodiment 12 of the present invention.
- a cache process for accessing data after storing data in a hard disk of each node device of the distributed storage system is taken as an example.
- FIG. 1 is a schematic structural diagram of a distributed storage system according to Embodiment 1 of the present invention.
- the caching method of each of the following embodiments of the present invention can be applied to the distributed storage system of the first embodiment of the present invention.
- a distributed storage system in the art includes a plurality of lock client nodes and a plurality of lock server nodes.
- the distributed storage system of the first embodiment of the present invention adds one or more stripe data owner server nodes based on the above-mentioned distributed storage system in the prior art. For one operation, multiple lock client nodes, one lock server node, and one stripe data owner server node are involved. As shown in FIG.
- FIG. 1 multiple lock client nodes, one lock server node, and one stripe data owner server node in the distributed storage system are shown in FIG. 1, and the remaining lock server nodes and the stripe data owner server are shown in FIG. The node is not shown.
- the lock client node, the lock server node, and the stripe data owner server node are respectively set as an example.
- a lock client node may be simultaneously set in each node device.
- the lock server node set in one of the node devices is used as the lock server node of the operation, and is set in one of the node devices.
- the stripe data owner server node acts as the stripe data owner server node for this operation.
- the stripe data owner server node and the lock server node can be separately set and respectively perform their respective functions; the stripe data owner server node can also be combined with the lock server node, that is, the existing lock server
- the node is modified to increase the operations performed by the stripe data owner server node proposed by the embodiment of the present invention on the basis of the operations performed by the existing lock server node.
- FIG. 2 is a flowchart of a method for caching a distributed storage system according to Embodiment 2 of the present invention. As shown in Figure 2, the method includes the following process.
- Step 101 The stripe data owner server node receives a lock notification for the stripe data from the lock client node, and determines the lock notification.
- Step 102 When the lock notification is a first read lock notification or a write lock notification, the stripe data owner server node records the lock client node as an owner of the stripe data, to the lock client The node returns a response message of the owner of the stripe data to the lock client node, so that the lock client node caches the stripe data.
- the first read lock notification of the stripped data from the first lock client node or the write lock notification of the stripe data is received by the stripe data owner server node as an example.
- a stripe data owner server node records the first lock client node as an owner of the stripe data, and returns an owner of the stripe data to the first lock client node as the first Locking the response message of the client node, so that the first lock client node caches the stripe data.
- the first lock client node After obtaining the read lock authorization or the write lock authorization from the lock server node, the first lock client node sends a lock notification to the owner server node, where the notification carries the identifier of the stripe data corresponding to the lock, and the lock is read
- the lock carries the read lock identifier, and when the lock is a write lock, carries the write lock identifier, and through the lock notification, informs the owner server node that the first lock client has obtained a read lock or a write lock on the strip data.
- the attribute information of the stripe data is recorded in the stripe data owner server node.
- the owner server node receives the lock notification sent by the first lock client node, and searches for the attribute information of the recorded stripe data according to the identifier of the stripe data carried in the lock notification, if the lock notification carries the read lock identifier and records the score If the read lock corresponding to the stripe data is not found in the attribute information of the strip data, the owner server node confirms receipt of the first read lock notification for the stripe data.
- FIG. 2b is a schematic structural diagram of attribute information of N stripe data in Embodiment 2 of the present invention.
- the identifier (identity, abbreviated as ID) of the stripe data is recorded in the attribute information of each stripe data, and the ID of the lock client node of the lock currently holding the stripe data is correspondingly recorded,
- the type of the lock the owner of the stripe data.
- the lock type is used to indicate that the lock of the current stripe data is a read lock or a write lock.
- a lock client node holding a read lock on a stripe data can read the stripe data, and a lock client node holding a write lock on a stripe data can write or modify the stripe data.
- the level of write locks is higher than the level of read locks.
- other lock client nodes can also hold a read lock on the stripe data; when a lock client node holds a certain When a write lock of stripe data is performed, other lock client nodes are not allowed to hold a read lock or a write lock on the stripe data.
- the lock client nodes of the locks currently holding the stripe data are recorded in the attribute information of the stripe data shown in FIG. 2b. It can be understood that the embodiment of the present invention is for the current A lock client node that holds a lock on a piece of data is unrestricted.
- Step 103 When the lock notification is a non-first read lock notification, the stripe data owner server node returns a response message including the owner information of the stripe data to the lock client node, so that the The lock client node reads the stripe data from a cache of the owner of the stripe data.
- the stripe data owner server node receives the non-first read lock notification for the stripped data from the second lock client node as an example, and the stripe data owner server node goes to the second lock.
- the client node returns a response message of the owner of the stripe data to the first lock client node, so that the second lock client node reads from the cache of the first lock client node Describe the data.
- the lock client node that initiated the notification is recorded as the owner of the stripe data. Causing the stripe data by the lock client node; when the stripe data owner server node receives the non-first read lock notification for the stripe data, notifying the lock client node that initiated the notification according to the record The owner of the stripe data, the lock client node that initiated the notification reads the stripe data from the owner's cache.
- each lock client The node can read the stripe data from the owner, thereby avoiding the phenomenon that the same stripe data is cached on different node devices, and the cache utilization of the node device is improved.
- the method may further include: when the lock notification is a read lock notification, the stripe data owner server node is in the attribute information of the recorded stripe data. The attribute information of the stripe data is searched, and if not found, the read lock notification is determined to be the first read lock notification.
- the method further includes: The stripe data owner server node receives a request message from the first lock client node to change the owner of the stripe data to a third lock client node.
- the stripe data owner server node changes the owner of the stripe data to a third lock client node.
- an owner change success response message of the stripe data to the first lock client node so that the first lock client node deletes the stripped data of the local cache, And causing the third lock client node to cache the stripe data.
- the stripe data owner is transferred to the third lock client node to implement striping.
- the dynamic replacement of the owner of the data reduces the buffer load of the first lock client node, thereby better implementing load balancing of the stripe data cache.
- the read lock notification may be a read lock request
- the write lock notification may be a write lock. request.
- returning the response message of the owner of the stripe data to the first lock client node to the first lock client node further includes: returning a lock success response to the first lock client node Message.
- the returning the response message to the second lock client node that the owner of the stripe data is the first lock client node further includes: returning a lock success response message to the second lock client node .
- the read lock request or the write lock request is brought by the portable It is sent to the lock server node device, which avoids resending the read lock request or the write lock request to the lock server node device, reduces the signaling between the system devices, and improves the read and write efficiency of the stripe data.
- FIG. 3 is a flowchart of a method for caching a distributed storage system according to Embodiment 3 of the present invention. As shown in Figure 3, the method includes the following process.
- Step 201 The lock client node sends a read lock notification or a write lock notification to the stripe data owner server node for the stripe data.
- Step 202 When the lock client node receives the response message that the owner of the stripe data owner server returns the stripe data is the lock client node, the lock client node caches the Striped data.
- Step 203 When the lock client node receives the ID of the owner of the stripe data returned by the stripe data owner server node, the ID of the owner of the stripe data by the lock client node Comparing with its own ID, when the two are different, the lock client node reads the stripe data from the cache of the lock client node corresponding to the ID of the owner of the stripe data.
- the lock client node after the lock client node sends a read lock notification or a write lock notification to the stripe data owner server node, the lock client node receives the Before the stripe data owner server node returns the response message of the lock client node, the owner of the stripe data node further includes: the strip data unit The owner server node records the lock client node as the owner of the stripe data upon receiving a first read lock notification for the stripe data or a write lock notification for the stripe data.
- the method further includes: if the lock client node sends a write lock notification to the stripe data owner server node, the lock client node caches the stripe After the data, a lock downgrade request is sent to the lock server node to cause the lock server node to modify the record to the lock client node holding a read lock on the stripe data.
- the lock client node holding the write lock After the lock client node holding the write lock completes the operation of buffering the stripe data to itself, if the write lock is still held, the other lock client needs to recall the write lock when applying for the lock, in the present invention
- the lock client node holding the write lock actively sends a downgrade request to the lock server after the operation of buffering the stripe data to itself, and demotes the write lock to a read lock, thereby applying at other lock clients.
- the lock is read, it is not necessary to perform the recall operation again, which can save the time for the subsequent start of the read lock operation and improve the cache processing efficiency.
- the method further includes: the lock client node receiving A read request or a write request for the stripe data from the application server.
- the lock client node locally looks for a read or write lock on the stripe data. If found, the owner of the stripe data is determined based on the read or write lock of the stripe data, and the stripe data is read or written by the owner of the stripe data. If not found, the step of executing the lock client node to send a read lock notification or a write lock notification to the stripe data to the stripe data owner server node.
- the method further includes: when the deletion rate of the cache of the lock client node in a unit time is greater than or equal to a preset ratio of the total cache amount of the lock client node, The lock client node sends a request message to the stripe data owner server node to change the owner of the stripe data to a target lock client node, so that the stripe data owner server node will The owner of the stripe data is changed to the target lock client node.
- the lock client node receives an owner change success response message of the stripe data returned by the stripe data owner server node, deletes the stripe data of the local cache, and sends the stripe data to the target lock client node Demarcating the data so that the target lock client node caches the stripe data.
- the cache usage efficiency is reduced due to frequent cache deletion on the lock client node. Defects can maintain cache usage balance on each lock client node throughout the system, improving cache usage efficiency.
- the lock client node reads the stripe data from the lock client node corresponding to the ID of the owner of the stripe data, and specifically includes: the lock client node Sending a request for reading the stripe data to the lock client node corresponding to the ID of the owner of the stripe data, so that the lock client node corresponding to the ID of the owner of the stripe data is in the locally cached data Finding the stripe data, if found, returning the stripe data to the lock client node, otherwise, reading each stripe of the stripe data from each lock client node of the distributed storage system After the data is loaded and constructed into the stripe data, it is returned to the lock client node.
- the lock client node when the lock client node issues a first read lock notification or a write lock notification for a certain stripe data, the lock client node caches the stripe data, and the stripe data owner server node
- the lock client node records as the owner of the stripe data; when the lock client node issues a non-first read lock notification for the stripe data, the stripe data owner server node notifies the lock client node according to the record The owner of the stripe data, which reads the stripe data from the owner's cache.
- the stripe data owner Through the record and feedback of the stripe data owner by the stripe data owner server node, the same stripe data is cached only once by its owner in the entire distributed storage system, and each lock client node can read from the owner.
- the stripe data is taken, thereby avoiding the phenomenon that the same stripe data is cached on different node devices, and the cache utilization of the node device is improved.
- the cache method in the case where the owner server node and the lock server node are separately set is introduced by the second embodiment and the third embodiment of the present invention.
- the owner server node and the lock server node may also be combined, and the same node is used to perform the operations of the owner server node and the lock server node.
- the existing lock server node may be modified to increase the operations performed by the owner server node proposed by the embodiment of the present invention based on the operations performed by the existing lock server node.
- the case where the operation of the owner server node and the lock server node is performed by using the same node is taken as an example, that is, after the above-mentioned improved lock server node is performed, the existing The operation of the lock server node and the operation of the owner server node proposed in the embodiment of the present invention further describe the cache method proposed by the present invention.
- the locks described in the fourth to eighth embodiments of the present invention The server node is the above-mentioned improved lock server node, and the lock request sent by each lock client node to the lock server node is used as a lock notification.
- the lock server node performs an operation of the existing lock server node, and the lock server node also uses the read lock request as a read lock notification to perform the present invention.
- the lock server node performs an operation of the existing lock server node, and the lock server node also uses the write lock request as a write lock notification to execute the present invention.
- FIG. 4 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 4 of the present invention.
- a read lock operation for a certain stripe data occurs for the first time in a distributed storage system or a read lock operation for the stripe data first appears after the stripe data is deleted.
- the method includes the following process.
- Step 301 The first lock client node receives a read request from the application server for the stripe data.
- the first lock client node after the first lock client node receives the read request for the stripe data from the application server, the first lock client node locally searches for the read lock for the stripe data, if found, A lock client node that is an owner of the stripe data indicated in the read lock of the stripe data reads the stripe data. Otherwise, go to step 302. In the embodiment of the present invention, the case is not found as an example.
- Step 302 The first lock client node sends a read lock request for the stripe data to the lock server node.
- Step 303 The lock server node records the first lock client node as the owner of the stripe data.
- the lock server node After receiving the request for the stripe lock, the lock server node first checks whether the attribute information of the stripe data exists in the record, and if not, generates a record of the attribute information of the stripe data, otherwise, Check the information of the lock client node holding the lock in the attribute information of the stripe data.
- the attribute information in which the stripe data does not exist is taken as an example. If there is no relevant record of the stripe data, the first time the system applies for the stripe data after the first application or deletion, the lock server node adds the relevant information of the first lock client node of the application lock to the record. Record the first lock client node as the owner of the stripe data, will be the first The ID of the owner corresponding to a lock client node is recorded as the ID of the first lock client node.
- Step 304 The lock server node returns the owner of the stripe data to the first lock client node as a response message of the first lock client node.
- the lock server node returns a lock success response message to the first lock client node, where the owner of the stripe data is returned to the first lock client node as the first lock client node, and at the same time
- a lock client node records the owner ID of the stripe data itself as the first lock client node ID.
- Step 305 The first lock client node caches the stripe data.
- the first lock client node finds that the first lock client node itself is the owner of the stripe data according to the information returned by the lock server node, and the first lock client node applies for the cache from the local global unified cache.
- Space reading the stripe data of the stripe data from other lock client nodes, constructing the stripe data in the local global unified cache, and returning the stripe data to the application server.
- the first lock client node reads the stripe data of the stripe data from the other lock client node, constructs the stripe data according to the stripe data, and after the construction is completed, the stripe data and the strip are obtained.
- the stripe data is cached in the first lock client node, and the redundant data of the stripe data is not cached, thereby further improving the distributed storage system.
- the cache utilization of the middle node when a lock client node caches stripe data, it can be cached in this manner.
- FIG. 5 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 5 of the present invention.
- the second lock client node reads the stripe data again as an example.
- the method includes the following process.
- Step 401 The second lock client node receives a read request for the stripe data from the application server.
- the second lock client node locally searches for a read lock for the stripe data, and if found, the owner of the stripe data indicated in the read lock of the stripe data The lock client node reads the stripe data. Otherwise, go to step 402. In the embodiment of the present invention, the case is not found as an example.
- Step 402 The second lock client node sends a read lock request for the stripe data to the lock server node.
- the lock server node After receiving the request for the stripe lock, the lock server node first checks whether the attribute information of the stripe data exists in the record, and if not, generates a record of the attribute information of the stripe data, otherwise, Check the information of the lock client node holding the lock in the attribute information of the stripe data.
- the existence is taken as an example. If the attribute information of the stripe data exists, the owner of the stripe data can be known according to the attribute information, and the owner of the stripe data is the first lock client node, and the lock server node locks the application.
- the ID of the second lock client node is added to the attribute information of the stripe data, and the owner flag corresponding to the ID of the second lock client node is set to a preset value indicating the non-owner.
- the lock server node returns a lock success response message to the second lock client node, and the owner of the stripe data returned to the second lock client node in the message is the first lock client node.
- the second lock client node reads the stripe data from the cache of the first lock client node, and specifically includes the following steps.
- Step 404 The second lock client node sends a stripe data read request to the first lock client node.
- the second lock client node records the owner ID of the stripe data as the first lock client node ID according to the information returned by the lock server node, and the second lock client node knows that it is not the score.
- the owner of the strip data generates a stripe data read request and sends the request to the first lock client node through the backend network.
- Step 405 The first lock client node returns the stripe data to the second lock client node.
- the first lock client node obtains the stripe data from the local global unified cache, and directly returns to the second lock client node.
- Step 406 The second lock client node returns the stripe data to the application server.
- the second lock client node receives the read data response of the first lock client node and sends it to the application server.
- FIG. 6 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 6 of the present invention.
- the second lock client node writes the stripe data as an example.
- the method includes the following process.
- Step 501 The second lock client node receives a write request for the stripe data from the application server.
- the second lock client node when the second lock client node receives the write request for the stripe data of the application server, the second lock client node locally searches for the write lock for the stripe data, if found, in the The lock client node indicated as the owner of the stripe data indicated in the write lock of the stripe data writes the stripe data. For the case where the second lock client node locally finds the write lock for the stripe data, it is stated that before this moment, the lock server node has granted the write lock of the stripe data to the second lock client node.
- the lock server node records the owner of the stripe data as the second lock client node before granting the write lock to the second lock client node, and therefore, at the second lock client node
- the lock client node indicated as the owner of the stripe data in the write lock of the stripe data is the second lock client node itself. If the second lock client node does not find a write lock for the stripe data locally, then step 502 is performed. In the embodiment of the present invention, it is not found.
- Step 502 The second lock client node sends a write lock request for the stripe data to the lock server node.
- Step 503 The lock server node sends a lock recall request for the stripe data to the first lock client node.
- the lock server node After receiving the request for the stripe lock, the lock server node first checks whether the attribute information of the stripe data exists in the record, and if not, generates a record of the attribute information of the stripe data, otherwise, Check the information of the lock client node holding the lock in the attribute information of the stripe data.
- attribute information of the stripe data is taken as an example. If the attribute information of the stripe data exists, according to the attribute information, the lock client node holding the read lock or the write lock of the stripe data is obtained, and the lock server node generates the score held by the lock client node. A request for a data lock is sent to the corresponding lock client node.
- the lock server node Taking the first lock client node holding the read lock of the stripe data as an example, the lock server node generates a request for recalling the read lock of the stripe data held by the first lock client node, and sends the request to the first lock client. End node.
- Step 504 The first lock client node returns a lock recall success response to the lock server node.
- the first lock client node first checks whether the lock is still in use. If not in use, the lock recall success response message is directly returned to the lock server node; if it is in use, after waiting to release the lock, the lock recall success response message is returned to the lock server node. If the first lock client node is the owner of the stripe data, the global unified cache stripe data on the first lock client node is first deleted from the global unified cache before the lock recall success response message is sent. .
- Step 505 The lock server node records the second lock client node as the owner of the stripe data.
- the lock server node After receiving the lock recall success response message, the lock server node records the second lock client node applying for the stripe data write lock in the stripe data attribute information, and records the second lock client node as a score. The owner of the data.
- Step 506 The lock server node returns a stripe write lock success response message to the second lock client node.
- Step 507 The second lock client node caches the stripe data.
- the second lock client node after receiving the add-and-write write lock success response message of the lock server node, the second lock client node applies the stripe cache space from the local global unified cache, and then receives the write request from the application server.
- the stripe data is stored in the local global unified cache, and then the stripe data of the stripe data is written to the corresponding lock client node.
- Step 508 The second lock client node sends a lock downgrade request to the lock server node.
- a lock downgrade request is generated and sent to the lock server node, the request indicating that the write lock for the stripe data is demoted to a read lock.
- Step 509 The lock server node modifies the record to a second lock client node holding a read lock on the stripe data.
- the lock type corresponding to the second lock client node is changed from "write lock” to "read lock”.
- FIG. 7 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 7 of the present invention.
- the second lock client node reads the stripe data from the first lock client node.
- the method includes the following process.
- Step 601 The second lock client node sends a read request of the stripe data to the first lock client node.
- the first lock client node is used as the owner of a stripe data
- the second lock client node learns that the first lock client node is the owner in the process of reading the stripe data.
- a lock client node sends a read request for the stripe data, requesting to read the stripe data buffered from the first lock client node.
- Step 602 The first lock client node searches for the stripe data in the cached resource.
- the first lock client node first searches for the stripe data in the cached resource. If it can be found, the strip data is directly returned to the second lock client node; if it is not found, the data of the first lock client node is deleted, and the strip data has been deleted, then the steps are continued. 603. In the seventh embodiment of the present invention, the case is not found as an example.
- Step 603 The first lock client node reads each strip data of the stripe data from each lock client node of the distributed storage system and constructs the strip data.
- the first lock client node actively initiates a read data request to each lock client node of the distributed storage system, from Each lock client node reads each stripe data of the stripe data, and reconstructs the stripe data in the global cache of the first lock client node itself.
- Step 604 The first lock client node returns the stripe data to the second lock client node.
- FIG. 8 is a signaling flowchart of a method for caching a distributed storage system according to Embodiment 8 of the present invention.
- the cached stripe data is dynamically migrated between the lock client nodes as an example.
- the basic principle is to cache the stripe data on the lock client node that first accesses the stripe data, but when the application server passes
- the stripe data accessed by different lock client nodes is cached on a small number of lock client nodes, the cache deletion on these lock client nodes for caching becomes abnormally frequent, which seriously affects the value of the cache.
- the stripe data with high access frequency in the cache is called cache hotspot. Therefore, in order to maintain the cache usage balance on each storage service in the whole system, the hotspot must be dynamically migrated in the cache of each lock client section.
- the method includes the following process.
- Step 701 The first lock client node determines whether dynamic migration is enabled.
- each lock client node determines whether there is a cache hotspot in its own cache, and if so, starts dynamic migration.
- Whether the cache hotspot detection method exists in the global unified cache in the distributed storage system includes: periodically detecting the deletion rate of the cache of each lock client node in a unit time. When the deletion rate of the cache of a lock client node in the unit time exceeds the preset proportion of the total cache amount of the lock client node, it is defined that the lock client node cache has a hot spot, and a dynamic hotspot migration operation is required.
- the lock client node actively migrates the cache to other lock client nodes. For example, the above preset ratio may be 20%.
- the first lock client node determines whether dynamic migration is enabled. When the cache rate of the first lock client node in the unit time is greater than or equal to a preset ratio of the cache total of the lock client node, the first lock The client node determines that dynamic migration is enabled. In the embodiment of the present invention, the preset ratio of the cache rate of the first lock client node in the unit time is greater than or equal to the preset cache ratio of the lock client node.
- An implementation manner includes: setting a monitor connected to each lock client node, and each lock client node periodically reports to the monitor a deletion rate of the lock client node cache in a unit time.
- the monitor periodically counts the cache usage on each lock client node, and pushes cache hotspot information to each lock client node, where the cache hotspot information includes the ID of the lock client node that meets the cache hotspot condition, and each lock client node is based on Whether the cache hotspot information contains the ID of the lock client node to determine whether it belongs to the cache hotspot, and if so, starts the cache dynamic migration task.
- the cache dynamic migration task execution period is a sum of a heartbeat period in which the lock client node reports the deletion rate to the monitor and a period in which the monitor obtains the deletion rate of each lock client node, and the migration end condition is the end of the execution of the current cycle and the next The ID of the local client node is not included in the secondary cache hotspot information.
- Step 702 The second lock client node sends a stripe data read request to the first lock client node.
- the owner of the stripe data is taken as the first lock client node.
- Step 702 is an optional step.
- step 702 is performed first, and the second lock client node sends the stripe to the first lock client node.
- a read request for the data is then performed at step 703.
- step 701 if the execution of step 701 is completed, the second lock client node If the stripe read lock is not successfully applied, step 702 is not performed, and step 703 is directly executed.
- Step 703 The first lock client node sends a change owner request message to the lock server node.
- the first lock client node sends a change owner request message to the lock server node, where the message includes an ID of the stripe data and an ID of the target lock client node, where the message indicates that the request is to be The owner of the strip data is changed to the target lock client node. That is, the first lock client node sends a request message to the lock server node to change the owner of the stripe data to the target lock client node.
- the target lock client node is used as the second target lock client node as an example.
- the first lock client node generates the change owner request after receiving the stripe data read request sent by the second lock client node.
- the first lock client node actively generates the change owner request message.
- Step 704 The lock server node changes the owner of the stripe data to a target lock client node.
- the lock server node modifies the owner information of the stripe data, and changes the owner of the stripe data to the target lock client. node.
- Step 705 The lock server node returns the owner change success response message of the stripe data to the first lock client node.
- Step 706 The first lock client node sends the stripe data to the second lock client node.
- the first lock client node also returns a read data success response message to the second lock client node.
- Step 707 The first lock client node deletes the stripped data of the local cache.
- the first lock client node after receiving the owner change success response message of the stripe data, the first lock client node actively deletes the stripe data cached in the first lock client node.
- Step 708 The second lock client node caches the stripe data.
- step 702 if the foregoing process includes the step 702, after the second lock client node receives the read data success response message, the stripe data is cached into the local global cache of the second lock client node, and simultaneously to the application server. Returns a response message. If step 702 is not included in the above process, the first lock client node actively pushes the stripe data to the local of the second lock client node. In the global cache.
- FIG. 9 is a schematic structural diagram of a stripe data owner server node according to Embodiment 9 of the present invention.
- the stripe data owner server node includes at least: a receiving unit 91, a recording unit 92, and a transmitting unit 93.
- the receiving unit 91 is configured to receive a lock notification for the stripe data from the lock client node.
- a determining unit 94 configured to determine the lock notification
- the recording unit 92 is configured to record the lock client node as the owner of the stripe data when the determining unit determines that the lock notification is a first read lock notification or a write lock notification.
- a sending unit 93 configured to: when the determining unit determines that the lock notification is a first read lock notification or a write lock notification, returning the owner of the stripe data to the lock client node as the lock client a response message of the node, so that the lock client node caches the stripe data; and when the receiving judging unit judges that the lock notification is a non-first read lock notification, returning to the lock client node includes the And a response message of the owner information of the stripe data, so that the lock client node reads the stripe data from a cache of an owner of the stripe data.
- the determining unit 94 is specifically configured to: when the lock notification is a read lock notification, search for attribute information of the stripe data in the attribute information of the recorded stripe data. If not found, it is determined that the read lock notification is a first read lock notification.
- the receiving unit 91 is further configured to receive a request message from the lock client node to change an owner of the stripe data to another lock client node.
- the recording unit 92 is further configured to change the owner of the stripe data to the another lock client node.
- the sending unit 93 is further configured to return an owner change success response message of the stripe data to the lock client node, so that the lock client node deletes the stripped data of the local cache, and The other lock client node caches the stripe data.
- the read lock notification includes a read lock request
- the write lock notification includes a write lock request
- the sending unit 93 is further configured to return a lock success response message to the lock client node.
- the stripe data owner server node of the ninth embodiment of the present invention can be used to execute the present invention.
- the specific implementation process and technical effects of the second embodiment to the ninth embodiment of the present invention reference may be made to Embodiment 8 of the present invention to Embodiment 8 of the present invention, and details are not described herein again.
- FIG. 10 is a schematic structural diagram of a lock client node according to Embodiment 10 of the present invention.
- the lock client node includes at least: a transmitting unit 1001, a receiving unit 1002, a comparing unit 1003, a buffer unit 1004, and a reading and writing unit 1005.
- the sending unit 1001 is configured to send a read lock notification or a write lock notification to the stripe data owner server node.
- the receiving unit 1002 is configured to receive, by the stripe data owner server node, a response message that returns that the owner of the stripe data is the lock client node, or receive the returned by the stripe data owner server node The ID of the owner of the stripe data.
- the comparing unit 1003 is configured to compare the ID of the owner of the stripe data with its own ID; when the two are different, the reading and writing unit 1005 is turned on.
- the buffer unit 1004 is configured to cache the stripe data when the receiving unit receives the response message that the stripe data owner server node returns the owner of the stripe data as the lock client node. .
- the read/write unit 1005 is configured to read the stripe data from a cache of a lock client node corresponding to an ID of an owner of the stripe data.
- the sending unit 1001 is further configured to send a lock downgrade request to the lock server node, so that the lock server node modifies the record to the lock client node holding pair.
- the read lock of the stripe data is further configured to send a lock downgrade request to the lock server node, so that the lock server node modifies the record to the lock client node holding pair.
- the method further includes: a searching unit 1006.
- the receiving unit 1002 is further configured to receive a read request or a write request for the stripe data from the application server.
- the searching unit 1006 is configured to locally search for a read lock or a write lock for the stripe data; if found, determine the owner of the stripe data according to a read lock or a write lock of the stripe data
- the reading and writing unit 1005 is turned on; if not found, the transmitting unit 1001 is turned on.
- the read/write unit 1005 is further configured to read or write the stripe data in an owner of the stripe data.
- the buffer unit 1004 is further configured to control the sending unit when a deletion rate per unit time is greater than or equal to a preset ratio of a total amount of caches of the lock client node.
- 1001 sends the stripe data owner server node to The owner of the stripe data is changed to the request message of the target lock client node, and is further configured to delete the locally cached stripe data according to the owner change success response message of the stripe data received by the receiving unit 1002, and control The sending unit 1001 sends the stripe data to the target lock client node.
- the sending unit 1001 is further configured to send, according to the control of the cache unit 1004, a request message for changing the owner of the stripe data to a target lock client node to the stripe data owner server node, So that the stripe data owner server node changes the owner of the stripe data to a target lock client node.
- the sending unit 1001 is further configured to send the stripe data to the target lock client node according to the control of the cache unit 1004, so that the target lock client node caches the stripe data.
- the receiving unit 1002 is further configured to receive an owner change success response message of the stripe data returned by the stripe data owner server node.
- the read/write unit 1005 is specifically configured to send a request for reading the stripe data to the lock client node corresponding to the ID of the owner of the stripe data, so that the The lock client node corresponding to the ID of the owner of the stripe data searches the locally cached data for the stripe data, and if found, returns the stripe data to the read/write unit 1005, otherwise, from the Each of the lock client nodes of the distributed storage system reads the strip data of the stripe data, and constructs the stripe data, and returns the strip data to the read/write unit 1005.
- the lock client node of the tenth embodiment of the present invention may be used to perform the cache method according to the second embodiment of the present invention to the eighth embodiment of the present invention.
- the specific implementation process and technical effects may refer to the second embodiment of the present invention to the embodiment of the present invention. Eight, no longer repeat them here.
- FIG. 11 is a block diagram showing the structure of a stripe data owner server node in the eleventh embodiment of the present invention.
- the stripe data owner server node includes at least: a processor 1101, a memory 1 102, a communication interface 1103, and a bus 1104.
- the processor 1101, the memory 1102, and the communication interface 1103 communicate through the bus 1104.
- the memory 1102 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction.
- the memory 1102 can be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
- the communication interface 1103 is configured to communicate with the first lock client node and the second lock client node. Letter.
- the processor 1101 is configured to execute an execution instruction stored by the memory 1102, which may be a single core or a multi-core 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.
- the memory 1102 may be a single core or a multi-core 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.
- the processor 1101 runs a program to execute the following instructions:
- the stripe data owner server node receives a lock notification for the stripe data from the lock client node, and determines the lock notification;
- the stripe data owner server node When the lock notification is a first read lock notification or a write lock notification, the stripe data owner server node records the lock client node as an owner of the stripe data, to the lock client node Returning, the owner of the stripe data is a response message of the lock client node, so that the lock client node caches the stripe data;
- the stripe data owner server node When the lock notification is a non-first read lock notification, the stripe data owner server node returns a response message containing the owner information of the stripe data to the lock client node, so that the lock client The end node reads the stripe data from a cache of the owner of the stripe data.
- the stripe data owner server node of the eleventh embodiment of the present invention can be used to perform the caching method according to the second embodiment of the present invention to the eighth embodiment of the present invention.
- the specific implementation process and technical effects can be referred to the second embodiment of the present invention.
- the eighth embodiment of the present invention is not described herein again.
- FIG. 12 is a schematic structural diagram of a lock client node according to Embodiment 12 of the present invention.
- the lock client node includes at least: a processor 1201, a memory 1202, a communication interface 1203, and a bus 1204.
- the processor 1201, the memory 1202, and the communication interface 1203 communicate through the bus 1204.
- the memory 1202 is used to store programs. Specifically, the program code may be included in the program, and the program code includes a computer execution instruction.
- the memory 1202 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory.
- the processor 1201 is configured to execute an execution instruction stored by the memory 1202, which may be a single core or a multi-core central processing unit (CPU), or for a specific integration.
- the memory 1202 may be a single core or a multi-core central processing unit (CPU), or for a specific integration.
- ASIC Application Specific Integrated Circuit
- ASIC or one or more integrated circuits configured to implement embodiments of the present invention.
- the communication interface 1203 is for communicating with a stripe data owner server node and other lock client nodes.
- the processor 1201 runs a program to execute the following instructions: Send a read lock notification or a write lock notification to the stripe data owner server node for the stripe data;
- the lock client node caches the stripe data ;
- the ID of the owner of the stripe data is compared with its own ID, when the two are different, The stripe data is read in a cache of a lock client node corresponding to the ID of the owner of the stripe data.
- the lock client node of the embodiment 12 of the present invention can be used to perform the cache method according to the second embodiment of the present invention to the eighth embodiment of the present invention.
- the specific implementation process and technical effects can be implemented by referring to the second embodiment of the present invention to the implementation of the present invention. Example 8 is not repeated here.
- a thirteenth embodiment of the present invention provides a computer readable medium, comprising computer execution instructions, wherein the computer execution instruction is used to make a stripe data owner server node according to the method described in Embodiment 2 of the present invention.
- a fourteenth embodiment of the present invention provides a computer readable medium, comprising computer execution instructions, wherein the computer execution instructions are used to cause a lock client node to perform the method according to Embodiment 3 of the present invention.
- Computer readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one location to another.
- a storage medium may be any available media that can be accessed by a computer.
- computer readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, disk storage media or other magnetic storage device, or can be used for carrying or storing in the form of an instruction or data structure.
- any connection may suitably be a computer readable medium.
- the software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave
- coaxial cable , fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, wireless, and microwaves are included in the fixing of the associated media.
- a disk and a disc include a compact disc (CD), a laser disc, a disc, a digital versatile disc (DVD), a floppy disk, and a Blu-ray disc, wherein the disc is usually magnetically copied, and the disc is The laser is used to optically replicate the data. Combinations of the above should also be included within the scope of the computer readable media.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/087842 WO2014101108A1 (zh) | 2012-12-28 | 2012-12-28 | 分布式存储系统的缓存方法、节点和计算机可读介质 |
CA2896123A CA2896123C (en) | 2012-12-28 | 2012-12-28 | Caching method for distributed storage system, a lock server node, and a lock client node |
EP12891167.4A EP2830284B1 (en) | 2012-12-28 | 2012-12-28 | Caching method for distributed storage system, node and computer readable medium |
CN201280003290.4A CN103392167B (zh) | 2012-12-28 | 2012-12-28 | 分布式存储系统的缓存方法、节点 |
AU2012398211A AU2012398211B2 (en) | 2012-12-28 | 2012-12-28 | Caching method for distributed storage system, a lock server node, and a lock client node |
JP2015514321A JP6301318B2 (ja) | 2012-12-28 | 2012-12-28 | 分散ストレージシステムのためのキャッシュ処理方法、ノード及びコンピュータ可読媒体 |
US14/509,471 US9424204B2 (en) | 2012-12-28 | 2014-10-08 | Caching method for distributed storage system, a lock server node, and a lock client node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/087842 WO2014101108A1 (zh) | 2012-12-28 | 2012-12-28 | 分布式存储系统的缓存方法、节点和计算机可读介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/509,471 Continuation US9424204B2 (en) | 2012-12-28 | 2014-10-08 | Caching method for distributed storage system, a lock server node, and a lock client node |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014101108A1 true WO2014101108A1 (zh) | 2014-07-03 |
Family
ID=49535837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2012/087842 WO2014101108A1 (zh) | 2012-12-28 | 2012-12-28 | 分布式存储系统的缓存方法、节点和计算机可读介质 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9424204B2 (zh) |
EP (1) | EP2830284B1 (zh) |
JP (1) | JP6301318B2 (zh) |
CN (1) | CN103392167B (zh) |
AU (1) | AU2012398211B2 (zh) |
CA (1) | CA2896123C (zh) |
WO (1) | WO2014101108A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559319B (zh) * | 2013-11-21 | 2017-07-07 | 华为技术有限公司 | 分布式集群文件系统的缓存同步方法和设备 |
CN104113587B (zh) * | 2014-06-23 | 2017-08-01 | 华中科技大学 | 一种分布式文件系统客户端元数据缓存优化方法 |
CN104536916B (zh) * | 2014-12-18 | 2018-04-10 | 华为技术有限公司 | 一种多核系统的仲裁方法及多核系统 |
CN107844268B (zh) * | 2015-06-04 | 2021-09-14 | 华为技术有限公司 | 一种数据分发方法、数据存储方法、相关装置以及系统 |
US20170097887A1 (en) * | 2015-10-02 | 2017-04-06 | Netapp, Inc. | Storage Controller Cache Having Reserved Parity Area |
CN105183670B (zh) * | 2015-10-27 | 2018-11-27 | 北京百度网讯科技有限公司 | 用于分布式缓存系统的数据处理方法和装置 |
CA2963365C (en) | 2015-12-31 | 2019-02-05 | Lei Chen | Data write method, apparatus, and system |
CN105573682B (zh) * | 2016-02-25 | 2018-10-30 | 浪潮(北京)电子信息产业有限公司 | 一种san存储系统及其数据读写方法 |
CN107239474B (zh) * | 2016-03-29 | 2021-05-04 | 创新先进技术有限公司 | 一种数据记录方法及装置 |
CN106156334B (zh) * | 2016-07-06 | 2019-11-22 | 益佳科技(北京)有限责任公司 | 内存数据处理设备及内存数据处理方法 |
US10191854B1 (en) * | 2016-12-06 | 2019-01-29 | Levyx, Inc. | Embedded resilient distributed dataset systems and methods |
CN106850856A (zh) * | 2017-03-28 | 2017-06-13 | 南京卓盛云信息科技有限公司 | 一种分布式存储系统及其同步缓存方法 |
CN107239235B (zh) * | 2017-06-02 | 2020-07-24 | 苏州浪潮智能科技有限公司 | 一种多控多活raid同步方法及系统 |
CN107330061B (zh) * | 2017-06-29 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种基于分布式存储的文件删除方法及装置 |
CN107608626B (zh) * | 2017-08-16 | 2020-05-19 | 华中科技大学 | 一种基于ssd raid阵列的多级缓存及缓存方法 |
CN107623722A (zh) * | 2017-08-21 | 2018-01-23 | 云宏信息科技股份有限公司 | 一种远端数据缓存方法、电子设备及存储介质 |
US10685010B2 (en) | 2017-09-11 | 2020-06-16 | Amazon Technologies, Inc. | Shared volumes in distributed RAID over shared multi-queue storage devices |
US10365980B1 (en) * | 2017-10-31 | 2019-07-30 | EMC IP Holding Company LLC | Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization |
US10474545B1 (en) * | 2017-10-31 | 2019-11-12 | EMC IP Holding Company LLC | Storage system with distributed input-output sequencing |
US11209997B2 (en) | 2017-11-22 | 2021-12-28 | Blackberry Limited | Method and system for low latency data management |
US10831670B2 (en) * | 2017-11-22 | 2020-11-10 | Blackberry Limited | Method and system for low latency data management |
CN110413217B (zh) * | 2018-04-28 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机程序产品 |
CN110347516B (zh) * | 2019-06-27 | 2023-03-24 | 河北科技大学 | 一种面向细粒度读写锁的软件自动重构方法及装置 |
CN110442558B (zh) * | 2019-07-30 | 2023-12-29 | 深信服科技股份有限公司 | 数据处理方法、分片服务器、存储介质及装置 |
US20210232442A1 (en) * | 2020-01-29 | 2021-07-29 | International Business Machines Corporation | Moveable distributed synchronization objects |
CN111651464B (zh) * | 2020-04-15 | 2024-02-23 | 北京皮尔布莱尼软件有限公司 | 数据处理方法、系统及计算设备 |
US20230146076A1 (en) * | 2021-11-08 | 2023-05-11 | Rubrik, Inc. | Backing file system with cloud object store |
CN114860167A (zh) * | 2022-04-29 | 2022-08-05 | 重庆紫光华山智安科技有限公司 | 数据存储方法、装置、电子设备及存储介质 |
WO2024026784A1 (zh) * | 2022-08-04 | 2024-02-08 | 华为技术有限公司 | 事务处理方法、装置、节点及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093524A1 (en) * | 2001-11-13 | 2003-05-15 | Microsoft Corporation | Method and system for locking resources in a distributed environment |
CN101706802A (zh) * | 2009-11-24 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 一种数据写入、修改及恢复的方法、装置及服务器 |
CN102387204A (zh) * | 2011-10-21 | 2012-03-21 | 中国科学院计算技术研究所 | 维护集群缓存一致性的方法及系统 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3596021B2 (ja) * | 1994-03-04 | 2004-12-02 | 三菱電機株式会社 | データリンク情報制御方式 |
US7200623B2 (en) * | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US6446237B1 (en) * | 1998-08-04 | 2002-09-03 | International Business Machines Corporation | Updating and reading data and parity blocks in a shared disk system |
US6148414A (en) * | 1998-09-24 | 2000-11-14 | Seek Systems, Inc. | Methods and systems for implementing shared disk array management functions |
US6490615B1 (en) * | 1998-11-20 | 2002-12-03 | International Business Machines Corporation | Scalable cache |
US6742135B1 (en) * | 2000-11-07 | 2004-05-25 | At&T Corp. | Fault-tolerant match-and-set locking mechanism for multiprocessor systems |
JP2002251313A (ja) * | 2001-02-23 | 2002-09-06 | Fujitsu Ltd | キャッシュサーバ及び分散キャッシュサーバシステム |
US6757790B2 (en) * | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
US7200715B2 (en) * | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US6990560B2 (en) * | 2003-01-16 | 2006-01-24 | International Business Machines Corporation | Task synchronization mechanism and method |
US8543781B2 (en) * | 2004-02-06 | 2013-09-24 | Vmware, Inc. | Hybrid locking using network and on-disk based schemes |
EP1782244A4 (en) * | 2004-07-07 | 2010-01-20 | Emc Corp | SYSTEMS AND METHODS FOR IMPLEMENTING DISTRIBUTED CACHED MEMORY COHERENCE |
JP5408140B2 (ja) | 2008-10-23 | 2014-02-05 | 富士通株式会社 | 認証システム、認証サーバおよび認証方法 |
US8103838B2 (en) * | 2009-01-08 | 2012-01-24 | Oracle America, Inc. | System and method for transactional locking using reader-lists |
US8156368B2 (en) * | 2010-02-22 | 2012-04-10 | International Business Machines Corporation | Rebuilding lost data in a distributed redundancy data storage system |
US8103904B2 (en) * | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
JP5661355B2 (ja) * | 2010-07-09 | 2015-01-28 | 株式会社野村総合研究所 | 分散キャッシュシステム |
US9383932B2 (en) * | 2013-12-27 | 2016-07-05 | Intel Corporation | Data coherency model and protocol at cluster level |
-
2012
- 2012-12-28 JP JP2015514321A patent/JP6301318B2/ja active Active
- 2012-12-28 WO PCT/CN2012/087842 patent/WO2014101108A1/zh active Application Filing
- 2012-12-28 CN CN201280003290.4A patent/CN103392167B/zh active Active
- 2012-12-28 EP EP12891167.4A patent/EP2830284B1/en active Active
- 2012-12-28 CA CA2896123A patent/CA2896123C/en active Active
- 2012-12-28 AU AU2012398211A patent/AU2012398211B2/en active Active
-
2014
- 2014-10-08 US US14/509,471 patent/US9424204B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093524A1 (en) * | 2001-11-13 | 2003-05-15 | Microsoft Corporation | Method and system for locking resources in a distributed environment |
CN101706802A (zh) * | 2009-11-24 | 2010-05-12 | 成都市华为赛门铁克科技有限公司 | 一种数据写入、修改及恢复的方法、装置及服务器 |
CN102387204A (zh) * | 2011-10-21 | 2012-03-21 | 中国科学院计算技术研究所 | 维护集群缓存一致性的方法及系统 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2830284A4 * |
Also Published As
Publication number | Publication date |
---|---|
CA2896123A1 (en) | 2014-07-03 |
AU2012398211B2 (en) | 2016-12-08 |
US9424204B2 (en) | 2016-08-23 |
JP2015525392A (ja) | 2015-09-03 |
CN103392167A (zh) | 2013-11-13 |
CA2896123C (en) | 2018-02-13 |
EP2830284B1 (en) | 2017-03-22 |
AU2012398211A1 (en) | 2015-07-30 |
EP2830284A4 (en) | 2015-05-20 |
US20150026417A1 (en) | 2015-01-22 |
EP2830284A1 (en) | 2015-01-28 |
CN103392167B (zh) | 2016-08-03 |
JP6301318B2 (ja) | 2018-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014101108A1 (zh) | 分布式存储系统的缓存方法、节点和计算机可读介质 | |
US11243922B2 (en) | Method, apparatus, and storage medium for migrating data node in database cluster | |
US9830101B2 (en) | Managing data storage in a set of storage systems using usage counters | |
CN109783438B (zh) | 基于librados的分布式NFS系统及其构建方法 | |
CN102523279B (zh) | 一种分布式文件系统及其热点文件存取方法 | |
US10387380B2 (en) | Apparatus and method for information processing | |
CN108363641B (zh) | 一种主备机数据传递方法、控制节点以及数据库系统 | |
CN105549905A (zh) | 一种多虚拟机访问分布式对象存储系统的方法 | |
WO2018068626A1 (zh) | 一种磁盘锁的管理方法、装置和系统 | |
JP2004199420A (ja) | 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法 | |
WO2016066108A1 (zh) | 路由访问方法、路由访问系统及用户终端 | |
CN109302448B (zh) | 一种数据处理方法及装置 | |
WO2012126229A1 (zh) | 一种分布式缓存系统数据存取的方法及装置 | |
US11321021B2 (en) | Method and apparatus of managing mapping relationship between storage identifier and start address of queue of storage device corresponding to the storage identifier | |
WO2013091167A1 (zh) | 日志存储方法及系统 | |
CN109254958A (zh) | 分布式数据读写方法、设备及系统 | |
CN102510390B (zh) | 利用硬盘温度自检测指导数据迁移的方法和装置 | |
US20230205638A1 (en) | Active-active storage system and data processing method thereof | |
WO2022083267A1 (zh) | 数据处理方法、装置、计算节点以及计算机可读存储介质 | |
WO2023273803A1 (zh) | 一种认证方法、装置和存储系统 | |
JP2004246702A (ja) | 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム | |
JP2010277342A (ja) | 管理プログラム、管理装置および管理方法 | |
US20220182384A1 (en) | Multi-protocol lock manager for distributed lock management | |
CN109947704A (zh) | 一种锁类型切换方法、装置及集群文件系统 | |
CN115878584A (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: 12891167 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2012891167 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012891167 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2015514321 Country of ref document: JP Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2896123 Country of ref document: CA |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2012398211 Country of ref document: AU Date of ref document: 20121228 Kind code of ref document: A |