Method and device for preventing repeated submission of a service, electronic equipment and storage medium

By providing a ring token issuance queue and database structure for each node in the distributed system, the problem of duplicate business submissions in the distributed system is solved, improving processing efficiency and stability.

CN117472908BActive Publication Date: 2026-05-15INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311490068.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-11-09
Publication Date
2026-05-15
Estimated Expiration
2043-11-09

AI Technical Summary

Technical Problem

In distributed systems, especially during peak periods or sudden business scenarios, existing technologies are unable to effectively prevent duplicate business submissions, leading to a surge in transaction data volume, high equipment processing pressure, and a decline in system processing capacity.

Method used

A circular token issuance queue is provided for each node in the distributed system. Combining the bucket arrays and doubly linked list structures of the first and second databases, the business transaction status is managed through token identification to prevent duplicate submissions.

Benefits of technology

It improves the accuracy and efficiency of business processing, reduces the probability of duplicate submissions, and ensures the stability and processing capacity of the system under high load conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117472908B_ABST
    Figure CN117472908B_ABST
Patent Text Reader

Abstract

The disclosure provides a method, device, equipment and medium for preventing business repeated submission, and relates to the technical field of big data. The method comprises the following steps: providing a token generator, the token generator comprising a ring token issuing queue and storing a plurality of token identifiers; providing a first database and a second database, the first database storing token identifiers in transactions, and the second database storing token identifiers of completed transactions; in response to an instruction that a business request is verified, obtaining a token identifier as a business token identifier; before executing a business transaction, judging whether the first and second double-linked lists contain the business token identifier; in response to the first and second double-linked lists not containing the business token identifier, inserting the business token identifier into the first double-linked list, and enabling a target node to execute a business transaction associated with the business request; and in response to the business transaction being executed, inserting the business token identifier into the second double-linked list, and deleting the business token identifier in the first double-linked list.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of big data technology, and more specifically, to a method, apparatus, electronic device, computer-readable storage medium, and computer program product for preventing duplicate business submissions. Background Technology

[0002] In related technologies, to prevent duplicate submissions of the same business logic during front-end and back-end message interaction, a common approach is to use a business primary key to prevent user errors and timeout retries. The back-end verifies the uniqueness of this business primary key to control duplicate transactions. The selection of the business primary key is usually determined based on the specific business scenario. For example, for a shopping order payment, the order number can be used as the business primary key to ensure that a purchase can only be paid for once. For transaction scenarios without a clearly defined business primary key, there is no field that clearly indicates the business intent to use as the business primary key, making it difficult to simply use the above mechanism to prevent duplicate transactions. For example, in mobile transfers, if a customer enters two identical transactions on the front end, the back-end cannot distinguish whether it is a duplicate submission or if the customer actually needs to initiate two transfers, easily leading to duplicate entries. Furthermore, for systems using a distributed architecture, because the storage of each node is independent, and given the large transaction volume in distributed systems, preventing duplicate submissions becomes increasingly important. Additionally, during peak business periods, the surge in transaction data puts significant pressure on device processing, making duplicate submissions more likely. Summary of the Invention

[0003] In view of the above problems, this disclosure provides methods, apparatus, electronic devices, computer-readable storage media and computer program products for preventing duplicate business submissions, which can effectively prevent duplicate business submissions and effectively improve business processing efficiency.

[0004] One aspect of this disclosure provides a method for preventing duplicate business submissions, applied to a distributed system comprising multiple nodes. The method includes: providing a token generator for each node in the distributed system, the token generator including a circular token issuance queue storing multiple token identifiers; providing a first database and a second database, the first database storing token identifiers in transactions, and the second database storing token identifiers for completed transactions, both the first and second databases including bucket arrays and doubly linked lists; and in response to a business request verification successful instruction, retrieving a token identifier from the target node's circular token issuance queue as a business token identifier, and retrieving the token identifier from the circular token issuance queue. The token issuance queue deletes the acquired token identifier, and the target node is determined based on the business request. Before the target node executes the business transaction associated with the business request, it is determined whether the business token identifier is contained in the first doubly linked list of the first database and the second doubly linked list of the second database. In response to the instruction that the business token identifier is not contained in the first doubly linked list and the second doubly linked list, the business token identifier is inserted into the first doubly linked list, and the target node executes the business transaction associated with the business request. In response to the instruction that the business transaction has been completed, the business token identifier is inserted into the second doubly linked list, and the business token identifier is deleted from the first doubly linked list.

[0005] In some embodiments of this disclosure, determining whether the first doubly linked list of the first database and the second doubly linked list of the second database contain the business token identifier includes: generating a business hash value based on the obtained business token identifier; generating a first identifier of the first bucket array of the first database and a second identifier of the second bucket array of the second database based on the business hash value; locating the first doubly linked list based on the first identifier and locating the second doubly linked list based on the second identifier; and comparing whether the first doubly linked list and the second doubly linked list contain the business token identifier.

[0006] In some embodiments of this disclosure, the total number of remaining token identifiers in the ring token issuance queue of the target node is determined. When the total number of remaining token identifiers is less than a first set threshold, a new token identifier is generated through an asynchronous thread. When the total number of remaining token identifiers in the ring token issuance queue is less than a second set threshold, the newly generated token identifier is stored in the ring token issuance queue.

[0007] In some embodiments of this disclosure, the method further includes: inserting the token identifier into the second doubly linked list after the insertion time of the token identifier in the first doubly linked list exceeds a first set time, and deleting the token identifier from the first doubly linked list.

[0008] In some embodiments of this disclosure, the method further includes: deleting the token identifier from the second doubly linked list after the insertion time of the token identifier in the second doubly linked list exceeds a second set time.

[0009] In some embodiments of this disclosure, when the service token identifier is inserted into the first doubly linked list and the second doubly linked list, the service token identifier is inserted at the head node position of the first doubly linked list and the second doubly linked list.

