Object operation processing method, apparatus, and device

By constructing a graph model to dynamically identify the relationships between objects, the data consistency problem caused by reliance on manual configuration in existing technologies is solved, thereby improving the reliability of atomic operations and data consistency.

CN122132608APending Publication Date: 2026-06-02INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2026-04-30
Publication Date
2026-06-02

Smart Images

  • Figure CN122132608A_ABST
    Figure CN122132608A_ABST
Patent Text Reader

Abstract

This application discloses a method, apparatus, and device for object operation processing, relating to the field of big data technology. In this method, an electronic device can acquire a first request event, which requests the electronic device to perform a first atomic operation on a first target object. The electronic device can also detect the state information of a graph model. If the state information of the graph model indicates that the graph model is in a complete state, the electronic device determines the set of associated objects corresponding to the first target object based on the graph model, and performs the first atomic operation on the first target object and each associated object in the associated object set. This method avoids the problem of inaccurate associated objects (such as missing some associated objects or obtaining incorrect associated objects) caused by the electronic device determining the set of associated objects based on an incomplete graph model, thereby avoiding errors in atomic operation execution and improving the reliability and data consistency of atomic operation execution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of big data technology, and in particular to a method, apparatus and device for processing objects. Background Technology

[0002] With the rapid development of cloud computing, big data and virtualization technologies, management systems need to manage massive amounts of objects with complex and dynamically changing dependencies between them.

[0003] In related technologies, when a management system performs atomic operations on a target object, it can rely on static configuration information configured by the administrator to determine the associated objects corresponding to the target object, so as to ensure atomicity and data consistency during the execution of atomic operations.

[0004] However, this method relies on manual configuration, which can easily lead to problems such as incomplete configuration of associated objects, making it difficult to guarantee data consistency during the execution of atomic operations. Summary of the Invention

[0005] This application provides a method, apparatus, and device for processing object operations, which can accurately identify the associated objects corresponding to the target object, and helps to ensure data consistency during the execution of atomic operations.

[0006] This application provides a method for manipulating objects, including:

[0007] Obtain a first request event, which is used to request the electronic device to perform a first atomic operation on a first target object;

[0008] The state information of the graph model is detected. If the state information indicates that the graph model is in a complete state, the set of associated objects corresponding to the first target object is determined based on the graph model. The graph model includes vertices and edges. Vertices indicate objects, and edges indicate the relationships between objects. The set of associated objects includes at least one associated object that has a relationship with the first target object. A complete state means that there is an edge between any two vertices that have a relationship in the graph model.

[0009] Perform the first atomic operation on the first target object and each associated object in the associated object set.

[0010] This application also provides an object manipulation processing apparatus, including:

[0011] The acquisition module is used to acquire a first request event, which is used to request the electronic device to perform a first atomic operation on a first target object;

[0012] The processing module is used to detect the state information of the graph model. If the state information indicates that the graph model is in a complete state, the module determines the set of associated objects corresponding to the first target object based on the graph model. The graph model includes vertices and edges. Vertices indicate objects, and edges indicate the relationships between objects. The set of associated objects includes at least one associated object that has a relationship with the first target object. A complete state means that there is an edge between any two vertices that have a relationship in the graph model.

[0013] The processing module is also used to perform a first atomic operation on the first target object and each associated object in the associated object set.

[0014] This application also provides a computer-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, it implements the steps of the operation processing method of the above-mentioned object.

[0015] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the operation processing method for the above-described object.

[0016] This application also provides an electronic device, including:

[0017] Memory, used to store computer programs;

[0018] A processor is used to implement the operation processing methods of the aforementioned objects when executing computer programs.

[0019] This application provides a method, apparatus, and device for processing operations on an object. In this method, an electronic device can acquire a first request event, which requests the electronic device to perform a first atomic operation on a first target object. After acquiring the first request event, the electronic device can also detect the state information of a graph model to determine whether the graph model is in a complete state. A complete state refers to a graph model in which an edge exists between any two vertices with an association relationship. If the graph model's state information indicates that the graph model is in a complete state, the electronic device can determine the set of associated objects corresponding to the first target object based on the graph model, and perform the first atomic operation on the first target object and each associated object in the set of associated objects. In this method, by determining whether the graph model is in a complete state, it ensures that the process of determining associated objects is executed after the graph model completion operation, avoiding inaccuracies in the set of associated objects determined by the electronic device based on an incomplete graph model (such as missing some associated objects or obtaining incorrect associated objects), thereby avoiding errors in the execution of atomic operations and improving the reliability and data consistency of atomic operation execution. Attached Figure Description

[0020] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0021] Figure 1 A schematic diagram illustrating the working process of the consistency group management scheme provided in the embodiments of this application;

[0022] Figure 2 A schematic diagram of the architecture of the management system provided in the embodiments of this application;

[0023] Figure 3A A schematic diagram of an undirected graph provided for an embodiment of this application;

[0024] Figure 3B A schematic diagram of the adjacency matrix and adjacency list provided in the embodiments of this application;

[0025] Figure 3C A schematic diagram of the graph model of the completed and uncompleted states provided in the embodiments of this application;

[0026] Figure 3D This application provides a schematic diagram of state transitions for a graphical model.

[0027] Figure 4 One of the flowcharts illustrating the object operation processing method provided in the embodiments of this application;

[0028] Figure 5 A second schematic flowchart illustrating the object operation processing method provided in the embodiments of this application;

[0029] Figure 6 The third flowchart illustrates the object operation processing method provided in the embodiments of this application;

[0030] Figure 7 A schematic diagram illustrating the working process of the concurrency control scheme based on coarse-grained global lock provided in the embodiments of this application;

[0031] Figure 8 The fourth flowchart illustrates the object operation processing method provided in the embodiments of this application;

[0032] Figure 9 Fifth flowchart illustrating the object operation processing method provided in the embodiments of this application;

[0033] Figure 10 This is a schematic diagram of the structure of the object operation processing device provided in the embodiments of this application;

[0034] Figure 11A schematic diagram of the structure of the electronic device provided in this application. Detailed Implementation

[0035] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0036] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0037] It should be noted that in the embodiments of this application, certain software, components, models and other existing solutions in the industry may be mentioned. These should be regarded as exemplary and are only intended to illustrate the feasibility of implementing the technical solution of this application. However, it does not mean that the applicant has used or necessarily used the solution.

[0038] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use, processing, transmission, provision, disclosure, and application of the relevant data all comply with relevant laws, regulations, and standards, necessary confidentiality measures have been taken, they do not violate public order and good morals, and corresponding operation portals are provided for users to choose to authorize or refuse.

[0039] First, the terminology used in the embodiments of this application will be explained.

[0040] 1. Atomic operation: refers to a single operation or a group of operations that cannot be interrupted or divided.

[0041] 2. Consistency Group (CG): This refers to logically grouping multiple objects to ensure that operations on objects within the group are atomic. For example, in a storage system, logical volumes (LVs), snapshots, clones, or mirrored storage objects can be logically grouped to form consistency groups.

[0042] 3. Locking Mechanism: This refers to controlling resource access through locking to prevent data inconsistency caused by concurrent operations.

[0043] Management systems can be used to manage massive numbers of objects, which often have complex and dynamically changing relationships.

[0044] For example, in storage scenarios, the management system can be a storage system, which can be a block storage system based on Software-Defined Storage (SDS) architecture or a virtualized storage system. The storage system can manage multiple storage objects (such as logical volumes, snapshots, cloned volumes, or mirror pairs), and these objects have complex and dynamically changing dependencies. For example, multiple logical volumes in a database system may share the same transaction log, and metadata volumes and data volumes in a distributed file system must maintain consistency. When performing operations such as creating snapshots, deleting volumes, and establishing replication relationships, the storage system needs to ensure data consistency and operational atomicity; otherwise, it may lead to data corruption, business interruption, or difficulties in data recovery. For example, in a business system, if operations on business log volumes and associated data volumes are not consistent, it may cause business errors due to data inconsistency; in a virtualization environment, if virtual machine disk volumes and snapshot volumes are not synchronized, it may cause virtual machine startup failure.

[0045] For example, in a service dispatching scenario based on a microservice architecture, the management system can also be a microservice management system, which can be used to manage multiple microservice instances with complex call dependencies between them.

[0046] For example, in resource allocation scenarios, the management system can be used to manage resources such as multiple virtual machines, multiple containers, or multiple storage volumes.

[0047] The following section uses a management system as an example to explain in detail the solution for ensuring data consistency during the execution of atomic operations in a management system.

[0048] In some embodiments, the storage system can ensure data consistency during the execution of atomic operations based on a statically configured ConsistencyGroup (CG) management scheme.

[0049] In this solution, administrators can manually create consistency groups within the storage system using application-level knowledge and the storage management interface provided by the storage system, and explicitly add storage objects such as logical volumes to the corresponding consistency groups. The storage system can record these explicit membership relationships. When operations need to be performed on a consistency group, the storage system will perform batch operations on the manually added members within that consistency group.

[0050] Below, in conjunction with Figure 1 The workflow of this solution will be explained.

[0051] Figure 1 This is a schematic diagram illustrating the working process of the consistency group management scheme provided in this application embodiment. Please refer to... Figure 1 In step 1, the storage system can respond to a creation command triggered by the administrator based on the storage management interface and create a consistency group CG-1 in the storage management configuration database. This storage management configuration database can record the initial information of CG-1.

