IP Library Granted Patent US 11,847,510
Granted Patent B2
US 11,847,510 · App. 17/964,170 · Granted Dec 19, 2023

System for application self-optimization in serverless edge computing environments

Inventors: Giuseppe Coviello (Robinsville, NJ); Kunal Rao (Monroe, NJ); Biplob Debnath (Princeton, NJ); Srimat Chakradhar (Manalapan, NJ)
Assignee: NEC Corporation
G06F9/543G06F9/505
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,847,510
App. No.
17/964,170
Granted
Dec 19, 2023
Kind
B2
Abstract

A method for implementing application self-optimization in serverless edge computing environments is presented. The method includes requesting deployment of an application pipeline on data received from a plurality of sensors, the application pipeline including a plurality of microservices, enabling communication between a plurality of pods and a plurality of analytics units (AUs), each pod of the plurality of pods including a sidecar, determining whether each of the plurality of AUs maintains any state to differentiate between stateful AUs and stateless AUs, scaling the stateful AUs and the stateless AUs, enabling communication directly between the sidecars of the plurality of pods, and reusing and resharing common AUs of the plurality of AUs across different applications.

Claims (40)

1. A method for implementing application self-optimization in serverless edge computing environments, the method comprising:

requesting deployment of an application pipeline on data received from a plurality of sensors, the application pipeline including a plurality of microservices;

enabling communication between a plurality of pods and a plurality of analytics units (AUs), each pod of the plurality of pods including a sidecar;

determining whether each of the plurality of AUs maintains any state to differentiate between stateful AUs and stateless AUs;

scaling the stateful AUs and the stateless AUs;

enabling communication directly between the sidecars of the plurality of pods; and

reusing and resharing common AUs of the plurality of AUs across different applications.

2. The method of claim 1 , further comprising, for the stateful AUs, creating exactly as many instances of the AU as a number of registered streams generated by the AU to create one-on-one mapping between a stream and an instance of the stateful AU that generates it.

3. The method of claim 1 , further comprising, for the stateless AUs, scaling a number of instances up or down so that only an optimal number of instances are maintained to prevent over-provisioning or under-provisioning of instances.

4. The method of claim 1 , further comprising monitoring a rate at which the data is being pulled from a source by a particular AU of the plurality of AUs and adjusting the rate at which the data is being processed to publish the output at the source.

5. The method of claim 4 , wherein, if a producer of the data is faster than a consumer of the data, automatically slow down a rate of production of the data at the source to avoid dropping of produced data and to avoid unnecessary processing whose output is not consumed.

6. The method of claim 1 , further comprising creating instances with just sidecars in them to communicate data to actual AU instances that are shared across different applications.

7. The method of claim 1 , wherein each of the sidecars has a message format including a data field, a timestamp field, and a stream field, and an entire output produced by a stream is considered as a blob and put into the data field.

8. A non-transitory computer-readable storage medium comprising a computer-readable program for implementing application self-optimization in serverless edge computing environments, wherein the computer-readable program when executed on a computer causes the computer to perform the steps of:

requesting deployment of an application pipeline on data received from a plurality of sensors, the application pipeline including a plurality of microservices;

enabling communication between a plurality of pods and a plurality of analytics units (AUs), each pod of the plurality of pods including a sidecar;

determining whether each of the plurality of AUs maintains any state to differentiate between stateful AUs and stateless AUs;

scaling the stateful AUs and the stateless AUs;

enabling communication directly between the sidecars of the plurality of pods; and

reusing and resharing common AUs of the plurality of AUs across different applications.

9. The non-transitory computer-readable storage medium of claim 8 , wherein, for the stateful AUs, create exactly as many instances of the AU as a number of registered streams generated by the AU to create one-on-one mapping between a stream and an instance of the stateful AU that generates it.

10. The non-transitory computer-readable storage medium of claim 8 , wherein, for the stateless AUs, scale a number of instances up or down so that only an optimal number of instances are maintained to prevent over-provisioning or under-provisioning of instances.

11. The non-transitory computer-readable storage medium of claim 8 , wherein a rate at which the data is being pulled from a source by a particular AU of the plurality of AUs is monitored and the rate at which the data is being processed is adjusted to publish the output at the source.

12. The non-transitory computer-readable storage medium of claim 11 , wherein, if a producer of the data is faster than a consumer of the data, automatically slow down a rate of production of the data at the source to avoid dropping of produced data and to avoid unnecessary processing whose output is not consumed.

13. The non-transitory computer-readable storage medium of claim 8 , wherein instances with just sidecars in them are created to communicate data to actual AU instances that are shared across different applications.

14. The non-transitory computer-readable storage medium of claim 8 , wherein each of the sidecars has a message format including a data field, a timestamp field, and a stream field, and an entire output produced by a stream is considered as a blob and put into the data field.

15. A system for implementing application self-optimization in serverless edge computing environments, the system comprising:

a memory; and

one or more processors in communication with the memory configured to:

request deployment of an application pipeline on data received from a plurality of sensors, the application pipeline including a plurality of microservices;

enable communication between a plurality of pods and a plurality of analytics units (AUs), each pod of the plurality of pods including a sidecar;

determine whether each of the plurality of AUs maintains any state to differentiate between stateful AUs and stateless AUs;

scale the stateful AUs and the stateless AUs;

enable communication directly between the sidecars of the plurality of pods; and

reuse and reshare common AUs of the plurality of AUs across different applications.

16. The system of claim 15 , wherein, for the stateful AUs, create exactly as many instances of the AU as a number of registered streams generated by the AU to create one-on-one mapping between a stream and an instance of the stateful AU that generates it.

17. The system of claim 15 , wherein, for the stateless AUs, scale a number of instances up or down so that only an optimal number of instances are maintained to prevent over-provisioning or under-provisioning of instances.

18. The system of claim 15 , wherein a rate at which the data is being pulled from a source by a particular AU of the plurality of AUs is monitored and the rate at which the data is being processed is adjusted to publish the output at the source.

19. The system of claim 18 , wherein, if a producer of the data is faster than a consumer of the data, automatically slow down a rate of production of the data at the source to avoid dropping of produced data and to avoid unnecessary processing whose output is not consumed.

20. The system of claim 15 , wherein instances with just sidecars in them are created to communicate data to actual AU instances that are shared across different applications.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: NEC LABORATORIES AMERICA, INC.
To: NEC CORPORATION
Reel/Frame 065431/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 12, 2022
From: COVIELLO, GIUSEPPE; RAO, KUNAL; DEBNATH, BIPLOB; CHAKRADHAR, SRIMAT
To: NEC LABORATORIES AMERICA, INC.
Reel/Frame 061390/0585 →
Continuity (2)
Provisional Application 63279020 · Nov 12, 2021
Related Publication 20230153182A1 · May 18, 2023