IP Library Granted Patent US 10,165,488
Granted Patent B2
US 10,165,488 · App. 15/606,241 · Granted Dec 25, 2018

Method of and system for processing a transaction request in distributed data processing systems

Inventor: Grigory Victorovich Demchenko (Moscow, RU)
Assignee: YANDEX EUROPE AG
H04W36/26G06F17/30371H04L45/28H04W36/12H04L45/02H04L45/44H04L61/103H04W36/0011
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,165,488
App. No.
15/606,241
Granted
Dec 25, 2018
Kind
B2
Abstract

There is disclosed a method of processing a transaction request. The transaction request is associated with a computer transaction which has to be executed in a succeed-or-fail-as-a-whole manner. The method is executable in a distributed processing system having a plurality of nodes. Each of executing nodes is associated with a pre-defined type of the computer transaction and is directly addressable by a controlling node. In response to receiving by the controlling node, from a client device, a transaction request, the controlling node determines, based on the pre-defined type of the computer transaction, a specific node of a set of executing nodes responsible for the pre-defined type of the computer transaction and sends the transaction request directly to the determined specific node for execution thereof. While the determined specific node executed the transaction requests, it blocks receiving of additional transaction requests until the transaction request is executed.

Claims (85)

1. A method of processing a transaction request associated with a computer transaction which has to be executed in a succeed-or-fail-as-a-whole manner, the method executable in a distributed processing system, the distributed processing system including:

a plurality of nodes, the plurality of nodes including a controlling node and a set of executing nodes, wherein

each of the set of executing nodes:

being associated with a pre-defined type of the computer transaction;

is directly addressable by the controlling node;

the set of executing nodes being organized in a hierarchy in accordance with the pre-defined type of the computer transaction executable by a given one of the set of executing nodes, such that:

the given node of the set of executing nodes is a child node to another node of the set of executing nodes based on the pre-defined type of the computer transaction executable by the child node being a nested type of the computer transaction to the pre-defined type of the computer transaction executable by the other node of the set of executing nodes, the other node of the set of executing nodes being a parent node;

the controlling node maintaining:

a list of unique addresses for each of the set of executing nodes; and

a mapping of each specific node of the set of executing nodes and an associated pre-defined type of the computer transaction executable by the specific node of the set of executing nodes;

the controlling node of the distributed processing system accessible by a client device via a communication network;

a data storage device for storing data with which the computer transaction is executed by the distributed processing system;

the method comprising:

receiving by the controlling node, from the client device, a transaction request to modify at least a portion of the data maintained in the data storage device, the transaction request including an indication of the pre-defined type of the computer transaction to be executed;

determining, by the controlling node, based on the pre-defined type of the computer transaction and the mapping, the specific node of the set of executing nodes responsible for the pre-defined type of the computer transaction;

using the list of unique addresses, sending the transaction request directly to the determined specific node of the set of executing nodes for execution thereof; the sending the transaction request to the identified specific node of the set of executing nodes causing the identified specific node of the set of executing nodes to execute:

blocking, by the identified specific node of the set of executing nodes, receiving of additional transaction requests until the transaction request is executed.

2. The method of claim 1 , wherein the blocking comprises:

executing by the identified specific node of the set of executing nodes a mutual exclusion locking function.

3. The method of claim 2 , wherein executing the mutual exclusion locking function comprises executing one of:

a Dekker algorithm;

a Peterson algorithm;

a Lamport bakery algorithm; and

a Szymanski algorithm.

4. The method of claim 1 , wherein the blocking further comprises:

queuing one or more additional transaction requests received by the identified specific node of the set of executing nodes while executing the transaction request.

5. The method of claim 4 , further comprising executing a sequentially next one of the one or more additional transaction requests after completing execution of the transaction request.

6. The method of claim 1 , wherein the blocking comprises:

transmitting an indication that the transaction request is being processed by the identified specific node of the set of executing nodes to its parent node,

in response to the transmitting, receiving a blocking instruction from the parent node.

7. The method of claim 6 , wherein the blocking instruction comprises a mutual exclusion locking type instruction.

8. The method of claim 7 , wherein the mutual exclusion locking type instruction is based on at least one of:

a Dekker algorithm;

a Peterson algorithm;

a Lamport bakery algorithm; and

a Szymanski algorithm.

9. The method of claim 1 , wherein the blocking further comprises:

transmitting one or more additional transaction requests received by the identified specific node of the set of executing nodes while executing the transaction request to its parent node.

10. The method of claim 9 , wherein the transmitting one or more additional transaction requests received by the identified specific node of the set of executing nodes while executing the transaction request to its parent node causes the parent node to execute at least one of:

queuing, by the parent node, the one or more additional transaction requests;

re-assigning the one or more additional transaction requests to another child node configured to execute the pre-defined type of computer transaction.

11. The method of claim 1 , wherein the blocking further comprises:

