Selective Block Compression for Bootable Snapshot Images
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The increasing size of rich operating system kernels and software platforms leads to delays in system booting due to extensive initialization routines and file loading, necessitating methods like hibernation and suspend-to-disk to reduce boot time.
Innovation Solution
A booting apparatus that generates a snapshot image, divides it into blocks, and selectively compresses them based on decompression times, loading times, deadline times, and compression rates, allowing for incremental loading and parallel decompression during booting using multiple processing cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the snapshot image is stored in compressed form to reduce storage space, then storage space is reduced, but decompression time increases boot time
Solution Approach 1:
The snapshot image is divided into multiple blocks, allowing selective compression of only those blocks that can tolerate decompression delay. Critical blocks are kept uncompressed for immediate loading, while non-critical blocks are compressed to save storage space. This segmentation resolves the contradiction by applying compression selectively rather than uniformly across the entire snapshot image.
Solution Approach 2:
Different compression strategies are applied to different blocks based on their importance and characteristics. Blocks containing critical boot information are kept uncompressed or lightly compressed, while blocks containing less critical data are heavily compressed. This local quality approach ensures that storage space is optimized without significantly impacting overall boot time.
2Loss of time
If the entire snapshot image is loaded at once to reduce boot time, then boot time is reduced, but memory usage increases
Solution Approach 1:
The snapshot image is segmented into multiple blocks that can be loaded incrementally. Instead of loading the entire snapshot image at once, the system loads only the necessary blocks in sequence or parallel, reducing peak memory usage while maintaining acceptable boot time through efficient block management and processing.
Solution Approach 2:
The snapshot image is pre-divided into blocks during the hibernation/suspend-to-disk process, with metadata prepared to facilitate efficient loading. This preliminary action enables the system to quickly identify and load only the necessary blocks during boot, rather than loading the entire image, thus reducing both memory usage and effective boot time.
3Quantity of substance
If compression is applied to all blocks to maximize storage efficiency, then storage efficiency is improved, but decompression complexity increases
Solution Approach 1:
The snapshot image is divided into blocks with different compression levels applied based on their characteristics. Some blocks are compressed while others are kept uncompressed, allowing the system to achieve storage efficiency without requiring decompression of every block. This segmentation reduces overall decompression complexity compared to compressing the entire image.
Solution Approach 2:
Instead of applying full compression to all blocks, the system applies compression selectively to only those blocks where it provides benefit. This partial action approach achieves sufficient storage efficiency while minimizing the total decompression workload and complexity during boot.
Data Source
AI summary
Provided are a booting apparatus and method using a snapshot image. A snapshot image may be divided into a plurality of blocks. Each of the blocks may be stored in a nonvolatile memory in a compressed or non-compressed format. The snapshot image may be incrementally loaded in units of the blocks during booting. The loading and decompression of the blocks may be performed in parallel.