[0010] In some embodiments of this disclosure, the token identifier includes node identity information, a token generation timestamp, and an incrementing sequence number.

[0011] Another aspect of this disclosure provides an apparatus for preventing duplicate business submissions, applied to a distributed system comprising multiple nodes, wherein the apparatus comprises: a first module configured to provide a token generator to each node of the distributed system, the token generator including a circular token issuance queue storing multiple token identifiers; a second module configured to provide a first database and a second database, the first database storing token identifiers in a transaction, and the second database storing token identifiers upon transaction completion, both the first database and the second database including a bucket array and a doubly linked list; and a response module configured to respond to a business request verification successful instruction, obtain a token identifier from the circular token issuance queue of the target node as a business token identifier, and retrieve the token identifier from the circular token issuance queue as a business token identifier. The issuance queue deletes the acquired token identifier, and the target node is determined based on the business request; the judgment module is configured to determine whether the business token identifier is contained in the first doubly linked list of the first database and the second doubly linked list of the second database before the target node executes the business transaction associated with the business request; the first insertion module is configured to insert the business token identifier into the first doubly linked list in response to the instruction that the business token identifier is not contained in the first doubly linked list and the second doubly linked list, and cause the target node to execute the business transaction associated with the business request; the second insertion module is configured to insert the business token identifier into the second doubly linked list in response to the instruction that the business transaction has been completed, and delete the business token identifier from the first doubly linked list.

[0012] In some exemplary embodiments of this disclosure, the judgment module includes a judgment submodule, which is configured to: generate a business hash value based on the obtained business token identifier; generate a first identifier of a first bucket array of a first database and a second identifier of a second bucket array of a second database based on the business hash value; locate the first doubly linked list based on the first identifier and locate the second doubly linked list based on the second identifier; and compare whether the first doubly linked list and the second doubly linked list contain the business token identifier.

[0013] In some exemplary embodiments of this disclosure, the device for preventing duplicate service submissions further includes a storage module configured to: determine the total number of remaining token identifiers in the ring token issuance queue of the target node; when the total number of remaining token identifiers is less than a first preset threshold, generate a new token identifier through an asynchronous thread; and when the total number of remaining token identifiers in the ring token issuance queue is less than a second preset threshold, store the newly generated token identifier in the ring token issuance queue.

[0014] In some exemplary embodiments of this disclosure, the device for preventing duplicate service submissions further includes a first insertion submodule, configured to: insert the token identifier into the second doubly linked list and delete the token identifier from the first doubly linked list after the insertion time of the token identifier in the first doubly linked list exceeds a first set time.

[0015] In some exemplary embodiments of this disclosure, the device for preventing duplicate service submissions further includes a second insertion submodule configured to delete the token identifier in the second doubly linked list after the insertion time of the token identifier in the second doubly linked list exceeds a second set time.

[0016] Another aspect of this disclosure provides an electronic device including one or more processors and a storage device, wherein the storage device is used to store executable instructions that, when executed by the processor, implement the method described above.

[0017] Another aspect of this disclosure provides a computer-readable storage medium storing computer-executable instructions that, when executed, are used to implement the methods described above.

[0018] Another aspect of this disclosure provides a computer program that includes computer-executable instructions that, when executed, are used to implement the methods described above.

[0019] According to embodiments of this disclosure, a ring token issuance queue stores a token identifier for each node. This can be applied to scenarios where there is no clearly defined common transaction identifier. The ring token issuance queue also facilitates token swapping operations quickly, meeting the needs of sudden business surges. Furthermore, the ring token issuance queue has a certain token capacity limit, enabling rate limiting for sudden business surges. By setting bucket arrays and doubly linked lists in the first and second databases, it is easy to quickly insert, delete, and query token identifiers in the first and second databases, improving processing speed. Moreover, by marking transactions with business token identifiers, and storing business token identifiers during and after transactions separately, the problem of duplicate submissions during business transactions can be effectively avoided. Attached Figure Description

[0020] The foregoing contents, as well as other objects, features, and advantages of this disclosure, will become clearer from the following description of embodiments with reference to the accompanying drawings, in which:

[0021] Figure 1 The diagram illustrates a system architecture for a method to prevent duplicate service submissions that can be applied to embodiments of this disclosure.

[0022] Figure 2 A flowchart illustrating a method for preventing duplicate service submissions according to an embodiment of this disclosure is shown schematically.

[0023] Figure 3 This schematically illustrates a flowchart of operation S240 of a method for preventing duplicate service submissions according to an embodiment of the present disclosure;

[0024] Figure 4 This illustration schematically shows a flowchart of a method for preventing duplicate service submissions according to an embodiment of the present disclosure, which involves determining the total number of remaining token identifiers in a ring token issuance queue.

[0025] Figure 5 This schematically illustrates a flowchart of a method for preventing duplicate service submissions according to an embodiment of the present disclosure when the token insertion time exceeds a first preset time.

[0026] Figure 6 This schematically illustrates a flowchart of a method for preventing duplicate service submissions according to an embodiment of the present disclosure when the token insertion time exceeds a second preset time.

[0027] Figure 7 This illustration schematically shows a flowchart of a method for preventing duplicate business submissions according to an embodiment of the present disclosure, in which a token identifier is inserted into a doubly linked list;

[0028] Figure 8A block diagram schematically illustrates an apparatus for preventing duplicate service submissions according to embodiments of the present disclosure; and

[0029] Figure 9 A block diagram of an electronic device according to an embodiment of the present disclosure is shown schematically. Detailed Implementation

[0030] The embodiments of the present disclosure will now be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the disclosure. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of the present disclosure for ease of explanation. However, it will be apparent that one or more embodiments may be practiced without these specific details. Furthermore, descriptions of well-known structures and techniques are omitted in the following description to avoid unnecessarily obscuring the concepts of the present disclosure.

