Persistent Memory I/O Scheduling for Serverless Write Loads
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
Data Source
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.


