IP Library Granted Patent US 12,449,995
Granted Patent B2
US 12,449,995 · App. 17/957,700 · Granted Oct 21, 2025

Enabling persistent memory for serverless applications

Inventors: Faraz Ahmed (Santa Clara, CA); Lianjie Cao (San Jose, CA); Puneet Sharma (Milpitas, CA); Amit Samanta (Salt Lake City, UT)
Assignee: Hewlett Packard Enterprise Development LP
G06F3/0638G06F3/0665G06F9/4843G06F9/5016G06F3/0604G06F3/0679G06F2209/501G06F2209/5014
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,449,995
App. No.
17/957,700
Granted
Oct 21, 2025
Kind
B2
Abstract

A scheduling platform for scheduling serverless application tasks in persistent memory (PMEM) is provided. A profiler receives application requests from processes of serverless applications. The profiler categorizes the processes as persistent or non-persistent based on the application requests. A read/write batcher creates batches of the persistent requests including the read requests and write requests and assigns the batches to persistent memory banks. A scheduler creates a schedule of the batches to the persistent memory banks in a manner enabling optimization of job completion time.

Claims (49)

1. A system comprising:

a processor; and

a non-transitory storage medium storing instructions executable on the processor to:

receive application requests including read and write requests from processes of a serverless application;

profile the processes of the serverless application as one of persistent processes that issue input/output (I/O) requests to persistent memory;

create batches of the application requests including read batches of the read requests and write batches of the write requests for the persistent processes;

identify a number of excess read batches based on comparing a quantity of the read batches to a quantity of the write batches;

schedule the excess read batches first to the persistent memory before a remainder of the read batches and the write batches, the remainder of the read batches excluding the excess read batches; and

schedule the remainder of the read batches and the write batches to the persistent memory based on an objective function relating to a completion time.

2. The system of claim 1 , wherein the scheduling of the read requests and the write requests from the persistent processes is performed by a first scheduler, and the instructions are executable on the processor to:

profile further processes of the serverless application as non-persistent processes that issue I/O requests to non-persistent memory; and

pass further requests of the non-persistent processes to a second scheduler different from the first scheduler.

3. The system of claim 1 , wherein the instructions are executable on the processor to:

profile the processes of the serverless application as the persistent processes based on determining that a quantity of write requests in a write batch of write requests exceeds a quantity threshold.

4. The system of claim 1 , wherein the number of excess read batches is a quantity of the read batches that exceeds the quantity of the write batches.

5. The system of claim 1 , wherein the instructions are executable on the processor to:

profile the processes of the serverless application as the persistent processes based on examining kernel system calls in the system.

6. The system of claim 1 , wherein the scheduling of the remainder of the read batches and the write batches is according to a time constraint specifying that processing times consumed for the remainder of the read batches and the write batches are proportional to read and write demands of the serverless application.

7. The system of claim 1 , wherein the instructions are executable on the processor to:

implement a fairness algorithm balancing time consumed on the read requests and the write requests for the persistent processes.

8. The system of claim 1 , wherein the objective function seeks to reduce bus switching latency due to switching between different persistent memories.

9. The system of claim 1 , wherein the objective function is further based on a read-to-write latency and a write-to-read latency.

10. The system of claim 1 , wherein the instructions are executable on the processor to:

profile the processes of the serverless application as the persistent processes based on an I/O workload requirement of the serverless application.

11. A method comprising:

receiving, at a system comprising a hardware processor, application requests from processes of a serverless application, the application requests including read requests and write requests;

profiling, by the system, the processes of the serverless application as persistent processes that issue input/output (I/O) requests to persistent memory;

creating, by the system, batches of the application requests including read batches of the read requests and write batches of the write requests for the persistent processes;

identifying, by the system, a number of excess read batches based on comparing a quantity of the read batches to a quantity of the write batches;

scheduling, by the system, the excess read batches first to the persistent memory before a remainder of the read batches and the write batches, the remainder of the read batches excluding the excess read batches; and

scheduling, by the system, the remainder of the read batches and the write batches to the persistent memory based on an objective function relating to a completion time.

12. The method of claim 11 , wherein the scheduling of the read requests and the write requests from the persistent processes is performed by a first scheduler, and the method further comprises:

profiling, by the system, further processes of the serverless application as non-persistent processes that issue I/O requests to non-persistent memory; and

passing, by the system, further requests of the non-persistent processes to a second scheduler different from the first scheduler.

