Patent ID: 7133963

Claim:
A method of content addressable data storage and compression for semi-persistent computer memory comprising: searching at a repeating memory interval through a search section of a 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 a retrieval key for the memory block as a retrieval key for the matching segment; 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; and providing a retrieval key for the unmatched portion.