[0031] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. The terms “comprising,” “including,” etc., as used herein indicate the presence of features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.

[0032] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.

[0033] When using expressions such as "at least one of A, B, or C," it should generally be interpreted in accordance with the meaning commonly understood by those skilled in the art (e.g., "a system having at least one of A, B, or C" should include, but is not limited to, systems having A alone, having B alone, having C alone, having A and B, having A and C, having B and C, and / or having A, B, and C, etc.). The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, features defined with "first" or "second" may explicitly or implicitly include one or more features.

[0034] In the technical solution disclosed herein, the user information (including but not limited to user personal information, user image information, user device information, such as location information) and data (including but not limited to data used for analysis, stored data, and displayed data) involved are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, storage, use, processing, transmission, provision, disclosure, and application of the relevant data all comply with the relevant laws, regulations, and standards of the relevant countries and regions, necessary confidentiality measures have been taken, and they do not violate public order and good morals. Corresponding operation entry points are provided for users to choose to authorize or refuse.

[0035] In this article, the term "circular token issuing queue" refers to a circular queue used to store token identifiers. Unlike ordinary queues, when the tail pointer of a circular token issuing queue points to the position after the last element of the queue, it will circle back to the beginning of the queue, forming a circular structure. Circular token issuing queues have a fixed maximum capacity, which can accommodate a limited number of token identifiers. They can reuse memory space and avoid memory waste to a certain extent.

[0036] In this article, the term "bucket array" refers to a data structure typically used to group, categorize, or hash a set of elements. It consists of multiple buckets, each of which can hold one or more elements. By dividing the data into multiple smaller sets, it facilitates efficient storage, retrieval, and manipulation of elements.

[0037] In this paper, the term "doubly linked list" refers to a linear data structure that includes one or more linked list nodes. Each linked list node contains two pointers: one pointer to the previous linked list node and the other pointer to the next linked list node. Doubly linked lists allow traversal of elements from front to back or from back to front. Doubly linked lists facilitate element insertion and deletion operations, and allow direct access to the previous linked list node without having to traverse from the head linked list node.

[0038] In a distributed system, which comprises multiple nodes, the lack of a clear business primary key can lead to indistinguishable transactions between front-end and back-end nodes. For example, in a mobile money transfer, a customer might enter the same transaction twice on the front end, and the back end cannot distinguish between duplicate submissions and actual two separate transfers, potentially resulting in duplicate entries. Furthermore, in scenarios with sudden increases in business activity (such as product launches, promotions, or flash sales), the high transaction frequency makes it easy for the same transaction to be submitted multiple times, leading to a surge in traffic. This not only increases the likelihood of duplicate submissions but also puts greater pressure on the system's anti-duplicate processing capabilities, hindering its ability to handle such scenarios.

[0039] To address the problem of excessive processing pressure caused by a sudden increase in business volume, embodiments of this disclosure provide methods, apparatus, electronic devices, readable storage media, and computer program products for preventing duplicate business submissions. These are applied to distributed systems including multiple nodes and can prevent duplicate business submissions while also handling scenarios with sudden increases in business volume, thereby improving the speed and accuracy of business processing.

[0040] The method for preventing duplicate service submissions according to embodiments of this disclosure is applied to a distributed system including multiple nodes. The method includes, but is not limited to: providing a token generator for each node in the distributed system, the token generator including a circular token issuance queue storing multiple token identifiers; providing a first database and a second database, the first database storing token identifiers in transactions, and the second database storing token identifiers upon transaction completion, both the first and second databases including bucket arrays and doubly linked lists; in response to a service request verification success instruction, retrieving a token identifier from the target node's circular token issuance queue as a service token identifier, and deleting the retrieved token identifier from the circular token issuance queue, the target node being determined based on the service request; before the target node executes the service transaction associated with the service request, determining whether the first doubly linked list in the first database and the second doubly linked list in the second database contain a service token identifier; in response to an instruction that the first and second doubly linked lists do not contain a service token identifier, inserting the service token identifier into the first doubly linked list and causing the target node to execute the service transaction associated with the service request; in response to an instruction that the service transaction has been completed, inserting the service token identifier into the second doubly linked list and deleting the service token identifier from the first doubly linked list.

[0041] According to embodiments of this disclosure, a ring token issuance queue stores a token identifier for each node. This can be applied to scenarios where there is no clearly defined common transaction identifier. The ring token issuance queue also facilitates token swapping operations quickly, meeting the needs of sudden business surges. Furthermore, the ring token issuance queue has a certain token capacity limit, enabling rate limiting for sudden business surges. By setting bucket arrays and doubly linked lists in the first and second databases, it is easy to quickly insert, delete, and query token identifiers in the first and second databases, improving processing speed. Moreover, by marking transactions with business token identifiers, and storing business token identifiers during and after transactions separately, the problem of duplicate submissions during business transactions can be effectively avoided.

[0042] Figure 1 This diagram schematically illustrates a system architecture for preventing duplicate service submissions, to which embodiments of this disclosure can be applied. It should be noted that... Figure 1 The examples shown are merely examples of system architectures applicable to the embodiments of this disclosure, intended to help those skilled in the art understand the technical content of this disclosure. However, they do not imply that the embodiments of this disclosure cannot be used in other devices, systems, environments, or scenarios. It should be noted that the method for preventing duplicate business submissions provided in the embodiments of this disclosure can be used in the field of big data technology, the financial field in related aspects of big data, and also in any field other than those mentioned above. The method and apparatus for preventing duplicate business submissions provided in the embodiments of this disclosure do not limit the application field.

[0043] like Figure 1 As shown, an exemplary system architecture 100 for which methods to prevent duplicate service submissions can be applied may include terminal devices 101, 102, and 103, a network 104, and a server 105. The network 104 serves as a medium for providing a communication link between the terminal devices 101, 102, and 103 and the server 105. The network 104 may include various connection types, such as wired or wireless communication links or fiber optic cables, etc.

