IP Library Granted Patent US 12,379,944
Granted Patent B2
US 12,379,944 · App. 18/047,591 · Granted Aug 5, 2025

Execution engine integration framework for byzantine fault tolerant (BFT) state machine replication (SMR) systems

Inventors: Teodor Parvanov (Sofia, BG); Celine Jose Nalkara (Bangalore, IN); Tarunkumar Banda (Bangalore, IN); Tsvetomir Dimirov Dimitrov (Sofia, BG); Andrew Joseph Stone (Malden, MA)
Assignee: VMware LLC
G06F9/449G06F9/541G06F9/547G06F2209/547
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 12,379,944
App. No.
18/047,591
Granted
Aug 5, 2025
Kind
B2
Abstract

The present invention, in various embodiments, provides a novel execution engine integration framework for a BFT SMR system. With this framework, execution engines for services can be integrated into the BFT SMR system in a generic manner, thereby avoiding the need to implement a custom request handling code for each individual service/execution engine.

Claims (60)

1. A method comprising:

receiving, by an execution engine proxy running on a replica of a state machine replication (SMR) system, a client request directed to a service implemented by the SMR system; and

interacting, by the execution engine proxy using a standard communication interface, with an execution engine for the service in order to execute the client request via the execution engine,

wherein the standard communication interface comprises a set of generic application programming interfaces (APIs) or message types that are independent of the service or to the execution engine.

2. The method of claim 1 wherein the service is a standalone process and wherein the standard communication interface is implemented using an inter-process communication mechanism.

3. The method of claim 1 wherein the service is a dynamically linked library or object and wherein the standard communication interface is implemented using an application binary interface.

4. The method of claim 1 wherein the execution engine proxy is reusable for interacting with other execution engines of other services implemented by the SMR system.

5. The method of claim 1 wherein the interacting comprises:

sending, to the execution engine via the standard communication interface, a request to execute the client request; and

receiving, from the execution engine via the standard communication interface, a result of executing of the client request.

6. The method of claim 1 further comprising, prior to receiving the client request at the execution engine proxy:

receiving, by a request orchestrator running on the replica, a registration message from the execution engine, the registration message including a request type identifier identifying a type of requests handled by the execution engine;

instantiating the execution engine proxy;

associating the execution engine proxy with the execution engine; and

creating a registration entry that maps the execution engine proxy to the request type identifier.

7. The method of claim 6 further comprising, prior to receiving the client request at the execution engine proxy:

extracting, by the request orchestrator, a request type identifier from a predefined field of the client request;

matching the extracted request type identifier with the registration entry; and

forwarding the client request to the execution engine proxy in accordance with the matched registration entry.

8. A non-transitory computer readable storage medium having stored thereon program code executable by a replica of a state machine replication (SMR) system to implement a method, the method comprising:

receiving, by an execution engine proxy running on the replica, a client request directed to a service implemented by the SMR system; and

interacting, by the execution engine proxy using a standard communication interface, with an execution engine for the service in order to execute the client request via the execution engine,

wherein the standard communication interface comprises a set of generic application programming interfaces (APIs) or message types that are independent of the service or to the execution engine.

9. The non-transitory computer readable storage medium of claim 8 wherein the service is a standalone process and wherein the standard communication interface is implemented using an inter-process communication mechanism.

10. The non-transitory computer readable storage medium of claim 8 wherein the service is a dynamically linked library or object and wherein the standard communication interface is implemented using an application binary interface.

11. The non-transitory computer readable storage medium of claim 8 wherein the execution engine proxy is reusable for interacting with other execution engines of other services implemented by the SMR system.

12. The non-transitory computer readable storage medium of claim 8 wherein the interacting comprises:

sending, to the execution engine via the standard communication interface, a request to execute the client request; and

receiving, from the execution engine via the standard communication interface, a result of executing of the client request.

13. The non-transitory computer readable storage medium of claim 8 wherein the method further comprises, prior to receiving the client request at the execution engine proxy:

receiving, by a request orchestrator running on the replica, a registration message from the execution engine, the registration message including a request type identifier identifying a type of requests handled by the execution engine;

instantiating the execution engine proxy;

associating the execution engine proxy with the execution engine; and

creating a registration entry that maps the execution engine proxy to the request type identifier.

14. The non-transitory computer readable storage medium of claim 13 wherein the method further comprises, prior to receiving the client request at the execution engine proxy:

extracting, by the request orchestrator, a request type identifier from a predefined field of the client request;

matching the extracted request type identifier with the registration entry; and

forwarding the client request to the execution engine proxy in accordance with the matched registration entry.

15. A computer system acting as a replica in a state machine replication (SMR) system, the computer system comprising:

a processor;

a storage layer; and

a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to:

receive, by an execution engine proxy running on the replica, a client request directed to a service implemented by the SMR system; and

interact, by the execution engine proxy using a standard communication interface, with an execution engine for the service in order to execute the client request via the execution engine,

wherein the standard communication interface comprises a set of generic application programming interfaces (APIs) or message types that are independent of the service or to the execution engine.

16. The computer system of claim 15 wherein the service is a standalone process and wherein the standard communication interface is implemented using an inter-process communication mechanism.

17. The computer system of claim 15 wherein the service is a dynamically linked library or object and wherein the standard communication interface is implemented using an application binary interface.

18. The computer system of claim 15 wherein the execution engine proxy is reusable for interacting with other execution engines of other services implemented by the SMR system.

19. The computer system of claim 15 wherein the interacting comprises:

sending, to the execution engine via the standard communication interface, a request to execute the client request; and

receiving, from the execution engine via the standard communication interface, a result of executing of the client request.

20. The computer system of claim 15 wherein the program code further causes the processor to, prior to receiving the client request at the execution engine proxy:

receive a registration message from the execution engine, the registration message including a request type identifier identifying a type of requests handled by the execution engine;

instantiate the execution engine proxy;

associate the execution engine proxy with the execution engine; and

create a registration entry that maps the execution engine proxy to the request type identifier.

21. The computer system of claim 20 wherein the program code further causes the processor to, prior to receiving the client request at the execution engine proxy:

extract a request type identifier from a predefined field of the client request;

match the extracted request type identifier with the registration entry; and

forward the client request to the execution engine proxy in accordance with the matched registration entry.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2022
From: PARVANOV, TEODOR; NALKARA, CELINE JOSE; BANDA, TARUNKUMAR; DIMITROV, TSVETOMIR DIMIROV; STONE, ANDREW JOSEPH
To: VMWARE INC.
Reel/Frame 061460/0929 →