IP Library Granted Patent US 11,307,841
Granted Patent B2
US 11,307,841 · App. 16/526,440 · Granted Apr 19, 2022

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 11,307,841
App. No.
16/526,440
Granted
Apr 19, 2022
Kind
B2
Abstract

A method, system and non-transitory computer readable instructions for application patching comprising, concatenating uncompressed data 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 sending the encrypted fixed size data blocks over a network.

Claims (62)

1. A method for application patching comprising:

a) concatenating 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 chunk;

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) 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 depuplicated 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;

non-transitory instruction embedded in memory that when executed cause the processor to carry out the method comprising;

a) concatenating 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) 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 depuplicated 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. Non-transitory instructions embedded in a computer readable medium that, when executed, cause a computer to carry out the method for application patching, the method comprising:

a) concatenating 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) sending the encrypted fixed size data blocks over a network.

16. The non-transitory instructions 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 instructions 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 instructions of claim 15 , wherein each of the variable sized chunks is greater than 64 kibibytes in size.

19. The non-transitory instructions 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 instructions 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 Feb 25, 2022
From: CERNY, MARK EVAN; WHITTAKER, SIMON; HATAKEYAMA, AKIYUKI; LITZ, JEFFREY; BHADAURIA, VARUN
To: SONY INTERACTIVE ENTERTAINMENT LLC
Reel/Frame 059103/0771 →
Continuity (1)
Related Publication 20210034348A1 · Feb 4, 2021