Persistent Memory I/O Scheduling for Serverless Write Loads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Serverless applications experience bottlenecks due to inefficient access to memory structures, particularly in processing intermediate data, which is exacerbated by the use of traditional storage mediums and the performance degradation of persistent memory (PMEM) under high write thread loads.

Innovation Solution

Implement an intelligent I/O scheduler that profiles serverless application processes for persistent memory (PMEM) usage, grouping read and write requests into batches, and optimizing their scheduling to minimize job completion time (JCT) by prioritizing reads over writes and managing write batches to maintain PMEM performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If persistent memory (PMEM) is used for storing intermediate data in serverless applications, then access speed and throughput are improved, but performance deteriorates under high write thread loads

Engineering Contradiction:
Improvememory access speedVSAvoidPMEM performance stability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system dynamically changes the parameter of thread allocation to PMEM write operations based on current workload conditions. When write load is high, the scheduler limits the number of threads accessing PMEM simultaneously, preventing performance deterioration while maintaining fast access speeds during normal operation

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The I/O scheduler implements dynamic scheduling that adapts to changing workload conditions. It monitors PMEM access patterns and adjusts scheduling decisions in real-time, transitioning between different scheduling strategies based on whether the system is experiencing high write loads or normal operation

Inventive Principle:
Principle #15Dynamics

2Productivity

If data is stored in Virtual Machines for functions with few dependencies, then processing efficiency is improved, but data transfer becomes a bottleneck when dividing chains into small tasks

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata transfer time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system introduces persistent memory as an intermediary storage layer between VMs and remote storage. This intermediary enables efficient data sharing across function chains by providing a high-speed buffer that reduces the need for frequent data transfers between VMs, thereby maintaining processing efficiency while reducing data transfer bottlenecks

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If fast storage is used to address bottlenecks in serverless applications, then job completion time is reduced, but system complexity increases due to multi-layered storage management

Engineering Contradiction:
Improvejob completion timeVSAvoidstorage management complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The I/O scheduler implements a universal scheduling framework that handles multiple storage types (PMEM, VMs, remote storage) through a single unified interface. This multi-functional scheduler automatically selects the appropriate storage layer based on workload characteristics, reducing job completion time while abstracting away the complexity of managing multiple storage layers

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS12449995B2Enabling persistent memory for serverless applications
Publication Date: 2025.10.21 HEWLETT PACKARD ENTERPRISE DEV LP
  • US12449995B2 patent drawing
  • US12449995B2 patent drawing
  • US12449995B2 patent drawing

AI summary

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.