[0052] In step 2, the storage system can respond to the member creation command triggered by the administrator based on the storage management interface, adding the business-related Volume 1 and Volume 2 to CG-1. The storage management configuration database can update the record information of the consistency group accordingly, such as: CG-1 member = [Volume 1, Volume 2].

[0053] In step 3, the administrator can trigger the storage engine to execute a snapshot command based on the storage management interface. This snapshot command is used to instruct the CG-1 to be snapshotted.

[0054] In step 4, the storage engine can request a query from the storage management configuration database to retrieve the member list of CG-1. The storage management configuration database can then send the query results to the storage engine, which may include the member list of CG-1: [Volume 1, Volume 2].

[0055] In step 5, the storage engine can determine that CG-1 includes volume 1 and volume 2 based on the member list of CG-1 returned by the storage management configuration database, and perform atomic snapshot operations on volume 1 and volume 2 to ensure that the snapshots of the two volumes are completed at the same time, thereby guaranteeing data consistency.

[0056] However, this solution relies on the administrator's prior judgment and configuration, as the storage system itself lacks the ability to automatically identify implicit relationships between objects. For example, if "Volume A" and "Volume B" belong to "CG-1", and "Volume B" and "Volume C" belong to the same database application (but are not added to the same consistency group by the administrator), when the storage engine performs a snapshot of "CG-1", it will generate consistent snapshots for "Volume A" and "Volume B", but not for "Volume C". This will lead to logical inconsistencies in cross-volume data for this database application, potentially causing business anomalies or recovery failures. Furthermore, this solution involves cumbersome management and maintenance for the administrator, resulting in high management costs and making it prone to business problems due to configuration omissions or errors.

[0057] Research revealed that, in the aforementioned solutions, the storage system cannot automatically discover indirect dependencies between storage objects (such as implicit business relationships and cross-group dependencies), leading to the omission of associated objects during atomic operations. If explicit relationships between objects can be dynamically constructed using a graph model, and a completion algorithm is executed based on a connected component completer to automatically deduce implicit relationships, then the complete set of associated objects corresponding to each object can be accurately identified. This ensures that atomic operations performed on each object can cover all associated objects, avoiding data inconsistencies during atomic operation execution caused by administrator omissions or errors in configuration.

[0058] It should be noted that in some embodiments, terms such as "association" and "dependency" can be used interchangeably; terms such as "explicit relationship" and "direct connection," "direct dependency," or "explicit dependency" can be used interchangeably; and terms such as "implicit relationship" and "indirect connection," "indirect dependency," or "implicit dependency" can be used interchangeably.

[0059] This application provides a method for processing object operations. A graph model can be constructed based on the relationships between multiple objects. This graph model includes vertices and edges; vertices indicate objects, and edges indicate the relationships between objects. By presenting the relationships between objects in a graph model, the relationships can be intuitively displayed, facilitating the efficient and accurate determination of the set of associated objects for each object during atomic operations, thereby improving the processing efficiency of atomic operations.

[0060] In this method, the electronic device can acquire a first request event, which is used to request the electronic device to perform a first atomic operation on a first target object.

[0061] After receiving the first request event, the electronic device can also detect the state information of the graph model to determine whether the graph model is in a complete state. A complete state means that there is an edge between any two vertices in the graph model that have an association relationship. If the graph model's state information indicates that it is in a complete state, the electronic device can determine the set of associated objects corresponding to the first target object based on the graph model, and perform a first atomic operation on the first target object and each associated object in the associated object set. In this method, by determining whether the graph model is in a complete state, it ensures that the process of determining associated objects is executed after the graph model completion operation. This avoids inaccurate associated object sets determined by the electronic device based on an incomplete graph model (such as missing some associated objects or obtaining incorrect associated objects), thereby avoiding errors in atomic operation execution and improving the reliability and data consistency of atomic operation execution.

[0062] To facilitate understanding of the object operation processing methods provided in the embodiments of this application, the following will be combined with... Figure 2 The architecture of the management system provided in the embodiments of this application will be described.

[0063] Figure 2 This is a schematic diagram of the architecture of the management system provided in an embodiment of this application. Please refer to... Figure 2 The management storage system may include an event detector, an operation coordinator, a graph model manager, an operation execution engine, and a connectivity component completer.

[0064] Event detectors are used to detect object lifecycle events and relationship change events in the management system.

[0065] The event detector can send event notification messages to the graph model manager. These event notification messages are used to notify the graph model manager of relationship change events. The event notification messages can include multiple objects (such as object A and object B) associated with the relationship change event and the event type.

[0066] The event types of object lifecycle events can include object creation events, object update events, and object deletion events.

[0067] The event types of relationship change events can include relationship creation events (such as creating an association between object A and object B), relationship update events (such as changing the association between object A and object B to an association between object A and object C), and relationship deletion events (such as deleting the association between object A and object B).

[0068] The graph model manager, as a core component of the management system, is used to maintain graph models (such as undirected graph models) and related information. This related information can include vertex maps and state information.

[0069] Graph models can be represented in three forms: undirected graphs, adjacency matrices, and adjacency lists.

[0070] In this embodiment of the application, an undirected graph can be modeled based on the consistent association relationship between multiple objects. The vertices in the undirected graph can represent objects, and the edges can represent the association relationship between objects that needs to ensure the consistency of operations.

[0071] Below, in conjunction with Figure 3A This section provides an explanation of undirected graphs.

[0072] Figure 3A For a schematic diagram of an undirected graph provided in an embodiment of this application, please refer to [link / reference]. Figure 3A The undirected graph has 7 vertices, V1 to V7. There is an edge between any two vertices among V1, V2, V3 and V4, which means that the objects corresponding to any two of these vertices are related. There is also an edge between any two vertices among V5, V6 and V7, which means that the objects corresponding to any two of these vertices are related.

[0073] It should be noted that, Figure 3A The vertices and edges in the diagram are only used to illustrate the architecture of the undirected graph provided in the embodiments of this application. In some other embodiments, the undirected graph may include more or fewer vertices, which is not limited in this application.

[0074] If a graph model is represented as an adjacency matrix, both the row and column dimensions of the adjacency matrix represent vertices, and the matrix element at the intersection of a row and a column indicates whether there is an edge between the vertex in that row and the vertex in that column. Vertices can be used to indicate objects, and edges indicate the relationships between objects.

[0075] If a graph model is represented as an adjacency list, both the row and column dimensions of the adjacency list represent vertices, and the value at the intersection of a row and a column indicates whether an edge exists between the vertices in that row and column. Vertices can be used to indicate objects, and edges indicate the relationships between objects.

[0076] An adjacency matrix or adjacency list can refer to a two-dimensional array used to store the edge relationships between vertices.

[0077] Figure 3B For a schematic diagram of the adjacency matrix and adjacency list provided in the embodiments of this application, please refer to [link / reference]. Figure 3B In an adjacency matrix, both the row and column dimensions represent vertices. The matrix element at the intersection of a row and a column indicates whether there is an edge between the vertex in that row and the vertex in that column.

[0078] In some embodiments, if the matrix element at the intersection of a row and a column has a first value (such as "0"), it indicates that there is no edge between the vertex in that row and the vertex in that column, meaning there is no association between the objects corresponding to these two vertices. For example, if vertex V1 in the first row is the same as vertex V1 in the first column, and there is no edge between them, then the matrix element at "V1-V1" has a value of "0". Another example is... Figure 3A In the given information, there is no edge between vertex V1 and vertex V5. Correspondingly, the matrix elements at "V1-V5" and "V5-V1" in the adjacency matrix have a value of "0".

[0079] If the matrix element at the intersection of a row and a column has the second value (such as "1"), it indicates that there is an edge between the vertex in that row and the vertex in that column, meaning there is a relationship between the objects corresponding to these two vertices. For example, in Figure 3A In the diagram, there is an edge between vertex V1 and vertex V2. Correspondingly, the matrix elements at "V1-V2" and "V2-V1" in the adjacency matrix have a value of "1".

[0080] Similarly, rows and columns in the adjacency list represent vertices, and the values ​​at the intersection of rows and columns indicate whether there is an edge between the vertices in that row and the vertices in that column.

[0081] It should be noted that, Figure 3B The values ​​in the adjacency matrix and adjacency list provided in this application are only used to illustrate the adjacency matrix and adjacency list provided in the embodiments of this application. In some other embodiments, the values ​​in the adjacency matrix and adjacency list can be any other values, and this application does not limit this.

[0082] A vertex map can be used to indicate the vertices corresponding to multiple objects in a graph model. Optionally, a vertex map can be used to store the mapping relationship between the object identifiers (IDs) of multiple objects and the vertex identifiers of the corresponding vertices in the graph model.

[0083] In this management system, the graph model manager can perform the following operations: querying or creating vertex IDs in the vertex map table; adding or deleting vertices in the graph model, and adding (set_edge) or deleting (del_edge) edges in the graph model; and triggering the completion operation of the connected component completer. This connected component completer can interact with the graph model manager to query the structure of the graph model, such as querying edges (get_edges) or vertices (get_vertices).

[0084] State information can be used to indicate the state of the graph model. The state information can be first information or second information. The first information can be used to indicate that the graph model is in a completed state, and the second information can be used to indicate that the graph model is in an incomplete state.

[0085] A complete state refers to a graph model in which any two vertices that are related have an edge between them.

[0086] An incomplete state refers to a graph model in which at least two vertices that are related do not have an edge between them.