[0044] Users can use terminal devices 101, 102, and 103 to interact with server 105 via network 104 to receive or send messages, etc. Various communication client applications can be installed on terminal devices 101, 102, and 103, such as email client applications, file processing applications, shopping applications, web browser applications, search applications, instant messaging tools, email clients, social media platform software, etc. (for example only).

[0045] Terminal devices 101, 102, and 103 can be various electronic devices with displays that support functions such as data input, file sending, data analysis, data processing, and web browsing, including but not limited to smartphones, tablets, laptops, and desktop computers.

[0046] Server 105 can be a server providing various services, such as a backend management server (for example only) that supports data obtained by users using terminal devices 101, 102, and 103 or websites they browse. The backend management server can analyze and process received user requests and other data, and feed back the processing results (such as web pages, information, or data obtained or generated based on user requests) to the terminal devices. It can also analyze or process files sent by users and control the terminal devices based on the processing results, such as restricting access to the terminal devices.

[0047] It should be noted that the method for preventing duplicate service submissions provided in this embodiment can generally be executed by server 105. Correspondingly, the device for preventing duplicate service submissions provided in this embodiment can generally be located in terminal devices 101, 102, and 103. The method for preventing duplicate service submissions provided in this embodiment can also be executed by a terminal device different from terminal devices 101, 102, and 103, but capable of communicating with terminal devices 101, 102, and 103. Correspondingly, the device for preventing duplicate service submissions provided in this embodiment can also be located in a terminal device different from terminal devices 101, 102, and 103, but capable of communicating with terminal devices 101, 102, and 103.

[0048] It should be understood that Figure 1 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.

[0049] The following will be through Figures 2 to 7 The method for preventing duplicate service submissions according to embodiments of this disclosure will be described in detail.

[0050] Figure 2 A flowchart illustrating a method for preventing duplicate service submissions according to an embodiment of this disclosure is shown schematically.

[0051] like Figure 2 As shown, the process 200 of the method for preventing duplicate service submissions in this embodiment of the present disclosure includes operations S210 to S260.

[0052] In operation S210, a token generator is provided for each node in the distributed system. The token generator includes a circular token issuance queue, which stores multiple token identifiers.

[0053] In some embodiments of this disclosure, the distributed system includes multiple nodes. For example, these nodes can act as service processing nodes, executing service transactions associated with service requests received from front-end nodes. In embodiments of this disclosure, a node can handle one type of service, and while processing the corresponding service, it can receive service requests from different front-end nodes.

[0054] When a node in a distributed system experiences a surge in business volume during scenarios like flash sales or limited-time offers, one or more nodes in the distributed system may suddenly receive a large number of business requests. Especially during flash sales or limited-time offers, business requests sent from front-end nodes are prone to submitting numerous duplicate requests for the same transaction. It is necessary to quickly determine the processing status of the business transaction corresponding to each request (e.g., processing in progress, processing completed) to avoid duplicate requests.

[0055] By providing a token generator for each node in the distributed system, the token generator is used to generate token identifiers, which are then used to determine the processing status of the business transaction corresponding to the business request.

[0056] In scenarios with a surge in business volume, such as flash sales and limited-time offers, in order to make full use of node resources and reduce processing pressure under high business volume, the token issuance queue in the token generator is designed as a circular token issuance queue. On the one hand, the circular token issuance queue has a fixed capacity, which can effectively utilize limited memory space. That is, it can process business with minimal memory resource usage under scenarios with a surge in business volume, thereby reducing processing pressure.

[0057] The ring token issuance queue stores multiple token identifiers, which can serve as global identifiers during the execution of business transactions. This enables monitoring of various states within the same business transaction, preventing duplicate submissions. However, the ring token issuance queue has a limited capacity for storing token identifiers. Therefore, in scenarios with a surge in business volume, when the number of business requests exceeds the node's processing capacity, it can lead to node crashes in the distributed system. By setting up a ring token issuance queue, effective rate limiting can be implemented for business operations during such surges, ensuring that nodes can operate at maximum load and guaranteeing their efficiency and stability.

[0058] In embodiments of this disclosure, the front pointer of the token identifier in the ring token issuance queue can be, for example, a token identifier consumer, pointing to the first element of the queue. The back pointer can be, for example, a token identifier producer, pointing to the position after the last element of the queue. The number of token identifiers stored in the ring token issuance queue decreases as consumers use them; specifically, when a token identifier in the ring token issuance queue is acquired or consumed, the token identifier is deleted from the ring token issuance queue.

[0059] In operation S220, a first database and a second database are provided. The first database is used to store token identifiers in a transaction, and the second database is used to store token identifiers for completed transactions. Both the first database and the second database include a bucket array and a doubly linked list.

[0060] In some embodiments of this disclosure, in order to accurately determine the transaction status of a business, the transaction status is monitored and determined by storing token identifiers in different databases. For example, token identifiers during a transaction are stored in a first database, and token identifiers indicating transaction completion are stored in a second database.

[0061] Because the first and second databases involve frequent write, delete, and query operations during token storage, to meet the requirements of these operations and improve the processing efficiency of write, delete, and query operations, the first and second databases are configured with a structure containing bucket arrays and doubly linked lists. By configuring the first and second databases with this structure, the advantages of bucket arrays—high random access efficiency, strong accessibility, and fast search speed—can be achieved, while simultaneously leveraging the advantages of doubly linked lists—relatively low memory usage, low space complexity, fast data insertion and deletion speeds, and high memory utilization. This facilitates fast searching and high-frequency insertion and deletion operations on tokens in the first and second databases, making it suitable for scenarios with sudden increases in business volume while ensuring query speed.

