Systems and methods for searching deduplicated data
AssigneeEMC IP Holding Company LLC
InventorPhilip Shilane
Life of this patent
Estimating the term…
Abstract
A search term is received at deduplicated storage storing data segmented into segments. Segment fingerprints are generated and metadata maintained to allow reconstruction of the segmented data. The metadata includes fingerprint listings indicating sequences according to which the segments should be reconstructed. The segments are read to determine whether there are any matches of the search term. Matches are recorded in a results table. A first fingerprint listing associated with a first object is read. The results table is queried for fingerprints in the first fingerprint listing to determine whether the first object references any matches in the results table.
Claims20
A method comprising:
- receiving, at a deduplicated storage system, a search query comprising a search term, the deduplicated storage system storing data segmented into a plurality of segments, wherein fingerprints of the segments are generated referencing the segments, and metadata is maintained to allow reconstruction of the segmented data, the metadata comprising fingerprint listings indicating sequences according to which the segments should be reconstructed for an object;
- reading the plurality of segments to determine whether a segment includes at least a portion of the search term;
- identifying a full match when all of the search term is found in the segment;
- recording full matches in a results table, each record of a full match comprising a fingerprint of the segment in which the full match was identified;
- reading a first fingerprint listing associated with a first object;
- querying the results table for fingerprints in the first fingerprint listing to determine whether the first object references any matches in the results table;
- receiving from the results table a full match of the search term;
- and
- identifying the first object as having the search term.
A system comprising:
- a processor, and memory storing one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
- receiving, at a deduplicated storage system, a search query comprising a search term, the deduplicated storage system storing data segmented into a plurality of segments, wherein fingerprints of the segments are generated referencing the segments, and metadata is maintained to allow reconstruction of the segmented data, the metadata comprising fingerprint listings indicating sequences according to which the segments should be reconstructed for an object;
- reading the plurality of segments to determine whether a segment includes at least a portion of the search term;
- identifying a full match when all of the search term is found in the segment;
- recording full matches in a results table, each record of a full match comprising a fingerprint of the segment in which the full match was identified;
- reading a first fingerprint listing associated with a first object;
- querying the results table for fingerprints in the first fingerprint listing to determine whether the first object references any matches in the results table;
- receiving from the results table a full match of the search term;
- and
- identifying the first object as having the search term.
A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method comprising:
- receiving, at a deduplicated storage system, a search query comprising a search term, the deduplicated storage system storing data segmented into a plurality of segments, wherein fingerprints of the segments are generated referencing the segments, and metadata is maintained to allow reconstruction of the segmented data, the metadata comprising fingerprint listings indicating sequences according to which the segments should be reconstructed for an object;
- reading the plurality of segments to determine whether a segment includes at least a portion of the search term;
- identifying a full match when all of the search term is found in the segment;
- recording full matches in a results table, each record of a full match comprising a fingerprint of the segment in which the full match was identified;
- reading a first fingerprint listing associated with a first object;
- querying the results table for fingerprints in the first fingerprint listing to determine whether the first object references any matches in the results table;
- receiving from the results table a full match of the search term;
- and
- identifying the first object as having the search term.
Dependencies are inferred from the claim text.