[0087] Figure 3C This is a schematic diagram of the graph model for the completed and incomplete states provided in an embodiment of this application. Please refer to [link / reference]. Figure 3C Assuming that vertex V2 has an explicit relationship (i.e., a direct connection) with vertex V1 and vertex V3 respectively, graph model 1 can be generated based on the explicit relationship between the above three vertices. In graph model 1, vertex V2 has an edge with vertex V1 and vertex V3 respectively.

[0088] The electronic device can use a connected component completer to determine that there is an implicit relationship between vertex V1 and vertex V3 (i.e., an indirect connection that can be achieved through vertex V2 as an intermediate node), and based on this implicit relationship, complete graph model 1 to obtain graph model 2. There is an edge between vertex V1 and vertex V3 in graph model 2.

[0089] Figure 3D This is a schematic diagram of state transitions in a graphical model provided in an embodiment of this application. Please refer to [link / reference]. Figure 3D When the management system is first started, the graph model can be in an initial state (in which there are no edge relationships between multiple vertices). The management system can call the edge relationship setting function (a function used to generate edges, such as the "set_edge" function) to generate edges between vertices with explicit relationships (these vertices have direct dependencies) in the initial state of the graph model, resulting in an incomplete graph model. Subsequently, the management system can execute a completion algorithm to complete the incomplete graph model, resulting in a completed graph model. This completed graph model can be used to query the set of associated objects corresponding to each requested object.

[0090] In some embodiments, the management system may also respond to a request event for creating a new object by creating the corresponding vertex of the new object in the graph model, and then call the edge relationship setting function again to determine the created objects that have a direct dependency on the new object. In the previously completed graph model, an edge is then created between the vertex corresponding to the new object and the vertex corresponding to the created object. Afterwards, the management system executes the completion algorithm again to complete the incomplete graph model, resulting in a new completed graph model. This new completed graph model can be used to query the set of associated objects corresponding to each requested object.

[0091] The connected component completer is used to execute the completion algorithm. The completion algorithm is an algorithm that completes the connected components into a complete graph by traversing the graph model. The completion algorithm can include, but is not limited to, the breadth-first search (BFS) algorithm and the depth-first search (DFS) algorithm.

[0092] A connected component (CC) can comprise multiple vertices, and any two vertices within this component are related. In other words, in a graph model, any two vertices belonging to the same connected component have an edge between them. For example, in... Figure 3A In the graph model shown, there can be two connected components. Connected component 1 (CC1) consists of {vertex V1, vertex V2, vertex V3, vertex V4}, and connected component 2 (CC2) consists of {vertex V5, vertex V6, vertex V7}.

[0093] In some embodiments, the state information can be a graph dirty flag (graph_dirty), which can be used to identify whether the graph model needs to be completed.

[0094] For example, if the “graph_dirty” flag is set to “true”, it means that the graph model is incomplete, that is, the graph model needs to be completed; if the “graph_dirty” flag is set to “false”, it means that the graph model is completed, that is, the graph model does not need to be completed.

[0095] The operation coordinator can be used to receive request events, which may include a request object. The operation coordinator can invoke the graph model manager to obtain at least one of the following information corresponding to the request object: a set of associated objects, a consistency group, or a connectivity component. The set of associated objects may include at least one associated object that is related to the request object. For example, in... Figure 3A In this context, assuming the requested object is vertex V1, the connected components can be {vertex V1, vertex V2, vertex V3, vertex V4}. Assuming vertices V1 to V4 correspond to objects 1 to 4 respectively, the consistency set can be {object 1, object 2, object 3, object 4}, and the associated object set is {object 2, object 3, object 4}.

[0096] In some embodiments, the “associated object set” may also be called a “consistent set”.

[0097] After obtaining the set of associated objects or consistency groups corresponding to the request object in each request event, the operation coordinator can drive the operation execution engine to perform atomic operations on the request object and each associated object in the set of associated objects corresponding to the request object.

[0098] In some embodiments, if a request event requests an atomic operation to be performed on a request object, the operation coordinator, after querying the graph model manager to obtain the set of associated objects of the request object, can send an atomic operation command to the operation execution engine. The atomic operation command may include an object list and an operation type. The object list may include the request object and each associated object in the set of associated objects of the request object.

[0099] An operation execution engine refers to the underlying system that executes specific atomic operations. Operation execution engines can be used to execute distributed transactions or batch operations.

[0100] For example, if the management system is a storage system, the operation execution engine can be a storage engine, which refers to the underlying system that performs specific storage operations.

[0101] The management system provided in this application embodiment can achieve the creation and dynamic updating of a graph model through the cooperation of an event detector, a graph model manager, and a connected component completer. This graph model can be updated as the relationships between multiple objects managed by the management system are dynamically adjusted. This helps ensure the integrity and accuracy of the set of associated objects corresponding to each request object in each request event queried based on the graph model, thereby ensuring the reliability and data consistency of atomic operation execution. Furthermore, the management system can ensure that atomic operations performed on each object cover all associated objects through the cooperation of an operation coordinator, a graph model manager, and an operation execution engine, thus ensuring data consistency during the execution of atomic operations.

[0102] The management system and object operation processing methods provided in this application can be applied to various scenarios. For example, in a storage scenario, this application can provide a data consistency management method for a storage system based on graph theory connected component completion. This method can abstract multiple storage objects and the explicit relationships between storage objects into an undirected graph, and use a completion algorithm to make the implicit relationships between multiple storage objects explicit, thereby providing a complete and accurate consistency view for upper-layer applications.

[0103] To enable those skilled in the art to better understand the present application, the technical solutions of the embodiments of the present application are described in detail below with reference to specific examples. These specific examples can be combined with each other, and the same or similar concepts or processes may not be described again in some examples.

[0104] Figure 4 For one of the flowcharts illustrating the object operation processing method provided in the embodiments of this application, please refer to [link / reference]. Figure 4 The method may include the following steps:

[0105] S401, Get the first request event.

[0106] The first request event can be used to request an electronic device to perform a first atomic operation on a first target object.

[0107] This step can be performed by the electronic device itself, or by a management system running within the electronic device. For example, the management system can obtain the first request event by operating a coordinator.

[0108] For example, in a storage scenario, the first target object can be one of the following: a logical volume, a snapshot, a cloned volume, or a mirror pair. The first atomic operation can include, but is not limited to, creating an application-consistent snapshot, expanding a logical volume, restoring a snapshot, mounting a cloned volume, or switching between primary and standby mirror pairs.

[0109] For example, in a distributed database scenario, the first target object can also be a data shard in a distributed transaction. The first atomic operation may include, but is not limited to, backing up sharded data, scaling up or down shards, verifying sharded data consistency, and committing cross-shard transactions.

[0110] For example, in a service provisioning scenario, the first target object can be a microservice instance. The first atomic operation may include, but is not limited to, starting the microservice instance, restarting the microservice instance, and adjusting the load balancer of the microservice instance.

[0111] For example, in a resource allocation scenario, the first target object can also be one of the following: a virtual machine, a container, or a storage volume. The first atomic operation can include, but is not limited to, creating and destroying a virtual machine, allocating and deploying a container, mounting and unmounting a storage volume, changing the virtual machine specification, and adjusting container resource quotas.

[0112] S402. Detect the state information of the graph model. If the state information indicates that the graph model is in a completed state, determine the set of associated objects corresponding to the first target object based on the graph model.

[0113] A graph model consists of vertices and edges. Vertices indicate objects, and edges indicate the relationships between objects.

[0114] The set of associated objects includes at least one associated object that has a relationship with the first target object.

[0115] A complete state refers to a graph model in which any two vertices that are related have an edge between them.

[0116] This step can be performed by an electronic device or by a management system running within the electronic device. For example, in a management system, an operations coordinator can send a query request to a graph model manager, requesting a lookup of the set of associated objects corresponding to a first target object. Exemplarily, this query request could be represented as "find_connected_vertices".

[0117] The graph model manager can detect the state information of the graph model. If the state information is the first information, it means that the graph model is in the completion state. It can identify the objects corresponding to the vertices of the graph model that have edges with the vertices corresponding to the first target object as the associated objects of the first target object, and generate a set of associated objects corresponding to the first target object based on these associated objects.

[0118] If the status information is the second information, it indicates that the graph model is incomplete. Incompleteness means that there is no edge between at least two related vertices in the graph model. In this case, the electronic device (or management system, or graph model manager) can obtain the set of related objects by performing the following steps: obtaining a vertex mapping table, which indicates the vertices corresponding to multiple objects in the graph model, including the first target object; performing a completion operation on the graph model based on the vertex mapping table to obtain the completed graph model, and configuring the status information of the completed graph model as the first information, which indicates the completion status; and determining the set of related objects based on the completed graph model.

[0119] In some embodiments, the vertex mapping table may be stored in an electronic device, and the management system or graph model manager may store the storage address of the vertex mapping table and retrieve the vertex mapping table based on the storage address.

[0120] In the object operation processing method provided in the embodiments of this application, if the graph model is determined to be incomplete based on the state information, it is necessary to perform a completion operation on the graph model based on the vertex mapping table to obtain the completed graph model, and accurately determine the set of associated objects corresponding to the first target object based on the completed graph model. This can ensure that the first atomic operation can cover all associated objects of the first target object, which is beneficial to ensuring the reliability and data consistency during the execution of atomic operations.

[0121] It should be noted that the process of performing a completion operation on the graph model based on the vertex mapping table to obtain the completed graph model will be discussed later. Figure 5 Detailed explanation is provided in the embodiments.

[0122] S403. Perform the first atomic operation on the first target object and each associated object in the associated object set.

