IP Library Granted Patent US 8,850,161
Granted Patent B2
US 8,850,161 · App. 12/903,975 · Granted Sep 30, 2014

Method of improving performance of a data storage device

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 8,850,161
App. No.
12/903,975
Granted
Sep 30, 2014
Kind
B2
Abstract

Methods are provided for efficiently storing data to a data storage device or subsystem. The data storage device may be a Solid-State Device (SSD), and may be implemented as part of a RAID (Redundant Array of Independent Disks) or other subsystem. When existing data is read and updated, and must be re-stored, the data is assembled and stored as if it were new data, and is written in a sequential manner, instead of being written to the same storage location. A newer generation number distinguishes it from the previous version. If the storage subsystem employs data striping, stripe size may be matched with the size of a logical collection of data (e.g., an extent), so that each such logical collection of data is wholly stored on just device in the storage subsystem. Concurrent device access may be supported by concurrently writing substripes of data to each device/extent.

Claims (48)

1. A method of storing data, the method comprising:

executing a data reduction application to reduce data exchanged between a client and a server engaged in a client-server communication application;

receiving updated data for the data reduction application at a data storage system having a minimum physical write size equal to multiple logical pages of data and characterized by a threshold number of updates to stored data;

reading a logical page of data from a first physical offset within the data storage system, wherein the logical page of data includes data corresponding to the updated data;

constructing in memory a first new logical page of data to include:

the updated data;

new data not already stored in the data storage system; and

less than all content of the logical page of data;

assigning a new version identifier to the first new logical page;

buffering the first new logical page until a threshold number of new logical pages of data, including the first new logical page, are accumulated; and

once the threshold number of new logical pages of data have been accumulated,

sequentially writing the first new logical page to a current physical offset within the data storage system instead of to the first physical offset,

calculating extent metadata for the threshold number of new logical pages, and

writing the extent metadata to the end or to the beginning of the threshold number of new logical pages.

2. The method of claim 1 , wherein said threshold number of new logical pages of data comprise an amount of data matching the minimum write size of the data storage system.

3. The method of claim 1 , wherein the data storage system comprises one or more solid-state data storage devices.

4. The method of claim 1 , wherein said constructing comprises updating the logical page of data.

5. The method of claim 4 , wherein said updating comprises updating metadata within the logical page of data.

6. The method of claim 4 , wherein said updating comprises adding data to the logical page of data.

7. The method of claim 1 , wherein said constructing comprises combining the content of the logical page with content of one or more other logical pages.

8. A non-transitory computer-readable medium storing instructions that, when executed by a computer, cause the computer to perform a method of storing data, the method comprising:

executing a data reduction application to reduce data exchanged between a client and a server engaged in a client-server communication application;

receiving updated data for the data reduction application at a data storage system having a minimum physical write size equal to multiple logical pages of data and characterized by a threshold number of updates to stored data;

reading a logical page of data from a first physical offset within the data storage system, wherein the logical page of data includes data corresponding to the updated data;

constructing in memory a first new logical page of data from to include:

the updated data;

new data not already stored in the data storage system; and

less than all content of the logical page of data;

assigning a new version identifier to the first new logical page;

buffering the first new logical page until a threshold number of new logical pages of data, including the first new logical page, are accumulated; and

once the threshold number of new logical pages of data have been accumulated,

sequentially writing the first new logical page to a current physical offset within the data storage system instead of to the first physical offset,

calculating extent metadata for the threshold number of new logical pages, and

writing the extent metadata to the end or to the beginning of the threshold number of new logical pages.

9. A method of sequentially storing randomly read data, the method comprising:

executing a data reduction scheme to reduce data exchanged between two nodes in a communication network;

reading a first page of data from a first offset within a data storage system;

updating the first page of data to form a second page of data, wherein said updating includes discarding obsolete data that are no longer used in the data reduction scheme;

calculating a current offset within the data storage system, wherein the current offset is an offset at which a new sequential write would be performed;

if the data storage system has a minimum write size greater than a size of the second page of data, accumulating pages of data, including the second page of data, until a total size of the accumulated pages of data match the minimum write size;

once the total size of the accumulated pages of data match the minimum write size,

writing the second page of data to the current offset,

calculating extent metadata for the accumulated pages of data, and

writing the extent metadata to the end or to the beginning of the accumulated pages of data.

10. The method of claim 9 , further comprising:

assigning to the second page of data a generation identifier newer than a generation identifier of the first page of data.

11. The method of claim 9 , wherein said updating comprises adding data to the first page of data.

12. The method of claim 9 , wherein said updating comprises modifying data within the first page of data.

Assignments (20)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2011
From: MANDAL, KALLOL; SUKUMAR, SUMANTH; JAIN, NITIN
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 026886/0708 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2011
From: PUNKUNUS, ROBERT
To: RIVERBED TECHNOLOGY, INC.
Reel/Frame 026886/0687 →