[0062] For example, the first database includes a first bucket array and a first doubly linked list, with the first bucket array associated with the first doubly linked list. The second database includes a second bucket array and a second doubly linked list, with the second bucket array and the second doubly linked list associated.

[0063] According to embodiments of this disclosure, a doubly linked list allows efficient traversal of elements in both forward and reverse directions, enabling quick retrieval of corresponding elements. Furthermore, each node in a doubly linked list has references to both the previous and next nodes, making deletion more efficient because it eliminates the need to traverse the singly linked list to find the previous node for deletion. This satisfies the requirements of embodiments of this disclosure for frequent insertion, deletion, and data retrieval in both the first and second doubly linked lists, improving data processing efficiency and conserving node processing resources during scenarios with sudden increases in workload.

[0064] In operation S230, in response to the instruction that the business request has been verified, a token identifier is obtained from the ring token issuance queue of the target node as the business token identifier, and the obtained token identifier is deleted from the ring token issuance queue. The target node is determined according to the business request.

[0065] For example, a user might send a business request to a front-end node in a distributed system. The front-end node performs basic business request verification operations, such as verifying the user's identity and the validity of the transaction amount. If the business request verification passes, it is sent to a back-end node for execution. Before executing the business transaction, the target node is determined based on the business request. This could be done by the business request containing the target node's interface information or location information, allowing the target node to be identified from multiple nodes within the business system.

[0066] After the target node is determined, a token identifier is further obtained from the target node's ring token issuance queue as a business token identifier. This business token identifier is used to determine the status of the same business transaction to avoid duplicate submissions. After obtaining a token identifier from the ring token issuance queue, the token identifier obtained from the queue is deleted to prevent other business transactions from obtaining the same token identifier.

[0067] In the embodiments of this disclosure, the token identifier includes node identity information, a token generation timestamp, and an incrementing sequence number. For example, the node identity information is the node ID, the token generation timestamp ensures the chronological order of the token identifiers, and the incrementing sequence number can be used to identify more token identifiers. The token identifier, composed of the above elements, ensures a sufficient quantity of token identifiers to meet the demands of high-concurrency business processes.

[0068] In operation S240, before the target node executes the business transaction associated with the business request, it is determined whether the first doubly linked list of the first database and the second doubly linked list of the second database contain a business token identifier.

[0069] In some embodiments of this disclosure, duplicate business transactions can be prevented by determining whether a business token identifier is contained in a first doubly linked list of the first database and a second doubly linked list of the second database. For example, if the same business token identifier exists in the first doubly linked list, it indicates that the same business transaction is in the process of being processed. If the same business token identifier exists in the second doubly linked list, it indicates that the same business transaction has already been completed. Therefore, the problem of duplicate submissions can be avoided.

[0070] If the business token is not found in either the first or second database, it indicates that the business is not being processed repeatedly. This allows the target node to execute the business transaction associated with the business request.

[0071] Figure 3 The flowchart illustrating the method for preventing duplicate service submissions according to an embodiment of the present disclosure is shown in operation S240.

[0072] like Figure 3 As shown, operation S240 includes operations S241 to S244.

[0073] In operation S241, a business hash value is generated based on the obtained business token identifier.

[0074] For example, a business token identifier includes node identity information, token generation timestamp, and an incrementing sequence number. A hash operation is performed on the key in the business token identifier to obtain the business hash value.

[0075] In operation S242, a first identifier of the first bucket array of the first database is generated based on the business hash value, and a second identifier of the second bucket array of the second database is generated.

[0076] For example, a modulo operation can be performed on the generated business hash value to generate the first identifier of the first bucket array and the second identifier of the second bucket array.

[0077] In the embodiments of this disclosure, since the first database and the second database store different data and need to be stored separately, but the operation in operation S242 is the same, the same calculation steps can be used in the calculation process, thereby saving computing resources and improving the speed and efficiency of data processing.

[0078] In operation S243, the first doubly linked list is located according to the first identifier and the second doubly linked list is located according to the second identifier.

[0079] The first doubly linked list and the second doubly linked list are located in the first database and the second database respectively based on the first identifier and the second identifier, so as to quickly determine the location of the business token identifier.

[0080] In operation S244, the first doubly linked list and the second doubly linked list are compared to see if they contain business token identifiers.

[0081] According to embodiments of this disclosure, by setting a first doubly linked list and a second doubly linked list, comparison results can be generated faster during the comparison of business token identifiers, thereby saving processing time and meeting the needs of sudden increases in business volume.

[0082] According to embodiments of this disclosure, on the one hand, in the event of a sudden surge in traffic, to prevent the business processing system from crashing, a ring token issuance queue is used to limit the surge in traffic while ensuring the normal operation of the business processing system. On the other hand, by setting the first and second databases into a bucket array and a doubly linked list structure, the business system can determine whether traffic is submitted repeatedly as quickly as possible. This improves the stability and processing efficiency of the business processing system.

[0083] In operation S250, in response to the instruction that the first doubly linked list and the second doubly linked list do not contain a business token identifier, the business token identifier is inserted into the first doubly linked list, and the target node executes the business transaction associated with the business request.

[0084] If neither the first nor the second doubly linked list contains a business token identifier, it indicates that there is no issue of duplicate business submissions. Therefore, the target node executes the business transaction according to the business request, ensuring the smooth progress of the business transaction. When a business transaction is being processed, in order to track the status of the business transaction, a business token identifier is inserted into the first doubly linked list, thereby clearly indicating the status of the business transaction associated with the business token identifier.

[0085] In operation S260, in response to the instruction that the business transaction has been completed, the business token identifier is inserted into the second doubly linked list and the business token identifier is deleted from the first doubly linked list.

[0086] A business transaction is considered complete upon completion, including scenarios such as successful transaction, timeout, and failure. At this point, the business token identifier is deleted from the first doubly linked list and simultaneously inserted into the second doubly linked list. By accurately recording the deletion and insertion of business token identifiers in both lists, the status of the business transaction can be precisely tracked, effectively preventing duplicate submissions. Furthermore, the first and second doubly linked lists facilitate rapid insertion and deletion of business token identifiers, improving processing efficiency.