[0123] This step can be performed by an electronic device or by a management system running within the electronic device. For example, in a management system, an operation coordinator can send an atomic operation command to an operation execution engine (such as a "storage engine"), which may include a list of objects and an operation type. The operation execution engine can then respond to the atomic operation command by performing a first atomic operation on each object in the object list, through distributed transactions or other mechanisms.

[0124] The object list may include the first target object and each associated object in the set of associated objects corresponding to the first target object.

[0125] Operation type refers to the action instruction identifier carried by the operation coordinator in the atomic operation command. It is used to indicate to the operation execution engine which atomic operation to perform on each object in the object list. For example, the operation type can be "Create application consistent snapshot".

[0126] The object operation processing method provided in this application can construct a graph model based on the relationships (including explicit and implicit relationships) between multiple objects and mark the graph model with state information so that the electronic device can promptly understand whether the graph model is in a complete state. After receiving the first request event, the electronic device can determine the set of associated objects corresponding to the first target object based on the graph model only after determining that the graph model is in a complete state. This avoids the electronic device determining an inaccurate set of associated objects based on an incomplete graph model (such as omitting some associated objects or obtaining incorrect associated objects), thereby avoiding atomic operation execution errors and ensuring the reliability and data consistency of the atomic operation execution process.

[0127] Figure 5 This is a second flowchart illustrating the object operation processing method provided in the embodiments of this application. Please refer to... Figure 5 The method may include the following steps:

[0128] S501. Based on the M vertices in the vertex mapping table, generate P connected components.

[0129] A connected component consists of N vertices, and there is an association between any two vertices in the N vertices. N is an integer greater than 1 and less than or equal to M, and P is an integer greater than or equal to 1.

[0130] In some embodiments, step S501 may further include the following steps:

[0131] Step 1: Initialize i to 1.

[0132] Step 2: Determine the i-th vertex among the M vertices.

[0133] Before the traversal begins, the electronic device (or management system, or connected component completer in the management system) can configure the state of each of the M vertices to be unvisited. By performing this initialization operation, it is ensured that during the subsequent connected component traversal based on the completion algorithm (such as BFS or DFS), the processing state of each vertex (such as whether it has been traversed or whether it has been assigned to a certain connected component) can be accurately tracked, avoiding repeated traversal or omission of vertices, and ensuring the integrity and accuracy of connected component partitioning.

[0134] Step 3: Determine whether the state of the i-th vertex is unvisited.

[0135] If so, it means that the i-th vertex is in an unvisited state, and proceed to step 4;

[0136] If not, it means that the i-th vertex is in the visited state, and proceed to step 5.

[0137] Step 4: Among the remaining M-1 vertices excluding the i-th vertex, determine at least one vertex that is associated with the i-th vertex, and generate the connected component corresponding to the i-th vertex based on the i-th vertex and at least one vertex, and update the state of the i-th vertex and the state of at least one vertex to the visited state.

[0138] This step can be performed by the electronic device or by a management system running within the electronic device. For example, in a management system, the graph model manager can query and retrieve the vertex map table and send completion instructions (such as "complete_components") to the connected component completer, which can include the vertex map table.

[0139] The vertex map table can include M objects and the vertices corresponding to each object (a total of M vertices). The connected component completer can traverse these M vertices based on a completion algorithm (such as BFS or DFS). During the traversal, based on the adjacency relationship (or edge) between vertices, vertices that are mutually reachable are divided into the same connected component.

[0140] In some embodiments, in the initial state (i.e., when no graph model exists), for the i-th vertex, the connected component completer can determine the object corresponding to the i-th vertex based on the vertex mapping table, and determine whether there is an association relationship (including explicit and implicit relationships) between the object and the objects corresponding to the remaining M-1 vertices respectively. At least one vertex corresponding to at least one object that has an association relationship with the object is determined as at least one vertex that has an association relationship with the i-th vertex.

[0141] In some embodiments, if a graph model already exists, for the i-th vertex, the connected component completer can traverse along the edges of the i-th vertex in the graph model sequentially, and determine all vertices reachable from the i-th vertex along the edges as vertices that have an association with the i-th vertex.

[0142] For example, in Figure 3C In the graph model 1, assuming the i-th vertex is vertex V1, the connected component completer can traverse along the edges of vertex V1 sequentially. It determines that there is an edge between vertex V1 and vertex V2, i.e., an explicit relationship exists between them, and thus vertex V2 and V1 are associated. The completer can then continue traversing downwards along V2, determining that vertex V1 can be connected to vertex V3 through vertex V2, i.e., an implicit relationship exists between them, and thus vertex V3 and V1 are also associated. In this case, the connected components corresponding to vertex V1 are {vertex V1, vertex V2, vertex V3}.

[0143] Step 5: Determine if i is less than M.

[0144] If yes, proceed to step 6; otherwise, proceed to step 7.

[0145] Step 6: Update i to i+1.

[0146] Where i takes the values ​​1, 2, ..., M-1 in sequence. After executing step 6, we can return to execute step 3.

[0147] Step 7: Obtain P connected components.

[0148] In this method, the connected component completer traverses each of the M vertices one by one. During the traversal, based on the relationships between vertices, mutually reachable vertices are grouped into the same connected component to complete the connected component. Furthermore, the connected component completer can update the state of vertices grouped into the same connected component from unvisited to visited, avoiding repeated traversal of these vertices in the future. This helps save computational resources and improves the efficiency of the completion operation.

[0149] In some embodiments, the connected component completer can employ an incremental update strategy instead of performing a global graph traversal and completion before each operation. For example, when a new edge "(AB)" is added to the graph model, completion is performed only on connected components that may change due to this edge. For instance, if the new edge "(AB)" connects two previously disconnected components "CC1" and "CC2", the completion algorithm only needs to merge "CC1" and "CC2" into a new connected component and perform a full graph check on this newly merged connected component, without traversing the entire graph.

[0150] In some scenarios (such as large-scale storage clusters with frequently changing relationships), this incremental completion process can reduce the computational overhead of completion operations and improve system performance.

[0151] S502. Based on the P connected components, complete the edges between the M vertices to obtain the completed graph model.

[0152] In some embodiments, step S502 may include the following steps:

[0153] Step 1: Initialize j to 1.

[0154] Step 2: Determine the j-th connected component among the P connected components.

[0155] Where j takes the values ​​1, 2, ..., P in sequence.

[0156] Step 3: Combine the vertices in the j-th connected component in pairs to obtain multiple vertex pairs. Determine whether the multiple vertex pairs include target vertex pairs that do not have edges. If target vertex pairs exist, complete the edges between the target vertex pairs in the graph model.

[0157] For example, in Figure 3C In graph model 1, there exists a connected component {vertex V1, vertex V2, vertex V3}. Combining any two vertices in this component yields three vertex pairs: "vertex V1-vertex V2", "vertex V2-vertex V3", and "vertex V1-vertex V3". The target vertex pair is "vertex V1-vertex V3". Completing the edges between these target vertex pairs yields the complete graph corresponding to this connected component (i.e., graph model 2).

[0158] Step 4: Determine whether j is less than P.

[0159] If yes, proceed to step 5; otherwise, proceed to step 6.

[0160] Step 5: Update j to j+1.

[0161] Step 6: Obtain the completed graph model.

[0162] In the completed graph model, each connected component has been completed into a complete graph. In this case, the graph model manager can obtain the connected component containing the vertex of the request object in each request event by querying all vertices that have edges with that vertex (i.e., "adjacent vertices") based on the graph model. Then, based on the connected component and the vertex mapping table, the set of associated objects corresponding to the request object can be determined.

[0163] The above six steps can be performed by an electronic device or by a management system running within the electronic device. The electronic device (or management system) makes explicit the implicit relationships (i.e., indirect dependencies) between vertices in the graph model by dynamically discovering connected components in the graph model before atomic operations (such as snapshots) are triggered, and by completing each connected component into a complete graph.

[0164] For example, in a management system, a connected component completer can execute a completion algorithm (such as BFS or DFS) to traverse the vertices of the entire graph model and find all connected components (e.g., P connected components). For the j-th connected component among the P connected components, it checks whether it is a complete graph (i.e., whether there is an edge between any two vertex pairs in the j-th connected component). If not, it can call the edge relationship setting function (a function used to generate edges, such as the "set_edge" function) to add edges to all vertex pairs in the j-th connected component that are not yet directly connected. This continues until all P connected components are completed, resulting in the completed graph model. In the above process, the connected component completer can automatically deduce the implicit relationship between any two vertices in the same connected component (such as cross-group database volume associations) based on the completion algorithm and add edges between vertices with implicit relationships. This avoids missing associated objects due to manual configuration oversights, which helps ensure the accuracy of the set of associated objects for each object, and thus helps ensure the reliability and data consistency during the execution of atomic operations.

[0165] After obtaining the completed graph model, the graph model manager can configure the status information of the completed graph model as the first information (such as setting graph_dirty=false). This allows the graph model manager to quickly and accurately determine the set of associated objects corresponding to the request objects in each request event based on the completed graph model. This ensures the reliability and data consistency of subsequent atomic operations performed on the request objects and their corresponding sets of associated objects in each request event.

[0166] The object operation processing method provided in this application embodiment can accurately find all connected components corresponding to multiple vertices in a graph model based on the completion algorithm, and deduce the implicit relationship between any two vertices in each connected component (such as cross-group database volume association) based on the completion algorithm. It also adds edges between vertices with implicit relationships in each connected component, avoiding omission of associated objects due to manual configuration oversights. This helps ensure the accuracy of determining the set of associated objects for each object, and thus helps ensure the reliability and data consistency during the execution of atomic operations.

