IP Library Granted Patent US 10,048,959
Granted Patent B2
US 10,048,959 · App. 15/315,272 · Granted Aug 14, 2018

Method and apparatus for incremental upgrade

Inventor: Xiaozhi Sun (Guangzhou, CN)
Assignee: Guangzhou UCWEB Computer Technology Co., Ltd.
G06F8/658H03M7/30
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 10,048,959
App. No.
15/315,272
Granted
Aug 14, 2018
Kind
B2
Abstract

Disclosed is a method and an apparatus for incremental upgrade. When a server generates an incremental file, it acquires sub-files of different types in an old version compressed file and a new version compressed file, and performs different difference comparison steps on the sub-files of different types, to obtain difference data files for corresponding types: for sub-files that satisfy a preset decompression condition, a decompression comparison method is used to perform difference comparison, and for sub-files that do not satisfy the preset decompression condition, a direct comparison method is used to perform difference comparison; subsequently, a client acquires the difference data files from the server, and according to the type of a difference data file, carries out a merge operation on the difference data file and the old version compressed file to obtain the new version compressed file.

Claims (80)

1. A method for incremental upgrade, comprising:

acquiring, by a server, a second type sub-file, wherein the second type sub-file is in both a new version compressed file and an old version compressed file, and each of the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file satisfies a preset decompression condition;

decompressing, by the server, the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file, and performing, by the server, difference comparison to obtain a first difference data file, comprising:

writing, by the server, a file data header of the second type sub-file in the new version compressed file into a memory;

decompressing the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file;

performing difference comparison to obtain the first difference data file;

writing the first difference data file to a memory address of the file data header of the second type sub-file in the memory;

after writing the first difference data file to the memory address of the file data header of the second type sub-file in the memory, storing the first difference data file in the memory continuously with the second type sub-file; and

obtaining the first difference data file according to the file data header of the second type sub-file and the first difference data file in continuous storage; and

according to the first difference data file, generating, by the server, an incremental file for a client to perform incremental upgrade.

2. The method for incremental upgrade according to claim 1 , wherein the preset decompression condition comprises: a size of a file before compression greater than a preset byte value, and a compression ratio smaller than a preset ratio; wherein the compression ratio is a ratio of a size of a file after compression to the size of the file before compression.

3. The method for incremental upgrade according to claim 1 , further comprising:

acquiring, by the server, a third type sub-file, wherein the third type sub-file is in both the new version compressed file and the old version compressed file, and at least one of the third type sub-file in the new version compressed file and the third type sub-file in the old version compressed file does not satisfy the preset decompression condition;

performing, by the server, difference comparison between the third type sub-file in the new version compressed file and the third type sub-file in the old version compressed file without decompression, to obtain a second difference data file, comprising:

determining, by the server, that a plurality of third type sub-files with continuous memory addresses exist in the new version compressed file;

determining, by the server, that a corresponding plurality of third type sub-files in the old version compressed file also have continuous memory addresses;

using the plurality of third type sub-files with continuous memory addresses in the new version compressed file as a first integral file;

using the plurality of third type sub-files with continuous memory addresses in the old version compressed file as a second integral file; and

performing difference comparison between the first integral file and the second integral file without decompression to obtain the second difference data file.

4. The method for incremental upgrade according to claim 3 , further comprising acquiring, by the server, a first type sub-file, wherein the first type sub-file is in the new version compressed file and not in the old version compressed file, wherein generating the incremental file for the client to perform incremental upgrade is further according to the first type sub-fileand the second difference data file.

5. The method for incremental upgrade according to claim 1 , wherein, before acquiring, by the server, the second type sub-file, the method further comprises:

receiving, by the server, a file upgrade request sent from the client; and

upon receiving the file upgrade request, carrying out, by the server, the step of acquiring the second type sub-file.

6. The method for incremental upgrade according to claim 1 , further comprising acquiring, by the server, a first type sub-file, wherein the first type sub-file is in the new version compressed file and not in the old version compressed file, wherein generating the incremental file for the client to perform incremental upgrade is further according to the first type sub-file.

7. A method for incremental upgrade, comprising:

acquiring, by a client, an incremental file from a server, wherein the incremental file comprises a first difference data file, wherein the first difference data file is a file obtained by decompressing a second type sub-file in a new version compressed file and the second type sub-file in a corresponding old version compressed file, and performing difference comparison, comprising:

writing, by the server, a file data header of the second type sub-file in the new version compressed file into a memory;

