IP Library › Granted Patent US 11,269,516
Granted Patent B1
US 11,269,516 · App. 15/799,506 · Granted Mar 8, 2022

Pattern detection system and method

Inventors: Philippe Armangau (Acton, MA); Pierluca Chiodelli (Ashland, MA); George Papadopoulos (Franklin, MA)
Assignee: EMC IP HOLDING COMPANY, LLC
G06F3/0608G06F3/065G06F3/067G06F3/0641G06F12/0864G06F12/128G06F2212/6032G06F2212/621
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 11,269,516
App. No.
15/799,506
Granted
Mar 8, 2022
Kind
B1
Abstract

A method, computer program product, and computing system for receiving content on a high-availability storage system. The content is compared to one or more entries in a static database associated with a cache memory system of the high-availability storage system. If the content does not match the one or more entries in the static database, the content is compared to one or more entries in a dynamic database associated with the cache memory system. If the content does not match the one or more entries in the dynamic database: the content is written to the cache memory system and a representation of the content is written to a temporal database associated with the cache memory system and maintained for a defined period of time.

Claims (55)

1. A computer-implemented method of pattern detection, executed on a computing device, comprising:

receiving content from a write request on a storage system, wherein the write request is a request that the content be written to the storage system, wherein the storage system includes a frontend cache memory system and a backend cache memory system, wherein the frontend cache memory system includes a static database, a dynamic database, and a temporal database;

comparing the content to one or more entries stored in the static database located within the frontend cache memory system of the storage system, wherein the one or more entries stored in the static database include a number of patterns of data blocks stored within the frontend cache memory system, wherein each of the one or more entries stored in the static database are written as one or more fingerprints of the data blocks stored within the frontend cache memory system;

if the content does not match the one or more entries stored in the static database, comparing the content to one or more entries stored in the dynamic database located within the frontend cache memory system;

if the content does not match the one or more entries stored in the dynamic database:

writing the content to the frontend cache memory system; and

writing a representation of the content to the temporal database located within the frontend cache memory system, including writing a fingerprint of the content to the temporal database located within the frontend cache memory system, and maintaining the representation of the content for a defined period of time wherein the one or more fingerprints of the data blocks associated with the one or more entries stored in the static database are compared to the fingerprint of the content of the temporal database located within the frontend cache memory system;

reviewing one or more entries stored in the temporal database located within the frontend cache memory system to determine a hit rate for the one or more entries stored in the temporal database, wherein the hit rate for the one or more entries stored in the temporal database includes, at least in part, a first range, wherein the first range includes a hit rate of a number of hits within the defined period of time.

2. The computer-implemented method of claim 1 further comprising one or more of:

if the content does match the one or more entries stored in the static database located within the frontend cache memory system of the storage system, acknowledging the content without writing the content to the frontend cache memory system, as the content is duplicative of a piece of content already stored in the storage system; and

if the content does match the one or more entries stored in the dynamic database, acknowledging the content without writing the content to the frontend cache memory system, as the content is duplicative of a piece of content already stored in the storage system.

3. The computer-implemented method of claim 1 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in the first range, deleting the one or more entries from the temporal database.

4. The computer-implemented method of claim 1 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in a second range, maintaining the one or more entries within the temporal database.

5. The computer-implemented method of claim 1 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in a third range, promoting the one or more entries to the dynamic database.

6. The computer-implemented method of claim 1 , wherein the one or more entries stored in the dynamic database include a number of patterns of data blocks stored within the frontend cache memory system.

7. The computer-implemented method of claim 6 , wherein the number of patterns of data blocks stored within the frontend cache memory system include at least one of all 0s, all 1s, and varied 0s and 1s.

8. The computer-implemented method of claim 1 , wherein the number of hits within the defined period of time for the first range is 0-2 hits within 24 hours.

9. The computer-implemented method of claim 1 , wherein the hit rate for the one or more entries is indicative of a number of times that the one or more entries stored in the temporal database is matched with the content received by the storage system during the defined period of time.

10. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

receiving content from a write request on a storage system, wherein the write request is a request that the content be written to the storage system, wherein the storage system includes a frontend cache memory system and a backend cache memory system, wherein the frontend cache memory system includes a static database, a dynamic database, and a temporal database;