[0167] Figure 6 This is the third flowchart illustrating the object operation processing method provided in the embodiments of this application. Please refer to... Figure 6The method may include the following steps:

[0168] S601, Obtain the second request event.

[0169] The second request event is used to request the creation of a second target object.

[0170] For example, in a storage scenario, the second request event can be used to request the creation of a new storage object (such as logical volume "LV01").

[0171] This step can be performed by the electronic device itself, or by a management system running within the electronic device. For example, in a management system, an operations coordinator can receive a second request event.

[0172] S602. Generate the first target vertex corresponding to the second target object in the graph model, and store the mapping relationship between the second target object and the first target vertex in the vertex mapping table.

[0173] A vertex map is used to indicate the vertices corresponding to multiple objects in a graph model.

[0174] This step can be performed by an electronic device or by a management system running within the electronic device. For example, in a management system, an operation coordinator can send the second request event to a graph model manager. In response to the second request event, the graph model manager can assign a vertex (e.g., "V1") to the newly created second target object in the graph model and persist the mapping relationship between the second target object (e.g., "LV01") and the vertex (e.g., "V1") in the vertex map table.

[0175] S603. Among the multiple objects indicated by the graphical model, determine whether there exists a third target object that is related to the second target object.

[0176] This step can be performed by an electronic device or by a management system running within the electronic device. For example, an event detector in a management system can detect relationship change events to promptly identify whether a third target object is associated with a second target object among multiple objects.

[0177] It should be noted that before performing this step, the electronic device (or management system) needs to detect the status information of the graph model. Only when the status information of the graph model indicates that the graph model is in a complete state can this step and subsequent steps be performed.

[0178] S604. If a third target object exists, add an edge between the first target vertex and the vertex corresponding to the third target object in the graph model, and update the state information of the graph model to the second information.

[0179] The second piece of information is used to indicate that the graph model is incomplete. An incomplete state means that there is no edge between at least two vertices that are related in the graph model.

[0180] It is understandable that after each new edge is added to the graph model, updating the graph model's state information to the second information (such as setting graph_dirty=true) allows the management system in the electronic device (such as the graph model manager) to trigger the graph model's completion operation based on the second information before performing a query operation on the associated object set based on the graph model, thus ensuring the accuracy of the query results.

[0181] This step can be performed by an electronic device or by a management system running within the electronic device. For example, if an event detector in the management system detects a relationship between a second target object and a third target object (e.g., "LV01" and "LV02" are added to the same consistency group), it can send an event notification message to the graph model manager. This event notification message notifies the graph model manager of a relationship change event and can include the associated second and third target objects and the event type. The graph model manager can then call an edge relationship setting function (a function used to generate edges, such as the "set_edge" function) to add an edge between the first target vertex and the third target object vertex in the graph model.

[0182] For example, if the graph model is represented as an adjacency matrix, the graph model manager can call the "set_edge(v1, v2)" function to mark "1" at the symmetrical positions "(v1, v2)" and "(v2, v1)" in the adjacency matrix. Here, v1 represents the first target vertex, and v2 represents the vertex corresponding to the third target object.

[0183] The object operation processing method provided in this application, after detecting a second request event for creating a second target object, creates a corresponding first target vertex for the second target object in the graph model, and detects whether there is an association relationship between the second target object and multiple objects indicated by the graph model. If there is a third target object that is associated with the second target object, an edge can be created between the first target vertex and the vertex corresponding to the third target object in the graph model, and the state information of the graph model can be updated to the second information. In the above process, the graph model can dynamically update itself by detecting the type of the request event (such as whether it is an event for creating an object) and detecting whether there is an association relationship between the newly created object and other target objects in the graph model besides the second target object, thereby improving the accuracy of subsequently determining the set of associated objects based on the graph model.

[0184] In some embodiments, for multiple request events, a coarse-grained global lock concurrency control scheme can be used to ensure data consistency during the execution of atomic operations for these multiple request events. This scheme uses a lock mechanism to guarantee the mutual exclusion and atomicity of operations, preventing data inconsistency caused by objects being modified by other processes during the operation.

[0185] For example, in a concurrency control scheme based on coarse-grained global locks in a storage scenario, when executing any operation that may affect multiple storage objects, the entire storage pool, the entire controller, or the entire storage system can be controlled based on a global lock to ensure the atomicity of each operation and avoid conflicts between operations. While an operation holds the global lock, other potentially conflicting operations are prohibited from executing.

[0186] Figure 7 This is a schematic diagram illustrating the working process of the concurrency control scheme based on a coarse-grained global lock provided in an embodiment of this application. Please refer to... Figure 7 The plan includes the following four phases:

[0187] (1) Lock application stage

[0188] During this phase, Operation 1 can request a lock from the global lock manager and receive the lock from the global lock manager. Operations 2 and 3 can also request a lock from the global lock manager, but since the lock is held by Operation 1, these two operations are in a "waiting" blocked state.

[0189] (2) Operation 1 execution phase

[0190] Operation 1 will perform its own time-consuming operation while holding the lock. During this period, Operations 2 and 3 remain blocked and cannot be executed. After Operation 1 completes its execution, it can request the global lock manager to release the lock.

[0191] (3) Operation 2 execution phase

[0192] During this phase, the global lock manager grants the lock to operation 2, and operation 2 executes its own time-consuming operation while holding the lock. During this period, operation 3 remains blocked and cannot be executed. After operation 2 completes its execution, it can request the global lock manager to release the lock.

[0193] (4) Operation 3 execution phase

[0194] During this phase, the global lock manager grants a lock to operation 3, which then performs its own time-consuming operation while holding the lock. After operation 3 completes its execution, it can request the global lock manager to release the lock.

[0195] This approach sacrifices the concurrency of multiple operations for simplicity. For example... Figure 7 As shown, global locks limit the concurrent processing capabilities of storage systems. In high-load, multi-request scenarios, unrelated operations may block each other, leading to high latency, low throughput, and underutilization of system resources. Furthermore, as the storage system scales, lock contention intensifies, resulting in poor scalability. Additionally, the locking mechanism in this scheme is coarse-grained; even operations without actual conflicts (such as independent operations from different storage pools) can be serialized due to the locking mechanism, wasting system resources. In summary, while this scheme can ensure the security of the storage system, its performance is severely limited.

[0196] Research has shown that, regarding the performance degradation and poor scalability issues caused by coarse-grained lock-based concurrency control mechanisms, if the real-time query capabilities of graph models (such as O(1) complexity fast queries based on adjacency matrices) can be used to quickly and accurately determine conflicts between multiple operations, the performance overhead caused by global locks can be avoided, thus improving the system's concurrent processing efficiency and scalability. Therefore, the object operation processing method provided in this application can also implement conflict detection of multiple request events based on graph models, and perform split processing of multiple request events based on the conflict detection results, which is beneficial for improving the system's concurrent processing efficiency and scalability.

[0197] Figure 8 This is the fourth flowchart illustrating the object operation processing method provided in the embodiments of this application. Please refer to... Figure 8 The method may include the following steps:

[0198] S801: Acquire multiple request events at the same time.

[0199] This step can be performed by an electronic device or by a management system running within the electronic device. For example, an operations coordinator in a management system can simultaneously receive multiple request events.

[0200] S802. Determine whether a second atomic operation exists in the electronic device.

[0201] If yes, proceed to steps S803~S805; otherwise, proceed to steps S806~S810.

[0202] S803. Determine the fourth target object corresponding to the second atomic operation executed in the electronic device, and determine the second target vertex corresponding to the fourth target object based on the vertex mapping table.

[0203] A vertex map is used to indicate the vertices corresponding to multiple objects in a graph model, which may include the fourth target object.

[0204] The vertex mapping table can store the mapping relationship corresponding to the fourth target object, and the second target vertex corresponding to the fourth target object can be determined based on the mapping relationship.

[0205] S804. Based on the second target vertex and the graph model, determine the event types corresponding to the multiple request events.

[0206] The event type is either conflict type or non-conflict type. Conflict type indicates that the requested object in the corresponding request event conflicts with the fourth target object; non-conflict type indicates that the requested object in the corresponding request event does not conflict with the fourth target object.

[0207] It should be noted that before performing this step, the electronic device (or management system) needs to detect the status information of the graph model. Only when the status information of the graph model indicates that the graph model is in a complete state can this step and subsequent steps be performed.

[0208] It should be noted that the specific execution process of this step will be explained later. Figure 9 The examples are illustrated below.

[0209] S805. Process the multiple request events separately according to the event types corresponding to the multiple request events.

[0210] In some embodiments, step S805 may further include the following steps:

[0211] Step 1: Generate processing instructions for each of the multiple request events based on their respective event types.

[0212] The processing instruction is one of the following: execute instruction, wait instruction, or reject instruction.

[0213] For request events with a conflict type, there are two possible handling methods:

[0214] Processing Method 1: If the atomic operation requested by the request event conflicts with the second atomic operation, a rejection instruction is generated.

[0215] For example, the second atomic operation is "delete object 2", and the request event requests the atomic operation "query object 2". Because the second atomic operation is executed first, after the second atomic operation is completed, object 2 has been removed from the management system, causing the precondition of the request event (i.e., object 2 exists) to no longer be met. In this case, the management system can determine that the request event is invalid and generate a rejection instruction.