[0087] Figure 4 The flowchart illustrating the determination of the total number of remaining token identifiers in the ring token issuance queue is shown in the method for preventing duplicate service submissions according to an embodiment of the present disclosure.

[0088] like Figure 4 As shown, the process of deleting tokens from the circular token issuance queue also includes operation S300.

[0089] In operation S300, the total number of remaining tokens in the target node's ring token issuance queue is determined. When the total number of remaining tokens is less than a first set threshold, a new token is generated through an asynchronous thread. When the total number of remaining tokens in the ring token issuance queue is less than a second set threshold, the newly generated token is stored in the ring token issuance queue.

[0090] In some embodiments of this disclosure, when there is a sudden surge in traffic, the limited number of tokens stored in the ring token issuance queue means that generating new tokens after the remaining tokens in the queue are exhausted will take time. This further reduces the system's processing efficiency and exacerbates the pressure on business processing during a surge in traffic. To address this issue, the token generator can execute operation S300 to determine the total number of remaining tokens in the ring token issuance queue. If the total number of remaining tokens is less than a first preset threshold, a new token is generated asynchronously, thus avoiding the extra time consumed in generating new tokens and improving efficiency. The first preset threshold can be set according to the surge in traffic. For example, if the surge in traffic is large, the first preset threshold is larger, such as the total number of remaining tokens being half the total capacity of the ring token issuance queue. Conversely, if the surge in traffic is small, the first preset threshold is smaller, such as the total number of remaining tokens being one-quarter of the total capacity of the ring token issuance queue.

[0091] In some embodiments of this disclosure, when the total number of remaining token identifiers in the ring token issuance queue is less than a second preset threshold, newly generated token identifiers are stored in the ring token issuance queue. For example, the second preset threshold can be 0, or one-tenth of the total capacity of the ring token issuance queue. The second preset threshold can be adjusted according to the actual scenario, thereby saving time in storing newly generated token identifiers in the ring token issuance queue and improving processing efficiency.

[0092] Figure 5 The flowchart illustrates a method for preventing duplicate service submissions according to an embodiment of the present disclosure when the token insertion time exceeds a first preset time. Figure 6 The flowchart illustrates a method for preventing duplicate service submissions according to an embodiment of the present disclosure when the token insertion time exceeds a second set time.

[0093] like Figure 5 and Figure 6As shown, the process of inserting the token identifier into the first database and the second database also includes operations S410 and S420.

[0094] In operation S410, after the insertion time of the token identifier in the first doubly linked list exceeds the first set time, the token identifier is inserted into the second doubly linked list and the token identifier in the first doubly linked list is deleted.

[0095] For example, the first set duration could be the timeout duration for business transactions. If a business transaction takes a long time to process, it can be considered a timeout, and the token flag from the first doubly linked list can be inserted into the second doubly linked list. This indicates that the business transaction is in a completed state, and the result is a timeout. This avoids the situation where too many token flags are stored in the first doubly linked list, leading to resource waste.

[0096] In operation S420, after the insertion time of the token identifier in the second doubly linked list exceeds the second set time, the token identifier is deleted from the second doubly linked list.

[0097] For example, the second set duration can be a time period after the business processing is completed. Since the second doubly linked list stores tokens indicating the completion of business transactions for all nodes in the distributed system, if it is not cleaned up in a timely manner, the amount of data will continue to increase, increasing query time. Therefore, by limiting the second set duration, on the one hand, the duplicate submission of business transactions can be effectively avoided, and on the other hand, the amount of data in the second doubly linked list can be effectively reduced, reducing data query time and improving data processing efficiency.

[0098] Figure 7 The flowchart illustrating a method for preventing duplicate business submissions according to an embodiment of the present disclosure is shown in which a token identifier is inserted into a doubly linked list.

[0099] like Figure 7 As shown, methods to prevent duplicate business submissions also include operation S500.

[0100] In operation S500, when inserting the business token identifier into the first doubly linked list and the second doubly linked list, the business token identifier is inserted into the head node position of the first doubly linked list and the second doubly linked list.

[0101] According to embodiments of this disclosure, by inserting the business token identifier into the head node position of the first doubly linked list and the second doubly linked list, the data query time can be reduced and efficiency improved because the inserted business token identifier is more likely to be queried or deleted first during the query process.

[0102] According to embodiments of this disclosure, a ring token issuance queue stores a token identifier for each node. This can be applied to scenarios where there is no clearly defined common transaction identifier. The ring token issuance queue also facilitates token swapping operations quickly, meeting the needs of sudden business surges. Furthermore, the ring token issuance queue has a certain token capacity limit, enabling rate limiting for sudden business surges. By setting bucket arrays and doubly linked lists in the first and second databases, it is easy to quickly insert, delete, and query token identifiers in the first and second databases, improving processing speed. Moreover, by marking transactions with business token identifiers, and storing business token identifiers during and after transactions separately, the problem of duplicate submissions during business transactions can be effectively avoided.

[0103] Figure 8 A block diagram of an apparatus for preventing duplicate service submissions according to an embodiment of the present disclosure is shown schematically.

[0104] like Figure 8 As shown, the device 600 for preventing duplicate service submissions is applied to a distributed system including multiple nodes. The device 600 includes a first module 601, a second module 602, a response module 603, a judgment module 604, a first insertion module 605, and a second insertion module 606.

[0105] The first module 601 is configured to provide a token generator to each node in the distributed system. The token generator includes a circular token issuance queue, which stores multiple token identifiers. In one embodiment, the first module 601 can be used to perform the operation S210 described above, which will not be repeated here.

