Dynamic I/O Compression for Encrypted Data Bandwidth Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Compression algorithms on transport-level protocols do not effectively reduce bandwidth usage when data has been previously encrypted, as encrypted data lacks redundancy, which is necessary for compression to occur effectively.
Innovation Solution
The method involves splitting I/O operations into smaller I/Os based on throughput and asynchronously compressing them, ensuring the size of these smaller I/Os is equal to or less than a set block size, allowing for compression to occur even in encrypted data by introducing a delay for the compression process to operate effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is encrypted before compression, then security is improved, but compression effectiveness deteriorates because encrypted data lacks redundancy
Solution Approach 1:
The system performs compression before encryption by introducing a delay mechanism that allows the compression process to complete on the original data before the encryption layer is applied. This preliminary compression action preserves redundancy for effective compression while maintaining subsequent encryption for security
Solution Approach 2:
The I/O operation is divided into smaller segments that can be processed asynchronously. The compression process operates on these segmented blocks independently, allowing compression to occur on the original unencrypted data while the encryption layer is applied separately, thus resolving the conflict between security and compression effectiveness
2Loss of energy
If compression is performed on encrypted data, then bandwidth reduction is attempted, but compression effectiveness is poor due to lack of redundancy in encrypted data
Solution Approach 1:
The system performs compression before encryption by introducing a delay mechanism that allows the compression process to complete on the original data before the encryption layer is applied. This preliminary compression action preserves redundancy for effective compression while maintaining subsequent encryption for security
Solution Approach 2:
The system dynamically adjusts the processing order based on data characteristics. By detecting whether data is encrypted or unencrypted, the system can apply compression at the appropriate stage (before encryption for unencrypted data, or use alternative methods for encrypted data), optimizing compression effectiveness while maintaining security
3Device complexity
If I/O operations are processed synchronously, then processing simplicity is maintained, but storage and transfer efficiency deteriorates
Solution Approach 1:
The I/O operation is divided into smaller segments that can be processed asynchronously. The compression process operates on these segmented blocks independently, allowing compression to occur in parallel with other I/O operations, thus improving efficiency while managing complexity through structured segmentation
Solution Approach 2:
The system performs compression before encryption by introducing a delay mechanism that allows the compression process to complete on the original data before the encryption layer is applied. This preliminary compression action preserves redundancy for effective compression while maintaining subsequent encryption for security
Data Source
AI summary
In one aspect, a method of compressing data includes splitting an I/O into smaller I/Os based on an I/O throughput. The size of the smaller I/Os are equal or less than a set block size. The method also includes asynchronously compressing the smaller I/Os. In another aspect, an article includes a non-transitory machine-readable medium that stores executable instructions. The instructions cause a machine to split an I/O into smaller I/Os based on an I/O throughput and asynchronously compress the smaller I/Os. The size of the smaller I/Os being equal or less than a set block size. In a further aspect, a system includes circuitry configured to split an I/O into smaller I/Os based on an I/O throughput and asynchronously compress the smaller I/Os. The size of the smaller I/Os being equal or less than a set block size.


