WO2015100973A1 - 锁管理方法及系统、锁管理系统的配置方法及装置 - Google Patents

锁管理方法及系统、锁管理系统的配置方法及装置 Download PDF

Info

Publication number
WO2015100973A1
WO2015100973A1 PCT/CN2014/080679 CN2014080679W WO2015100973A1 WO 2015100973 A1 WO2015100973 A1 WO 2015100973A1 CN 2014080679 W CN2014080679 W CN 2014080679W WO 2015100973 A1 WO2015100973 A1 WO 2015100973A1
Authority
WO
WIPO (PCT)
Prior art keywords
lock
manager
node
lock manager
request
Prior art date
Application number
PCT/CN2014/080679
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 EP14876054.9A priority Critical patent/EP3009930B1/en
Publication of WO2015100973A1 publication Critical patent/WO2015100973A1/zh
Priority to US14/995,789 priority patent/US10042678B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager

Definitions

  • the present invention relates to the field of computers, and in particular, to a lock management method and system, and a method and an apparatus for configuring a lock management system.
  • data is shared by processes distributed among multiple business execution nodes. To perform operations on any resource, the process must obtain a lock in advance.
  • the control of concurrent access between different processes is implemented by the global lock manager, which records the access of each process and the holding of the lock, and maintains the lock waiting queue.
  • the global lock manager receives the lock request, it determines whether the lock request is satisfied based on the lock type, lock compatibility, and lock hold status.
  • the existing lock management system adopts the global and node lock manager collaboration technology.
  • Each system instance in the service execution node has a node lock manager, and each system instance manages a process shared lock manager, and the system instance corresponds to the process.
  • the lock request is sent to the node lock manager. If the node lock manager can process the lock request, the node lock manager returns the lock to the process requesting the lock; if the node lock manager cannot process the lock The request, the node lock manager sends a lock request to the global lock manager, which is handled by the global lock manager.
  • the lock management system in the prior art determines the level of the lock management system during program development. When a large number of lock access requests occur in the system, the lock access delay is high, and the system running performance cannot be Guaranteed.
  • Embodiments of the present invention provide a lock management method and system, a configuration method and apparatus for a lock management system, which can reduce lock access delay and improve system performance.
  • the first aspect provides a method for configuring a lock management system in a distributed system, including: according to the number of service execution nodes included in the distributed system, The number of system instances on all service execution nodes and the number of processing processes, and the individual service execution nodes to In the distributed system, the access delay of the control node is set to the level of the corresponding lock management system for each service execution node; respectively, according to the level of the lock management system corresponding to each service execution node, each service execution node At least one lock manager is assigned; a lock level context is configured for each of the lock managers, wherein the lock level context is used to determine a lock manager adjacent to each of the lock managers.
  • the at least one lock manager is allocated to each of the service execution nodes according to a level of the lock management system corresponding to each service execution node, specifically including When the lock management system set for the business execution node is two levels, the node is assigned a node lock manager and a global lock manager, and the lock manager of the node lock manager is a global lock.
  • At least one lock management is allocated to each of the service execution nodes according to a level of the lock management system corresponding to each service execution node.
  • the method further includes: when the service execution node corresponding to the global lock manager is different from the service execution node where the at least one system instance is located, setting a level lock manager for the service execution node corresponding to the at least one system instance.
  • the lock management context includes: a number of lock level levels, a level at which the lock manager is located, a lock manager at a higher level, and a lower level The lock manager, the lock manager is responsible for the business execution node.
  • a lock management method including: Receiving, by the node lock manager assigned to the service execution node, a lock request sent by the service execution node, continuing to send the lock request to the lock manager of the upper level according to the state in which the node lock manager holds the lock, or returning to the Relating the lock corresponding to the lock request to the service execution node; receiving the lock request by the lock manager of the upper node of the node lock manager, and continuing to send the lock to the lock manager of the higher level according to the state of holding the lock Requesting, or returning the lock corresponding to the lock request to the node lock manager; according to the level of the set lock management system, the lock manager of the node lock manager is in accordance with the state of the lock held by the level The lock request is processed until the lock request is sent to the global lock manager, and the lock corresponding to the lock request is returned to the lock manager of the lower level of the global lock manager by the global lock manager until Returning the lock corresponding to the lock request to the service execution node
  • the lock manager of the upper level continues to send the lock request according to a state in which the node lock manager holds a lock, or returns a corresponding lock request
  • the locking to the service execution node specifically includes: when the node lock manager holds the lock corresponding to the lock request, returning, by the node lock manager, the lock corresponding to the lock request to the service execution node
  • the lock manager sends the lock request to the lock manager of the node of the node lock manager.
  • the sending according to the state of holding the lock, continuing to send the lock request to a higher-level lock manager, or returning the lock corresponding to the lock request to the node
  • the lock manager specifically includes: when the lock manager of the upper node of the node lock manager holds the lock corresponding to the lock request, returning the lock request by the lock manager of the upper node of the node lock manager Locking to the node lock manager; when the lock manager of the upper level of the node lock manager does not hold the lock corresponding to the lock request, the lock manager of the upper level of the node lock manager is further The lock manager of the superior sends the lock request.
  • the method further includes: sending, by the lock manager, a pre-required to the upper-level lock manager A set number of lock requests are merged into the same lock request sent to the lock manager of the upper level of the lock manager.
  • the method further includes: when returning the lock corresponding to the lock request, setting by using the lock manager The maximum holding time of the lock corresponding to the lock request, when the lock manager of the lower level of the lock manager holds the lock corresponding to the lock request for a time greater than or equal to the maximum holding time, The lock manager sends a forced invalidation request to a lock manager of a lower level of the lock manager, so that the lock manager of the lower level of the lock manager releases the lock corresponding to the lock request after receiving the forced invalidation request .
  • a third aspect provides a configuration apparatus for a lock management system, which is applied to a distributed system, including: an obtaining unit, an allocating unit, and a configuration unit; and the obtaining unit is configured to execute, according to the number of service execution nodes included in the distributed system The number of system instances on all service execution nodes and the number of processing processes, and the access delays of the respective service execution nodes to the central control node of the distributed system, and the level of the corresponding lock management system is set for each service execution node;
  • the allocation unit is configured to allocate at least one lock management crying to each of the service execution nodes according to a level of a lock management system corresponding to each service execution node acquired by the acquiring unit, where the configuration unit is used for Each lock manager assigned by the allocation unit configures a lock level context, wherein the lock level context is used to determine the lock manager adjacent to each of the lock managers.
  • the allocation unit when the lock manager set for the service execution node is two levels, the allocation unit is specifically configured to allocate a node lock manager to the service execution node and a global lock manager, the upper lock manager of the node lock manager is a global lock manager; Alternatively, when the level of the lock management system set for the service execution node is greater than the second layer, the allocation unit is specifically configured to allocate a node lock manager, a global lock manager, and at least one of the service execution nodes.
  • the allocating unit is further configured to: when the service execution node corresponding to the global lock manager and the service execution node where the at least one system instance is located At different times, a level lock manager is set for the service execution node corresponding to the at least one system instance.
  • the lock management context includes: a number of lock level levels, a level of the lock manager, a lock manager of the upper level, The lower level lock manager and the service executive node responsible for the lock manager.
  • a lock management system including at least one node lock manager, a local lock manager, and a global lock manager, wherein each service execution node corresponds to a hierarchical number of lock managers of the lock management system
  • the node lock manager is configured to receive a lock request sent by the service execution node, continue to send the lock request to the lock manager of the upper level according to the state of holding the lock, or return the lock corresponding to the lock request to perform the service a node
  • the local lock manager is configured to receive a lock request sent by a lock manager of a lower level of the local lock manager, and continue to send the lock to a lock manager of a higher level of the local lock manager according to a state of holding the lock a lock request, or returning a lock corresponding to the lock request to a lock manager of a lower level of the local lock manager
  • the global lock manager is configured to receive a lock request sent by a lock manager of a lower level of the global lock manager Returning the lock corresponding to the lock request to the
  • the node lock manager when the node lock manager holds a lock corresponding to the lock request, the node lock manager is specifically configured to return a lock corresponding to the lock request.
  • the node lock manager is specifically configured to send the lock manager to the upper level lock manager of the node lock manager Describe the lock request.
  • the local lock manager when the local lock manager holds a lock corresponding to the lock request, the local lock manager is configured to return a lock corresponding to the lock request a lock manager of a lower level of the local lock manager; when the local lock manager does not hold a lock corresponding to the lock request, the local lock manager is used to manage the lock of the upper level of the local lock manager The device sends the lock request.
  • the lock manager is further configured to: send a preset number of the lock managers that need to be sent to the upper level The lock request is merged into the same lock request sent to the lock manager of the upper level of the lock manager.
  • the lock manager is further configured to: when the lock corresponding to the lock request is returned, The maximum holding time of the lock corresponding to the lock request, when the lock manager of the lower level of the lock manager holds the lock corresponding to the lock request for a time greater than or equal to the maximum holding time, the lock manager sends Forcing the invalidation request to the lock manager of the lower level of the lock manager, so that the lock manager of the lower level of the lock manager releases the lock corresponding to the lock request after receiving the forced invalidation request.
  • the lock management method and system, the lock management system configuration method and device provided by the embodiments of the present invention according to the number of service execution nodes, the number of system instances on all service execution nodes, the number of processing processes, and the execution nodes of each service
  • the access delay of the central control node of the distributed system sets the layer of the corresponding lock management system for each service execution node.
  • Level, and lock management through the configured lock management system can reduce the lock access delay and improve system performance.
  • FIG. 1 is a schematic flowchart of a method for configuring a lock management system according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of a configuration apparatus of a lock management system according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart of a lock management method according to another embodiment of the present invention
  • FIG. 4 is a schematic structural diagram of a lock management system according to another embodiment of the present invention
  • FIG. 6 is a schematic structural diagram of a configuration apparatus of a lock management system according to still another embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a lock management system according to still another embodiment of the present invention.
  • the technical solutions in the embodiments of the present invention will be clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention. It is obvious that the described embodiments are only a part of the embodiments of the present invention, and not all An embodiment.
  • Embodiments of the present invention provide a lock management method and system, a lock management system configuration method, and an apparatus, which are capable of configuring a lock management system according to the number of processing processes and managing a lock of a processing process.
  • the present invention is applied to a distributed system, where the distributed system includes at least two service execution nodes, a central control node, and each of the service execution nodes runs a corresponding system instance through at least one processing process, and simultaneously performs the central control node.
  • the sharing and control of resources may be a specific physical node, and the system instance running on the service execution node may be system software or application software, and the specific operating system or The software is supported by several processing processes in the service execution node. For example, in the data center, the service execution node is deployed in the standardization machine rejection, and the different machine rejection service execution node communication needs to pass the machine to reject the built-in switching line and branch.
  • the switching device and the trunk switching device are completed, and the system program or the application running in the data center is represented by the system instance.
  • Each system instance runs through several processing processes.
  • the embodiment of the present invention provides a distributed
  • the configuration method of the lock management system in the system, as shown in Figure 1, includes the following steps:
  • the configuration device of the lock management system is configured according to the number of service execution nodes included in the distributed system, the number of system instances on all service execution nodes, the number of processing processes, and the access delay of each service execution node to the central control node.
  • the business execution nodes set the level of the corresponding lock management system.
  • the number of all the processing processes corresponding to the system instance on each service execution node is known. Therefore, after the configuration device of the lock management system obtains the processing process of the system instance, the system instance can obtain all the system instance corresponding according to the number of the system instance.
  • the lock management system of the lock management system for each service execution node is pre-manually configured, so that the level of the lock management system corresponding to the service execution node cannot be changed when the processing process changes. In the case that the lock request access volume is increased, the lock access delay may be quite serious.
  • the level of the lock management system corresponding to the service execution node refers to the number of lock managers corresponding to the service execution node. According to the actual situation, the level of the lock management system is not necessarily the same for different service execution nodes. Therefore, the level of the lock management system can only be for one service execution node, and the same service execution node The upper processing process corresponds to the same level of the lock management system.
  • a reasonable level of the lock management system can be allocated according to the number of service execution nodes, the number of system instances, the number of processing processes, and the access delay of each service execution node to the central control node, so as to reduce the lock access delay.
  • the level of the specific assigned lock management system may refer to the delay difference between each level lock manager and the adjacent lock manager. When the delay difference is greater than a preset order of magnitude, the two lock managers may be Add a level of lock manager between.
  • the configuration device of the lock management system is respectively configured according to each service execution node.
  • the hierarchy of the lock management system assigns at least one lock manager to each of the business execution nodes. Specifically, when the level of the lock management system acquired in step 101 is 1, the lock manager allocated for the service execution node is a global lock manager, that is, all processing processes of the service execution node only receive the global lock manager. Management, the business execution node only requests locks from the global lock manager. When the level of the lock management system obtained in step 101 is 2, a node lock manager and a global lock manager are allocated to the service execution node, and the global lock manager no longer directly manages the service execution node, but Directly manage the node lock manager. The node lock manager directly manages the business execution node.
  • the business execution node only requests the lock from the node lock manager.
  • the node lock manager does not have the requested lock, it requests the lock from the global lock manager. .
  • the level of the lock management system acquired in step 101 is greater than 2
  • the business execution node is assigned a node lock manager and a global lock manager and at least one part between the node lock manager and the global lock manager.
  • the lock manager (the number of node lock managers is determined according to the level of the lock management system. Specifically, the number of node lock managers is equal to the level of the lock management system minus 2)
  • the global lock manager directly manages the local locks. Manager, the local lock manager directly manages the node lock manager, and the node lock manager directly manages the processing process on the business execution node.
  • the method further includes: when the service execution node corresponding to the global lock manager is different from the service execution node where the at least one system instance is located, setting a level for the service execution node corresponding to the at least one system instance Lock manager, wherein the at least one system instance runs on the same service execution node.
  • This process is a process of adding a lock manager to the lock manager system, that is, when the distributed system adds a new system instance to the new service execution node, or the original system instance needs to add a new processing process on the new service execution node.
  • a new level of lock manager is added to the lock management system.
  • the added lock manager can include a new node lock management and a local lock manager.
  • the number of levels required for the new local lock manager can be adjusted according to the steps.
  • the method of 1 01 is determined.
  • the global lock manager, the node lock manager and the partial lock management are all types of lock management only to express the name of the hierarchical relationship definition. Therefore, in the present invention, the lock management can refer to the global lock manager and the node. Any of the lock manager and local lock management, where all lock managers can be implemented by a lock manager server. 1 0 3.
  • the lock management system configuration device configures a lock level context for each lock manager.
  • the lock level context should include the number of lock level levels, the level of the lock manager, the upper level lock manager, the lower level lock manager, and the lock responsible for the physical node; and may also include: lock cache size, lock time, lock Information such as request delay and lock batch processing amount.
  • the lock level context is used to determine the lock manager adjacent to each lock manager, and the lock level context is at least used to determine the lock manager of the upper level of each lock manager. For example, in step 102, when the level of the lock management system is greater than 3, at least one local lock manager is set between the node lock manager and the global lock manager, and the lock level context determines the lock of each local lock manager upper level.
  • the manager and the subordinate lock manager wherein the subordinate lock manager requests a lock from the lock manager located at the upper level.
  • the configuration device of the lock management system determines the lock manager according to the number of lock levels in the lock level context, the level of the lock manager, the lock manager of the upper level, the lock manager of the lower level, and the lock responsible node.
  • the upper level lock manager and the lower level lock manager The level of the lock manager system corresponding to each of the above service execution nodes is set according to the number of service execution nodes included in the distributed system, the number of system instances on all service execution nodes, the number of processing processes, and the execution nodes of each service.
  • the access delay of the central control node is performed. In the actual data access process, the lock access processing process has a delay.
  • the lock access delay time for each service execution node is the number of processing processes included in all system instances on the service execution node and the corresponding service execution nodes.
  • the hierarchy of the lock management system determines that the service execution node includes a system instance. If the system instance contains N processing processes, and the service execution node requests the lock directly through the global lock manager, the processing process is from the global lock manager.
  • the delay of acquiring the lock is t; and when the service execution node is set with the node lock manager, that is, when the level of the lock management system corresponding to the service execution node is 2, the delay of the processing process acquiring the lock from the node lock manager is 0.
  • the node corresponds to the level of the lock management system
  • the number of all service execution nodes in the distributed system, the number of system instances of all service execution nodes and the number of processing processes can be comprehensively calculated, and the model of the lock management system is constructed based on the data, and the calculation is performed.
  • the time delay of the lock access processing process is the lowest or lower than the set delay threshold. Therefore, when the access delay from the service execution node to the central control node is large, a certain level of lock management is set for the corresponding service execution node. Correspondingly, the lock access delay of the service execution node can be reduced.
  • the lock configuration file of the above lock management system can be implemented by using the usual configure file or by XML.
  • XML configuration file example is an XML configuration file example:
  • the configuration method of the lock management system provided by the embodiment of the present invention is based on the number of service execution nodes, the number of system instances on all service execution nodes, the number of processing processes, and the central control of each service execution node to the distributed system.
  • the access delay of the node is set to the level of the corresponding lock management system for each business execution node, and the lock management is performed by the configured lock management system, which can reduce the lock access delay and improve the system running performance.
  • the embodiment of the present invention further provides a configuration device 2 for a lock management system, which is used to implement a configuration method of a lock management system provided by the foregoing method embodiment, and is applied to a distributed system, where the distributed system includes at least two service executions.
  • the method includes: The obtaining unit 21, the allocating unit 22 and the configuring unit 23; the obtaining unit 21 is configured to execute according to the number of service execution nodes included in the distributed system, the number of system instances on all service execution nodes, the number of processing processes, and each service execution.
  • the access delay of the node to the central control node of the distributed system, the level of the corresponding lock management system is set for each service execution node; the allocation unit 22 is configured to perform according to each service acquired by the obtaining unit 21, respectively.
  • the level of the lock management system corresponding to the node is the execution section for each of the services Point at least one lock manager is assigned; the configuration unit 23 is configured to configure a lock level context for each lock manager assigned by the allocating unit 22, wherein the lock level context is used to determine that each lock manager is adjacent Lock manager.
  • the allocating unit 22 is specifically configured to allocate a node lock manager and a global lock manager to the service execution node, where the node lock manager The lock manager of the upper level is a global lock manager; or; when the level of the lock management system set for the service execution node is greater than the second level, the allocating unit 22 is specifically configured to allocate a node lock manager, a global for the service execution node.
  • the allocating unit 22 is further configured to: when the service execution node corresponding to the global lock manager is different from the service execution node where the at least one system instance is located, set a service execution node corresponding to the at least one system instance. Hierarchical lock manager.
  • the lock management context includes: the number of lock level, the level of the lock manager, the lock manager of the upper level, the lock manager of the lower level, and the lock responsible node.
  • the configuration device of the lock management system provided by the embodiment of the present invention, according to the number of service execution nodes, the number of system instances on all service execution nodes, the number of processing processes, and the central control of each service execution node to the distributed system
  • the access delay of the node is set to the level of the corresponding lock management system for each business execution node, and the lock management is performed by the configured lock management system, which can reduce the lock access delay and improve the system running performance.
  • the embodiment of the present invention further provides a lock management method, which is applied to the lock management system configured by the foregoing configuration method of the lock management system. Specifically, referring to FIG. 3, the method includes the following steps:
  • a lock management system receives a lock request sent by the service execution node by a node lock manager allocated for a service execution node.
  • a lock is required as a permission for the process to access the data of the distributed system.
  • the processing process first searches whether it holds the lock itself, when the processing process does not hold the lock.
  • the processing process sends a lock request to the lock manager of the processing process on the business execution node, the lock request including information about the lock required by the processing process, such as the type.
  • the lock management system continues to send the lock request to the lock manager of the upper level according to the state in which the node lock manager holds the lock, or returns the lock corresponding to the lock request to the service execution node.
  • the node lock manager After receiving the lock request sent by the processing process, the node lock manager searches whether it holds the lock corresponding to the lock request. When the node lock manager does not hold the lock corresponding to the lock request, the node lock manager does not hold the lock corresponding to the lock request.
  • the point lock manager sends a lock request to the upper lock manager of the node lock manager; when the node lock manager holds the lock corresponding to the lock request (the lock manager itself does not hold the lock, and the lock is held Processing the process, the lock manager may manage multiple processing processes.
  • the "node lock manager holds the lock corresponding to the lock request" means that the lock manager has this processing process.
  • the information of the lock that is, the registration information of the lock manager indicates that the lock corresponding to the lock request is registered.
  • the node lock manager directly returns the lock corresponding to the lock request to the service execution.
  • the lock corresponding to the lock request is an exclusive lock
  • the node lock manager needs to wait for the processing process of the lock corresponding to the lock request to release the lock corresponding to the lock request, and then return the lock corresponding to the lock request to the service execution.
  • the node in the same lock mode, directly performs the lock request in the above manner.
  • Table 1 provides an example of the lock mode compatibility matrix in the prior art, where X indicates that the lock mode is incompatible, ACCESS SHARE Indicates shared access, ROW SHARE for row sharing, ROW EXCLUSIVE for row exclusive, SHARE ROW EXCLUSIVE for shared row exclusive, EXCLUSIVE for exclusive, ACCESS EXCLUS IVE for exclusive access, refer to Table 1, ACCESS SHARE lock mode and ACCESS SHARE, ROW SHARE, ROW EXCLUSIVE, SHARE ROW EXCLUSIVE, EXCLUSIVE lock mode compatible, and ACCESS SHARE lock mode and ACCESS EXCLUSIVE lock mode are mutually exclusive.
  • each lock manager can maintain a lock request processing window for merging a preset number of lock requests that need to be sent to the superior lock manager to be sent to the same lock request.
  • the lock manager of the upper level of the lock manager In this way, the superior manager receives all the lock requests only once it needs to be received.
  • the lock management system receives the lock request through the lock manager of the upper node of the node lock manager, continues to send the lock request to the higher-level lock manager according to the state of holding the lock, or returns the lock corresponding to the lock request.
  • the node lock manager receives the lock request through the lock manager of the upper node of the node lock manager, continues to send the lock request to the higher-level lock manager according to the state of holding the lock, or returns the lock corresponding to the lock request.
  • the node lock manager receives the lock request through the lock manager of the upper node of the node lock manager, continues to send the lock request to the higher-level lock manager according to the state of holding the lock, or returns the lock corresponding to the lock request.
  • the lock management system processes the lock request according to the level of the lock management system of the set lock management system by the lock manager of the node lock manager according to the state of holding the lock at the current level until the lock request is sent.
  • the lock management system returns the lock corresponding to the lock request to the lock manager of the lower level of the global lock manager through the global lock manager until the lock corresponding to the lock request is returned to the service execution node.
  • any level 1 lock manager receives a lock request sent by its lower level lock manager, it searches whether it holds the lock corresponding to the lock request.
  • the lock management Return the lock corresponding to the lock request to the lower level lock manager; when the lock manager does not hold the lock corresponding to the lock request, the lock manager sends a lock request to the upper lock manager of the lock manager, due to the global lock manager All locks are held, so when the global lock manager receives a lock request sent by its lower-level lock manager, it must be able to return the lock corresponding to the lock request.
  • the exclusive lock only the processing process holding the lock releases the exclusive lock, and other processing processes on the business execution node can acquire the exclusive lock, in order to reduce the exclusive lock on the processing execution node of the business execution node.
  • the lock manager sends a forced invalidation request to the lock manager of the lower level of the lock manager, so as to facilitate the lock management of the lower level of the lock manager.
  • the device releases the lock corresponding to the lock request, thus reducing the delay caused by the processing process holding the exclusive lock but not using it.
  • the lock management method provided by the embodiment of the present invention can reduce the lock access delay and improve the system running performance by configuring the level of the lock management system according to the system instance and the processing process in advance. Further, the method can combine multiple lock requests into one lock request, and set the maximum holding time of the exclusive lock, which improves the processing speed and efficiency of the lock request.
  • the embodiment of the present invention further provides a lock management system 4, which uses the lock management method provided by the above method embodiment, and includes at least one node lock manager 41, a local lock manager 42, and a global lock management, as shown in FIG.
  • the lock manager or node lock manager can also be a business execution node.
  • the lock manager of the lower level of the local lock manager can be one or more, and can be a local lock manager or a node lock. Manager.
  • the node lock manager 41 is configured to receive a lock request sent by the processing process 51 through the service execution node A, continue to send a lock request according to the state of holding the lock, or return the lock corresponding to the lock request to the service execution node A.
  • the node lock manager 41 when the node lock manager 41 holds the lock corresponding to the lock request, the node lock manager 41 is specifically configured to return the lock corresponding to the lock request to the service execution node A; when the node lock manager 41 does not hold the lock request When the corresponding lock is used, the node lock manager 41 is specifically configured to send a lock request to the lock manager of the upper level of the node lock manager 41.
  • the local lock manager 42 is configured to receive a lock request sent by a lock manager of a lower level of the local lock manager 42, and continue to send a lock request to the lock manager of the upper level of the local lock manager 42 according to the state of holding the lock, or return the lock.
  • the lock manager of the upper level of 42 sends a lock request.
  • the global lock manager 43 is configured to receive the lock request sent by the lock manager of the lower level of the global lock manager 43, and return the lock corresponding to the lock request to the lock manager of the lower level of the global lock manager 43.
  • a preset number of lock requests that need to be sent to the upper level lock manager are merged into a lock manager that is sent to the upper level of the lock manager by the same lock request.
  • the lock manager is further configured to: when the lock corresponding to the lock request is returned, set a maximum holding time of the lock corresponding to the lock request, when the lock manager of the lower level of the lock manager holds the lock corresponding to the lock request.
  • the lock manager sends a forced invalidation request to the lock manager of the lower level of the lock manager, so that the lock manager of the lower level of the lock manager releases the lock request after receiving the forced invalidation request. lock.
  • the lock management system provided by the embodiment of the present invention can reduce the lock access delay and improve the system running performance by configuring the level of the lock management system according to the system instance and the processing process in advance. Further, the method can combine multiple lock requests into one lock request, and set the maximum holding time of the exclusive lock, which improves the processing speed and efficiency of the lock request.
  • the lock management system manages the lock requests of the service execution nodes B, C, and D, and the service execution node a of the service execution node a sends an exclusive lock request or a shared lock request as an example.
  • the level of the lock management system is 3, that is, the node B is executed for the service, which has A node lock manager 41a, the lock manager of the upper level of the node lock manager 41a is the local lock manager 42, and the lock manager of the upper level of the local lock manager 42 is the global lock manager 43, and the service is also shown.
  • the node lock manager 41b of the node C is executed, and the node lock manager 41c of the service execution node C is executed.
  • the processing process a sends a shared lock request to the node lock manager 41a through the service execution node B, and the node lock manager 41a searches whether it holds the shared lock itself, if the search finds that the share is held.
  • the lock returns directly to the shared lock; if the node lock manager 41a does not hold the shared lock and holds the exclusive lock, the shared lock request enters the waiting queue.
  • the lock manager local lock manager 42 of the upper level sends a shared lock lock request, and if the node lock manager 41a does not hold the exclusive lock, the lock manager local lock manager 42 is directly up to the upper level.
  • the shared lock lock request is sent; at this time, the node lock manager 41a can maintain a lock request processing window, and a plurality of shared lock requests in one time period are merged into the same lock request and sent to the local lock manager 42.
  • the local lock manager 42 searches whether it holds the shared lock itself, and if the search finds that it holds the shared lock, it directly returns the shared lock; if the local lock manager 42 does not hold the shared lock, but holds the exclusive lock, the shared lock The request enters the waiting queue. After the exclusive lock is released, the lock manager global lock manager 43 of the upper level sends a shared lock request. If the local lock manager 42 does not hold the exclusive lock, the lock manager is directly up to the level.
  • the global lock manager 43 sends a shared lock request; at this point the local lock manager 42 can maintain a lock request processing window, and multiple shared lock requests within a time period are merged into the same lock request and sent to the global lock manager 43.
  • the global lock manager 43 searches for whether it holds an exclusive lock. If the search finds that it holds an exclusive lock, the shared lock request enters the waiting queue. After the exclusive lock is released, the shared lock is returned to the local lock manager 42 if the global lock is managed.
  • the controller 43 returns the shared lock directly to the local lock manager 42 without holding the exclusive lock; the local lock manager 42 returns the shared lock to the node lock manager 41a, and the node lock manager 41a returns the shared lock to the service execution node. B.
  • the processing process a sends an exclusive lock request to the node lock manager 41a through the service execution node B, and the node lock manager 41a searches whether it holds the exclusive lock itself, if the node lock manager 41a holds Exclusive lock and no other processing process holding exclusive lock, directly return exclusive lock; if node lock manager 41a holds exclusive lock, and other processing process processing process b also holds exclusive lock, then waiting for processing process b holds After the exclusive lock is released, the exclusive lock is returned to the processing process a.
  • the lock manager local lock manager of the upper level 42 sends an exclusive lock request; the local lock manager 42 searches for whether it holds the exclusive lock itself, and if the local lock manager 42 holds the exclusive lock and no other processing process holds the exclusive lock, it directly returns the exclusive lock; The manager 42 holds the exclusive lock, and the other processing process processing process b also holds the exclusive lock, and then waits for the exclusive lock held by the processing process b to be released and then returned to the row. He locks to process a. If the local lock manager 42 holds the shared lock, the exclusive lock request enters the wait queue. After the shared lock is released, the upper lock manager global lock manager 43 sends the exclusive lock.
  • a forced failure mechanism is provided in the present invention, so if the local lock manager 42 holds an exclusive lock and the other processing process processing b also holds an exclusive lock, the local lock manager 42 can execute the node C to the service.
  • the corresponding node lock manager 41b sends a forced invalidation request, at which time the exclusive lock held by the processing process b is released and then returns to the exclusive lock; similarly if the local lock manager 42 holds the shared lock, and the shared lock is assigned to the node lock
  • the local lock manager 42 may send a forced invalidation request to the node lock manager 41b corresponding to the service execution node C. After the shared lock is released, the lock manager global lock manager of the upper level is released.
  • the global lock manager 43 sends an exclusive lock request; of course, the local lock manager 42 can maintain a lock request processing window, and a plurality of exclusive lock requests in one time period are merged into the same lock request and sent to the global lock manager 43.
  • the global lock manager 43 searches for whether it holds an exclusive lock itself. If the global lock manager 43 holds an exclusive lock and no other processing process holds the exclusive lock, it directly returns the exclusive lock; if the node lock manager 41c also holds the exclusive lock And used in the processing process c of the service execution node D, then wait for the exclusive lock held by the node lock manager 41c to release the exclusive lock, and if the global lock manager 43 holds the shared lock, the exclusive lock request enters the waiting queue.
  • the exclusive lock is returned to the local lock manager 42; the local lock manager 42 returns the exclusive lock to the node lock manager 41a, and the node lock manager 41a returns the exclusive lock to the service execution node B;
  • the node lock manager 41c also holds the exclusive lock during the lock request processing of the global lock manager 43, the global lock manager 43 can correspond to the service execution node D.
  • the node lock manager 41c sends a forced invalidation request, at which time the exclusive lock held by the processing process c is released and returns to the exclusive lock; similarly if the global lock manager 43 holds When the shared lock is shared, and the shared lock is allocated to the processing process c of the node lock manager 41c, the global lock manager 43 can send a forced invalidation request to the node lock manager 41c corresponding to the service execution node d, after the shared lock is released. , returns the exclusive lock of the request. It can be understood that at least one system instance is run by the processing process on the service execution node corresponding to each node lock manager, so that each processing process and the lock request of the system instance in the processing process can be managed by the corresponding node lock.
  • the embodiment of the present invention further provides a configuration device 6 for a lock management system.
  • the configuration device 6 of the lock management system shown in FIG. 6 includes: at least one processor 61, a data bus 62, The memory 63 and the communication port 64, the at least one processor 61, the memory 63 and the communication port 64 are connected and communicate with each other through the data bus 62, wherein: the data bus 62 can be an Industry Standard Architecture (ISA). Bus, Peripheral Component (PCI) bus or Extended Indus try Standard Architecture (ESA) bus.
  • ISA Industry Standard Architecture
  • PCI Peripheral Component
  • ESA Extended Indus try Standard Architecture
  • the data bus 62 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 6, but it does not mean that there is only one bus or one type of bus.
  • the memory 63 is for storing executable program code and corresponding data, the program code including computer operating instructions. Memory 63 may contain high speed RAM memory and may also include non-volatile memory. Processor 61 may be a central processing unit CPU, or a specific integrated circuit ASIC, or one or more integrated circuits configured to implement embodiments of the present invention.
  • the communication port 64 is used to implement data exchange between the configuration device 6 of the lock management system and the outside world.
  • the processor 61 is further configured to invoke the program code in the memory 63 to perform the operations of the obtaining unit 21, the allocating unit 22, and the configuring unit 23 in the foregoing apparatus embodiment. For details, refer to the device embodiment corresponding to FIG. Let me repeat.
  • the configuration device of the lock management system provided by the embodiment of the present invention, according to the number of service execution nodes, the number of system instances on all service execution nodes, the number of processing processes, and the central control of each service execution node to the distributed system
  • the access delay of the node is set to the level of the corresponding lock management system for each business execution node, and the lock management is performed by the configured lock management system, which can reduce the lock access delay and improve the system running performance.
  • the embodiment of the present invention further provides a lock management system 7. Referring to FIG.
  • the lock management system includes: at least one processor 71, a data bus 72, a memory 73, and a communication port 74, at least one processor 71, The memory 73 and the communication port 74 are connected and communicate with each other through the data bus 72.
  • the data bus 72 can be an Industry Standard Architecture (ISA) bus or a Peripheral Component (PCI). Bus or extended industry standard architecture ( Extended Indus try Standard A r ch itecture , EI SA ) bus and so on.
  • the data bus 72 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 7, but it does not mean that there is only one bus or one type of bus.
  • the memory 73 is for storing executable program code and corresponding data, the program code including computer operating instructions.
  • Memory 73 may contain high speed RAM memory and may also include non-volatile memory.
  • Processor 71 may be a central processing unit CPU, or a specific integrated circuit ASIC, or one or more integrated circuits configured to implement embodiments of the present invention.
  • the communication port 74 is used for data exchange between the lock management system 7 and the outside world.
  • the processor 71 is further configured to call the program code in the memory 73 to perform the operations of the at least one node lock manager 41, the local lock manager 42, and the global lock manager 43 in the foregoing apparatus embodiment. 4 corresponding device embodiments, no further details here.
  • the lock management system 7 can reduce the waste rate of the resource of the lock management system by configuring the level of the lock management system according to the system instance and the processing process in advance. Further, the method can combine multiple lock requests into one lock request, and set the maximum holding time of the exclusive lock, which improves the processing speed and efficiency of the lock request.
  • the lock management method and system provided by the embodiments of the present invention can reduce the lock access delay and improve the system running performance by configuring the level of the lock management system according to the system instance and the processing process. Further, the method can combine multiple lock requests into one lock request, and set the maximum holding time of the exclusive lock, which improves the processing speed and efficiency of the lock request.
  • the embodiment of the present invention is specifically applied to a distributed database system, which is an example of a database system in a cloud computing and virtual computing environment.
  • the database system needs to provide on-demand database processing capability for a large number of users, and load processing capability requirements. High, the number of business execution nodes is higher
  • the lock management module of the above-mentioned service execution section uses the lock management module in the database system to configure the lock management system, and the lock management module can be the configuration device of the lock management system in the above embodiment of the present invention.
  • Lock management The method for processing the lock request by the system and the method for preparing the lock management module for the lock management system refer to the detailed description of the above method and device embodiment, and details are not described herein again.
  • 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.
  • the storage medium can be any available medium that the computer can access.
  • 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.
  • the desired program code and any other medium that can be accessed by the computer can be suitably computer readable.
  • 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, then the 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.
  • 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 disc (D isk ) and a disc (disc) include a compact disc (CD), a laser disc, a compact disc, a digital versatile disc (DVD), a floppy disc, and a Blu-ray disc, wherein the disc is usually magnetically copied data, and The disc uses a laser 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例公开了一种锁管理方法及系统、锁管理系统的配置方法及装置,涉及计算机领域,能够减少锁访问延迟,提高系统运行性能。具体方案为:根据分布式系统包含的业务执行节点的数量、所有业务执行节点上系统实例的数量以及处理进程的数量、及各个业务执行节点到分布式系统的中心控制节点的访问延迟,为每个业务执行节点设置对应的锁管理系统的层级;分别根据每个业务执行节点对应的锁管理系统的层级为每个业务执行节点至少分配一个锁管理器;为每个锁管理器配置锁级别上下文,其中锁级别上下文用于确定每个锁管理器相邻的锁管理器。本发明用于分布式系统的锁管理系统。

Description

锁管理方法及系统、 锁管理系统的配置方法及装置 技术领域 本发明涉及计算机领域, 尤其涉及一种锁管理方法及系统、 锁管理 系统的配置方法及装置。
背景技术
分布式系统中, 数据被分布在多个业务执行节点中的进程共享, 进 程要对任意资源执行操作, 都必须事先获得一个锁。 不同进程间并发访 问的控制由全局锁管理器来实现, 全局锁管理器中记录着各个进程访问 资源和持有锁的情况, 并维护锁等待队列。 当全局锁管理器收到锁请求 时, 根据锁类型、 锁兼容性及锁持有状态来决定是否满足该锁请求。
现有的锁管理系统采用全局、 节点锁管理器协同技术, 在业务执行 节点中每个系统实例上都有节点锁管理器, 每个系统实例管理的进程共 享锁管理器, 系统实例对应的进程有了锁请求后, 先发送该锁请求到节 点锁管理器, 如果节点锁管理器能处理该锁请求, 则节点锁管理器返回 锁给请求锁的进程; 如果节点锁管理器无法处理该锁请求, 节点锁管理 器将锁请求发送到全局锁管理器, 由全局锁管理器处理。
在实现上述锁管理系统的过程中, 现有技术中的锁管理系统在程序 开发时便决定了锁管理系统的层级, 在系统出现大量锁访问请求时, 锁 访问延迟较高, 系统运行性能无法得到保证。
发明内容
本发明的实施例提供一种锁管理方法及系统、 锁管理系统的配置方 法及装置, 能够减少锁访问延迟, 提高系统运行性能。 为达到上述目的, 本发明的实施例采用如下技术方案: 第一方面, 提供一种分布式系统中的锁管理系统的配置方法, 包括: 根据所述分布式系统包含的业务执行节点的数量、 所有业务执行节 点上系统实例的数量以及处理进程的数量、 及各个业务执行节点到所述 分布式系统的中' ^控制节点的访问延迟, 为每个业务执行节点设置对应 的锁管理系统的层级; 分别根据每个业务执行节点对应的所述锁管理系统的层级为每个业 务执行节点至少分配一个锁管理器; 为所述每个锁管理器配置锁级别上下文, 其中锁级别上下文用于确 定所述每个锁管理器相邻的锁管理器。 结合第一方面, 在第一种可能的实现方式中, 所述分别根据每个业 务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少 分配一个锁管理器, 具体包括: 当为业务执行节点设置的锁管理系统为两个层级时, 为该业务执行 节点分配一个节点锁管理器及一个全局锁管理器, 所述节点锁管理器的 上级的锁管理器为全局锁管理器; 当为业务执行节点设置的锁管理系统的层级大于二层时, 为该业务 执行节点分配一个节点锁管理器、 一个全局锁管理器及至少一个设置于 所述节点锁管理器和全局锁管理器之间的局部锁管理器, 并根据所述锁 级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器, 其中位于下级的锁管理器向位于上级的锁管理器请求锁。 结合第一方面第一种可能的实现方式,在第二种可能的实现方式中, 根据每个业务执行节点对应的所述锁管理系统的层级为每个所述业务执 行节点至少分配一个锁管理器后, 还包括: 当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在 业务执行节点不同时, 为所述至少一个系统实例对应的业务执行节点设 置一个层级的锁管理器。 结合第一方面或第一方面任意一种可能的实现方式, 在第三种可能 的实现方式中, 所述锁管理上下文包括: 锁层级数量、 锁管理器所在层 级、 上级的锁管理器、 下级的锁管理器、 锁管理器负责的业务执行节点。 第二方面, 提供一种锁管理方法, 包括: 通过为业务执行节点分配的节点锁管理器接收所述业务执行节点发 送的锁请求, 根据所述节点锁管理器持有锁的状态向上级的锁管理器继 续发送所述锁请求, 或者返回所述锁请求对应的锁给所述业务执行节点; 通过所述节点锁管理器的上级的锁管理器接收所述锁请求, 根据持 有锁的状态向更上级的锁管理器继续发送所述锁请求, 或者返回所述锁 请求对应的锁给所述节点锁管理器; 按照设置的锁管理系统的层级, 所述节点锁管理器以上各级锁管理 器依次按照本级持有锁的状态对所述锁请求进行处理, 直到所述锁请求 发送至所述全局锁管理器, 通过所述全局锁管理器返回所述锁请求对应 的锁给所述全局锁管理器的下级的锁管理器直到返回所述锁请求对应的 锁至所述业务执行节点。 结合第二方面, 在第一种可能的实现方式中, 所述根据所述节点锁 管理器持有锁的状态向上级的锁管理器继续发送所述锁请求, 或者返回 所述锁请求对应的锁给所述业务执行节点, 具体包括: 当所述节点锁管理器持有所述锁请求对应的锁时, 通过所述节点锁 管理器返回所述锁请求对应的锁至所述业务执行节点; 当所述节点锁管理器未持有所述锁请求对应的锁时, 通过所述节, 锁管理器向所述节点锁管理器的上级的锁管理器发送所述锁请求。 结合第二方面, 在第二种可能的实现方式中, 所述根据持有锁的状 态向更上级的锁管理器继续发送所述锁请求, 或者返回所述锁请求对应 的锁给所述节点锁管理器, 具体包括: 当所述节点锁管理器的上级的锁管理器持有所述锁请求对应的锁 时, 通过所述节点锁管理器的上级的锁管理器返回所述锁请求对应的锁 至所述节点锁管理器; 当所述节点锁管理器的上级的锁管理器未持有所述锁请求对应的锁 时, 通过所述节点锁管理器的上级的锁管理器向更上级的锁管理器发送 所述锁请求。 结合第二方面、 第一种或第二种可能的实现方式, 在第三种可能的 实现方式中, 所述方法还包括: 通过所述锁管理器将需要发送给上级的锁管理器的预设数量的锁 请求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。 结合第二方面、 第一种或第二种可能的实现方式, 在第四种可能的 实现方式中, 所述方法还包括: 返回所述锁请求对应的锁时, 通过所述锁管理器设置所述锁请求对 应的锁的最大持有时间, 当所述锁管理器的下级的锁管理器持有所述锁 请求对应的锁的时间大于或等于所述最大持有时间时, 通过所述锁管理 器发送强制失效请求至所述锁管理器的下级的锁管理器, 以便于所述锁 管理器的下级的锁管理器在接收所述强制失效请求后, 释放所述锁请求 对应的锁。 第三方面, 提供一种锁管理系统的配置装置, 应用于分布式系统, 包括: 获取单元、 分配单元及配置单元; 所述获取单元用于根据所述分布式系统包含的业务执行节点的数 量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及各个 业务执行节点到所述分布式系统的中心控制节点的访问延迟, 为每个业 务执行节点设置对应的锁管理系统的层级; 所述分配单元用于分别根据所述获取单元获取的每个业务执行节点 对应的锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理 哭. , 所述配置单元用于为所述分配单元分配的每个锁管理器配置锁级别 上下文, 其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。 结合第三方面, 在第一种可能的实现方式中: 当为业务执行节点设置的锁管理器为两个层级时, 所述分配单元具 体用于为该业务执行节点分配一个节点锁管理器及一个全局锁管理器, 所述节点锁管理器的上级的锁管理器为全局锁管理器; 或者; 当为业务执行节点设置的锁管理系统的层级大于二层时, 所述分配 单元具体用于为该业务执行节点分配一个节点锁管理器、 一个全局锁管 理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁 管理器, 并根据所述锁级别上下文确定每个局部锁管理器上级的锁管理 器和下级的锁管理器, 其中位于下级的锁管理器向位于上级的锁管理器 请求锁。 结合第三方面第一种可能的实现方式,在第二种可能的实现方式中, 所述分配单元还用于当所述全局锁管理器对应的业务执行节点与至 少一个系统实例所在业务执行节点不同时, 为所述至少一个系统实例对 应的业务执行节点设置一个层级的锁管理器。 结合第三方面或第三方面任——种可能的实现方式, 在第三种可能 的实现方式中, 所述锁管理上下文包括: 锁层级数量、 锁管理器所在层级、 上级的 锁管理器、 下级的锁管理器、 锁管理器负责的业务执行节点。 第四方面, 提供一种锁管理系统, 包括至少一个节点锁管理器、 局 部锁管理器及一个全局锁管理器, 其中, 每个业务执行节点对应设置的 锁管理系统的层级数量的锁管理器; 所述节点锁管理器用于接收业务执行节点发送的锁请求, 根据持有 锁的状态向上级的锁管理器继续发送所述锁请求, 或者返回所述锁请求 对应的锁给所述业务执行节点; 所述局部锁管理器用于接收所述局部锁管理器的下级的锁管理器发 送的锁请求, 根据持有锁的状态向所述局部锁管理器的上级的锁管理器 继续发送所述锁请求, 或者返回所述锁请求对应的锁给所述局部锁管理 器的下级的锁管理器; 所述全局锁管理器用于接收所述全局锁管理器的下级的锁管理器发 送的锁请求, 返回所述锁请求对应的锁给所述全局锁管理器的下级的锁 管理器。 结合第四方面, 在第一种可能的实现方式中: 当所述节点锁管理器持有所述锁请求对应的锁时, 所述节点锁管理 器具体用于返回所述锁请求对应的锁至所述业务执行节点; 当所述节点锁管理器未持有所述锁请求对应的锁时, 所述节点锁管 理器具体用于向所述节点锁管理器的上级的锁管理器发送所述锁请求。 结合第四方面, 在第二种可能的实现方式中: 当所述局部锁管理器持有所述锁请求对应的锁时, 所述局部锁管理 器用于返回所述锁请求对应的锁至所述局部锁管理器的下级的锁管理 器; 当所述局部锁管理器未持有所述锁请求对应的锁时, 所述局部锁管 理器用于向所述局部锁管理器的上级的锁管理器发送所述锁请求。 结合第四方面、 第一种或第二种可能的实现方式, 在第三种可能的 实现方式中, 所述锁管理器还用于: 将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个 锁请求发送至所述锁管理器的上级的锁管理器。 结合第四方面、 第一种或第二种可能的实现方式, 在第四种可能的 实现方式中, 所述锁管理器还用于: 在返回所述锁请求对应的锁时, 设置所述锁请求对应的锁的最大持 有时间, 当所述锁管理器的下级的锁管理器持有所述锁请求对应的锁的 时间大于等于所述最大持有时间时, 所述锁管理器发送强制失效请求至 所述锁管理器的下级的锁管理器, 以便于所述锁管理器的下级的锁管理 器在接收所述强制失效请求后, 释放所述锁请求对应的锁。 本发明的实施例提供的锁管理方法及系统、 锁管理系统的配置方法 及装置, 根据业务执行节点的数量、 所有业务执行节点上系统实例的数 量以及处理进程的数量、 及各个业务执行节点到所述分布式系统的中心 控制节点的访问延迟为每个业务执行节点设置对应的锁管理系统的层 级, 并通过配置后的置锁管理系统进行锁管理, 能够减少锁访问延迟, 提高系统运行性能。
附图说明 为了更清楚地说明本发明的实施例或现有技术中的技术方案, 下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见 地, 下面描述中的附图仅仅是本发明的一些实施例。 图 1 为本发明的实施例提供的一种锁管理系统的配置方法的流程示 意图;
图 2为本发明的实施例提供的一种锁管理系统的配置装置的结构示 意图;
图 3为本发明的另一实施例提供的一种锁管理方法的流程示意图; 图 4为本发明的另一实施例提供的一种锁管理系统的结构示意图; 图 5 为本发明的另一实施例提供的另一种锁管理系统的结构示意 图;
图 6为本发明的又一实施例提供的一种锁管理系统的配置装置的结 构示意图;
图 7为本发明的又一实施例提供的一种锁管理系统的结构示意图。 具体实施方式 下面将结合本发明的实施例中的附图, 对本发明的实施例中的技术 方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部 分实施例, 而不是全部的实施例。 本发明的实施例提供一种锁管理方法及系统、 锁管理系统的配置方 法及装置, 能够根据处理进程的数量配置锁管理系统, 对处理进程的锁 进行管理。 本发明应用于分布式系统, 分布式系统包括至少两个业务执 行节点, 一个中心控制节点, 每个所述业务执行节点上通过至少一个处 理进程运行对应的系统实例, 同时通过中心控制节点来进行资源的共享 与控制, 当然这里的业务执行节点可以为具体的物理节点, 业务执行节 点上运行的系统实例可以为系统软件或应用软件, 具体的操作系统或应 用软件均通过业务执行节点内的若干个处理进程支撑运行, 例如, 在数 据中心中, 业务执行节点部署在标准化机拒中, 不同机拒内业务执行节 点通信需要通过机拒内置交换线路、 分支交换设备、 主干交换设备完成, 而数据中心中运行的系统程序或应用程序通过系统实例的形式体现, 每 个系统实例通过若干个处理进程运行, 具体的, 本发明的实施例提供一 种分布式系统中的锁管理系统的配置方法, 参照图 1 所示, 包括以下步 骤:
101、 锁管理系统的配置装置根据分布式系统包含的业务执行节点 的数量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及 各个业务执行节点到中心控制节点的访问延迟, 为每个业务执行节点设 置对应的锁管理系统的层级。 其中, 每个业务执行节点上系统实例对应的所有处理进程的数量是 已知的, 因此, 锁管理系统的配置装置获取系统实例的处理进程后, 可 以根据系统实例的数量获取所有的系统实例对应的处理进程, 在现有技 术中锁管理系统针对每个业务执行节点的锁管理器层级是预先人工配置 的, 因此在处理进程发生变化时不能改变业务执行节点对应的锁管理系 统的层级, 在锁请求访问量加大的情况下, 锁访问延迟会相当严重, 这 里业务执行节点对应的锁管理系统的层级指的是业务执行节点对应的锁 管理器的数量。 根据实际情况而言, 锁管理系统的层级对不同的业务执行节点而言 是不一定相同的, 因此, 锁管理系统的层级只能是对一个业务执行节点 而言的, 在同一个业务执行节点的上处理进程对应相同的锁管理系统的 层级。 此时, 可以根据业务执行节点的数量、 系统实例的数量、 处理进 程的数量、 及各个业务执行节点到中心控制节点的访问延迟, 分配合理 的锁管理系统的层级, 以降低锁访问延迟。 具体的分配的锁管理系统的层级可以参考每一级锁管理器与相邻锁 管理器之间的延迟差值, 当延迟差值大于预设的数量级时, 可在该两个 锁管理器之间增加一个层级的锁管理器。
102、锁管理系统的配置装置分别根据每个业务执行节点对应的所述 锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理器。 具体的, 当步骤 1 01 中获取的锁管理系统的层级为 1时, 则为业务 执行节点分配的锁管理器为全局锁管理器, 即业务执行节点的所有处理 进程只接收全局锁管理器的管理, 业务执行节点只向全局锁管理器请求 锁。 当步骤 1 01 中获取的锁管理系统的层级为 2时, 则为业务执行节点 分配一个节点锁管理器和一个全局锁管理器, 全局锁管理器不再对业务 执行节点进行直接管理, 而是直接管理节点锁管理器, 节点锁管理器对 业务执行节点进行直接管理, 业务执行节点只向节点锁管理器请求锁, 在节点锁管理器不具备请求的锁时, 向全局锁管理器请求锁。 当步骤 1 01 中获取的锁管理系统的层级大于 2时, 则为业务执行节 点分配一个节点锁管理器和一个全局锁管理器及至少一个该节点锁管理 器和全局锁管理器之间的局部锁管理器 (节点锁管理器的个数根据的锁 管理系统的层级来定, 具体的, 节点锁管理器的个数等于锁管理系统的 层级减 2 ) , 全局锁管理器直接管理局部锁管理器, 局部锁管理器直接管 理节点锁管理器, 节点锁管理器直接管理业务执行节点上的处理进程。 可选的, 步骤 1 02后还包括: 当所述全局锁管理器对应的业务执行 节点与至少一个系统实例所在业务执行节点不同时, 为所述至少一个系 统实例对应的业务执行节点设置一个层级的锁管理器, 其中所述至少一 个系统实例运行在相同的业务执行节点上。 该过程是为锁管理器系统增 加锁管理器的过程, 即当分布式系统在新的业务执行节点上增加新的系 统实例, 或者原有系统实例需要增加新处理进程在新的业务执行节点上 运行时, 为锁管理系统增加新的层级的锁管理器, 增加的锁管理器可以 包括新增的节点锁管理和局部锁管理器, 具体需要新增的局部锁管理器 的层级数量可以根据步骤 1 01的方法确定。 明显以上, 全局锁管理器、 节点锁管理器和局部锁管理均为锁管理 的一种只是为了表达清楚其层级关系定义的名称, 因此在本发明中锁管 理可以指代全局锁管理器、 节点锁管理器和局部锁管理中的任意一个, 其中所有锁管理器可以通过一个锁管理器服务器实现。 1 0 3、 锁管理系统的配置装置为每个锁管理器配置锁级别上下文。 具体的, 锁级别上下文中应当包括锁层级数量、 锁管理器所在层级、 上级的锁管理器、 下级的锁管理器、 锁负责物理节点; 还可以包括: 锁 緩存大小、 锁上交时间、 锁请求延迟和锁批量处理数量等信息。 其中, 其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理 器, 锁级别上下文至少用于确定每个锁管理器的上级的锁管理器。 例如在步骤 1 02 中当锁管理系统的层级大于 3时, 所述节点锁管理 器和全局锁管理器之间设置至少一个局部锁管理器, 锁级别上下文确定 每个局部锁管理器上级的锁管理器和下级的锁管理器, 其中位于下级的 锁管理器向位于上级的锁管理器请求锁。 具体的,锁管理系统的配置装置根据锁级别上下文中的锁层级数量、 锁管理器所在层级、 上级的锁管理器、 下级的锁管理器、 锁负责节点等 信息, 确定每一个锁管理器的上级的锁管理器和下级的锁管理器。 以上每个业务执行节点对应的锁管理器系统的层级的设置是根据分 布式系统包含的业务执行节点的数量、 所有业务执行节点上系统实例的 数量以及处理进程的数量、 及各个业务执行节点到中心控制节点的访问 延迟进行的。 在实际的数据访问过程中锁访问处理过程是存在时延的, 对于每一个业务执行节点上锁访问延迟时间是由该业务执行节点上所有 系统实例包含的处理进程的数量以及业务执行节点对应的锁管理系统的 层级决定的, 以业务执行节点上包含一个系统实例, 若该系统实例包含 N 个处理进程, 且该业务执行节点直接通过全局锁管理器请求锁, 则处理 进程从全局锁管理器获取锁的延迟为 t ;而该业务执行节点设置有节点锁 管理器时, 即业务执行节点对应的锁管理系统的层级为 2 时, 处理进程 从节点锁管理器获取锁的延迟为 0. I t ; 当 N个处理进程同时请求同一个 锁时, 节省延迟开销百分比为 ( 90- 1 00/N ) % , 当 N为 1 0 时, 理想情况 下设置节点锁管理器可是锁访问处理过程时间延时降低 80% , 以上实例仅 是一种可实施的方案, 当然结合实际情况处理进程的数量以及延时程度 降低的效果可能不相同, 但是为业务执行节点设置全局锁管理器之外的 其他锁管理器时的确能够降低锁请求处理的时延, 因此在设置业务执行 节点对应的锁管理系统的层级时, 可以综合计算分布式系统中所有业务 执行节点的数量, 所有业务执行节点的系统实例及处理进程的数量, 并 根据这些数据构建锁管理系统的模型, 通过计算各个业务执行节, ^请求 锁的时间延迟, 获取一个所有业务执行节, ^的锁访问处理时间延迟均在 预设范围内的模型, 即使得该锁管理系统的模型中每个业务执行节点上 锁访问处理过程时间延时均为最低或者均低于设定的时延阔值, 因此业 务执行节点到中心控制节点的访问延迟较大时, 为对应的业务执行节点 设置一定层级数量的锁管理器也就相应的可以降低该业务执行节点的锁 访问时延。
以上锁管理系统的锁配置文件可以采用通常的 configure (配置) 文件方式实现, 也可以采用 XML方式实现。 这里提供一个 XML配置文件 示例:
<?xml version= "1.0" ?>{文件为 xml 文件 }
<L0CK MANAGER> {锁管理系统}
<LEVEL> 0 </LEVEL> {锁管理层级为 0级}
<IPADDRESS>10.0.1.3</ IPADDRESS > {锁管理器对应的业务执行节 点 IP地址为 10.0.13}
<PORT>6699</PORT> {锁管理器提供服务的访问端口为 6699}
<CAPACITY>200MB</CAPACITY> {系统容量为 200MB}
<UPPERLEVEL>none</UPPERLEVEL> {上一层级级为 "无" }
<LOWERLEVEL>none</LOWERLEVEL> {下一层级级为 "无" }
<NODES>10.0.1.5$10.0.1.6</N0DES> {业务执行节点执行业务阶段}
<BATCHNUMBER>30</BATCHNUMBER> {批处理数量为 30, 当锁请求数量 达到 30条时, 向上一级锁管理器发送一批锁请求 }
Figure imgf000013_0001
</L0CK MANAGER> 本发明的实施例提供的锁管理系统的配置方法, 根据业务执行节点 的数量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及 各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个 业务执行节点设置对应的锁管理系统的层级, 并通过配置后的置锁管理 系统进行锁管理, 能够减少锁访问延迟, 提高系统运行性能。 本发明的实施例还提供一种锁管理系统的配置装置 2 , 用于实现上 述方法实施例提供的锁管理系统的配置方法, 应用于分布式系统, 所述 分布式系统包括至少两个业务执行节点, 一个中心控制节点, 每个所述 业务执行节点上通过至少一个处理进程运行对应的系统实例, 同时通过 中心控制节点来进行资源的共享与控制, 具体的, 参照图 2所示, 包括: 获取单元 21、 分配单元 22及配置单元 23 ; 获取单元 21用于根据所述分布式系统包含的业务执行节点的数量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及各个业务 执行节点到所述分布式系统的中心控制节点的访问延迟, 为每个业务执 行节点设置对应的锁管理系统的层级; 所述分配单元 22用于分别根据所述获取单元 21获取的每个业务执 行节点对应的锁管理系统的层级为每个所述业务执行节点至少分配一个 锁管理器; 所述配置单元 23用于为所述分配单元 22分配的每个锁管理器配置 锁级别上下文, 其中锁级别上下文用于确定所述每个锁管理器相邻的锁 管理器。 具体的, 当为业务执行节点设置的锁管理系统为两个层级时, 分配 单元 22具体用于为该业务执行节点分配一个节点锁管理器及一个全局锁 管理器, 所述节点锁管理器的上级的锁管理器为全局锁管理器; 或者; 当为业务执行节点设置的锁管理系统的层级大于二层时, 分配单元 22 具体用于为该业务执行节点分配一个节点锁管理器、 一个全局锁管理 器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁管 理器, 并根据所述锁级别上下文确定为每个局部锁管理器的上级的锁管 理器和下级的锁管理器, 其中位于下级的锁管理器向位于上级的锁管理 器请求锁。 可选的,所述分配单元 22还用于当所述全局锁管理器对应的业务执 行节点与至少一个系统实例所在业务执行节点不同时, 为所述至少一个 系统实例对应的业务执行节点设置一个层级的锁管理器。 其中, 锁管理上下文包括: 锁层级数量、 锁管理器所在层级、 上级 的锁管理器、 下级的锁管理器、 锁负责节点。 本发明的实施例提供的锁管理系统的配置装置, 根据业务执行节点 的数量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及 各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个 业务执行节点设置对应的锁管理系统的层级, 并通过配置后的置锁管理 系统进行锁管理, 能够减少锁访问延迟, 提高系统运行性能。 本发明的实施例还提供一种锁管理方法, 应用于上述锁管理系统的 配置方法实施例配置的锁管理系统, 具体的, 参照图 3 所示, 包括以下 步骤:
301、锁管理系统通过为业务执行节点分配的节点锁管理器接收所述 业务执行节点发送的锁请求。 当处理进程需要访问分布式系统的数据时, 需要一个锁作为处理进 程访问分布式系统的数据的许可, 此时, 处理进程会先搜索本身是否持 有锁, 当处理进程未持有锁的时候, 处理进程在业务执行节点上向该处 理进程的锁管理器发送锁请求, 该锁请求包括处理进程需要的锁的信息, 如种类等。
302、锁管理系统根据所述节点锁管理器持有锁的状态向上级的锁管 理器继续发送所述锁请求, 或者返回所述锁请求对应的锁给所述业务执 行节点。 节点锁管理器接收到处理进程发送的锁请求后, 会搜索本身是否持 有该锁请求对应的锁, 当节点锁管理器未持有该锁请求对应的锁时, 节 点锁管理器向该节点锁管理器的上级的锁管理器发送锁请求; 当节点锁 管理器持有该锁请求对应的锁时 (锁管理器本身不会持有锁, 持有锁的 为处理进程, 锁管理器可能管理多个处理进程, 当某个进程持有锁时, 这里的 "节点锁管理器持有该锁请求对应的锁" 指的是锁管理器有此处 理进程持有锁的信息, 即锁管理器的注册信息表明锁请求对应的锁注册) 进行检测, 当该锁请求对应的锁为共享锁时, 则该节点锁管理器直接返 回锁请求对应的锁给业务执行节点; 当该锁请求对应的锁为排他锁时, 则节点锁管理器需要等待持有该锁请求对应的锁的处理进程释放该锁请 求对应的锁之后, 返回锁请求对应的锁给业务执行节点, 在相同的锁模 式下, 直接按照上述的方式进行锁请求, 当节点锁管理器持有锁与锁请 求为不同锁模式时, 需要判断锁模式的兼容性, 并根据锁模式的兼容性 判断锁的持有状况并返回对应的锁, 表 1 中提供了一种现有技术中锁模 式兼容性矩阵示例, 其中 X表示锁模式不兼容, ACCESS SHARE表示共享 访问, ROW SHARE 表示行共享, ROW EXCLUSIVE 表示行排它, SHARE ROW EXCLUSIVE表示共享行排它, EXCLUSIVE表示排它, ACCESS EXCLUS IVE表 示独占访问,参照表 1, ACCESS SHARE锁模式与 ACCESS SHARE, ROW SHARE, ROW EXCLUSIVE, SHARE ROW EXCLUSIVE, EXCLUSIVE锁模式兼容, 而 ACCESS SHARE锁模式与 ACCESS EXCLUSIVE锁模式互斥。
持有锁模式
请求
ACCESS ROW ROW SHARE ROW ACCESS
锁模式 EXCLUSIVE
SHARE SHARE EXCLUSIVE EXCLUSIVE EXCLUSIVE
ACCESS
X SHARE
ROW SHARE X X
ROW
X X X
EXCLUSIVE
SHARE ROW X X X X EXCLUS I VE
EXCLUS I VE X X X X X
ACCE S S
X X X X X X EXCLUS I VE 表 1 可选的, 每个锁管理器可以维持一个锁请求处理窗口, 用于将需要 发送给上级的锁管理器的预设数量的锁请求合并为同一个锁请求发送 至所述锁管理器的上级的锁管理器。 这样上级管理器收到的只需要接收 一次就可以获取所有的锁请求。
303、 锁管理系统通过节点锁管理器的上级的锁管理器接收锁请求, 根据持有锁的状态向更上级锁管理器继续发送所述锁请求, 或者返回所 述锁请求对应的锁给所述节点锁管理器。
304、 锁管理系统按照设置的锁管理系统的层级, 通过所述节点锁管 理器以上各级锁管理器依次按照本级持有锁的状态对所述锁请求进行处 理, 直到所述锁请求发送至所述全局锁管理器, 锁管理系统通过全局锁 管理器返回锁请求对应的锁给全局锁管理器的下级的锁管理器直到返回 锁请求对应的锁至业务执行节点。 当任意一级锁管理器收到其下级的锁管理器发送的锁请求的时候, 都会搜索本身是否持有该锁请求对应的锁, 当锁管理器持有锁请求对应 的锁时, 锁管理器返回锁请求对应的锁至下级的锁管理器; 当锁管理器 未持有锁请求对应的锁时, 锁管理器向锁管理器的上级的锁管理器发送 锁请求, 由于全局锁管理器持有所有的锁, 因此, 当全局锁管理器收到 其下级的锁管理器发送的锁请求的时候, 必然能够返回锁请求对应的锁。 可选的, 对排他锁而言, 只有持有该锁的处理进程释放了该排他锁, 业务执行节点上其他处理进程才能获取该排他锁, 为了降低业务执行节 点上处理进程持有排他锁但不使用而造成的延迟, 锁管理器在返回锁请 求对应的锁时, 设置锁请求对应的锁的最大持有时间, 当锁管理器的下 级的锁管理器持有锁请求对应的锁的时间大于等于最大持有时间时, 锁 管理器发送强制失效请求至锁管理器的下级的锁管理器, 以便于锁管理 器的下级的锁管理器在接收强制失效请求后, 释放锁请求对应的锁, 这 样, 可以降低处理进程持有排他锁但不使用而造成的延迟。 本发明的实施例提供的锁管理方法, 由于预先根据系统实例及处理 进程配置锁管理系统的层级, 能够减少锁访问延迟, 提高系统运行性能。 进一步的, 该方法能够将多个锁请求合并为一个锁请求, 并且设置排他 锁的最大持有时间, 提高了锁请求的处理速度和效率。 本发明的实施例还提供一种锁管理系统 4 , 使用上述方法实施例提 供的锁管理方法, 参照图 4所示, 包括至少一个节点锁管理器 41、 局部 锁管理器 42及一个全局锁管理器 43 , 其中, 每个业务执行节点对应设置 的锁管理系统的层级数量的锁管理器; 其中, 全局锁管理器直接管理的下级的锁管理器可以是一个也可以 是多个, 可以是局部锁管理器或节点锁管理器, 也可以是业务执行节点, 同理, 局部锁管理器的下级的锁管理器可以是一个也可以是多个, 可以 是局部锁管理器, 也可以是节点锁管理器。 节点锁管理器 41用于接收处理进程 51通过业务执行节点 A发送的 锁请求, 根据持有锁的状态向上级的锁管理器继续发送锁请求, 或者返 回锁请求对应的锁给业务执行节点 A; 具体的, 当节点锁管理器 41持有锁请求对应的锁时, 节点锁管理器 41具体用于返回锁请求对应的锁至业务执行节点 A; 当节点锁管理器 41未持有锁请求对应的锁时, 节点锁管理器 41具 体用于向节点锁管理器 41的上级的锁管理器发送锁请求。 局部锁管理器 42用于接收局部锁管理器 42的下级的锁管理器发送 的锁请求, 根据持有锁的状态向局部锁管理器 42的上级的锁管理器继续 发送锁请求, 或者返回锁请求对应的锁给局部锁管理器 42的下级的锁管 理器; 具体的, 当局部锁管理器 42持有锁请求对应的锁时, 局部锁管理器 42用于返回锁请求对应的锁至局部锁管理器 42的下级的锁管理器; 当局部锁管理器 42未持有锁请求对应的锁时, 局部锁管理器 42用 于向局部锁管理器 42的上级的锁管理器发送锁请求。 全局锁管理器 43用于接收全局锁管理器 43的下级的锁管理器发送 的锁请求, 返回锁请求对应的锁给全局锁管理器 43的下级的锁管理器。 可选的, 将需要发送给上级的锁管理器的预设数量的锁请求合并为 同一个锁请求发送至所述锁管理器的上级的锁管理器。 进一步可选的, 锁管理器还用于在返回锁请求对应的锁时, 设置锁 请求对应的锁的最大持有时间, 当锁管理器的下级的锁管理器持有锁请 求对应的锁的时间大于等于最大持有时间时, 锁管理器发送强制失效请 求至锁管理器的下级的锁管理器, 以便于锁管理器的下级的锁管理器在 接收强制失效请求后, 释放锁请求对应的锁。 本发明的实施例提供的锁管理系统, 由于预先根据系统实例及处理 进程配置锁管理系统的层级, 能够减少锁访问延迟, 提高系统运行性能。 进一步的, 该方法能够将多个锁请求合并为一个锁请求, 并且设置排他 锁的最大持有时间, 提高了锁请求的处理速度和效率。 参照图 5所示, 锁管理系统对业务执行节点 B、 C和 D的锁请求进行 管理, 以业务执行节点 B的处理进程 a发送一个排他锁的锁请求或一个 共享锁的锁请求为例进行说明 (排他锁指的是仅能为一个处理进程持有 的锁,共享锁指可以为多个处理进程持有锁),该锁管理系统的层级为 3, 即对业务执行节点 B, 其具有一个节点锁管理器 41a, 节点锁管理器 41a 的上级的锁管理器为局部锁管理器 42,局部锁管理器 42的上级的锁管理 器为全局锁管理器 43, 图中还示出了业务执行节点 C 的节点锁管理器 41b, 业务执行节点 C的节点锁管理器 41c。 首先, 以共享锁的请求为例, 处理进程 a通过业务执行节点 B向节 点锁管理器 41a发送共享锁锁请求, 节点锁管理器 41a搜索本身是否持 有该共享锁, 若搜索发现持有共享锁, 则直接返回该共享锁; 若节点锁 管理器 41a不持有共享锁, 而持有排他锁则该共享锁请求进入等待队列, 待排他锁释放后, 向上一级的锁管理器局部锁管理器 42发送共享锁锁请 求, 若节点锁管理器 41a 也不持有排他锁则直接向上一级的锁管理器局 部锁管理器 42发送共享锁锁请求; 此时节点锁管理器 41a可以维持一个 锁请求处理窗口, 一个时间段内的多个共享锁请求合并为同一个锁请求 发送至局部锁管理器 42。 局部锁管理器 42搜索本身是否持有该共享锁,若搜索发现持有共享 锁, 则直接返回该共享锁; 若局部锁管理器 42不持有共享锁, 而持有排 他锁则该共享锁请求进入等待队列, 待排他锁释放后, 向上一级的锁管 理器全局锁管理器 43发送共享锁锁请求, 若局部锁管理器 42也不持有 排他锁则直接向上一级的锁管理器全局锁管理器 43发送共享锁锁请求; 此时局部锁管理器 42可以维持一个锁请求处理窗口, 一个时间段内的多 个共享锁请求合并为同一个锁请求发送至全局锁管理器 43。
全局锁管理器 43 搜索本身是否持有排他锁, 若搜索发现持有排他 锁, 则该共享锁请求进入等待队列, 待排他锁释放后, 返回共享锁给局 部锁管理器 42,若全局锁管理器 43不持有排他锁则直接向局部锁管理器 42返回共享锁; 局部锁管理器 42将该共享锁返回给节点锁管理器 41a, 节点锁管理器 41a将该共享锁返回给业务执行节点 B。
以排他锁的请求为例, 处理进程 a通过业务执行节点 B向节点锁管 理器 41a发送排他锁锁请求, 节点锁管理器 41a搜索本身是否持有该排 他锁, 若节点锁管理器 41a持有排他锁且没有其他处理进程持有排他锁, 则直接返回排他锁; 若节点锁管理器 41a 持有排他锁, 并且其他处理进 程处理进程 b也持有排他锁, 则等待处理进程 b持有的排他锁释放后返 回排他锁至处理进程 a, 若节点锁管理器 41a持有共享锁, 则该排他锁锁 请求进入等待队列, 待共享锁释放后, 向上一级的锁管理器局部锁管理 器 42发送排他锁锁请求; 局部锁管理器 42搜索本身是否持有该排他锁, 若局部锁管理器 42 持有排他锁且没有其他处理进程持有排他锁, 则直接返回排他锁; 若局 部锁管理器 42持有排他锁,并且其他处理进程处理进程 b也持有排他锁, 则等待处理进程 b持有的排他锁释放后返回排他锁至处理进程 a,若局部 锁管理器 42持有共享锁, 则该排他锁锁请求进入等待队列, 待共享锁释 放后, 向上一级的锁管理器全局锁管理器 43发送排他锁锁请求; 当然由 于本发明中提供了强制失效机制, 因此可选的若局部锁管理器 42持有排 他锁, 并且其他处理进程处理进程 b也持有排他锁, 则局部锁管理器 42 可以向业务执行节点 C对应的节点锁管理器 41b发送强制失效请求, 此 时处理进程 b 持有的排他锁释放后返回排他锁; 类似的若局部锁管理器 42持有共享锁, 并且该共享锁被分配给节点锁管理器 41b的处理进程 b 使用时,局部锁管理器 42可以向业务执行节点 C对应的节点锁管理器 41b 发送强制失效请求, 待共享锁释放后, 向上一级的锁管理器全局锁管理 器 43发送排他锁锁请求; 当然此时局部锁管理器 42可以维持一个锁请 求处理窗口, 一个时间段内的多个排她锁请求合并为同一个锁请求发送 至全局锁管理器 43。 全局锁管理器 43搜索本身是否持有排他锁, 若全局锁管理器 43持 有排他锁且没有其他处理进程持有排他锁, 则直接返回排他锁; 若节点 锁管理器 41c也持有排他锁并在业务执行节点 D的处理进程 c使用, 则 等待节点锁管理器 41c 持有的排他锁释放后返回排他锁, 若全局锁管理 器 43持有共享锁, 则该排他锁锁请求进入等待队列, 待共享锁释放后, 向局部锁管理器 42返回排他锁; 局部锁管理器 42将该排他锁返回给节 点锁管理器 41a, 节点锁管理器 41a将该排他锁返回给业务执行节点 B; 当然由于本发明中提供了强制失效机制, 因此在全局锁管理器 43的锁请 求处理过程中, 若节点锁管理器 41c也持有排他锁, 则全局锁管理器 43 可以向业务执行节点 D对应的节点锁管理器 41c发送强制失效请求, 此 时处理进程 c 持有的排他锁释放后返回排他锁; 类似的若全局锁管理器 43持有共享锁, 并且该共享锁被分配给节点锁管理器 41c 的处理进程 c 使用时,全局锁管理器 43可以向业务执行节点 d对应的节点锁管理器 41c 发送强制失效请求, 待共享锁释放后, 返回请求的排他锁。 可以理解的是, 以上每个节点锁管理器对应的业务执行节点上通过 处理进程运行至少一个系统实例, 因此每个处理进程、 系统实例在处理 过程中的锁请求都能通过相应的节点锁管理器申请, 具体申请的方法不 再赘述。 这样, 处理进程能够快速的获取需要的锁, 节约了锁管理系统 的时间, 降低系统锁访问延迟。 本发明的实施例还提供一种锁管理系统的配置装置 6, 参照图 6 所 示该锁管理系统的配置装置 6包括: 至少一个处理器 61、 数据总线 62、 存储器 63及通信端口 64, 至少一个处理器 61、 存储器 63和通信端口 64 通过数据总线 62连接并完成相互间的通信, 其中: 该数据总线 62 可以是工业标准体系结构 ( Industry Standard Architecture, ISA )总线、 夕卜部设备互连 ( Peripheral Component, PCI )总线或扩展工业标准体系结构 ( Extended Indus try Standard Architecture, EISA ) 总线等。 该数据总线 62可以分为地址总线、 数 据总线、 控制总线等。 为便于表示, 图 6 中仅用一条粗线表示, 但并不 表示仅有一根总线或一种类型的总线。 存储器 63用于存储可执行程序代码及相应的数据,该程序代码包括 计算机操作指令。 存储器 63可能包含高速 RAM存储器, 也可能还包括 非易失性存储器。 处理器 61可能是一个中央处理器 CPU,或者是特定集成电路 ASIC, 或者是被配置成实施本发明实施例的一个或多个集成电路。
通信端口 64,用于实现锁管理系统的配置装置 6与外界的数据交换。 处理器 61, 还用于调用存储器 63 中的程序代码, 用以执行上述装 置实施例中获取单元 21、 分配单元 22和配置单元 23的操作, 具体描述 参照图 2对应的装置实施例, 这里不再赘述。 本发明的实施例提供的锁管理系统的配置装置, 根据业务执行节点 的数量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及 各个业务执行节点到所述分布式系统的中心控制节点的访问延迟为每个 业务执行节点设置对应的锁管理系统的层级, 并通过配置后的置锁管理 系统进行锁管理, 能够减少锁访问延迟, 提高系统运行性能。 本发明的实施例还提供一种锁管理系统 7, 参照图 7 所示, 该锁管 理系统 Ί 包括: 至少一个处理器 71、 数据总线 72、 存储器 73及通信端 口 74, 至少一个处理器 71、 存储器 73和通信端口 74通过数据总线 72 连接并完成相互间的通信, 其中: 该数据总线 72 可以是工业标准体系结构 ( Industry Standard Architecture, ISA )总线、 夕卜部设备互连 ( Peripheral Component, PCI )总线或扩展工业标准体系结构 ( Extended Indus try Standard A r ch i t e c t u r e , E I SA ) 总线等。 该数据总线 72可以分为地址总线、 数 据总线、 控制总线等。 为便于表示, 图 7 中仅用一条粗线表示, 但并不 表示仅有一根总线或一种类型的总线。 存储器 73用于存储可执行程序代码及相应的数据,该程序代码包括 计算机操作指令。 存储器 73可能包含高速 RAM存储器, 也可能还包括 非易失性存储器。 处理器 71可能是一个中央处理器 CPU,或者是特定集成电路 ASIC , 或者是被配置成实施本发明实施例的一个或多个集成电路。
通信端口 74 , 用于锁管理系统 7与外界的数据交换。 处理器 71 , 还用于调用存储器 73 中的程序代码, 用以执行上述装 置实施例中至少一个节点锁管理器 41、局部锁管理器 42及一个全局锁管 理器 43的操作, 具体描述参照图 4对应的装置实施例, 这里不再赘述。 锁管理系统 7 由于预先根据系统实例及处理进程配置锁管理系统的 层级, 能够降低锁管理系统的资源的浪费率。 进一步的, 该方法能够将 多个锁请求合并为一个锁请求, 并且设置排他锁的最大持有时间, 提高 了锁请求的处理速度和效率。 本发明的实施例提供的锁管理方法及系统, 由于根据系统实例及处 理进程配置锁管理系统的层级, 能够减少锁访问延迟, 提高系统运行性 能。 进一步的, 该方法能够将多个锁请求合并为一个锁请求, 并且设置 排他锁的最大持有时间, 提高了锁请求的处理速度和效率。 本发明的实施例具体用于一种分布式的数据库系统,以云计算和虚 拟计算环境下的数据库系统为例, 该数据库系统需要为大量用户提供按 需供应的数据库处理能力, 负载处理能力要求高, 业务执行节点数量较
业务执行节点上各系统实例的处理进程需要访问数据库的数据时, 需要一个锁作为处理进程访问分布式系统的数据的许可, 具体的可以通 过本发明所述的锁管理系统进行所请求的处理, 上述业务执行节, 的锁 管理采用数据库系统中的锁管理模块进行锁管理系统的配置, 该锁管理 模块可以为本发明上述实施例中的锁管理系统的配置装置。 其中锁管理 系统对锁请求的处理方法及锁管理模块对锁管理系统的配制方法参照上 述的方法和装置实施例的详述, 这里不再赘述。
通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了解 到本发明可以用硬件实现, 或固件实现, 或它们的组合方式来实现。 当使 用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可 读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机 存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传 送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介 质。 以此为例但不限于: 计算机可读介质可以包括 RAM、 ROM , EEPR0M、 CD-ROM 或其他光盘存储、 磁盘存储介质或者其他磁存储设备、 或者能够 用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计 算机存取的任何其他介质。 此外。任何连接可以适当的成为计算机可读介 质。例如 ,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线( DSL ) 或者诸如红外线、 无线电和微波之类的无线技术从网站、服务器或者其他 远程源传输的, 那么同轴电缆、 光纤光缆、 双绞线、 DSL或者诸如红外线、 无线和微波之类的无线技术包括在所属介质的定影中。 如本发明所使用 的, 盘 (D i s k ) 和碟 (d i s c ) 包括压缩光碟 (CD )、 激光碟、 光碟、 数字 通用光碟(DVD )、 软盘和蓝光光碟, 其中盘通常磁性的复制数据, 而碟则 用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保 护范围之内。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不 局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本 发明的保护范围应所述以权利要求的保护范围为准。

Claims

权 利 要 求 书
1、一种分布式系统中的锁管理系统的配置方法,其特征在于, 包括: 根据所述分布式系统包含的业务执行节点的数量、 所有业务执行节 点上系统实例的数量以及处理进程的数量、 及各个业务执行节点到所述 分布式系统的中' ^控制节点的访问延迟, 为每个业务执行节点设置对应 的锁管理系统的层级; 分别根据每个业务执行节点对应的所述锁管理系统的层级为每个业 务执行节点至少分配一个锁管理器; 为所述每个锁管理器配置锁级别上下文, 其中锁级别上下文用于确 定所述每个锁管理器相邻的锁管理器。
2、 根据权利要求 1所述的方法, 其特征在于, 所述分别根据每个业 务执行节点对应的所述锁管理系统的层级为每个所述业务执行节点至少 分配一个锁管理器, 具体包括: 当为业务执行节点设置的锁管理系统为两个层级时, 为该业务执行 节点分配一个节点锁管理器及一个全局锁管理器, 所述节点锁管理器的 上级的锁管理器为全局锁管理器; 当为业务执行节点设置的锁管理系统的层级大于二层时, 为该业务 执行节点分配一个节点锁管理器、 一个全局锁管理器及至少一个设置于 所述节点锁管理器和全局锁管理器之间的局部锁管理器, 并根据所述锁 级别上下文确定每个局部锁管理器上级的锁管理器和下级的锁管理器, 其中位于下级的锁管理器向位于上级的锁管理器请求锁。
3、 根据权利要求 2所述的方法, 其特征在于, 根据每个业务执行节 点对应的所述锁管理系统的层级为每个所述业务执行节点至少分配一个 锁管理器后, 还包括: 当所述全局锁管理器对应的业务执行节点与至少一个系统实例所在 业务执行节点不同时, 为所述至少一个系统实例对应的业务执行节点设 置一个层级的锁管理器。
4、 根据权利要求 1-3任一项所述的方法, 其特征在于, 所述锁管理 上下文包括: 锁层级数量、 锁管理器所在层级、 上级的锁管理器、 下级 的锁管理器、 锁管理器负责的业务执行节点。
5、 一种锁管理方法, 其特征在于, 包括: 通过为业务执行节点分配的节点锁管理器接收所述业务执行节点发 送的锁请求, 根据所述节点锁管理器持有锁的状态向上级的锁管理器继 续发送所述锁请求, 或者返回所述锁请求对应的锁给所述业务执行节点; 通过所述节点锁管理器的上级的锁管理器接收所述锁请求, 根据持 有锁的状态向更上级的锁管理器继续发送所述锁请求, 或者返回所述锁 请求对应的锁给所述节点锁管理器; 按照设置的锁管理系统的层级, 通过所述节,、锁管理器以上各级锁 管理器依次按照本级持有锁的状态对所述锁请求进行处理, 直到所述锁 请求发送至所述全局锁管理器, 通过所述全局锁管理器返回所述锁请求 对应的锁给所述全局锁管理器的下级的锁管理器直到返回所述锁请求对 应的锁至所述业务执行节点。
6、 根据权利要求 5所述的方法, 其特征在于, 所述根据所述节点锁 管理器持有锁的状态向上级的锁管理器继续发送所述锁请求, 或者返回 所述锁请求对应的锁给所述业务执行节点, 具体包括: 当所述节点锁管理器持有所述锁请求对应的锁时, 通过所述节, 锁 管理器返回所述锁请求对应的锁至所述业务执行节点; 当所述节点锁管理器未持有所述锁请求对应的锁时, 通过所述节, 锁管理器向所述节点锁管理器的上级的锁管理器发送所述锁请求。
7、 根据权利要求 5所述的方法, 其特征在于, 所述根据持有锁的状 态向更上级的锁管理器继续发送所述锁请求, 或者返回所述锁请求对应 的锁给所述节点锁管理器, 具体包括: 当所述节点锁管理器的上级的锁管理器持有所述锁请求对应的锁 时, 通过所述节点锁管理器的上级的锁管理器返回所述锁请求对应的锁 至所述节点锁管理器; 当所述节点锁管理器的上级的锁管理器未持有所述锁请求对应的锁 时, 通过所述节点锁管理器的上级的锁管理器向更上级的锁管理器发送 所述锁请求。
8、 根据权利要求 5-7任一项所述的方法, 其特征在于, 所述方法还 包括: 通过所述锁管理器将需要发送给上级的锁管理器的预设数量的锁请 求合并为同一个锁请求发送至所述锁管理器的上级的锁管理器。
9、 根据权利要求 5-7任一项所述的方法, 其特征在于, 所述方法还 包括: 返回所述锁请求对应的锁时, 通过所述锁管理器设置所述锁请求对 应的锁的最大持有时间, 当所述锁管理器的下级的锁管理器持有所述锁 请求对应的锁的时间大于或等于所述最大持有时间时, 通过所述锁管理 器发送强制失效请求至所述锁管理器的下级的锁管理器, 以便于所述锁 管理器的下级的锁管理器在接收所述强制失效请求后, 释放所述锁请求 对应的锁。
10、 一种锁管理系统的配置装置, 应用于分布式系统, 其特征在于, 包括: 获取单元、 分配单元及配置单元; 所述获取单元用于根据所述分布式系统包含的业务执行节点的数 量、 所有业务执行节点上系统实例的数量以及处理进程的数量、 及各个 业务执行节点到所述分布式系统的中心控制节点的访问延迟, 为每个业 务执行节点设置对应的锁管理系统的层级; 所述分配单元用于分别根据所述获取单元获取的每个业务执行节点 对应的锁管理系统的层级为每个所述业务执行节点至少分配一个锁管理 哭. , 所述配置单元用于为所述分配单元分配的每个锁管理器配置锁级别 上下文, 其中锁级别上下文用于确定所述每个锁管理器相邻的锁管理器。
11、 根据权利要求 10所述的装置, 其特征在于: 当为业务执行节点设置的锁管理系统为两个层级时, 所述分配单元 具体用于为该业务执行节点分配一个节点锁管理器及一个全局锁管理 器, 所述节点锁管理器的上级的锁管理器为全局锁管理器; 或者; 当为业务执行节点设置的锁管理系统的层级大于二层时, 所述分配 单元具体用于为该业务执行节点分配一个节点锁管理器、 一个全局锁管 理器及至少一个设置于所述节点锁管理器和全局锁管理器之间的局部锁 管理器, 并根据所述锁级别上下文确定每个局部锁管理器上级的锁管理 器和下级的锁管理器, 其中位于下级的锁管理器向位于上级的锁管理器 请求锁。
12、 根据权利要求 11所述的装置, 其特征在于, 所述分配单元还用于当所述全局锁管理器对应的业务执行节点与至 少一个系统实例所在业务执行节点不同时, 为所述至少一个系统实例对 应的业务执行节点设置一个层级的锁管理器。
1 3、 根据权利要求 10或 12任一项所述的装置, 其特征在于, 所述 锁管理上下文包括: 锁层级数量、 锁管理器所在层级、 上级的锁管理器、 下级的锁管理器、 锁管理器负责的业务执行节点。
14、 一种锁管理系统, 其特征在于, 包括至少一个节点锁管理器、 局部锁管理器及一个全局锁管理器, 其中, 每个业务执行节点对应设置 的锁管理系统的层级数量的锁管理器; 所述节点锁管理器用于接收业务执行节点发送的锁请求, 根据持有 锁的状态向上级的锁管理器继续发送所述锁请求, 或者返回所述锁请求 对应的锁给所述业务执行节点; 所述局部锁管理器用于接收所述局部锁管理器的下级的锁管理器发 送的锁请求, 根据持有锁的状态向所述局部锁管理器的上级的锁管理器 继续发送所述锁请求, 或者返回所述锁请求对应的锁给所述局部锁管理 器的下级的锁管理器; 所述全局锁管理器用于接收所述全局锁管理器的下级的锁管理器发 送的锁请求, 返回所述锁请求对应的锁给所述全局锁管理器的下级的锁 管理器。
1 5、 根据权利要求 14所述的锁管理系统, 其特征在于: 当所述节点锁管理器持有所述锁请求对应的锁时, 所述节点锁管理 器具体用于返回所述锁请求对应的锁至所述业务执行节点; 当所述节点锁管理器未持有所述锁请求对应的锁时, 所述节点锁管 理器具体用于向所述节点锁管理器的上级的锁管理器发送所述锁请求。
1 6、 根据权利要求 14所述的锁管理系统, 其特征在于: 当所述局部锁管理器持有所述锁请求对应的锁时, 所述局部锁管理 器用于返回所述锁请求对应的锁至所述局部锁管理器的下级的锁管理 器; 当所述局部锁管理器未持有所述锁请求对应的锁时, 所述局部锁管 理器用于向所述局部锁管理器的上级的锁管理器发送所述锁请求。
1 7、 根据权利要求 14-1 6任一项所述的锁管理系统, 其特征在于, 所述锁管理器还用于: 将需要发送给上级的锁管理器的预设数量的锁请求合并为同一个锁 请求发送至所述锁管理器的上级的锁管理器。
1 8、 根据权利要求 14-1 6任一项所述的锁管理系统, 其特征在于, 所述锁管理器还用于: 在返回所述锁请求对应的锁时, 设置所述锁请求对应的锁的最大持 有时间, 当所述锁管理器的下级的锁管理器持有所述锁请求对应的锁的 时间大于等于所述最大持有时间时, 所述锁管理器发送强制失效请求至 所述锁管理器的下级的锁管理器, 以便于所述锁管理器的下级的锁管理 器在接收所述强制失效请求后, 释放所述锁请求对应的锁。
PCT/CN2014/080679 2013-12-30 2014-06-25 锁管理方法及系统、锁管理系统的配置方法及装置 WO2015100973A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14876054.9A EP3009930B1 (en) 2013-12-30 2014-06-25 Lock management method and system, and lock management system configuration method and device
US14/995,789 US10042678B2 (en) 2013-12-30 2016-01-14 Lock management method and system, method and apparatus for configuring lock management system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310746990.9A CN103744719B (zh) 2013-12-30 2013-12-30 锁管理方法及系统、锁管理系统的配置方法及装置
CN201310746990.9 2013-12-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/995,789 Continuation US10042678B2 (en) 2013-12-30 2016-01-14 Lock management method and system, method and apparatus for configuring lock management system

Publications (1)

Publication Number Publication Date
WO2015100973A1 true WO2015100973A1 (zh) 2015-07-09

Family

ID=50501739

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/080679 WO2015100973A1 (zh) 2013-12-30 2014-06-25 锁管理方法及系统、锁管理系统的配置方法及装置

Country Status (4)

Country Link
US (1) US10042678B2 (zh)
EP (1) EP3009930B1 (zh)
CN (1) CN103744719B (zh)
WO (1) WO2015100973A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744719B (zh) * 2013-12-30 2017-12-29 华为技术有限公司 锁管理方法及系统、锁管理系统的配置方法及装置
CN104239418B (zh) * 2014-08-19 2018-01-19 天津南大通用数据技术股份有限公司 支持分布式数据库的分布锁方法以及分布式数据库系统
US10671565B2 (en) 2015-04-24 2020-06-02 Quest Software Inc. Partitioning target data to improve data replication performance
US9658794B2 (en) 2015-05-08 2017-05-23 Sonicwall Inc. Two stage memory allocation using a cache
CN107145396B (zh) * 2016-03-01 2021-03-09 阿里巴巴集团控股有限公司 分布式锁实现方法和设备
CN106598746B (zh) * 2016-12-09 2021-04-23 北京奇虎科技有限公司 分布式系统中全局锁的实现方法及装置
US10769128B2 (en) * 2017-01-31 2020-09-08 Salesforce.Com, Inc. Delegated key-level locking for a transactional multi-version key-value store
CN108459913B (zh) * 2017-12-26 2022-06-10 创新先进技术有限公司 数据并行处理方法、装置及服务器
CN110633274B (zh) * 2018-06-22 2022-07-15 北京神州泰岳软件股份有限公司 一种告警管理方法和装置
CN109344136A (zh) * 2018-12-13 2019-02-15 浪潮(北京)电子信息产业有限公司 一种共享文件系统的访问方法、装置及设备
CN110262898B (zh) * 2019-06-19 2021-01-29 广州华多网络科技有限公司 一种业务请求的处理方法及客户端
CN110716944B (zh) * 2019-09-12 2022-10-04 苏宁云计算有限公司 数据截断方法和装置
CN111158880B (zh) * 2019-12-31 2024-04-09 易票联支付有限公司 一种分布式定时任务调度方法、系统、装置及存储介质
CN113254226B (zh) * 2021-06-23 2021-09-24 北京易鲸捷信息技术有限公司 用于非对称业务场景的非对称分布式锁系统及实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120089735A1 (en) * 2010-10-11 2012-04-12 International Business Machines Corporation Two-Level Management of Locks on Shared Resources
WO2012166865A2 (en) * 2011-05-31 2012-12-06 Ori Software Development Ltd. Efficient distributed lock manager
CN103036717A (zh) * 2012-12-12 2013-04-10 北京邮电大学 分布式数据的一致性维护系统和方法
CN103064898A (zh) * 2012-12-17 2013-04-24 华为技术有限公司 事务加锁、解锁方法及装置
CN103744719A (zh) * 2013-12-30 2014-04-23 华为技术有限公司 锁管理方法及系统、锁管理系统的配置方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596754A (en) * 1992-10-29 1997-01-21 Digital Equipment Corporation Method for performing private lock management
US5699500A (en) * 1995-06-01 1997-12-16 Ncr Corporation Reliable datagram service provider for fast messaging in a clustered environment
US5933824A (en) * 1996-12-23 1999-08-03 Lsi Logic Corporation Methods and apparatus for locking files within a clustered storage environment
US8086579B1 (en) * 2002-01-22 2011-12-27 Oracle International Corporation Semantic response to lock requests to reduce coherence overhead in multi-node systems
US7093230B2 (en) * 2002-07-24 2006-08-15 Sun Microsystems, Inc. Lock management thread pools for distributed data systems
US7739245B1 (en) * 2002-09-30 2010-06-15 Symantec Operating Corporation Block locking in a multi-node environment
US7289992B2 (en) * 2003-05-01 2007-10-30 International Business Machines Corporation Method, system, and program for lock and transaction management
US7376744B2 (en) * 2003-05-09 2008-05-20 Oracle International Corporation Using local locks for global synchronization in multi-node systems
US9086973B2 (en) * 2009-06-09 2015-07-21 Hyperion Core, Inc. System and method for a cache in a multi-core processor
US20120066191A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation Optimized concurrent file input/output in a clustered file system
US10169367B2 (en) * 2014-06-06 2019-01-01 Panzura, Inc. Managing opportunistic locks in a distributed file system
US9792294B2 (en) * 2014-07-02 2017-10-17 Panzura, Inc Using byte-range locks to manage multiple concurrent accesses to a file in a distributed filesystem

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120089735A1 (en) * 2010-10-11 2012-04-12 International Business Machines Corporation Two-Level Management of Locks on Shared Resources
WO2012166865A2 (en) * 2011-05-31 2012-12-06 Ori Software Development Ltd. Efficient distributed lock manager
CN103036717A (zh) * 2012-12-12 2013-04-10 北京邮电大学 分布式数据的一致性维护系统和方法
CN103064898A (zh) * 2012-12-17 2013-04-24 华为技术有限公司 事务加锁、解锁方法及装置
CN103744719A (zh) * 2013-12-30 2014-04-23 华为技术有限公司 锁管理方法及系统、锁管理系统的配置方法及装置

Also Published As

Publication number Publication date
US20160132364A1 (en) 2016-05-12
EP3009930B1 (en) 2019-12-11
EP3009930A4 (en) 2016-08-24
CN103744719B (zh) 2017-12-29
US10042678B2 (en) 2018-08-07
CN103744719A (zh) 2014-04-23
EP3009930A1 (en) 2016-04-20

Similar Documents

Publication Publication Date Title
WO2015100973A1 (zh) 锁管理方法及系统、锁管理系统的配置方法及装置
US11960915B2 (en) Method and apparatus for creating virtual machine based on parameter information of a virtual network interface card
US10701139B2 (en) Life cycle management method and apparatus
US9723110B2 (en) System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment
US20190392150A1 (en) Network-accessible computing service for micro virtual machines
US8010651B2 (en) Executing programs based on user-specified constraints
WO2017089944A1 (en) Techniques for analytics-driven hybrid concurrency control in clouds
US11301284B2 (en) Method for managing VNF instantiation and device
WO2014026524A1 (zh) 一种分配资源的方法及装置
WO2017185251A1 (zh) Vnfm的确定方法和网络功能虚拟化编排器
JP6275119B2 (ja) メモリ要素の割当てのために一方向リンク付けリストを区分化するシステム及び方法
WO2017066972A1 (en) System and method for booting application servers in parallel
US10970132B2 (en) Deadlock resolution between distributed processes
WO2019047835A1 (zh) 虚拟网络功能的实例化方法
US11729026B2 (en) Customer activation on edge computing environment
US10831563B2 (en) Deadlock resolution between distributed processes using process and aggregated information
CN114090249A (zh) 资源分配方法、装置、电子设备及存储介质
CN109257201B (zh) 一种License的发送方法和装置
US11036563B2 (en) Deadlock resolution between distributed processes using process and group information

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2014876054

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE