Kernel Buffer Mapping for Container Storage Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing container-based distributed storage systems face challenges with high development difficulty, poor operability and maintainability, high memory consumption, and low data transmission efficiency due to the complexity of accessing user-mode storage services through the kernel.
Innovation Solution
A data storage method and apparatus that generates a first buffer in the kernel's storage space, determines a target physical address based on the data's length and start address, and maps it to a target virtual address in the storage service module, allowing the storage service module to access the data directly from the kernel.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If data is transmitted through the kernel to the user process for storage service, then distributed storage can be implemented, but memory consumption increases and data transmission efficiency decreases
Solution Approach 1:
The patent creates a copy of the container's memory space (first memory space) within the kernel, allowing the storage service module to directly access container data without traditional kernel-mediated transmission. This copying approach eliminates the need for data to traverse the kernel's storage service interface, reducing memory consumption while maintaining distributed storage capability.
Solution Approach 2:
The patent extracts the storage service functionality from the user process and places it directly into the kernel space (storage service module in kernel). This extraction allows the kernel to directly manage and access container memory spaces, eliminating the need for data transmission through the kernel to user process interface, thereby reducing memory consumption and improving transmission efficiency.
2Adaptability or versatility
If data is transmitted through the kernel to the user process for storage service, then distributed storage can be implemented, but data transmission efficiency decreases
Solution Approach 1:
The patent creates a copy of the container's memory space (first memory space) within the kernel, allowing the storage service module to directly access container data without traditional kernel-mediated transmission. This copying approach eliminates the need for data to traverse the kernel's storage service interface, reducing memory consumption while maintaining distributed storage capability.
Solution Approach 2:
The patent extracts the storage service functionality from the user process and places it directly into the kernel space (storage service module in kernel). This extraction allows the kernel to directly manage and access container memory spaces, eliminating the need for data transmission through the kernel to user process interface, thereby reducing memory consumption and improving transmission efficiency.
3Adaptability or versatility
If the container accesses the user process through the kernel for storage service, then distributed storage is achieved, but development difficulty increases
Solution Approach 1:
The patent extracts the storage service functionality from the user process and places it directly into the kernel space (storage service module in kernel). This extraction simplifies the system architecture by eliminating the complex kernel-to-user-process communication interface, making the system easier to develop and maintain while preserving distributed storage functionality.
Data Source
Figure 1~2
Figure 3
Figure 4~5
AI summary
The present disclosure relates to a data storage method and apparatus, a non-transitory computer-readable medium, and an electronic device. In the method, when data to be stored that is sent by a container is received through a target interface, a first buffer is generated in storage space of a kernel, and a target length, in the first buffer, of the data to be stored and a start address, in the first buffer, of the data to be stored are obtained. A target physical address in the kernel corresponding to the data to be stored is determined based on the target length and the start address. The target physical address is mapped to a target virtual address in a storage service module.