IP Library Granted Patent US 9,389,950
Granted Patent B2
US 9,389,950 · App. 14/542,088 · Granted Jul 12, 2016

Techniques for information protection in a solid-state device based storage pool

Inventors: Ramamohan Chennamsetty (Highland, NY); Nataraj Nagaratnam (Cary, NC); Sandeep P. Patil (Pune, IN); Riyazahamad M. Shiraguppi (Maharashtra, IN)
Assignee: International Business Machines Corporation
G06F11/1008G06F3/0619G06F12/0246G06F2212/7206
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 9,389,950
App. No.
14/542,088
Granted
Jul 12, 2016
Kind
B2
Abstract

A technique for protecting stored information from read disturbance includes receiving a first write request to a solid-state device (SSD) in a storage pool that employs an erasure code. The first write request has an associated identifier and associated data. In response to receiving the first write request, the first write request is assigned to two or more SSD blocks of the SSD device based on the identifier. Pages of the associated data are then written to the assigned SSD blocks, such that each SSD block holds data associated with only a single identifier.

Claims (51)

1. A method of protecting stored information from read disturbance, comprising:

receiving, by a data processing system, a first write request to a solid-state device (SSD) in a storage pool that employs an erasure code, wherein the first write request has an associated identifier and associated data;

in response to receiving the first write request, assigning, by the data processing system, the first write request to two or more SSD blocks of the SSD device based on the identifier; and

writing, by the data processing system, pages of the associated data to the assigned SSD blocks, such that each SSD block holds data associated with only a single identifier.

2. The method of claim 1 , wherein the assigning, by the data processing system, the first write request to one or more SSD blocks of the SSD device based on the identifier further comprises:

assigning, by the data processing system, the first write request to two or more SSD blocks of the SSD device based on the identifier when a respective first page of the two or more SSD blocks is written; and

maintaining, using the data processing system, the assignments of the two or more SSD blocks until the two or more SSD blocks are erased.

3. The method of claim 1 , wherein the identifier identifies an application associated with the write request and no two applications have the same identifier.

4. The method of claim 1 , wherein the identifier identifies a tenant associated with the write request and no two tenants have the same identifier.

5. The method of claim 1 , wherein the assignment is maintained in a file system that manages the storage pool or is maintained in a separate data structure.

6. The method of claim 1 , further comprising:

receiving a second write request to the SSD;

determining whether data associated with the second write request can be written to partially-filled SSD blocks of the SSD device that are associated with the identifier;

in response to determining the data associated with the second write request can be written to partially-filled SSD blocks of the SSD device that are associated with the identifier, writing the data to the partially-filled SSD blocks; and

in response to determining the data associated with the second write request cannot be written to partially-filled SSD blocks of the SSD device that are associated with the identifier, writing the data to one or more empty SSD blocks of the SSD device that are assigned to the identifier.

7. The method of claim 1 , wherein the associated data is striped across multiple SSD disks each of which includes one or more SSD blocks, and wherein each of the SSD blocks includes multiple pages.

8. The method of claim 1 , wherein the associated data includes application data and parity data.

9. A computer program product for protecting stored information from read disturbance, the computer program product comprising:

a computer-readable storage device; and

program code embodied on the computer-readable storage device, wherein the program code, when executed by a data processing system, causes the data processing system to:

receive a first write request to a solid-state device (SSD) in a storage pool that employs an erasure code, wherein the first write request has an associated identifier and associated data;

in response to receiving the first write request, assign the first write request to two or more SSD blocks of the SSD device based on the identifier; and

write pages of the associated data to the assigned SSD blocks, such that each SSD block holds data associated with only a single identifier.

10. The computer program product of claim 9 , wherein the program code, when executed by the data processing system, further causes the data processing system to:

assign the first write request to two or more SSD blocks of the SSD device based on the identifier when a respective first page of the two or more SSD blocks is written; and

maintain the assignments of the two or more SSD blocks until the two or more SSD blocks are erased.

11. The computer program product of claim 9 , wherein the identifier identifies an application associated with the write request and no two applications have the same identifier.

12. The computer program product of claim 9 , wherein the identifier identifies a tenant associated with the write request and no two tenants have the same identifier.

13. The computer program product of claim 9 , wherein the assignment is maintained in a file system that manages the storage pool or is maintained in a separate data structure.

14. The computer program product of claim 9 , wherein the program code, when executed by the data processing system, further causes the data processing system to:

receive a second write request to the SSD;

determine whether data associated with the second write request can be written to partially-filled SSD blocks of the SSD device that are associated with the identifier;

in response to determining the data associated with the second write request can be written to partially-filled SSD blocks of the SSD device that are associated with the identifier, write the data to the partially-filled SSD blocks; and

in response to determining the data associated with the second write request cannot be written to partially-filled SSD blocks of the SSD device that are associated with the identifier, write the data to one or more empty SSD blocks of the SSD device that are assigned to the identifier.

15. The computer program product of claim 9 , wherein the associated data is striped across multiple SSD disks each of which includes one or more SSD blocks, and wherein each of the SSD blocks includes multiple pages.

16. The computer program product of claim 9 , wherein the associated data includes application data and parity data.

17. A data processing system, comprising:

a memory; and

a processor coupled to the memory, wherein the processor is configured to:

receive a first write request to a solid-state device (SSD) in a storage pool that employs an erasure code, wherein the first write request has an associated identifier and associated data;

in response to receiving the first write request, assign the first write request to two or more SSD blocks of the SSD device based on the identifier; and

write pages of the associated data to the assigned SSD blocks, such that each SSD block holds data associated with only a single identifier.

18. The data processing system of claim 17 , wherein the processor is further configured to:

assign the first write request to two or more SSD blocks of the SSD device based on the identifier when a respective first page of the two or more SSD blocks is written; and

maintain the assignments of the two or more SSD blocks until the two or more SSD blocks are erased.

19. The data processing system of claim 18 , wherein the processor is further configured to:

receive a second write request to the SSD;

determine whether data associated with the second write request can be written to partially-filled SSD blocks of the SSD device that are associated with the identifier;

in response to determining the data associated with the second write request can be written to partially-filled SSD blocks of the SSD device that are associated with the identifier, write the data to the partially-filled SSD blocks; and

in response to determining the data associated with the second write request cannot be written to partially-filled SSD blocks of the SSD device that are associated with the identifier, write the data to one or more empty SSD blocks of the SSD device that are assigned to the identifier.

20. The data processing system of claim 17 , wherein the identifier identifies an application associated with the write request or a tenant associated with the write request, and wherein the associated data is striped across multiple SSD disks each of which includes one or more SSD blocks, where each of the SSD blocks includes multiple pages and the associated data includes application data and parity data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: CHENNAMSETTY, RAMAMOHAN; NAGARATNAM, NATARAJ; PATIL, SANDEEP R.; SHIRAGUPPI, RIYAZAHAMAD M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 034177/0748 →
Continuity (1)
Related Publication 20160139981A1 · May 19, 2016