IP Library Granted Patent US 8,190,823
Granted Patent B2
US 8,190,823 · App. 12/233,264 · Granted May 29, 2012

Apparatus, system and method for storage cache deduplication

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,190,823
App. No.
12/233,264
Granted
May 29, 2012
Kind
B2
Abstract

An apparatus, system, and method are disclosed for deduplicating storage cache data. A storage cache partition table has at least one entry associating a specified storage address range with one or more specified storage partitions. A deduplication module creates an entry in the storage cache partition table wherein the specified storage partitions contain identical data to one another within the specified storage address range thus requiring only one copy of the identical data to be cached in a storage cache. A read module accepts a storage address within a storage partition of a storage subsystem, to locate an entry wherein the specified storage address range contains the storage address, and to determine whether the storage partition is among the one or more specified storage partitions if such an entry is found.

Claims (39)

1. An apparatus comprising:

a storage cache partition table having at least one entry associating a specified storage address range with one or more specified storage partitions;

a deduplication module configured to create an entry in the storage cache partition table wherein the specified storage partitions contain identical data to one another within the specified storage address range thus requiring only one copy of the identical data to be cached in a storage cache common area that is partition-agnostic; and

a read module configured to accept a read storage address within a read partition of a storage subsystem, to locate a read entry in the storage cache partition table wherein the specified storage address range contains the read storage address, and to determine whether the read partition is among the one or more specified storage partitions if the read entry is found, such that the read storage address alone is sufficient to determine residency of the identical data in the storage cache common area.

2. The apparatus of claim 1 , wherein the specified storage address range is maximized so as to create as few entries as possible.

3. The apparatus of claim 1 , further comprising a write module configured to accept a write storage address within a write partition of the storage subsystem, to locate a write entry in the storage cache partition table wherein the specified storage address range contains the write storage address, and to delete the write partition from among the one or more specified storage partitions if the write entry is found.

4. The apparatus of claim 3 , wherein the specified storage address range is limited in size so as to lessen any potential impact of a write operation.

5. The apparatus of claim 1 , wherein the storage partition is a LUN.

6. A system comprising:

a storage cache partition table having at least one entry associating a specified storage address range with one or more specified storage partitions;

a deduplication module configured to create an entry in the storage cache partition table wherein the specified storage partitions contain identical data to one another within the specified storage address range thus requiring only one copy of the identical data to be cached in a storage cache common area that is partition-agnostic;

a read module configured to accept a read storage address within a read partition of a storage subsystem, to locate a read entry in the storage cache partition table wherein the specified storage address range contains the read storage address, and to determine whether the read partition is among the one or more specified storage partitions if the read entry is found, such that the read storage address alone is sufficient to determine residency of the identical data in the storage cache common area;

a write module configured to accept a write storage address within a write partition of the storage subsystem, to locate a write entry in the storage cache partition table wherein the specified storage address range contains the write storage address, and to delete the write partition from among the one or more specified storage partitions if the write entry is found;

a storage subsystem comprising the storage partitions; and

one or more computers upon which to run the foregoing modules.

7. The system of claim 6 , wherein the storage subsystem comprises a SAN.

8. The system of claim 7 , wherein the SAN includes a storage cache.

9. The system of claim 6 , wherein the one or more computers include a distributed storage cache.

10. The system of claim 9 , where in the distributed storage cache is comprised of a dedicated storage cache per computer.

11. The system of claim 6 , wherein the one or more computers are similarly configured.

12. The system of claim 11 , wherein the one or more computers are selected from the set consisting of blades, diskless workstations, call center workstations, thin clients, and POS terminals.

13. The system of claim 11 , wherein the storage subsystem comprises a dedicated storage partition per computer.

14. A computer program product comprising a computer readable storage medium having computer usable program code executable to perform operations for deduplicating storage cache data, the operations of the computer program product comprising:

creating an entry in a storage cache partition table associating a specified storage address range with one or more specified storage partitions wherein the specified storage partitions contain identical data to one another within the specified storage address range thus requiring only one copy of the identical data to be cached in a storage cache common area that is partition-agnostic;

accepting a read storage address within a read partition of a storage subsystem, to locate a read entry in the storage cache partition table wherein the specified storage address range contains the read storage address, and to determine whether the read partition is among the one or more specified storage partitions if the read entry is found, such that the read storage address alone is sufficient to determine residency of the identical data in the storage cache common area; and

accepting a write storage address within a write partition of the storage subsystem, to locate a write entry in the storage cache partition table wherein the specified storage address range contains the write storage address, and to delete the write partition from among the one or more specified storage partitions if the write entry is found.

15. The computer program product of claim 14 , wherein the operation of creating is potentially repeated after the operation of accepting the write storage address.

16. The computer program product of claim 14 , wherein a hashing function is used to determine whether the specified storage partitions contain identical data to one another.

17. A method for deduplicating storage cache data, the method comprising the steps of:

creating an entry in a storage cache partition table associating a specified storage address range with one or more specified storage partitions wherein the specified storage partitions contain identical data to one another within the specified storage address range thus requiring only one copy of the identical data to be cached in a storage cache common area that is partition-agnostic;

accepting a read storage address within a read partition of a storage subsystem, to locate a read entry in the storage cache partition table wherein the specified storage address range contains the read storage address, and to determine whether the read partition is among the one or more specified storage partitions if the read entry is found, such that the read storage address alone is sufficient to determine residency of the identical data in the storage cache common area; and

accepting a write storage address within a write partition of the storage subsystem, to locate a write entry in the storage cache partition table wherein the specified storage address range contains the write storage address, and to delete the write partition from among the one or more specified storage partitions if the write entry is found.

18. The method of claim 17 , wherein the step of accepting the read storage address further comprises reading the storage cache data if the read entry is found and the identical data is cached, otherwise reading the read partition of the storage subsystem.

19. The method of claim 17 , wherein the step of creating is potentially repeated after the step of accepting the write storage address.

20. The method of claim 19 , wherein the write entry is replaced by creating an entry specifying a minimum-sized address range containing the write storage address and not specifying the write partition, and by creating one or more entries specifying the write partition and respectively specifying address ranges covering the specified storage address range of the write entry not covered by the minimum-sized address range.

21. The method of claim 17 , further comprising a step of defragmenting the storage partitions by relocating data referenced by a minimum-sized address range containing the write storage address to a private area and then relocating the identical data that remains to occupy a common area which is as contiguous as possible.

22. The method of claim 21 , wherein the step of defragmenting is invoked when a threshold of a maximum number of entries is exceeded.

23. The method of claim 17 , further comprising a step of pre-caching the one copy of the identical data into a storage cache after the step of creating the entry.

24. The method of claim 17 , further comprising a step of initiating a boot operation on one or more computers having access to the storage subsystem, wherein the boot operation is accelerated by deduplicating the storage cache data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
NUNC PRO TUNC ASSIGNMENT Recorded Nov 25, 2015
From: LENOVO (SINGAPORE) PTE LTD.
To: LENOVO PC INTERNATIONAL
Reel/Frame 037160/0001 →