[0216] Processing Method 2: If the atomic operation requested by the request event does not conflict with the second atomic operation, a wait instruction is generated.

[0217] For example, if both the second atomic operation and the atomic operation requested by the request event are "query object 2", a wait instruction can be generated to put the request event into a wait state. After the second atomic operation completes and releases resources, the management system can execute the atomic operation requested by the request event.

[0218] For multiple request events of non-conflicting type, the electronic device (or management system) can determine the execution order of the atomic operations requested by the multiple request events; determine the priority order of the request objects in the multiple request events; and generate processing instructions corresponding to each request event in the multiple request events according to the execution order and / or priority order.

[0219] In some embodiments, for multiple request events of non-conflicting type, the electronic device (or management system) may further divide the multiple request events into at least one event set based on the connected components corresponding to the temporary vertices of the multiple request events. The connected components corresponding to the temporary vertices of the request events in each event set are the same, and each event set may include at least one request event.

[0220] Understandably, for a single event set, if the event set includes multiple request events, there are resource conflicts among these multiple request events (i.e., the requested objects overlap). For multiple request events with resource conflicts, the electronic device (or management system) can determine the execution order between the atomic operations requested by each of the multiple request events (e.g., "delete operation" before "query operation"), and the priority order between the requested objects in these multiple request events (e.g., "object 2" has a higher priority than "object 1"). Based on this execution order and / or priority order, it generates the corresponding processing instructions for each of the multiple request events.

[0221] If multiple event sets exist, and there are no resource conflicts between them (meaning the requested objects requested by the requesting events in different event sets do not overlap), then the requesting events in different event sets can be executed synchronously due to the lack of resource contention. In this case, the electronic device (or management system) can generate execution instructions for the priority requesting event selected from the multiple event sets. The atomic operations requested by the priority requesting event selected from these multiple event sets can be executed synchronously with the second atomic operation.

[0222] This application provides an efficient and accurate conflict detection and resource adjustment method to address the performance degradation and poor scalability issues caused by coarse-grained lock concurrency control mechanisms. In this method, when multiple request events are received simultaneously, the electronic device can determine if it is currently executing a second atomic operation. If so, it must first determine whether there is resource contention between the atomic operations requested by each of the multiple request events and the second atomic operation (i.e., whether the same request object is invoked). For request events with resource contention, the electronic device can further determine whether there is a conflict between the operation types of the requested atomic operations and the second atomic operations, and generate corresponding processing instructions based on the conflict detection results. For example, if there is an operation type conflict (such as "delete object" and "query object"), a rejection instruction can be generated to prevent the request event from continuing to wait, thus improving the processing efficiency of the request event. If there is no operation type conflict, a wait instruction can be generated to ensure ordered execution, guaranteeing the orderliness of operation execution, data consistency, and system stability in multi-request concurrency scenarios. For request events without resource contention, the electronic device can also divide the multiple request events into at least one event set based on the connected components corresponding to the temporary vertices of the multiple request events. For multiple request events from the same event set, processing instructions can be generated for each request event based on the execution order of the atomic operations requested by each request event and the priority order of the request objects within the multiple request events. For request events from different event sets, the electronic device can also generate execution instructions for the priority request events selected from the multiple event sets, allowing the atomic operations requested by the priority request events to be executed synchronously with the second atomic operation, which helps improve the processing efficiency of these request events.

[0223] Step 2: Process each request event separately based on the processing instructions corresponding to each request event.

[0224] For a single request event, if the processing instruction corresponding to the request event is an execute instruction, the electronic device can perform corresponding atomic operations on the request object of the request event and each associated object in the set of associated objects corresponding to the request object. If the processing instruction corresponding to the request event is a wait instruction, the electronic device adds the request event to the corresponding wait queue. If the processing instruction corresponding to the request event is a reject instruction, the electronic device can generate a processing result corresponding to the request event, which is used to indicate that the processing of the request event failed.

[0225] In some embodiments, an electronic device (or management system) may establish an edge between a temporary vertex corresponding to the request object of each request event and each vertex in the connected component corresponding to that temporary vertex, based on the operational semantics of the atomic operation requested to be performed by each request event.

[0226] For example, if the graph model is represented as an adjacency matrix, an electronic device (or management system) can call an edge query function (a function used to query whether an edge exists between two vertices, such as the "query_edge(v_op, v_of_running_op)" function) to determine whether the atomic operation requested by request event 1 conflicts with the atomic operations requested by other request events or the second atomic operation being executed by the electronic device. The time complexity of this query operation is constant time complexity, i.e., O(1).

[0227] In this method, real-time O(1) complexity conflict detection can be performed based on the completed graph model. This is achieved by creating temporary vertices for request objects that are used to execute new atomic operations for new request events, connecting these temporary vertices with the corresponding conflicting vertices, and utilizing the characteristics of the completed graph model to quickly determine whether there is a resource conflict between the new atomic operation and the second atomic operation being performed by the electronic device.

[0228] If the query results show that there is an edge between the two vertices (the vertex corresponding to the requested object in request event 1 and the second target vertex), a conflict is determined to have occurred. In this case, the atomic operation requested by request event 1 can be either put on hold or directly rejected. That is, the electronic device can determine whether to immediately execute the atomic operation requested by request event 1 or add request event 1 to the waiting queue based on the conflict detection result.

[0229] S806. Determine multiple request objects based on multiple request events.

[0230] Each request event can include a request object. Each request event can be used to request that the request object to perform an atomic operation.

[0231] S807. Based on the vertex mapping table, determine the third target vertex corresponding to each of the multiple request objects, and obtain multiple third target vertices.

[0232] It should be noted that the specific execution process of this step can be referred to the specific execution process of step S803, and will not be repeated here.

[0233] S808. In the graph model, generate temporary vertices corresponding to each third target vertex to obtain multiple temporary vertices.

[0234] For example, one of multiple request events can be used to request a new operation to be performed on a request object (such as the "OP_DELETE" operation), and the electronic device (or management system) (such as the graph model manager) can create a temporary vertex (V_OP) for that request object in the graph model.

[0235] It should be noted that before performing this step, the electronic device (or management system) needs to detect the status information of the graph model. Only when the status information of the graph model indicates that the graph model is in a complete state can this step and subsequent steps be performed.

[0236] S809. Based on the graph model and multiple third target vertices, determine the connected components corresponding to the multiple temporary vertices.

[0237] A connected component can include temporary vertices and vertices that have edges connected to temporary vertices.

[0238] In some embodiments, the electronic device (or management system) may determine the associated vertex corresponding to each third target vertex in the graph model, wherein there is an edge between the associated vertex and the corresponding third target vertex; among multiple temporary vertices, the third target vertex corresponding to each temporary vertex and the associated vertex corresponding to the third target vertex are determined as the connected components corresponding to each temporary vertex.

[0239] For example, in Figure 3A In the graph model, if the third target vertex is vertex 1, the electronic device (or management system) can generate a temporary vertex v_op-1 corresponding to vertex 1 in the graph model. The connected components corresponding to the temporary vertex v_op-1 can be {vertex 1, vertex 2, vertex 3, vertex 4}.

[0240] S810. Generate processing instructions corresponding to multiple request events based on the connected components corresponding to multiple temporary vertices, and process the multiple request events according to the processing instructions corresponding to the multiple request events.

[0241] In some embodiments, an electronic device (or management system) may divide multiple request events into at least one event set based on the connected components corresponding to multiple temporary vertices. The temporary vertices corresponding to the request events in each event set have the same connected components, and each event set may include at least one request event.

[0242] It should be noted that the specific execution process of this step can be referred to the handling method of multiple request events of non-conflict type in step S805, which will not be repeated here.

[0243] The operation processing method provided in this application, by creating temporary vertices for the request objects in each request event in a graph model, can logically pre-enact the execution process of atomic operations of multiple request events in a low-overhead and non-intrusive manner. This method determines the connected component where the temporary vertex corresponding to a request event is located to accurately judge whether the atomic operation requested by that request event competes for resources with the atomic operation being executed or requested by other concurrently received request events (i.e., requesting the same object). This effectively avoids conflicts between atomic operations requested by multiple request events, and between the atomic operations requested by each request event and the atomic operations being executed by the electronic device. It ensures that in concurrent scenarios, atomic operations involving the same request object can be executed mutually exclusively, thereby helping to guarantee the consistency of system data and the atomicity of operations.

[0244] Figure 9 This is the fifth flowchart illustrating the object operation processing method provided in the embodiments of this application. Please refer to... Figure 9 The method may include the following steps:

[0245] S901. Based on multiple request events, determine multiple request objects.

[0246] S902. Based on the vertex mapping table, determine the third target vertex corresponding to each of the multiple request objects, and obtain multiple third target vertices.

[0247] S903. In the graph model, generate temporary vertices corresponding to each third target vertex to obtain multiple temporary vertices.

[0248] S904. Based on the graph model and multiple third target vertices, determine the connected components corresponding to multiple temporary vertices.

[0249] Connected components include temporary vertices and vertices that have edges with the temporary vertex.

[0250] It should be noted that the specific execution process of steps S901 to S904 can be referred to the specific execution process of steps S806 to S809, and will not be repeated here.

[0251] S905. Based on the connected components and the second target vertex corresponding to the multiple temporary vertices, determine the event types corresponding to the multiple request events.

[0252] In some embodiments, the electronic device (or management system) may determine whether a target temporary vertex exists among a plurality of temporary vertices, wherein the connected component corresponding to the target temporary vertex includes a second target vertex; if a target temporary vertex exists, the event type of the request event corresponding to the target temporary vertex is determined to be a conflict type, and the event types of the other request events among the plurality of request events, excluding the request event corresponding to the target temporary vertex, are determined to be non-conflict types.

