×

Content addressable data storage and compression for semi-persistent computer memory for a database management system

  • US 7,117,203 B2
  • Filed: 12/03/2003
  • Issued: 10/03/2006
  • Est. Priority Date: 12/03/2003
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method of content addressable data storage and compression for semi-persistent computer memory for a database management system comprising:

  • providing in the database management system a data structure that associates data identifiers and retrieval keys for memory blocks for storing in semi-persistent memory data from the database management system;

    storing in the data structure a data identifier;

    providing a chunk of data comprising a quantity of input data from the database management system;

    retrieving a memory block from semi-persistent computer memory;

    searching at a repeating memory interval through a search section of the chunk for a segment of the chunk that matches a memory block from computer memory, including;

    calculating a weak checksum for the memory block;

    calculating rolling weak checksums for segments of the search section of the chunk;

    comparing the rolling weak checksums for the segments with the checksum for the memory block; and

    if a segment is found with a rolling weak checksum equal to the weak checksum of the memory block;

    calculating a strong checksum for the memory block;

    calculating a strong checksum for the segment with the matching rolling weak checksum;

    comparing the strong checksum of the memory block and the strong checksum for the segment with the equal rolling weak checksum;

    determining that the search has found a segment having contents that match the contents of the memory block if the strong checksum of the memory block and the strong checksum for the segment with the matching rolling weak checksum are equal;

    if a matching segment is found;

    discarding the matching segment;

    providing to the database management system a retrieval key for the memory block as a retrieval key for the matching segment;

    storing in the data structure in the database management system the retrieval key for the matching segment in association with the data identifier;

    identifying an unmatched portion of the chunk that does not match the memory block;

    identifying a free memory block of a file system;

    storing the unmatched portion semi-persistently in the free memory block;

    providing to the database management system a retrieval key for the unmatched portion; and

    storing in the data structure in the database management system the retrieval key for the unmatched portion in association with the data identifier.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×