decompressing the second type sub-file in the new version compressed file and the second type sub-file in the corresponding old version compressed file;

performing difference comparison to obtain the first difference data file;

writing the first difference data file to a memory address of the file data header of the second type sub-file in the memory;

after writing the first difference data file to the memory address of the file data header of the second type sub-file in the memory, storing the first difference data file in the memory continuously with the second type sub-file; and

obtaining the first difference data file according to the file data header of the second type sub-file and the first difference data file in continuous storage;

wherein each of the second type sub-file in the new version compressed file and the second type sub-file in the corresponding old version compressed file satisfies a preset decompression condition; and

using, by the client, the incremental file to obtain the new version compressed file, wherein the using comprises: decompressing the second type sub-file in the corresponding old version compressed file; merging the decompressed second type sub-file with the first difference data file to obtain a first merged sub-file; compressing the first merged sub-file to obtain a first compressed sub-file; and using at least the first compressed sub-file to obtain the new version compressed file.

8. The method for incremental upgrade according to claim 7 , further comprising:

reading, by the client, a file data header of the first difference data file;

storing, by the client, the file data header of the first difference data file;

reading the second type sub-file in the corresponding old version compressed file corresponding to the first difference data file;

after reading the second type sub-file, decompressing the second type sub-file;

merging the decompressed second type sub-file with the first difference data file to obtain the first merged sub-file; and

compressing the file data header and the first merged sub-file to obtain the first compressed sub-file.

9. The method for incremental upgrade according to claim 7 , wherein the preset decompression condition comprises: a size of a file before compression is greater than a preset byte value, and a compression ratio is smaller than a preset ratio; wherein the compression ratio is a ratio of a size of a file after compression to the size of the file before compression.

10. The method for incremental upgrade according to claim 7 , wherein the incremental file further comprises a first type sub-file, wherein the first type sub-file is in the new version compressed file and not in the corresponding old version compressed file, wherein using, by the client, the incremental file to obtain the new version compressed file further comprises merging the first compressed sub-file and the first type sub-file, wherein using at least the first compressed sub-file to obtain the new version compressed file further comprises using the first compressed sub-file.

11. The method for incremental upgrade according to claim 10 , wherein the incremental file further comprises a second difference data file, wherein the second difference data file is a file obtained by performing difference comparison between a third type sub-file in the new version compressed file and the third type sub-file in the corresponding old version compressed file without decompression, wherein at least one of the third type sub-file in the new version compressed file and the third type sub-file in the old version compressed file does not satisfy the preset decompression condition, wherein using, by the client, the incremental file to obtain the new version compressed file further comprises:

merging the third type sub-file in the old version compressed file with the second difference data file to obtain a second merged sub-file;

compressing the second merged sub-file to obtain a second compressed sub-file; and

merging the first compressed sub-file, the second compressed sub-file, and the first type sub-file to obtain the new version compressed file.

12. A non-transitory computer readable medium, wherein the non-transitory computer readable medium is on the server and has computer-readable program code portions stored, wherein the computer-readable program code portions comprising an executable portion configured to trigger the server to carry out the method for incremental upgrade according to claim 1 .

13. A non-transitory computer readable medium, wherein, the non-transitory computer readable medium is on the client and has computer-readable program code portions stored, wherein the computer-readable program code portions comprising an executable portion configured to trigger the client to carry out the method for incremental upgrade according to claim 7 .

14. A server comprising a processor and a non-transitory memory including computer program code, the non-transitory memory and the computer program code configured to, with the processor, cause the server to:

acquire a second type sub-file, wherein the second type sub-file is in both a new version compressed file and an old version compressed file, and each of the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file satisfies a preset decompression condition;

decompress the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file, and perform difference comparison to obtain a first difference data file, wherein the non-transitory memory and the computer program code further configured to, with the processor, cause the server to:

write a file data header of the second type sub-file in the new version compressed file into a memory;

decompress the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file, and perform difference comparison to obtain the first difference data file;

write the first difference data file to a memory address of the file data header of the second type sub-file in the memory;

store, after the first difference data file is written to the memory address of the file data header of the second type sub-file in the memory, the first difference data file in the memory continuously with the second type sub-file; and

obtain the first difference data file according to the file data header of the second type sub-file and the first difference data file in continuous storage; and

according to the first difference data file, generate an incremental file for a client to perform incremental upgrade.