[0106] The second module 602 is configured to provide a first database and a second database. The first database stores token identifiers in a transaction, and the second database stores token identifiers indicating transaction completion. Both the first and second databases include a bucket array and a doubly linked list. In one embodiment, the second module 602 can be used to perform the operation S220 described above, which will not be repeated here.

[0107] The response module 603 is configured to respond to a successful service request verification instruction by retrieving a token identifier from the target node's ring token issuance queue as a service token identifier, and deleting the retrieved token identifier from the ring token issuance queue. The target node is determined based on the service request. In one embodiment, the response module 603 can be used to perform the operation S230 described above, which will not be repeated here.

[0108] The determination module 604 is configured to determine whether a business token identifier is contained in the first doubly linked list of the first database and the second doubly linked list of the second database before the target node executes the business transaction associated with the business request. In one embodiment, the determination module 604 can be used to perform the operation S240 described above, which will not be repeated here.

[0109] The first insertion module 605 is configured to, in response to an instruction that neither the first nor the second doubly linked list contains a business token identifier, insert the business token identifier into the first doubly linked list and cause the target node to execute the business transaction associated with the business request. In one embodiment, the first insertion module 605 may be used to perform the operation S250 described above, which will not be repeated here.

[0110] The second insertion module 606 is configured to, in response to an instruction indicating that a business transaction has been completed, insert a business token identifier into a second doubly linked list and delete the business token identifier from the first doubly linked list. In one embodiment, the second insertion module 606 may be used to perform the operation S260 described above, which will not be repeated here.

[0111] In some exemplary embodiments of this disclosure, the judgment module includes a judgment submodule, which is configured to: generate a business hash value based on the obtained business token identifier; generate a first identifier of a first bucket array of a first database and a second identifier of a second bucket array of a second database based on the business hash value; locate a first doubly linked list based on the first identifier and locate a second doubly linked list based on the second identifier; and compare whether the first doubly linked list and the second doubly linked list contain a business token identifier.

[0112] In some exemplary embodiments of this disclosure, the apparatus for preventing duplicate service submissions further includes a storage module configured to: determine the total number of remaining token identifiers in the ring token issuance queue of the target node; when the total number of remaining token identifiers is less than a first preset threshold, generate a new token identifier through an asynchronous thread; and when the number of remaining token identifiers in the ring token issuance queue is less than a second preset threshold, store the newly generated token identifier in the ring token issuance queue.

[0113] In some exemplary embodiments of this disclosure, the apparatus for preventing duplicate service submissions further includes a first insertion submodule, configured to: insert the token identifier into a second doubly linked list and delete the token identifier from the first doubly linked list after the insertion time of the token identifier in the first doubly linked list exceeds a first set time.

[0114] In some exemplary embodiments of this disclosure, the apparatus for preventing duplicate service submissions further includes a second insertion submodule configured to delete the token identifier in the second doubly linked list after the insertion time of the token identifier in the second doubly linked list exceeds a second set time.

[0115] According to embodiments of this disclosure, any plurality of modules among the first module 601, second module 602, response module 603, judgment module 604, first insertion module 605, and second insertion module 606 can be combined into one module, or any one of these modules can be split into multiple modules. Alternatively, at least part of the functionality of one or more of these modules can be combined with at least part of the functionality of other modules and implemented in one module. According to embodiments of this disclosure, at least one of the first module 601, second module 602, response module 603, judgment module 604, first insertion module 605, and second insertion module 606 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or implemented in hardware or firmware by any other reasonable means of integrating or packaging the circuitry, or implemented in any one of the three implementation methods of software, hardware, and firmware, or in a suitable combination of any of these. Alternatively, at least one of the first module 601, the second module 602, the response module 603, the judgment module 604, the first insertion module 605, and the second insertion module 606 can be implemented at least partially as a computer program module, which can perform corresponding functions when the computer program module is run.

[0116] Figure 9 A block diagram of an electronic device according to an embodiment of the present disclosure is shown schematically. Figure 9 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.

[0117] like Figure 9 As shown, an electronic device 700 according to an embodiment of the present disclosure includes a processor 701, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage portion 708 into a random access memory (RAM) 703. The processor 701 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 701 may also include onboard memory for caching purposes. The processor 701 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present disclosure.

[0118] RAM 703 stores various programs and data required for the operation of electronic device 700. Processor 701, ROM 702, and RAM 703 are interconnected via bus 704. Processor 701 performs various operations of the method flow according to embodiments of the present disclosure by executing programs in ROM 702 and / or RAM 703. It should be noted that the programs may also be stored in one or more memories other than ROM 702 and RAM 703. Processor 701 may also perform various operations of the method flow according to embodiments of the present disclosure by executing programs stored in said one or more memories.

[0119] According to embodiments of this disclosure, the electronic device 700 may further include an input / output (I / O) interface 705, which is also connected to a bus 704. The electronic device 700 may also include one or more of the following components connected to the I / O interface 705: an input section 706 including a keyboard, mouse, etc.; an output section 707 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 708 including a hard disk, etc.; and a communication section 709 including a network interface card such as a LAN card, modem, etc. The communication section 709 performs communication processing via a network such as the Internet. A drive 710 is also connected to the I / O interface 705 as needed. A removable medium 711, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 710 as needed so that computer programs read from it can be installed into the storage section 708 as needed.

[0120] This disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs that, when executed, implement the method according to the embodiments of this disclosure.

[0121] According to embodiments of this disclosure, the computer-readable storage medium may be a non-volatile computer-readable storage medium, such as, but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, the computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to embodiments of this disclosure, the computer-readable storage medium may include ROM 702 and / or RAM 703 and / or one or more memories other than ROM 702 and RAM 703 described above.

[0122] Embodiments of this disclosure also include a computer program product comprising a computer program containing program code for performing the methods shown in the flowchart. When the computer program product is run on a computer system, the program code is used to cause the computer system to implement the methods provided in the embodiments of this disclosure.