[0253] The operation processing method provided in this application, by creating temporary vertices for the request objects in each request event in a graph model, can logically pre-enact the execution process of atomic operations for multiple request events in a low-overhead, non-intrusive manner. This method determines the connected component where the temporary vertex corresponding to a request event is located to accurately judge whether the atomic operation requested by that request event competes with the currently executing atomic operation (i.e., requests for the same object). This effectively avoids conflicts between the atomic operations requested by multiple request events and the atomic operations being executed by the electronic device, ensuring that in concurrent scenarios, atomic operations involving the same request object can be executed mutually exclusively, thereby helping to guarantee the consistency of system data and the atomicity of operations.

[0254] The operation processing method and management system provided in this application embodiment can divide multiple vertices into at least one connected component by executing a completion algorithm, and automatically and accurately deduce the indirect dependencies between multiple vertices in the same connected component, and complete the missing edges between two vertices in the same connected component, avoiding data inconsistency problems caused by manual configuration negligence or incomplete identification, which is beneficial to improving the reliability of the management system. This method can transform relation queries into constant time complexity (i.e., O(1) complexity) queries on graph models (such as adjacency matrices or adjacency lists), which is beneficial to improving query speed and achieving accurate conflict detection. Thus, electronic devices (or management systems) can control concurrent access with fine granularity without relying on cumbersome global locks, which is beneficial to improving the system throughput and response speed of electronic devices (or management systems), and achieving high performance and high concurrency processing. This method uses a unified graph model as the core metadata service of the management system, providing a consistent view for various functions (such as snapshots, cloning, copying, migration, deletion, etc.). The architecture of this management system is clear and easy to extend with new functions.

[0255] In distributed databases and middleware, this method can be used to manage data shard relationships in distributed transactions. For example, a single cross-database query may involve multiple tables, and there are implicit business relationships between these tables. The object operation processing method provided in this application can construct a graph model based on the relationships between these multiple tables, so as to automatically discover these implicit business relationships through the graph model and completion algorithm, thereby ensuring the consistency of related data during data migration or backup.

[0256] In service provisioning scenarios within a microservice architecture, microservice instances can be abstracted as vertices, and the call dependencies between services can be abstracted as edges. A graph model can then be generated based on these vertices and edges. During cluster rolling upgrades or fault migrations, the management system can automatically calculate a set of related services that need to be taken offline or migrated simultaneously based on the graph model to ensure the integrity of the business chain.

[0257] In cloud computing resource allocation scenarios, the object operation processing method provided in this application can formally model the affinity and anti-affinity rules between different virtual machines, containers, and storage volumes to obtain a graph model. Through this graph model, the management system can automatically deduce and identify the complex underlying constraint dependencies, thereby achieving dynamic optimization of resource allocation strategies.

[0258] Figure 10 This is a schematic diagram of the structure of the object operation processing device provided in the embodiments of this application. Please refer to... Figure 10 The object operation processing device 10 may include:

[0259] The acquisition module 11 is used to acquire a first request event, which is used to request the electronic device to perform a first atomic operation on the first target object;

[0260] Processing module 12 is used to detect the state information of the graph model. If the state information indicates that the graph model is in a complete state, it determines the set of associated objects corresponding to the first target object based on the graph model. The graph model includes vertices and edges. Vertices indicate objects, and edges indicate the association between objects. The set of associated objects includes at least one associated object that has an association with the first target object. The complete state means that there is an edge between any two vertices that have an association in the graph model.

[0261] The processing module 12 is also used to perform a first atomic operation on the first target object and each associated object in the associated object set.

[0262] In one possible implementation, the acquisition module 11 is further configured to, if the state information indicates that the graph model is incomplete, acquire a vertex mapping table, the vertex mapping table being used to indicate the vertices corresponding to multiple objects in the graph model, the multiple objects including the first target object, the incomplete state being that there is no edge between at least two vertices that have an association relationship in the graph model;

[0263] The processing module 12 is also used to perform a completion operation on the graph model based on the vertex mapping table to obtain the completed graph model, and configure the state information of the completed graph model as the first information, which is used to indicate the completion state; and determine the set of associated objects based on the completed graph model.

[0264] In one possible implementation, the processing module 12 is specifically used for:

[0265] Based on M vertices in the vertex mapping table, generate P connected components, each consisting of N vertices. Any two vertices in the N vertices are related to each other. N is an integer greater than 1 and less than or equal to M, and P is an integer greater than or equal to 1.

[0266] Based on P connected components, the edges between M vertices are completed to obtain the completed graph model.

[0267] In one possible implementation, the processing module 12 is specifically used for:

[0268] Determine the i-th vertex from the M vertices;

[0269] If the state of the i-th vertex is unvisited, among the remaining M-1 vertices excluding the i-th vertex, determine at least one vertex that is associated with the i-th vertex, and based on the i-th vertex and at least one vertex, generate the connected component corresponding to the i-th vertex, and update the state of the i-th vertex and the state of at least one vertex to the visited state.

[0270] If the state of the i-th vertex is visited or the connected component corresponding to the i-th vertex has been obtained, determine the state of the (i+1)-th vertex, and i takes the values ​​1, 2, ..., M-1 in sequence until P connected components are obtained.

[0271] In one possible implementation, before determining the i-th vertex among the M vertices, the processing module 12 is further configured to:

[0272] Configure the state of each of the M vertices to be unvisited.

[0273] In one possible implementation, the processing module 12 is specifically used for:

[0274] Determine the j-th connected component among P connected components;

[0275] The vertices in the j-th connected component are combined in pairs to obtain multiple vertex pairs. It is determined whether the multiple vertex pairs include target vertex pairs that do not have edges. If target vertex pairs exist, the edges between the target vertex pairs are filled in the graph model.

[0276] Where j takes the values ​​1, 2, ..., P in sequence.

[0277] In one possible implementation, the acquisition module 11 is further configured to acquire a second request event, the second request event being used to request the creation of a second target object;

[0278] The processing module 12 is also used to generate the first target vertex corresponding to the second target object in the graph model, and store the mapping relationship between the second target object and the first target vertex in the vertex mapping table, which is used to indicate the vertices corresponding to multiple objects in the graph model.

[0279] In one possible implementation, the processing module 12 is further configured to:

[0280] Among the multiple objects indicated by the graph model, determine whether there is a third target object that is related to the second target object;

[0281] If a third target object exists, add an edge between the first target vertex and the vertex corresponding to the third target object in the graph model, and update the state information of the graph model to the second information. The second information is used to indicate that the graph model is incomplete. An incomplete state means that there is no edge between at least two vertices that have an association relationship in the graph model.

[0282] In one possible implementation, the acquisition module 11 is further configured to acquire multiple request events at the same time;

[0283] The processing module 12 is further configured to: determine the fourth target object corresponding to the second atomic operation executed in the electronic device; and determine the second target vertex corresponding to the fourth target object based on a vertex mapping table, wherein the vertex mapping table is used to indicate the vertices corresponding to multiple objects in the graph model; determine the event types corresponding to multiple request events according to the second target vertex and the graph model, wherein the event types are conflict types or non-conflict types, wherein the conflict type is used to indicate that the request object in the corresponding request event conflicts with the fourth target object, and the non-conflict type is used to indicate that the request object in the corresponding request event does not conflict with the fourth target object; and process the multiple request events according to the event types corresponding to the multiple request events respectively.

[0284] In one possible implementation, the processing module 12 is specifically used for:

[0285] Identify multiple request objects based on multiple request events;

[0286] Based on the vertex mapping table, the third target vertex corresponding to multiple request objects is determined, and multiple third target vertices are obtained.

[0287] In the graph model, temporary vertices corresponding to each third target vertex are generated, resulting in multiple temporary vertices.

[0288] Based on the graph model and multiple third target vertices, determine the connected components corresponding to multiple temporary vertices. The connected components include temporary vertices and vertices that have edges with the temporary vertices.

[0289] Based on the connected components and the second target vertex corresponding to the multiple temporary vertices, determine the event types corresponding to the multiple request events.

[0290] In one possible implementation, the processing module 12 is specifically used for:

[0291] In the graph model, the associated vertices corresponding to each third target vertex are determined, and there are edges between the associated vertices and their corresponding third target vertices.

[0292] Among multiple temporary vertices, the third target vertex corresponding to each temporary vertex and the associated vertex corresponding to the third target vertex are determined as the connected components corresponding to each temporary vertex.

[0293] In one possible implementation, the processing module 12 is specifically used for:

[0294] Determine whether a target temporary vertex exists among multiple temporary vertices, and the connected component corresponding to the target temporary vertex includes the second target vertex;

[0295] If a target temporary vertex exists, the event type of the request event corresponding to the target temporary vertex is determined to be a conflict type, and the event types of the other request events among the multiple request events, excluding the request event corresponding to the target temporary vertex, are determined to be non-conflict types.

[0296] In one possible implementation, the processing module 12 is specifically used for:

[0297] Based on the event types corresponding to multiple request events, generate processing instructions corresponding to each request event. The processing instruction is one of the following: execute instruction, wait instruction, or reject instruction.

[0298] Based on the processing instructions corresponding to each of the multiple request events, the multiple request events are processed separately.

[0299] In one possible implementation, for request events of type conflict, the processing module 12 is specifically used for:

