IP Library Granted Patent US 8,171,238
Granted Patent B1
US 8,171,238 · App. 11/825,440 · Granted May 1, 2012

Identification of data stored in memory

Assignee: Silver Peak Systems, Inc.
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,171,238
App. No.
11/825,440
Granted
May 1, 2012
Kind
B1
Abstract

Systems and methods for identification of data stored in memory are provided. A data packet is received and a first packet byte within the data packet is compared to a first memory byte within a memory. A mismatch is determined between the first packet byte and the first memory byte. A memory location is jumped to that contains a second memory byte that is non-consecutive with the first memory byte. A packet location is jumped to that contains a second packet byte that is non-consecutive with the first packet byte. The second packet byte is compared to the second memory byte. A retrieval instruction is generated based at least in part on a result of the comparison between the second packet byte and the second memory byte. Various embodiments may be included in a network memory architecture to allow for faster data matching and instruction generation in a central appliance.

Claims (44)

1. A method comprising:

receiving a first data packet;

comparing a first packet byte within the first data packet to a first memory byte within a memory, the memory comprising a first persistent memory and a second faster memory, at least the second faster memory residing in a network memory appliance;

determining a mismatch between the first packet byte and the first memory byte;

jumping to a memory location containing a second memory byte that is non-consecutive with the first memory byte;

jumping to a packet location containing a second packet byte that is non-consecutive with the first packet byte;

comparing the second packet byte to the second memory byte;

receiving a second data packet associated with the same Internet Protocol flow as the first data packet;

comparing a packet byte of the second data packet to a packet byte of the memory;

generating a retrieval instruction configured to transform one or more bytes in memory based at least in part on a result of the comparison between the second packet byte and the second memory byte;

pre-scanning the data packet to generate a sample fingerprint;

identifying stored fingerprints identical to the sample fingerprint; and

copying the first memory byte from the first persistent memory to the second faster memory based on the identification of matches with the identified stored fingerprints.

2. The method of claim 1 , wherein a number of packet bytes between the first packet byte and the second packet byte is equal to a number of memory bytes between the first memory byte and the second memory byte.

3. The method of claim 1 , further comprising comparing the second packet byte to a third memory byte that is consecutive with the second memory byte.

4. The method of claim 1 , further comprising generating an insertion command to insert a portion of a packet.

5. The method of claim 1 , further comprising generating a deletion command.

6. The method of claim 1 , further comprising generating an overwrite command.

7. The method of claim 1 , further comprising:

comparing a final packet byte to a third memory byte;

receiving a second data packet comprising an initial second packet byte; and

comparing the initial second packet byte of the second data packet to a fourth memory byte consecutive with the third memory byte.

8. A non-transitory computer readable medium having embodied thereon a program, the program being executable by a processor for performing a method for generating a retrieval instruction based on matched data, the method comprising:

receiving a first data packet;

comparing a first packet byte within the first data packet to a first memory byte within a memory, the memory comprising a first persistent memory and a second faster memory, at least the second faster memory residing in a network memory appliance;

determining a mismatch between the first packet byte and the first memory byte;

jumping to a memory location containing a second memory byte that is non-consecutive with the first memory byte;

jumping to a packet location containing a second packet byte that is non-consecutive with the first packet byte;

comparing the second packet byte to the second memory byte;

receiving a second data packet associated with the same Internet Protocol flow as the first data packet;

comparing a packet byte of the second data packet to a packet byte of the memory;

generating a retrieval instruction configured to transform one or more bytes in memory based at least in part on a result of the comparison between the second packet byte and the second memory byte;

pre-scanning the data packet to generate a sample fingerprint;

identifying stored fingerprints identical to the sample fingerprint; and

copying the first memory byte from the first persistent memory to the second faster memory based on the identification of matches with the identified stored fingerprints.

9. The computer readable medium of claim 8 , wherein a number of packet bytes between the first packet byte and the second packet byte is equal to a number of memory bytes between the first memory byte and the second memory byte.

10. The computer readable medium of claim 8 , wherein the method further comprises comparing the second packet byte to a third memory byte that is consecutive with the second memory byte.

11. The computer readable medium of claim 8 , wherein the method further comprises generating an insertion command.

12. The computer readable medium of claim 8 , wherein the method further comprises generating a deletion command.

13. The computer readable medium of claim 8 , wherein the method further comprises generating an overwrite command.

14. The computer readable medium of claim 8 , wherein the method further comprises:

comparing a final packet byte to a third memory byte;

receiving a second data packet comprising an initial second packet byte; and

comparing the initial second packet byte of the second data packet to a fourth memory byte consecutive with the third memory byte.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 059670/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2022
From: SILVER PEAK SYSTEMS, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058943/0547 →
RELEASE OF SECURITY INTEREST Recorded Sep 22, 2020
From: GOLUB CAPITAL LLC
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 053852/0231 →
SECURITY INTEREST Recorded Apr 16, 2019
From: SILVER PEAK SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS AGENT
Reel/Frame 048921/0455 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2007
From: HUGHES, DAVID ANTHONY; YIN, ZHIGANG; BURNS, JOHN
To: SILVER PEAK SYSTEMS, INC.
Reel/Frame 019571/0995 →