IL178694A

Method and system for compression of files for storage and operation on compressed files

Abstract

This record has no abstract on file.

IL178694A, drawing sheet 1
Sheet 1 of 17

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Published
  4. Today

12 claims: 7 independent, 5 dependent

  1. 1
    A method of creating a compressed file for storage in a storage device operable with at least one file access storage protocol, said method comprising:a) compressing a raw file (41) and thereby generating compressed data (44) wherein at least one fixed-size portion of data (cluster) (43A, 43B) of the raw file is sequentially processed into corresponding, compressed section (46A, 46B) divided into one or more fixed-size compression logical units (CLU) (48-AO, 48-A1,48-A2);b) facilitating storing the compressed data as a compressed file (44), the compressed file containing the compressed sections (46A, 46B) corresponding to the clusters (43A, 43B) of the raw file and a header (45) holding information about the size of the corresponding raw file;and c) creating a section table (47) comprising at least one record related to a compressed section, said record holding at least information on CLUs corresponding to the compressed section and storage location pointers pertaining to said CLU.
  2. 2
    The method of Claim 1 further comprising reporting the size of the raw file in reply to a request referring to a size of the corresponding stored compressed file.
  3. 3
    The method of Claim 1 or 2 wherein compression of at least one cluster is provided only if obtainable compression ratio assessed during the processing meets a predefined criterion.
  4. 4
    The method of any one of Claims 1-3 wherein the compressed file contains at least one compressed section accommodating non-compressed data of the corresponding cluster.
  5. 5
    Themethodof any one of Claims 1-4 wherein at least one record among the records in the section table describing the compressed sections holds information indicating if the compressed section contains compressed data.
  6. 6
    A method of writing data at a given data range to a file compressed in accordance with any one of Claims 1-5, said method comprising:a) determining a serial number of first compressed section comprising data to be updated, said section giving rise to an original compressed section;b) determining the CLUs corresponding to said original compressed section and storage location thereof by referring to the section table;c) facilitating restoring the cluster from said original compressed section;d) calculating an offset of data to be updated within said cluster and facilitating the update;e) compressing the updated cluster into an updated compressed section;f) facilitating overwriting said original compressed section with updated compressed section;g) updating the section table;h) repeating stages b) to g) for compressed sections with serial numbers incremented by 1 if the range of data to be written exceeds the restored clusters, until all required data are written;and i) handling a list of free CLUs released during writing data to the compressed file, said list being handled during all sessions related to the file until the file is closed.
  7. 7
    The method of Claim 6 further comprising comparing the number N o of CLUs corresponding to said original section and said number N u of CLUs corresponding to said updated compressed sections and facilitating one of the following:a) overwriting all CLUs corresponding to the original compressed section with CLUs corresponding to the updated compressed section if Ng=N u ;b) overwriting first N u CLUs corresponding to the original compressed section with CLU corresponding to the updated compressed section and updating the list of free CLUs about released CLUs if /V O >N U ;c) overwriting all CLUES corresponding to the original compressed section with CLUs corresponding to the updated compressed section and writing the rest of CLUs corresponding to the updated compressed section to the CLUs contained in the list of free CLUs, if N O <N U < N 0 +Nf, where N f is a number of CLUs in said list;and d) overwriting all CLUs corresponding to the original compressed section with CLUs corresponding to the updated compressed section, writing the CLUs corresponding to the updated compressed section to the CLU contained in the list of free CLUs, and continuous writing the rest of CLUs corresponding to the updated compressed section to next free storage location if N 0 +N f <N U .
  8. 8
    The method of Claims 6 or 7 further comprising:a) checking the list of free CLUs before closing the file;b) if said list is not empty, defining a CLU with the highest storage location pointer among CLUs comprised in the compressed sections giving rise to first CLU;c) facilitating moving the compressed data from said first CLU to a free CLU with lower storage location pointer giving rise to second CLU;d) assigning said second CLU to pertaining compressed section and said first CLU to the list of free CLUs;e) repeating the stages b)-d) until the storage location pointers of all CLUs comprised in compressed sections are lower than a pointer of any of CLU comprising in the list of free CLUs;and f) updating the section table.
  9. 9
    A communication device or a storage device operable in a storage network and being adapted to perform the method stages of any one of Claims 1-8.
  10. 10
    A system for compressing files for storage comprising:a) a subsystem adapted for compressing a raw file (41) and thereby generating the compressed data (44) wherein one or more fixed-size portions of data (cluster) (43A, 43B) of the raw file are sequentially processed into compressed sections (46A, 46B) divided into at least one fixed-size compression logical unit (CLU);b) a subsystem adapted for facilitating storing the compressed data as a compressed file (44) the compressed file containing one or more compressed sections (46A, 46B) corresponding to the clusters (43A, 43B) of the raw file and a header (45) holding information about the size of the corresponding raw file;and c) a subsystem adapted for creating a section table (47) comprising at least one record related to a compressed section, said record holding information on CLUs corresponding to the compressed section and storage location pointers pertaining to said CLU.
  11. 11
    The system of Claim 10 further configured to intervene in a request referring to a size of stored compressed file and to enable reporting the size of the respective raw file in reply to said request.
  12. 12
    A computer program comprising computer program code means for performing all the steps of any one of Claims 1-8 when said program is run on a computer and/or embodied on a computer readable medium.