[0300] If the atomic operation requested by the request event conflicts with the second atomic operation, a rejection instruction is generated;

[0301] If the atomic operation requested by the event does not conflict with the second atomic operation, a wait instruction is generated.

[0302] In one possible implementation, for multiple request events of non-conflicting type, the processing module 12 is specifically used for:

[0303] Determine the execution order among the atomic operations requested by multiple request events;

[0304] Determine the priority order among request objects in multiple request events;

[0305] Based on the execution order and / or priority order, generate processing instructions for each request event in multiple request events.

[0306] For a description of the features in the embodiment corresponding to the object operation processing device, please refer to the relevant description in the embodiment corresponding to the object operation processing method, which will not be repeated here.

[0307] Figure 11 A schematic diagram of the structure of the electronic device provided in this application. Figure 11 As shown, the electronic device 20 provided in this embodiment includes at least one processor 21 and a memory 22. Optionally, the electronic device 20 further includes a communication component 23. The processor 21, memory 22, and communication component 23 are connected via a bus.

[0308] In the specific implementation process, at least one processor 21 executes computer execution instructions stored in memory 22, causing at least one processor 21 to perform the above-described object operation processing method.

[0309] The specific implementation process of processor 21 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.

[0310] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the application can be directly manifested as being executed by a hardware processor, or executed by a combination of hardware and software modules within the processor.

[0311] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.

[0312] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.

[0313] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when it is run.

[0314] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0315] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.

[0316] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.

[0317] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0318] The above provides a detailed description of the operation and processing methods, apparatus, and devices for the objects provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the above embodiments are only intended to help understand the methods and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A method for handling object operations, characterized in that, include: Obtain a first request event, the first request event being used to request the electronic device to perform a first atomic operation on a first target object; The state information of the graph model is detected. If the state information indicates that the graph model is in a complete state, the set of associated objects corresponding to the first target object is determined based on the graph model. The graph model includes vertices and edges. The vertices indicate objects, and the edges indicate the association between objects. The set of associated objects includes at least one associated object that has an association with the first target object. The complete state means that there is an edge between any two vertices that have an association in the graph model. The first atomic operation is performed on the first target object and each associated object in the set of associated objects.

2. The method according to claim 1, characterized in that, The method further includes: If the status information indicates that the graph model is incomplete, obtain the vertex mapping table. The vertex mapping table is used to indicate the vertices corresponding to multiple objects in the graph model. The multiple objects include the first target object. The incomplete state means that there is no edge between at least two vertices that are related in the graph model. Based on the vertex mapping table, a completion operation is performed on the graph model to obtain a completed graph model, and the state information of the completed graph model is configured as first information, which is used to indicate the completion state; Based on the completed graph model, the set of associated objects is determined.

3. The method according to claim 2, characterized in that, Based on the vertex mapping table, a completion operation is performed on the graph model to obtain the completed graph model, including: Based on the M vertices in the vertex mapping table, P connected components are generated. Each connected component includes N vertices, and any two vertices in the N vertices are associated with each other. N is an integer greater than 1 and less than or equal to M, and P is an integer greater than or equal to 1. Based on the P connected components, the edges between the M vertices are completed to obtain the completed graph model.

4. The method according to claim 3, characterized in that, Based on the M vertices in the vertex mapping table, generate P connected components, including: Determine the i-th vertex from the M vertices; If the state of the i-th vertex is unvisited, among the remaining M-1 vertices other than the i-th vertex, determine at least one vertex that is associated with the i-th vertex, and based on the i-th vertex and the at least one vertex, generate the connected component corresponding to the i-th vertex, and update the state of the i-th vertex and the state of the at least one vertex to the visited state; If the state of the i-th vertex is visited or the connected component corresponding to the i-th vertex has been obtained, determine the state of the (i+1)-th vertex, where i takes the values ​​1, 2, ..., M-1 in sequence until the P connected components are obtained.

5. The method according to claim 4, characterized in that, Before determining the i-th vertex among the M vertices, the method further includes: Configure the state of each of the M vertices to be unvisited.

6. The method according to claim 3, characterized in that, Based on the P connected components, the edges between the M vertices are completed, including: Determine the j-th connected component among the P connected components; The vertices in the j-th connected component are combined in pairs to obtain multiple vertex pairs. It is determined whether the multiple vertex pairs include target vertex pairs that do not have edges. If the target vertex pairs exist, the edges between the target vertex pairs are filled in the graph model. Wherein, j takes the values ​​1, 2, ..., P in sequence.

7. The method according to any one of claims 1-6, characterized in that, The method further includes: Obtain the second request event, which is used to request the creation of the second target object; In the graph model, a first target vertex corresponding to the second target object is generated, and the mapping relationship between the second target object and the first target vertex is stored in a vertex mapping table. The vertex mapping table is used to indicate the vertices corresponding to multiple objects in the graph model.

8. The method according to claim 7, characterized in that, The method further includes: Among the multiple objects indicated by the graph model, determine whether there is a third target object that is associated with the second target object; If the third target object exists, add an edge between the first target vertex and the vertex corresponding to the third target object in the graph model, and update the state information of the graph model to the second information. The second information is used to indicate that the graph model is in an incomplete state. The incomplete state means that there is no edge between at least two vertices that have an association relationship in the graph model.

9. The method according to any one of claims 1-6, characterized in that, The method further includes: Retrieve multiple request events at the same time; The fourth target object corresponding to the second atomic operation executed in the electronic device is determined, and the second target vertex corresponding to the fourth target object is determined based on the vertex mapping table, wherein the vertex mapping table is used to indicate the vertices corresponding to multiple objects in the graph model; Based on the second target vertex and the graph model, the event types corresponding to the plurality of request events are determined respectively. The event type is either a conflict type or a non-conflict type. The conflict type is used to indicate that the request object in the corresponding request event conflicts with the fourth target object, and the non-conflict type is used to indicate that the request object in the corresponding request event does not conflict with the fourth target object. The multiple request events are processed according to their respective event types.

10. The method according to claim 9, characterized in that, Based on the second target vertex and the graph model, the event types corresponding to the plurality of request events are determined, including: Based on the multiple request events, multiple request objects are determined; Based on the vertex mapping table, the third target vertex corresponding to each of the multiple request objects is determined, thus obtaining multiple third target vertices; In the graph model, temporary vertices corresponding to each third target vertex are generated, resulting in multiple temporary vertices; Based on the graph model and the plurality of third target vertices, the connected components corresponding to the plurality of temporary vertices are determined, and the connected components include temporary vertices and vertices that have edges with the temporary vertices; Based on the connected components corresponding to the multiple temporary vertices and the second target vertex, the event types corresponding to the multiple request events are determined.

11. The method according to claim 10, characterized in that, Based on the graph model and the plurality of third target vertices, determine the connected components corresponding to the plurality of temporary vertices, including: In the graph model, the associated vertices corresponding to each third target vertex are determined, and there are edges between the associated vertices and the corresponding third target vertices; Among the multiple temporary vertices, the third target vertex corresponding to each temporary vertex and the associated vertex corresponding to the third target vertex are determined as the connected components corresponding to each temporary vertex.

12. The method according to claim 10, characterized in that, Based on the connected components corresponding to the plurality of temporary vertices and the second target vertex, determine the event types corresponding to the plurality of request events, including: Determine whether a target temporary vertex exists among the plurality of temporary vertices, wherein the connected component corresponding to the target temporary vertex includes the second target vertex; If the target temporary vertex exists, the event type of the request event corresponding to the target temporary vertex is determined as the conflict type, and the event types of the other request events among the plurality of request events, excluding the request event corresponding to the target temporary vertex, are determined as the non-conflict type.

13. The method according to claim 9, characterized in that, Based on the event types corresponding to the multiple request events, the multiple request events are processed separately, including: Based on the event types corresponding to the multiple request events, a processing instruction corresponding to each of the multiple request events is generated, and the processing instruction is one of the following: an execution instruction, a wait instruction, or a rejection instruction; Based on the processing instructions corresponding to the multiple request events, the multiple request events are processed respectively.

14. The method according to claim 13, characterized in that, For request events with the event type described above as conflict type; Based on the event types corresponding to the multiple request events, generate processing instructions corresponding to the multiple request events, including: If the atomic operation requested by the request event conflicts with the second atomic operation, a rejection instruction is generated; If the atomic operation requested by the request event does not conflict with the second atomic operation, a wait instruction is generated.

15. The method according to claim 13, characterized in that, For multiple request events of the non-conflicting type; Based on the event types corresponding to the multiple request events, generate processing instructions corresponding to the multiple request events, including: Determine the execution order among the atomic operations requested by the multiple request events; Determine the priority order among the request objects in the plurality of request events; Based on the execution order and / or the priority order, a processing instruction corresponding to each of the plurality of request events is generated.

16. An object manipulation processing apparatus, characterized in that, include: The acquisition module is used to acquire a first request event, wherein the first request event is used to request the electronic device to perform a first atomic operation on a first target object; The processing module is used to detect the state information of the graph model. If the state information indicates that the graph model is in a complete state, the module determines the set of associated objects corresponding to the first target object based on the graph model. The graph model includes vertices and edges. The vertices indicate objects, and the edges indicate the association between objects. The set of associated objects includes at least one associated object that has an association with the first target object. The complete state means that there is an edge between any two vertices that have an association in the graph model. The processing module is further configured to perform the first atomic operation on the first target object and each associated object in the associated object set.

17. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for implementing the method as described in any one of claims 1 to 15 when executing the computer program.