13. The method of claim 11 , wherein the profiling comprises profiling the processes of the serverless application as the persistent processes based on determining that a quantity of write requests in a write batch of write requests exceeds a quantity threshold.

14. The method of claim 11 , wherein the number of excess read batches is a quantity of the read batches that exceeds the quantity of the write batches.

15. The method of claim 11 , wherein the profiling comprises profiling the processes of the serverless application as the persistent processes based on examining kernel system calls in the system.

16. The method of claim 11 , wherein the scheduling of the remainder of the read batches and the write batches is according to a time constraint specifying that times consumed for processing the read batches and the write batches are proportional to read and write demands of the serverless application.

17. The method of claim 11 , further comprising implementing a fairness algorithm balancing time consumed on the read requests and the write requests for the persistent processes.

18. The method of claim 11 , wherein the objective function seeks to reduce bus switching latency due to switching between different persistent memories.

19. A non-transitory computer-readable medium comprising instructions that upon execution cause a system:

receive application requests including read requests and write requests from processes of a serverless application;

profile the processes of the serverless application as persistent processes that issue input/output (I/O) requests to persistent memory;

create batches of the application requests including read batches of the read requests and write batches of the write requests for the persistent processes;

identify a number of excess read batches based on comparing a quantity of the read batches to a quantity of the write batches;

schedule the excess read batches first to the persistent memory before a remainder of the read batches and the write batches, the remainder of the read batches excluding the excess read batches; and

schedule the remainder of the read batches and the write batches to the persistent memory based on an objective function relating to a completion time.

20. The non-transitory computer-readable medium of claim 19 ,

wherein the profiling comprises profiling the processes of the serverless application as the persistent processes based on examining kernel system calls in the system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2022
From: AHMED, FARAZ; CAO, LIANJIE; SHARMA, PUNEET; SAMANTA, AMIT
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 061608/0362 →
Continuity (1)
Related Publication 20240126460A1 · Apr 18, 2024
References Cited (17)
US 8839255B2 · Memik · 2014 [cited by examiner]
US 10853183B2 · Natanzon et al. · 2020 [cited by applicant]
US 11126431B1 · Lecler et al. · 2021 [cited by applicant]
US 20210099459A1 · Zhang et al. · 2021 [cited by applicant]
Zhao et al., FIRM: Fair and High-Performance Memory Control for Persistent Memory Ssytems, IEEE, 2014, pp. 153-165. (Year: 2014). [cited by examiner]
Daase et al., Maximizing Persistent Memory Bandwidth Utilization for OLAP Workloads, In Proceedings of the 2021 International Conference on Management of Data, 2021. 13 pages. [cited by applicant]
Daase et al., “Maximizing Persistent Memory Bandwidth Utilization for OLAP Workloads”, Jun. 20-25, 2021, 8 pages. [cited by applicant]
Gugnani et al., “Understanding the Idiosyncrasies of Real Persistent Memory”, Proceedings of the VLDB Endowment, vol. 14, No. 4, 2020, pp. 626-639. [cited by applicant]
Jain et al., “Throughput Fairness Index: An Explanation”, Feb. 1999, 9 pages. [cited by applicant]
Kalia et al., “Challenges and Solutions for Fast Remote Persistent Memory Access”, Proceedings of the 11th ACM Symposium on Cloud Computing, SoCC '20, 2020, pp. 105-119. [cited by applicant]
Klimovic et al., “Pocket: Elastic Ephemeral Storage for Serverless Analytics”, 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI '18), Oct. 8-10, 2018, 19 pages. [cited by applicant]
Koutsoukos et al., “How to use Persistent Memory in your Database”, 2021, 13 pages. [cited by applicant]
Mahgoub et al., “SONIC: Application-aware Data Passing for Chained Serverless Applications”, USENIX Annual Technical Conference, 2021, 15 pages. [cited by applicant]
Pu et al., “Shuffling, Fast and Slow: Scalable Analytics on Serverless Infrastructure”, 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI '19) , 2019, 15 pages. [cited by applicant]
Yang et al., “An Empirical Guide to the Behavior and Use of Scalable Persistent Memory”, 18th USENIX Conference on File and Storage Technologies (FAST '20), Feb. 25-27, 2020, 15 pages. [cited by applicant]
Zhang et al., “Accelerate and scale Bigdata Analytics with Alluxio and intel® optane™ persistent memory”, Intel, May 7, 2020; 13 pages. [cited by applicant]
Zhao et al., “FIRM: Fair and High-Performance Memory Control for Persistent Memory Systems”, Oct. 9, 2014, 13 pages. [cited by applicant]