IP Library Granted Patent US 11,929,901
Granted Patent B2
US 11,929,901 · App. 17/237,582 · Granted Mar 12, 2024

Infrastructure-agnostic performance of computation sequences

Inventors: Jeffrey Hajewski (North Liberty, IA); Victor Spivak (San Mateo, CA); Alexander Oscherov (Danville, CA); Stefan Derdak (San Jose, CA)
Assignee: Salesforce, Inc.
H04L43/0888H04L67/60
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 11,929,901
App. No.
17/237,582
Granted
Mar 12, 2024
Kind
B2
Abstract

System and methods are described for performing sequences of computations in an infrastructure-agnostic manner. In one implementation, a method comprises: receiving a dispatch request for executing a user-defined pipeline; computing a performance metric based on the dispatch request; and determining, based at least partially on the performance metric, whether to execute the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter.

Claims (31)

1. A computer-implemented method comprising:

receiving, from a network adapter by a pipeline engine of a pipeline architecture, a dispatch request for executing a user-defined pipeline, wherein the dispatch request is agnostic to an underlying network infrastructure by which the user-defined pipeline is to be executed;

computing a performance metric based on the dispatch request and by information extracted from metadata associated with messages exchanged between computational nodes of the pipeline architecture, the performance metric comprising at least an estimate of computational times for local execution;

executing one or more stages of the user-defined pipeline locally by the pipeline engine based on a user-specified requirement, wherein the user-specified requirement overrides decision logic of the pipeline engine in determining whether to execute the stages of the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter; and

determining, based at least partially on the performance metric and an overhead generated through serialization and deserialization of transmitting the dispatch request back to the network adapter, whether to execute the remaining stages of the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter, wherein transmitting the dispatch request requires serialization and deserialization of the dispatch request.

2. The computer-implemented method of claim 1 , wherein the dispatch request is descriptive of a user request comprising the user-defined pipeline and one or more user-specified serialization routines to be performed at various stages in the user-defined pipeline.

3. The computer-implemented method of claim 1 , wherein the performance metric is a network latency, and wherein the user-defined pipeline is executed locally by the pipeline engine in response to determining that local execution is computationally faster or more efficient than the user-defined pipeline being transmitted by the network adapter to a different pipeline engine for execution.

4. The computer-implemented method of claim 3 , wherein determining that local execution is computationally faster or more efficient than the user-defined pipeline being transmitted by the network adapter to a different pipeline engine for execution comprises estimating a local execution time based on an execution time of at least one stage of the user-defined pipeline by the pipeline engine.

5. The computer-implemented method of claim 1 , wherein executing the user-defined pipeline locally by the pipeline engine comprises requesting one or more external resources available to the pipeline engine to improve or optimize execution of the user-defined pipeline.

6. The computer-implemented method of claim 5 , wherein the dispatch request is agnostic to the one or more external resources requested.

7. A distributed data processing system comprising:

one or more processors configured to implement a pipeline engine of a pipeline architecture and a network adapter; and

a memory device coupled to the one or more processors, the memory device having instructions stored thereon that, in response to execution by the one or more processors, cause the one or more processors to:

receive, by the pipeline engine from the network adapter, a dispatch request for executing a user-defined pipeline, wherein the dispatch request is agnostic to an underlying network infrastructure by which the user-defined pipeline is executed;

compute a performance metric based on the dispatch request and by information extracted from metadata associated with messages exchanged between computational nodes of the pipeline architecture, the performance metric comprising at least an estimate of computational times for local execution;

execute one or more stages of the user-defined pipeline locally by the pipeline engine based on a user-specified requirement, wherein the user-specified requirement overrides decision logic of the pipeline engine in determining whether to execute the stages of the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter; and

determine, based at least partially on the performance metric and an overhead generated through serialization and deserialization of transmitting the dispatch request back to the network adapter, whether to execute the remaining stages of the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter, wherein transmitting the dispatch request requires serialization and deserialization of the dispatch request.

8. The distributed data processing system of claim 7 , wherein the dispatch request is descriptive of a user request comprising the user-defined pipeline and one or more user-specified serialization routines to be performed at various stages in the user-defined pipeline.

9. The distributed data processing system of claim 7 , wherein the performance metric is a network latency, and wherein the user-defined pipeline is to be executed locally by the pipeline engine in response to determining that local execution is computationally faster or more efficient than the user-defined pipeline being transmitted by the network adapter to a different pipeline engine for execution.

10. The distributed data processing system of claim 9 , wherein to determine that local execution is computationally faster or more efficient than the user-defined pipeline being transmitted by the network adapter to a different pipeline engine for execution, the one or more processors are to further estimate a local execution time based on an execution time of at least one stage of the user-defined pipeline by the pipeline engine.

11. The distributed data processing system of claim 7 , wherein to execute the user-defined pipeline locally by the pipeline engine, the one or more processors are to further request one or more external resources available to the pipeline engine to improve or optimize execution of the user-defined pipeline.

12. The distributed data processing system of claim 11 , wherein the dispatch request is agnostic to the one or more external resources requested.

13. A non-transitory computer-readable storage medium having instructions encoded thereon which, when executed by one or more processing devices of a distributed data processing system, cause the one or more processing devices to:

receive, from a network adapter by a pipeline engine of a pipeline architecture, a dispatch request for executing a user-defined pipeline, wherein the dispatch request is agnostic to an underlying network infrastructure by which the user-defined pipeline is executed;

compute a performance metric based on the dispatch request and by information extracted from metadata associated with messages exchanged between computational nodes of the pipeline architecture, the performance metric comprising at least an estimate of computational times for local execution;

execute one or more stages of the user-defined pipeline locally by the pipeline engine based on a user-specified requirement, wherein the user-specified requirement overrides decision logic of the pipeline engine in determining whether to execute the stages of the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter; and

determine, based at least partially on the performance metric and an overhead generated through serialization and deserialization of transmitting the dispatch request back to the network adapter, whether to execute the remaining stages of the user-defined pipeline locally by the pipeline engine or transmit the dispatch request back to the network adapter, wherein transmitting the dispatch request requires serialization and deserialization of the dispatch request.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the dispatch request is descriptive of a user request comprising the user-defined pipeline and one or more user-specified serialization routines to be performed at various stages in the user-defined pipeline.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the performance metric is a network latency, and wherein the user-defined pipeline is to be executed locally by the pipeline engine in response to determining that local execution is computationally faster or more efficient than the user-defined pipeline being transmitted by the network adapter to a different pipeline engine for execution.

16. The non-transitory computer-readable storage medium of claim 15 , wherein to determine that local execution is computationally faster or more efficient than the user-defined pipeline being transmitted by the network adapter to a different pipeline engine for execution, the one or more processing devices are to further estimate a local execution time based on an execution time of at least one stage of the user-defined pipeline by the pipeline engine.

17. The non-transitory computer-readable storage medium of claim 13 , wherein to execute the user-defined pipeline locally by the pipeline engine, the one or more processing devices are to further request one or more external resources available to the pipeline engine to improve or optimize execution of the user-defined pipeline, and wherein the dispatch request is agnostic to the one or more external resources requested.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2021
From: HAJEWSKI, JEFFREY; SPIVAK, VICTOR; OSCHEROV, ALEXANDER; DERDAK, STEFAN
To: SALESFORCE.COM, INC.
Reel/Frame 056010/0819 →
Continuity (1)
Related Publication 20220345390A1 · Oct 27, 2022