IP Library Granted Patent US 12,169,706
Granted Patent B2
US 12,169,706 · App. 17/722,908 · Granted Dec 17, 2024

Application patching using variable-sized units

Inventors: Mark Evan Cerny (Burbank, CA); Simon Whittaker (San Francisco, CA); Akiyuki Hatakeyama (Tokyo, JP); Jeffrey Litz (San Mateo, CA); Varun Bhadauria (Union City, CA)
Assignee: SONY INTERACTIVE ENTERTAINMENT LLC
G06F8/65G06F16/1744G06F16/1752G06F21/602H04L63/0428H04L69/04
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,169,706
App. No.
17/722,908
Granted
Dec 17, 2024
Kind
B2
Abstract

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.

Claims (62)

1. A method for application patching comprising:

a) concatenating compressed data or uncompressed data or a mixture of compressed and uncompressed data into a continuous data set;

b) dividing the continuous data set into variable sized data chunks;

c) compressing each of the variable sized data chunks;

d) dividing each of the variable sized data chunks into fixed size data blocks;

e) encrypting the fixed size data blocks to generate encrypted fixed size data blocks;

f) storing the encrypted fixed sized data blocks or sending the encrypted fixed size data blocks over a network.

2. The method of claim 1 , further comprising:

g) dividing patch data into variable sized patch data chunks;

h) determining a relationship of variable sized patch data chunks to the variable sized data chunks;

i) generating patch metadata for the relationship of the variable sized patch data chunks to the variable sized data chunks;

j) compressing the variable sized patch data chunks to generate compressed variable sized patch data chunks;

k) dividing the compressed variable sized patch data chunks into fixed size patch data blocks;

l) encrypting the fixed size patch data blocks to generate encrypted fixed size patch data blocks;

m) sending the encrypted fixed size patch data blocks and the metadata over the network.

3. The method of claim 1 , further comprising generating a variable sized chunk metadata for a location of the variable sized chunks in relation to the encrypted fixed size blocks.

4. The method of claim 1 , wherein each of the variable sized chunks is greater than 64 kilobytes in size.

5. The method of claim 1 , further comprising deduplicating the variable sized data chunks after said dividing the variable sized data chunks into fixed size data blocks.

6. The method of claim 5 , further comprising generating variable sized chunk metadata for the variable sized data chunks, wherein the variable sized chunk metadata includes references for deduplicated chunks.

7. The method of claim 5 , wherein deduplicating the variable sized data chunks includes determining hash values for each variable sized block, comparing a hash value of a first variable sized chunk with a hash value of a second variable sized chunk, wherein the first variable sized chunk has a matching hash value with the second variable sized chunk deleting the second variable sized chunk and creating reference in memory to the first variable sized chunk.

8. A system for application patching comprising:

a processor;

a memory coupled to the processor;

instructions embedded in the memory that when executed cause the processor to carry out the method comprising;

a) concatenating compressed data or uncompressed data or a mixture of compressed and uncompressed data into a continuous data set;

b) dividing the continuous data set into variable sized data chunks;

c) compressing each of the variable sized data chunks;

d) dividing the variable sized data chunks into fixed size data blocks;

e) encrypting the fixed size data blocks to generate encrypted fixed size data blocks;

f) storing the encrypted fixed sized data blocks or sending the encrypted fixed size data blocks over a network.

9. The system of claim 8 , wherein the method further comprises:

g) dividing patch data into variable sized patch data chunks;

h) determining relationship of variable sized patch data chunks to variable sized data chunks;

i) generating a patch metadata for relationship of the variable sized patch data chunks to variable sized data chunks;

j) compressing the variable sized patch data chunks;

k) dividing the variable sized patch data chunks into fixed sized patch data blocks;

l) Encrypting the fixed size patch data blocks to generate encrypted fixed size patch data blocks;

m) sending the encrypted fixed size patch data blocks and metadata over the network.

10. The system of claim 8 , wherein the method further comprises generating a variable sized chunk metadata for a location of the variable sized chunks in relation to the encrypted fixed size blocks.

11. The system of claim 8 , wherein each of the variable sized chunks is greater than 64 kibibytes in size.

12. The system of claim 8 , wherein the method further comprises deduplicating the variable sized data chunks after said dividing the variable sized data chunks into fixed size data blocks.

13. The system of claim 12 , wherein the method further comprises generating variable sized chunk metadata for the variable sized data chunks, wherein the variable sized chunk metadata includes references for deduplicated chunks.

14. The system of claim 12 , wherein deduplicating the variable sized data chunks includes determining hash values for each variable sized block, comparing a hash value of a first variable sized chunk with a hash value of a second variable sized chunk, wherein the first variable sized chunk has a matching hash value with the second variable sized chunk deleting the second variable sized chunk and creating reference in memory to the first variable sized chunk.

15. A non-transitory computer readable medium having instructions embedded thereon that, when executed, cause a computer to carry out the method for application patching, the method comprising:

a) concatenating compressed data or uncompressed data or a mixture of compressed and uncompressed data into a continuous data set;

b) dividing the continuous data set into variable sized data chunks;

c) compressing each of the variable sized data chunks;

d) dividing the variable sized data chunks into fixed size data blocks;

e) encrypting the fixed size data blocks to generate encrypted fixed size data blocks;

f) storing the encrypted fixed sized data blocks or sending the encrypted fixed size data blocks over a network.

16. The non-transitory computer readable medium of claim 15 , wherein the method further comprises

g) dividing patch data into variable sized patch data chunks;

h) determining a relationship of variable sized patch data chunks to the variable sized data chunks;

i) generating a patch metadata for relationship of the variable sized patch data chunks to variable sized data chunks;

j) compressing the variable sized patch data chunks to generate compressed variable sized patch data chunks;

k) dividing the compressed variable sized patch data chunks into fixed size patch data blocks;

l) Encrypting fixed sized patch data blocks to generate encrypted fixed size patch data blocks;

m) sending the encrypted fixed sized patch data blocks and metadata over the network.

17. The non-transitory computer readable medium of claim 15 , wherein the method further comprises generating a variable sized chunk metadata for a location of the variable sized chunks in relation to the encrypted fixed size blocks.

18. The non-transitory computer readable medium of claim 15 , wherein each of the variable sized chunks is greater than 64 kibibytes in size.

19. The non-transitory computer readable medium of claim 15 , wherein the method further comprises deduplicating the variable sized data chunks after said dividing the variable sized data chunks into fixed size data blocks.

20. The non-transitory computer readable medium of claim 19 , wherein said deduplicating the variable sized data chunks includes determining hash values for each variable sized block, comparing a hash value of a first variable sized chunk with a hash value of a second variable sized chunk, wherein the first variable sized chunk has a matching hash value with the second variable sized chunk deleting the second variable sized chunk and creating reference in memory to the first variable sized chunk.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2022
From: CERNY, MARK EVAN; WHITTAKER, SIMON; HATAKEYAMA, AKIYUKI; LITZ, JEFFREY; BHADAURIA, VARUN
To: SONY INTERACTIVE ENTERTAINMENT LLC
Reel/Frame 059626/0082 →
Continuity (2)
Continuation 16526440 · Jul 30, 2019
Related Publication 20220236979A1 · Jul 28, 2022