rejecting the one or more additional transaction requests received by the identified specific node of the set of executing nodes while executing the transaction request and returning the one or more additional transaction requests to the controlling node.

12. The method of claim 11 , wherein returning the one or more additional transaction requests to the controlling node causes the controlling node to execute at least one of:

queuing, by the controlling node, the one or more additional transaction requests;

periodically re-transmitting, by the controlling node, the one or more additional transaction requests to the identified specific node of the set of executing nodes until the identified specific node of the set of executing nodes executes the one or more additional transaction requests;

re-assigning the one or more additional transaction requests to another executing node configured to execute the pre-defined type of computer transaction.

13. The method of claim 1 , wherein the blocking further comprises:

analyzing the transaction request to determine the at least the portion of data to be modified by the transaction request;

identifying, in the data storage device a memory location storing the at least the portion of data to be modified by the transaction request;

reserving an exclusive right to read and write to the memory location, by the identified specific node of the set of executing nodes.

14. The method of claim 13 , further comprising, after the identified specific node of the set of executing nodes completes executing the transaction request:

releasing the exclusive right to read and write to the memory location, by the identified specific node of the set of executing nodes.

15. The method of claim 13 , wherein the reserving the exclusive right to read and write to the memory location, by the identified specific node of the set of executing nodes comprises executing a mutual exclusion locking type function.

16. The method of claim 15 , wherein the executing the mutual exclusion locking type function comprises executing at least one of:

a Dekker algorithm;

a Peterson algorithm;

a Lamport bakery algorithm; and

a Szymanski algorithm.

17. The method of claim 1 , wherein the method further comprises:

in response to the identified specific node of the set of executing nodes completing executing the transaction request:

transmitting a transaction request execution message to the controlling node.

18. The method of claim 17 , wherein transaction request execution message comprises one of:

in response to an entirety of actions associated with the transaction request having been successfully executed, a transaction request success confirmation and an output of the execution of the transaction request; and

in response to at least one action of the entirety of actions associated with the transaction request not having been successfully executed, a transaction request failure message.

19. The method of claim 1 , wherein the determining, by the controlling node, based on the pre-defined type of the computer transaction and the mapping, the specific node of the set of executing nodes responsible for the pre-defined type of the computer transaction comprises one of:

identification of a single specific node of the set of executing nodes responsible for the pre-defined type of the computer transaction; and

identification of a main pre-defined specific node of the set of executing nodes responsible for the pre-defined type of the computer transaction.

20. A distributed processing system comprising:

a plurality of nodes, the plurality of nodes including a controlling node and a set of executing nodes,

each of the set of executing nodes:

being associated with a pre-defined type of a computer transaction, the computer transaction being of a type which has to be executed in a succeed-or-fail-as-a-whole manner;

is directly addressable by the controlling node;

the set of executing nodes being organized in a hierarchy in accordance with the pre-defined type of the computer transaction executable by a given one of the set of executing nodes, such that:

the given node of the set of executing nodes is a child node to another node of the set of executing nodes based on the pre-defined type of the computer transaction executable by the child node being a nested type of the computer transaction to the pre-defined type of the computer transaction executable by the other node of the set of executing nodes, the other node of the set of executing nodes being a parent node;

the controlling node maintaining:

a list of unique addresses for each of the set of executing nodes; and

a mapping of each specific node of the set of executing nodes and an associated pre-defined type of the computer transaction executable by the specific node of the set of executing nodes;

a communication interface to enable the controlling node of the distributed processing system be accessible by a client device via a communication network;

a data storage device for storing data with which the computer transaction is executed by the distributed processing system;

the controlling node being configured to:

receive from the client device, a transaction request to modify at least a portion of the data maintained in the data storage device, the transaction request including an indication of the pre-defined type of the computer transaction to be executed;

determine, based on the pre-defined type of the computer transaction and the mapping, the specific node of the set of executing nodes responsible for the pre-defined type of the computer transaction;

using the list of unique addresses, send the transaction request directly to the determined specific node of the set of executing nodes for execution thereof; the sending the transaction request to the identified specific node of the set of executing nodes causing the identified specific node of the set of executing nodes:

blocking, by the identified specific node of the set of executing nodes, receiving of additional transaction requests until the transaction request is executed.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2024
From: DIRECT CURSUS TECHNOLOGY L.L.C
To: Y.E. HUB ARMENIA LLC
Reel/Frame 068525/0349 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2023
From: YANDEX EUROPE AG
To: DIRECT CURSUS TECHNOLOGY L.L.C
Reel/Frame 065692/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2017
From: DEMCHENKO, GRIGORY VICTOROVICH
To: YANDEX LLC
Reel/Frame 042515/0174 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2017
From: YANDEX LLC
To: YANDEX EUROPE AG
Reel/Frame 042515/0215 →
Priority Claims (1)
RU 2016123959 · Jun 16, 2016 · national
Continuity (1)
Related Publication 20170367023A1 · Dec 21, 2017