Variable Addressing Format for Granular Unmapping in Data Stores
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtual machine (VM) data stores face challenges in efficiently managing memory space due to differences in block sizes between VMs and their host systems, leading to limitations in unmap granularity and memory allocation.
Innovation Solution
A variable addressing format is introduced, where multiple address blocks specify a single file block, including an address for the block location and additional unmapping bits associated with fractional portions of the block, allowing for flexible unmap granularities and efficient memory management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If large block sizes (e.g., 1 MB) are used for host data stores, then metadata overhead is reduced and host contention is minimized, but unmap granularity is limited to fixed increments (e.g., 128 KB) which cannot match smaller VM block sizes
Solution Approach 1:
The patent segments the traditional fixed-size address block into multiple components: a base address block and multiple unmapping bit fields. Each unmapping bit corresponds to a specific fractional portion of the host block, enabling fine-grained unmapping at VM block size granularity while maintaining the large host block structure for reduced metadata overhead.
Solution Approach 2:
The patent adds a new dimension to address storage by introducing unmapping bit fields as an additional component alongside the base address. This dimensional expansion allows the system to represent both the location and the granular unmapping status of blocks within the same address structure, resolving the contradiction between large block sizes and fine-grained unmapping.
2Ease of operation
If fixed-size address blocks are used, then addressing is simplified, but unmap granularity is constrained to maximum 128 KB based on address block size
Solution Approach 1:
The patent segments the unmapping capability into individual bits, where each bit represents a specific fractional portion of the host block. This segmentation allows precise control over unmapping granularity at the VM block size level while maintaining simple base address indexing for ease of operation.
Solution Approach 2:
The patent changes the parameter representation from a fixed address block size to a variable unmapping bit field configuration. By adjusting the number and positioning of unmapping bits, the system can achieve different granularities without changing the fundamental address block structure, thus maintaining operational simplicity while improving measurement precision.
3Measurement precision
If VMs use smaller block sizes (e.g., 16 KB) for addressing, then memory allocation precision is improved, but host memory space management becomes challenging due to block size mismatch
Solution Approach 1:
The patent introduces unmapping bit fields as an intermediary mechanism between the VM's small block size requirements and the host's large block size structure. These bit fields act as a mediator that translates VM-level allocation requests into precise host block operations, enabling fine-grained memory management without increasing host complexity.
Solution Approach 2:
The patent segments the host block into multiple virtual blocks represented by individual unmapping bits. This segmentation allows the host to manage memory at its own optimized block size while presenting fine-grained allocation interfaces to VMs through the bit field configuration, resolving the block size mismatch issue.
Data Source
AI summary
The systems described herein are configured to enhance the efficiency of memory in a host file system with respect to hosted virtual file systems. In situations when the hosted virtual file systems use smaller file block sizes than the file block sizes of the host file system. During storage of a file, a file block is assigned a block address and unmapping bits. The block address and unmapping bits are stored in a pointer block or other similar data structure associated with the file. Particularly, the block address is stored in a first address block and the unmapping bits are stored in at least one additional address block located in proximity to the block address, such that the unmap granularity of the file is not limited by the fixed size of address blocks in the system.


