IP Library Granted Patent US 11,520,510
Granted Patent B1
US 11,520,510 · App. 17/381,832 · Granted Dec 6, 2022

Extending the lifespan of a flash-based storage device

Inventors: Krishna Thangaraj (Poughkeepsie, NY); Kenneth Galbraith (Binghamton, NY); James Edouard (Endicott, NY); Brittany Ross (Saugerties, NY); Hubertus Franke (Cortlandt Manor, NY)
Assignee: International Business Machines Corporation
G06F3/064G06F3/0619G06F3/0631G06F3/0659G06F3/0679
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,520,510
App. No.
17/381,832
Granted
Dec 6, 2022
Kind
B1
Abstract

In an approach to extending the lifespan of a flash-based storage device, responsive to receiving a signal from a storage device that the storage device is low on extra blocks, one or more free logical blocks that are no longer needed are released. The storage device is notified of the one or more free logical blocks that are no longer needed. Responsive to determining that the number of valid physical blocks is greater than the number of used logical blocks, the advertised capacity of the storage device is reduced.

Claims (47)

1. A computer-implemented method comprising:

responsive to receiving a signal from a storage device that the storage device is low on extra blocks, releasing, by one or more computer processors, one or more free logical blocks that are no longer needed wherein releasing the one or more free logical blocks that are no longer needed comprises:

examining, by the one or more computer processors, a bitmap, wherein the bitmap indicates whether each logical block on the storage device can be used; and

selecting, by the one or more computer processors, the one or more free logical blocks that are no longer needed based on the number of logical blocks that can be released;

notifying, by the one or more computer processors, the storage device of the one or more free logical blocks that are no longer needed; and

responsive to determining that a number of valid physical blocks is greater than a number of used logical blocks, reducing, by the one or more computer processors, an advertised capacity of the storage device.

2. The computer-implemented method of claim 1 , wherein the advertised capacity of the storage device is reduced by a capacity of the one or more free logical blocks that are no longer needed.

3. The computer-implemented method of claim 1 , wherein responsive to receiving the signal from the storage device that the storage device is low on the extra blocks, releasing the one or more free logical blocks comprises:

responsive to a write operation failing due to no capacity of extra free logical blocks on the storage device, releasing, by the one or more computer processors, the one or more free logical blocks.

4. The computer-implemented method of claim 1 , wherein the storage device is based on flash memory.

5. The computer-implemented method of claim 1 , wherein the advertised capacity of the storage device is reduced without unmounting the storage device.

6. The computer-implemented method of claim 1 , wherein a non-log-structured file system is used.

7. The computer-implemented method of claim 1 , wherein responsive to receiving the signal from the storage device that the storage device is low on the extra blocks, releasing the one or more free logical blocks that are no longer needed comprises:

determining, by the one or more computer processors, a number of logical blocks that can be released based on examining each logical block on the storage device; and

releasing, by the one or more computer processors, the one or more free logical blocks that are no longer needed.

8. A computer-implemented method comprising:

responsive to receiving a signal from a storage device that the storage device is low on extra segments, wherein a file system is organized as a circular buffer consisting of a plurality of segments, examining, by one or more computer processors, a free section of the circular buffer;

responsive to determining that one or more segments of the plurality of segments are unused, marking, by the one or more computer processors, the one or more segments of the plurality of segments as unused;

notifying, by the one or more computer processors, the storage device of the one or more segments that are unused;

marking, by the one or more computer processors, a flash translation layer table to indicate that the one or more segments of the plurality of segments that are unused are no longer present, wherein marking the flash translation layer table to indicate that the one or more segments of the plurality of segments that are unused are no longer present reduces an advertised capacity of the storage device;

responsive to determining that the circular buffer is filling up, running, by the one or more computer processors, a cleaner thread to analyze each segment at a tail of the circular buffer to identify one or more stale blocks and one or more non-stale blocks; and

writing, by the one or more computer processors, the one or more non-stale blocks to a front of the circular buffer.

9. The computer-implemented method of claim 8 , wherein the advertised capacity of the storage device is reduced by a capacity of the one or more segments of the plurality of segments that are unused.

10. The computer-implemented method of claim 8 , wherein responsive to receiving the signal from the storage device that the storage device is low on the extra segments, wherein the file system is organized as the circular buffer consisting of the plurality of segments, examining the free section of the circular buffer comprises:

responsive to a write operation failing due to no extra segments on the storage device, wherein the file system is organized as the circular buffer consisting of the plurality of segments, examining, by the one or more computer processors, the free section of the circular buffer.

11. The computer-implemented method of claim 8 , further comprising:

discarding, by the one or more computer processors, the one or more stale blocks.

12. The computer-implemented method of claim 8 , wherein the storage device is based on flash memory.

13. The computer-implemented method of claim 8 , wherein the advertised capacity of the storage device is reduced without unmounting the storage device.

14. The computer-implemented method of claim 8 , wherein a log-structured file system is used.

15. A computer system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the stored program instructions including instructions to:

responsive to receiving a signal from a storage device that the storage device is low on extra blocks, release one or more free logical blocks that are no longer needed wherein releasing the one or more free logical blocks that are no longer needed comprises:

examining a bitmap, wherein the bitmap indicates whether each logical block on the storage device can be used; and

determining a number of logical blocks that can be released based on examining each logical block on the storage device;

notify the storage device of the one or more free logical blocks that are no longer needed; and

responsive to determining that a number of valid physical blocks is greater than a number of used logical blocks, reduce an advertised capacity of the storage device.

16. The computer system of claim 15 , wherein the advertised capacity of the storage device is reduced by a capacity of the one or more free logical blocks that are no longer needed.

17. The computer system of claim 15 , wherein responsive to receiving the signal from the storage device that the storage device is low on the extra blocks, release the one or more free logical blocks comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

responsive to a write operation failing due to no capacity of extra free logical blocks on the storage device, release the one or more free logical blocks.

18. The computer system of claim 15 , wherein the storage device is based on flash memory.

19. The computer system of claim 15 , wherein the advertised capacity of the storage device is reduced without unmounting the storage device.

20. The computer system of claim 15 , wherein responsive to receiving the signal from the storage device that the storage device is low on the extra blocks, release the one or more free logical blocks that are no longer needed comprises one or more of the following program instructions, stored on the one or more computer readable storage media, to:

select the one or more free logical blocks that are no longer needed based on the number of logical blocks that can be released; and

release the one or more free logical blocks that are no longer needed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2021
From: THANGARAJ, KRISHNA; GALBRAITH, KENNETH; EDOUARD, JAMES; ROSS, BRITTANY; FRANKE, HUBERTUS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056935/0960 →