RDMA Storage Throttling via Kernel Resource Manager
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed storage systems face challenges in managing resources effectively due to mismatched usage patterns between computing and storage resources, leading to performance issues and inefficient resource allocation, especially in single-sided operations where server-side processing is absent.
Innovation Solution
Implementing a distributed storage system with memory hosts that utilize remote direct memory access (RDMA) for direct client access to storage resources, where a data processor determines throttle data transfer rates for each client based on bandwidth reservations and isolation configurations, ensuring fair resource allocation and performance isolation among clients.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If server-side processing is used to manage client requests, then resource management and request rejection capabilities are improved, but processing overhead and latency increase
Solution Approach 1:
The patent extracts the resource management function from the server process and places it in kernel mode, separating request processing (user mode) from resource management (kernel mode). This allows client requests to be processed quickly in user mode while resource management decisions are made in kernel mode without blocking the fast path.
Solution Approach 2:
The patent introduces a kernel-mode resource manager as an intermediary between client requests and storage resources. This mediator monitors resource usage and enforces limits without requiring full server-side processing of each request, reducing latency while maintaining control.
2Speed
If single-sided operations (RDMA) are used for storage access, then storage access speed and CPU decoupling are improved, but server-side resource management capability deteriorates
Solution Approach 1:
The patent extracts resource management functionality from the user-space server process and relocates it to kernel mode, where it can monitor and control RDMA operations without interfering with the high-speed single-sided access path. The kernel-mode manager observes RDMA memory access patterns and enforces resource limits.
Solution Approach 2:
The system enables self-service resource management where the kernel-mode component automatically monitors storage resource usage and throttles client access based on predefined policies, without requiring continuous server intervention. The resource manager autonomously adjusts client access rates to maintain fair resource allocation.
3Productivity
If client-side rate limiting is implemented, then resource usage control is improved, but global resource awareness and performance isolation capability deteriorate
Solution Approach 1:
The patent implements a feedback mechanism where the kernel-mode resource manager continuously monitors global storage resource usage and adjusts client rate limits dynamically. Each client receives feedback about its current usage and the system's overall state, enabling adaptive rate limiting that maintains performance isolation while utilizing available capacity efficiently.
Solution Approach 2:
The kernel-mode resource manager serves multiple functions: it monitors global resource usage, enforces per-client rate limits, provides performance isolation between clients, and dynamically adjusts limits based on system conditions. This universal component handles all resource management tasks centrally, improving both control efficiency and isolation capability.
Data Source
Figure 1A
Figure 1B
Figure 1C
AI summary
A distributed storage system (100) includes memory hosts (110), each including non-transitory memory (114) and a network interface controller (116) in communication with the memory and servicing remote direct memory access requests (122) from clients (120). The memory receives a data transfer rate (313) from each client in communication with the memory host through remote direct memory access. Each memory host also includes a data processor (112) in communication with the memory and the network interface controller. The data processor executes a host process (118) that reads each received client data transfer rate, determines a throttle data transfer rate (317) for each client, and writes each throttle data transfer rate to non-transitory memory accessible by the clients through remote direct memory access.