15. The server according to claim 14 , wherein the preset decompression condition comprises: a size of a file before compression greater than a preset byte value, and a compression ratio smaller than a preset ratio; wherein the compression ratio is a ratio of a size of a file after compression to the size of the file before compression.

16. The server according to claim 14 , wherein the non-transitory memory and the computer program code configured to, with the processor, cause the server to:

acquire a third type sub-file, wherein the third type sub-file is in both the new version compressed file and the old version compressed file, and at least one of the third type sub-file in the new version compressed file and the third type sub-file in the old version compressed file does not satisfy the preset decompression condition; and

decompress the second type sub-file in the new version compressed file and the second type sub-file in the old version compressed file further comprises:

determining that a plurality of third type sub-files with continuous memory addresses exist in the new version compressed file, and determining that a corresponding plurality of third type sub-files in the old version compressed file also have continuous memory addresses;

using the plurality of third type sub-files with continuous memory addresses in the new version compressed file as a first integral file, and using the plurality of third type sub-files with continuous memory addresses in the old version compressed file as a second integral file; and

performing difference comparison between the first integral file and the second integral file without decompression, to obtain a second difference data file.

17. The server according to claim 16 , wherein the non-transitory memory and the computer program code configured to, with the processor, cause the server to further acquire a first type sub-file, wherein the first type sub-file is in the new version compressed file and not in the old version compressed file, wherein generating the incremental file for the client to perform incremental upgrade is further according to the first type sub-file and the second difference data file.

18. The server according to claim 14 , wherein the non-transitory memory and the computer program code are configured to, with the processor, cause the server to:

before acquiring the second type sub-file, receive a file upgrade request sent from the client.

19. The server according to claim 14 , wherein the non-transitory memory and the computer program code configured to, with the processor, cause the server to further acquire a first type sub-file, wherein the first type sub-file is in the new version compressed file and not in the old version compressed file, wherein generating the incremental file for the client to perform incremental upgrade is further according to the first type sub-file.

20. A client comprising a processor and a non-transitory memory including computer program code, the non-transitory memory and the computer program code configured to, with the processor, cause the client to:

acquire an incremental file from a server, wherein the incremental file comprises a first difference data file, wherein the first difference data file is a file obtained by decompressing a second type sub-file in a new version compressed file and the second type sub-file in a corresponding old version compressed file, and performing difference comparison, wherein the non-transitory memory and the computer program code further configured to, with the processor, cause the client to:

write a file data header of the second type sub-file in the new version compressed file into a memory;

decompress the second type sub-file in the new version compressed file and the second type sub-file in the corresponding old version compressed file, and perform difference comparison to obtain the first difference data file;

write, the first difference data file to a memory address of the file data header of the second type sub-file in the memory;

store, after the first difference data file is written to the memory address of the file data header of the second type sub-file in the memory, the first difference data file in the memory continuously with the second type sub-file; and

obtain the first difference data file according to the file data header of the second type sub-file and the first difference data file in continuous storage;

wherein each of the second type sub-file in the new version compressed file and the second type sub-file in the corresponding old version compressed file satisfies a preset decompression condition;

use the incremental file to obtain the new version compressed file, wherein the using comprises: decompressing the second type sub-file in the corresponding old version compressed file, merging with the first difference data file to obtain a first merged sub-file, compressing the first merged sub-file to obtain a first compressed sub-file, and using at least the first compressed sub-file to obtain the new version compressed file.

21. The client according to claim 20 , wherein the preset decompression condition comprises: a size of a file before compression is greater than a preset byte value, and a compression ratio is smaller than a preset ratio; wherein the compression ratio is a ratio of a size of a file after compression to the size of the file before compression.

22. The client according to claim 20 , wherein the incremental file further comprises a first type sub-file, wherein the first type sub-file is in the new version compressed file and not in the corresponding old version compressed file, wherein using, the incremental file to obtain the new version compressed file further comprises merging the first compressed sub-file and the first type sub-file, wherein using at least the first compressed sub-file to obtain the new version compressed file further comprises using the first compressed sub-file.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2020
From: GUANGZHOU UCWEB COMPUTER TECHNOLOGY CO., LTD
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 052771/0562 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2016
From: SUN, XIAOZHI
To: GUANGZHOU UCWEB COMPUTER TECHNOLOGY CO., LTD.
Reel/Frame 040470/0415 →
Priority Claims (1)
CN 2014 1 0238919 · May 30, 2014 · national
Continuity (1)
Related Publication 20170249140A1 · Aug 31, 2017
Cited By (2)
US 12,282,760 US 12,360,967