comparing the content to one or more entries stored in the static database located within the frontend cache memory system of the storage system, wherein the one or more entries stored in the static database include a number of patterns of data blocks stored within the frontend cache memory system, wherein each of the one or more entries stored in the static database are written as one or more fingerprints of the data blocks stored within the frontend cache memory system;

if the content does not match the one or more entries in the static database, comparing the content to one or more entries stored in the dynamic database located within the frontend cache memory system;

if the content does not match the one or more entries in the dynamic database:

writing the content to the frontend cache memory system; and

writing a representation of the content to the temporal database located within the frontend cache memory system, including writing a fingerprint of the content to the temporal database located within the frontend cache memory system, and maintaining the representation of the content for a defined period of time wherein the one or more fingerprints of the data blocks associated with the one or more entries stored in the static database are compared to the fingerprint of the content of the temporal database located within the frontend cache memory system; and

reviewing one or more entries stored in the temporal database located within the frontend cache memory system to determine a hit rate for the one or more entries stored in the temporal database, wherein the hit rate for the one or more entries stored in the temporal database includes, at least in part, a first range, wherein the first range includes a hit rate of a number of hits within the defined period of time.

11. The computer program product of claim 10 further comprising one or more of:

if the content does match the one or more entries stored in the static database located within the frontend cache memory system of the storage system, acknowledging the content without writing the content to the frontend cache memory system, as the content is duplicative of a piece of content already stored in the storage system; and

if the content does match the one or more entries stored in the dynamic database, acknowledging the content without writing the content to the frontend cache memory system, as the content is duplicative of a piece of content already stored in the storage system.

12. The computer program product of claim 10 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in the first range, deleting the one or more entries from the temporal database.

13. The computer program product of claim 10 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in a second range, maintaining the one or more entries within the temporal database.

14. The computer program product of claim 10 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in a third range, promoting the one or more entries to the dynamic database.

15. A computing system including a processor and memory configured to perform operations comprising:

receiving content from a write request on a storage system, wherein the write request is a request that the content be written to the storage system, wherein the storage system includes a frontend cache memory system and a backend cache memory system, wherein the frontend cache memory system includes a static database, a dynamic database, and a temporal database;

comparing the content to one or more entries stored in the static database located within the frontend cache memory system of the storage system, wherein the one or more entries stored in the static database include a number of patterns of data blocks stored within the frontend cache memory system, wherein each of the one or more entries stored in the static database are written as one or more fingerprints of the data blocks stored within the frontend cache memory system;

if the content does not match the one or more entries stored in the static database, comparing the content to one or more entries stored in the dynamic database located within the frontend cache memory system;

if the content does not match the one or more entries stored in the dynamic database:

writing the content to the frontend cache memory system; and

writing a representation of the content to the temporal database located within the frontend cache memory system, including writing a fingerprint of the content to the temporal database located within the frontend cache memory system, and maintaining the representation of the content for a defined period of time; and

reviewing one or more entries stored in the temporal database located within the frontend cache memory system to determine a hit rate for the one or more entries stored in the temporal database, wherein the hit rate for the one or more entries stored in the temporal database includes, at least in part, a first range, wherein the first range includes a hit rate of a number of hits within the defined period of time wherein the one or more fingerprints of the data blocks associated with the one or more entries stored in the static database are compared to the fingerprint of the content of the temporal database located within the frontend cache memory system.

16. The computing system of claim 15 further comprising one or more of:

if the content does match the one or more entries stored in the static database located within the frontend cache memory system of the storage system, acknowledging the content without writing the content to the frontend cache memory system, as the content is duplicative of a piece of content already stored in the storage system; and

if the content does match the one or more entries stored in the dynamic database, acknowledging the content without writing the content to the frontend cache memory system, as the content is duplicative of a piece of content already stored in the storage system.

17. The computing system of claim 15 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in the first range, deleting the one or more entries from the temporal database.

18. The computing system of claim 15 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in a second range, maintaining the one or more entries within the temporal database.

19. The computing system of claim 15 further comprising:

if the hit rate of the one or more entries stored in the temporal database located within the frontend cache memory system is in a third range, promoting the one or more entries to the dynamic database.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2017
From: ARMANGAU, PHILIPPE; CHIODELLI, PIERLUCA; PAPADOPOULOS, GEORGE
To: EMC IP HOLDING COMPANY, LLC
Reel/Frame 044083/0597 →
Cited By (1)
US 12,693,975