IP Library Granted Patent US 7,477,166
Granted Patent B2
US 7,477,166 · App. 11/508,531 · Granted Jan 13, 2009

Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation

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 7,477,166
App. No.
11/508,531
Granted
Jan 13, 2009
Kind
B2
Abstract

In a coding system, input data within a system is encoded. The input data might include sequences of symbols that repeat in the input data or occur in other input data encoded in the system. The encoding includes determining a target segment size, determining a window size, identifying a fingerprint within a window of symbols at an offset in the input data, determining whether the offset is to be designated as a cut point and segmenting the input data as indicated by the set of cut points. For each segment so identified, the encoder determines whether the segment is to be a referenced segment or an unreferenced segment, replacing the segment data of each referenced segment with a reference label and storing a reference binding in a persistent segment store for each referenced segment, if needed. Hierarchically, the process can be repeated by grouping references into groups, replacing the grouped references with a group label, storing a binding between the grouped references and group label, if one is not already present, and repeating the process. The number of levels of hierarchy can be fixed in advanced or it can be determined from the content encoded.

Claims (42)

1. A method for performing a backup of files, the method comprising:

receiving, at a backup system, a plurality of files to be backed up;

segmenting, with a segmenter of the backup system, each file into one or more segments;

forming a list for each file, wherein forming a list comprises:

(a) determining whether each segment is present in a segment store, wherein a segment that is present in the segment store has an assigned reference label;

(b) for each segment present in the segment store, adding to the list the assigned reference label; and

(c) for each segment not present in the segment store, assigning a reference label to the segment, storing the segment and the reference label, and adding the reference label to the list; and

storing, in a database of the near-line file system, an association between each file and the corresponding list.

2. The method of claim 1 , wherein the plurality of files are received from a file server that is connected with a plurality of clients.

3. The method of claim 1 , wherein the backup system is a near-line file system.

4. The method of claim 1 , wherein the segment and its assigned reference label are both stored in the segment store.

5. The method of claim 1 , wherein the reference labels are partly independent of content of a segment.

6. The method of claim 1 , further comprising adding a time stamp to a list.

7. The method of claim 1 , further comprising:

determining whether any sequence of segments is grouped as a reference group,

wherein forming a list further comprises:

(d) determining whether a reference group is present in the segment store, wherein the segment store includes a group label to the reference labels of the reference group present in the segment store;

(e) for each reference group present in the segment store, adding to the list the group label; and

(f) for each reference group not present in the segment store, assigning a reference label to a reference group segment not present in the segment store, storing the reference group segment and the reference label in the segment store, assigning a group label to the reference labels of the reference group, storing the group label in the segment store, and adding the group label to the list.

8. A backup system for performing a backup of files, the near-line backup system comprising:

an interface for receiving a plurality of files to be backed up;

a segmenter configured to segment each file;

an encoder for forming a list for each file, the encoder comprising:

(a) logic configured to determine whether each segment is present in a segment store, wherein a segment that is present in the segment store has an assigned reference label;

(b) for each segment present in the segment store, logic configured to add to the list the assigned reference label; and

(c) for each segment not present in the segment store, logic configured to assign a reference label to the segment, store the segment and the reference label, and add the reference label to the list; and

logic configured to store an association between each file and the corresponding list in a database of the near-line file system.

9. The backup system of claim 8 , wherein the interface is configured to receive the files from a file server that is connected with a plurality of clients.

10. The backup system of claim 8 , wherein the backup system is a near-line file system.

11. The backup system of claim 8 , wherein the segment and its assigned reference label are both stored in the segment store.

12. The backup system of claim 8 , wherein the reference labels are partly independent of content of a segment.

13. The backup system of claim 8 , further comprising logic configured to add a time stamp to a list.

14. The backup system of claim 8 , further comprising:

a sequence determiner for determining whether any sequence of segments is grouped as a reference group,

wherein the encoder further comprises:

(d) logic configured to determine whether a reference group is present in the segment store, wherein the segment store includes a group label to the reference labels of the reference group present in the segment store;

(e) for each reference group present in the segment store, logic configured to add to the list the group label; and

(f) for each reference group not present in the segment store, logic configured to assign a reference label to a reference group segment not present in the segment store, store the reference group segment and the reference label in the segment store, assign a group label to the reference labels of the reference group, store the group label in the segment store, and add the group label to the list.

15. The backup system of claim 8 , wherein the interface is NFS.

16. The backup system of claim 8 , wherein the interface is CIFS.

17. The backup system of claim 8 , further comprising:

a decoder for decoding a list for each file, the decoder comprising logic configured to replace reference labels with segments of the file to recreate the file.

Assignments (21)
RELEASE OF SECURITY INTEREST Recorded Aug 11, 2023
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC; RIVERBED HOLDINGS, INC.
Reel/Frame 064673/0739 →
CHANGE OF NAME Recorded Feb 18, 2022
From: RIVERBED TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY LLC
Reel/Frame 059232/0551 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0169 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0108 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Dec 27, 2021
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 058593/0046 →
SECURITY INTEREST Recorded Dec 10, 2021
From: RIVERBED TECHNOLOGY LLC (FORMERLY RIVERBED TECHNOLOGY, INC.); ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS U.S. COLLATERAL AGENT
Reel/Frame 058486/0216 →
PATENT SECURITY AGREEMENT Recorded Oct 27, 2021
From: RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 057943/0386 →
PATENT SECURITY AGREEMENT SUPPLEMENT - FIRST LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 057810/0502 →
PATENT SECURITY AGREEMENT SUPPLEMENT - SECOND LIEN Recorded Oct 14, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 057810/0559 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORED AT REEL 056397, FRAME 0750 Recorded Oct 13, 2021
From: MACQUARIE CAPITAL FUNDING LLC
To: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
Reel/Frame 057983/0356 →
SECURITY INTEREST Recorded May 26, 2021
From: RIVERBED HOLDINGS, INC.; RIVERBED TECHNOLOGY, INC.; ATERNITY LLC
To: MACQUARIE CAPITAL FUNDING LLC
Reel/Frame 056397/0750 →
PATENT SECURITY AGREEMENT Recorded Mar 5, 2021
From: RIVERBED TECHNOLOGY, INC.
To: ALTER DOMUS (US) LLC, AS COLLATERAL AGENT
Reel/Frame 055514/0249 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED ON REEL 035521 FRAME 0069. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST IN PATENTS. Recorded Jun 2, 2015
From: JPMORGAN CHASE BANK, N.A.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035807/0680 →
SECURITY INTEREST Recorded May 1, 2015
From: RIVERBED TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 035561/0363 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 28, 2015
From: BARCLAYS BANK PLC
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 035521/0069 →
PATENT SECURITY AGREEMENT Recorded Dec 27, 2013
From: RIVERBED TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 032421/0162 →
RELEASE OF PATENT SECURITY INTEREST Recorded Dec 26, 2013
From: MORGAN STANLEY & CO. LLC, AS COLLATERAL AGENT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 032113/0425 →
SECURITY AGREEMENT Recorded Dec 20, 2012
From: RIVERBED TECHNOLOGY, INC.; OPNET TECHNOLOGIES, INC.
To: MORGAN STANLEY & CO. LLC
Reel/Frame 029646/0060 →
CHANGE OF NAME Recorded Jun 18, 2009
From: NBT TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 022846/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2009
From: MCCANNE, STEVEN; DEMMER, MICHAEL J.
To: NBT TECHNOLOGY, INC.
Reel/Frame 022846/0058 →
CHANGE OF NAME Recorded Oct 13, 2006
From: NBT TECHNOLOGY, INC.
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 018395/0968 →