[0123] When the computer program is executed by the processor 701, it performs the functions defined in the system / apparatus of this disclosure embodiments. According to embodiments of this disclosure, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0124] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and may be downloaded and installed via the communication section 709, and / or installed from a removable medium 711. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.

[0125] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 709, and / or installed from the removable medium 711. When the computer program is executed by the processor 701, it performs the functions defined in the system of this disclosure embodiment. According to embodiments of this disclosure, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0126] According to embodiments of this disclosure, program code for executing the computer programs provided in embodiments of this disclosure can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C", or similar programming languages. The program code can execute entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0127] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0128] Those skilled in the art will understand that the features described in the various embodiments and / or claims of this disclosure can be combined or combined in various ways, even if such combinations or combinations are not explicitly described in this disclosure. In particular, the features described in the various embodiments and / or claims of this disclosure can be combined or combined in various ways without departing from the spirit and teachings of this disclosure. All such combinations and / or combinations fall within the scope of this disclosure.

[0129] The embodiments of this disclosure have been described above. However, these embodiments are for illustrative purposes only and are not intended to limit the scope of this disclosure. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. The scope of this disclosure is defined by the appended claims and their equivalents. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of this disclosure, and all such substitutions and modifications should fall within the scope of this disclosure.

Claims

1. A method for preventing duplicate business logic submissions, applied to a distributed system comprising multiple nodes, wherein, The method includes: Each node of the distributed system is provided with a token generator, the token generator including a circular token issuance queue, the circular token issuance queue storing multiple token identifiers; A first database and a second database are provided. The first database is used to store token identifiers in transactions, and the second database is used to store token identifiers for completed transactions. Both the first database and the second database include bucket arrays and doubly linked lists. In response to the instruction that the business request verification is successful, a token identifier is obtained from the ring token issuance queue of the target node as a business token identifier, and the obtained token identifier is deleted from the ring token issuance queue. The target node is determined according to the business request. Before the target node executes the business transaction associated with the business request, it is determined whether the business token identifier is contained in the first doubly linked list of the first database and the second doubly linked list of the second database. The step of determining whether the first doubly linked list of the first database and the second doubly linked list of the second database contain the business token identifier includes: generating a business hash value based on the obtained business token identifier; generating a first identifier of the first bucket array of the first database and a second identifier of the second bucket array of the second database based on the business hash value; locating the first doubly linked list based on the first identifier and locating the second doubly linked list based on the second identifier; and comparing whether the first doubly linked list and the second doubly linked list contain the business token identifier. In response to the instruction that the business token identifier is not contained in the first doubly linked list and the second doubly linked list, the business token identifier is inserted into the first doubly linked list, and the target node executes the business transaction associated with the business request; In response to the instruction that the business transaction has been completed, the business token identifier is inserted into the second doubly linked list, and the business token identifier is deleted from the first doubly linked list.

2. The method according to claim 1, wherein, Determine the total number of remaining token identifiers in the target node's ring token issuance queue. When the total number of remaining token identifiers is less than a first preset threshold, A new token identifier is generated through an asynchronous thread, and when the total number of remaining token identifiers in the circular token issuance queue is less than a second set threshold, the newly generated token identifier is stored in the circular token issuance queue.

3. The method according to claim 1, wherein, Also includes: After the insertion time of the token identifier in the first doubly linked list exceeds the first set time, the token identifier is inserted into the second doubly linked list, and the token identifier in the first doubly linked list is deleted.

4. The method according to claim 3, wherein, Also includes: If the insertion time of the token identifier in the second doubly linked list exceeds the second set time, the token identifier is deleted from the second doubly linked list.

5. The method according to claim 1, wherein, When inserting the business token identifier into the first doubly linked list and the second doubly linked list, The business token identifier is inserted at the head node position of the first doubly linked list and the second doubly linked list.

6. The method according to any one of claims 1 to 5, wherein, The token identifier includes node identity information, token generation timestamp, and incrementing sequence number.

7. An apparatus for preventing duplicate service submissions, applied in a distributed system comprising multiple nodes, wherein, The device includes: The first module is configured to provide a token generator to each node of the distributed system. The token generator includes a circular token distribution queue, which stores multiple token identifiers. The second module is configured to provide a first database and a second database. The first database is used to store token identifiers in a transaction, and the second database is used to store token identifiers for completed transactions. Both the first database and the second database include a bucket array and a doubly linked list. The response module is configured to respond to the instruction that the business request has been verified, obtain a token identifier from the ring token issuance queue of the target node as a business token identifier, and delete the obtained token identifier from the ring token issuance queue. The target node is determined according to the business request. The judgment module is configured to, before the target node executes the business transaction associated with the business request, determine whether the first doubly linked list of the first database and the second doubly linked list of the second database contain the business token identifier; wherein, determining whether the first doubly linked list of the first database and the second doubly linked list of the second database contain the business token identifier includes: generating a business hash value based on the obtained business token identifier; generating a first identifier of the first bucket array of the first database and a second identifier of the second bucket array of the second database based on the business hash value; locating the first doubly linked list based on the first identifier and locating the second doubly linked list based on the second identifier; and comparing whether the first doubly linked list and the second doubly linked list contain the business token identifier; The first insertion module is configured to, in response to an instruction that the first doubly linked list and the second doubly linked list do not contain the business token identifier, insert the business token identifier into the first doubly linked list and cause the target node to execute the business transaction associated with the business request; The second insertion module is configured to, in response to the instruction that the business transaction has been completed, insert the business token identifier into the second doubly linked list and delete the business token identifier from the first doubly linked list.

8. One or more processors; A storage device for storing executable instructions, which, when executed by the processor, implement the method according to any one of claims 1 to 6.

9. A computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, implement the method according to any one of claims 1 to 6.

10. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1 to 6.