Variable-Sized Data Chunks for SSD Application Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge lies in efficiently and securely delivering application updates over SSDs while minimizing the number of writes and erasures, as SSDs have limited longevity due to write and erase cycles, competing with the interests of both third-party marketplace operators and application developers.

Innovation Solution

Implementing variable sized data chunks for application and update data, which allows for more efficient updates by using rolling hashes, compression, and encryption, and remote triggering of data coalescence to reduce fragmentation and writes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application updates are delivered using traditional fixed-size block methods, then delivery efficiency is maintained, but the number of writes and erasures on SSD increases, reducing SSD longevity

Engineering Contradiction:
ImproveSSD longevityVSAvoidupdate delivery efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments application data into variable-sized chunks rather than fixed-size blocks. Each chunk is independently hashed, compressed, and encrypted. This segmentation allows the system to identify and update only the specific variable-sized chunks that have changed, rather than rewriting entire fixed-size blocks, thereby reducing SSD write/erase cycles while maintaining efficient update delivery.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs dynamic chunk sizing where the size of data chunks varies based on the actual content and change patterns. The system dynamically determines chunk boundaries using rolling hashes, allowing chunks to be larger or smaller depending on data characteristics. This dynamic approach optimizes both SSD longevity and update efficiency by adapting to actual data patterns rather than using static block sizes.

Inventive Principle:
Principle #15Dynamics

2Reliability

If data is compressed and encrypted for secure delivery, then security is improved, but processing time and computational resources increase

Engineering Contradiction:
Improvedata securityVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs compression and encryption operations on variable-sized chunks during the initial packaging phase, before delivery. Rolling hashes are computed and stored alongside the compressed/encrypted chunks. This preliminary processing allows the receiving system to quickly verify data integrity using the pre-computed hashes without needing to re-compress or re-encrypt during update operations, significantly reducing processing time while maintaining security.

Inventive Principle:
Principle #10Preliminary action

3Speed

If SSDs are used for fast file access, then file access speed is improved, but the number of write and erase cycles increases, reducing SSD lifespan

Engineering Contradiction:
Improvefile access speedVSAvoidSSD lifespan
Core Design Contradiction:
SpeedVSDuration of action of stationary object

Solution Approach 1:

The patent changes the fundamental parameter of data block size from fixed to variable. By using variable-sized chunks determined by rolling hashes, the system can precisely target only the minimal necessary data portions for updates. This parameter change reduces the total volume of data written to SSD during updates, thereby extending SSD lifespan while maintaining the speed benefits of SSD storage for file access.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12169706B2Application patching using variable-sized units
Publication Date: 2024.12.17 SONY INTERACTIVE ENTERTAINMENT LLC
  • US12169706B2 patent drawing
  • US12169706B2 patent drawing
  • US12169706B2 patent drawing

AI summary

A method, system and non-transitory computer readable instructions for application patching comprising, concatenating compressed data or uncompressed data or a mixture of compressed and uncompressed data into a continuous data set into a continuous data set and dividing the continuous data set into variable sized data chunks. Compressing each of the variable sized data chunks and dividing each of the variable sized data chunks into fixed size data blocks. Encrypting the fixed size data blocks to generate encrypted fixed size data blocks and storing the encrypted fixed sized data blocks or sending the encrypted fixed size data blocks over a network.