IP Library Granted Patent US 11,636,089
Granted Patent B2
US 11,636,089 · App. 16/983,423 · Granted Apr 25, 2023

Deferred reclamation of invalidated entries that are associated with a transaction log in a log-structured array

Inventors: Dan Aharoni (Brookline, MA); Itay Keller (Tel Aviv, IL); Sanjay Narahari (Hopkinton, MA); Ron Stern (Sharon, MA)
Assignee: EMC IP Holding Company LLC
G06F16/2358G06F3/067G06F3/0616G06F3/0652G06F3/0659G06F9/466G06F16/235G06F16/908
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,636,089
App. No.
16/983,423
Granted
Apr 25, 2023
Kind
B2
Abstract

A storage control system is configured to obtain first data associated with a logical data device and to store the first data in a first entry of a log-structured array. The storage control system is further configured to invalidate a second entry of the log-structured array based at least in part on the storage of the first data in the first entry. The second entry comprises second data that was associated with the logical data device prior to obtaining the first data. The storage control system is further configured to determine that a first indication in a first metadata indicates that the invalidated second entry corresponds to a transaction log and to defer reclamation of the second entry based at least in part on the determination that the first indication in the first metadata indicates that the invalidated second entry corresponds to the transaction log.

Claims (90)

1. A method, comprising:

obtaining a write operation issued by an application, the write operation comprising first data associated with a logical data device of the application;

storing the first data in a first entry of a log-structured array implemented in at least one storage device of a storage system;

invalidating a second entry of the log-structured array based at least in part on the storage of the first data in the first entry, the second entry comprising second data that was associated with the logical data device prior to obtaining the write operation;

determining that a first indication in a first metadata indicates that the invalidated second entry corresponds to a transaction log of the application; and

deferring reclamation of the second entry based at least in part on the determination that the first indication in the first metadata indicates that the invalidated second entry corresponds to the transaction log of the application;

wherein the first indication in the first metadata indicating that the invalidated second entry corresponds to the transaction log further indicates that the invalidated second entry is being utilized to provide at least a portion of a logical log device that is distinct from the logical data device; and

wherein the method is performed by a storage control system of the storage system, the storage control system comprising at least one processor coupled to memory.

2. The method of claim 1 , wherein:

obtaining the write operation comprises obtaining a first write operation issued by the application, the first write operation comprising the first data; and

the method further comprises setting a second indication in a second metadata associated with the first entry, the second indication indicating that the first entry corresponds to the transaction log of the application.

3. The method of claim 2 , wherein the method further comprises:

obtaining a second write operation issued by the application, the second write operation comprising the second data;

storing the second data in the second entry;

setting the first indication in the first metadata associated with the second entry, the first indication indicating that the second entry corresponds to the transaction log of the application.

4. The method of claim 3 , wherein the method further comprises:

determining that the transaction log comprises a number of transactions equal to a threshold number of transactions;

identifying an oldest transaction in the transaction log;

determining that the second entry corresponds to the oldest transaction;

setting the first indication in the first metadata associated with the second entry to no longer indicate that the second entry corresponds to the transaction log;

determining that the first indication in the first metadata does not indicate that the second entry corresponds to a transaction log of the application and that the second entry has been invalidated; and

reclaiming the first entry based at least in part on the determination that the first indication does not indicate that the second entry corresponds to the transaction log and that the second entry has been invalidated.

5. The method of claim 1 , wherein the first metadata comprises a bitmap, a given bit of the bitmap corresponding to the first entry.

6. The method of claim 1 , wherein:

the log-structured array comprises a plurality of log segments, each log segment comprising a plurality of entries;

a first log segment of the plurality of log segments comprises a plurality of entries including the first entry;

the first metadata corresponds to the first log segment; and

the first metadata comprises a plurality of indications, each indication in the plurality of indications corresponding to a given entry of the plurality of entries of the first log segment.

7. The method of claim 1 , wherein:

the application comprises a database application that implements a database data structure comprising a plurality of logical data devices including the logical data device associated with the first data, each logical data device of the plurality of logical data devices corresponding to data stored on the storage system; and

the storage system maps the logical data devices to physical locations where the data is stored in the log-structured array.

8. An article of manufacture comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method comprising:

obtaining a write operation issued by an application, the write operation comprising first data associated with a logical data device of the application;

storing the first data in a first entry of a log-structured array implemented in at least one storage device of a storage system;

invalidating a second entry of the log-structured array based at least in part on the storage of the first data in the first entry, the second entry comprising second data that was associated with the logical data device prior to obtaining the write operation;

determining that a first indication in a first metadata indicates that the invalidated second entry corresponds to a transaction log of the application; and

deferring reclamation of the second entry based at least in part on the determination that the first indication in the first metadata indicates that the invalidated second entry corresponds to the transaction log of the application;

wherein the first indication in the first metadata indicating that the invalidated second entry corresponds to the transaction log further indicates that the invalidated second entry is being utilized to provide at least a portion of a logical log device that is distinct from the logical data device.

9. The article of manufacture of claim 8 , wherein:

obtaining the write operation comprises obtaining a first write operation issued by the application, the first write operation comprising the first data; and

the method further comprises setting a second indication in a second metadata associated with the first entry, the second indication indicating that the first entry corresponds to the transaction log of the application.

10. The article of manufacture of claim 9 , wherein the method further comprises:

obtaining a second write operation issued by the application, the second write operation comprising the second data;

storing the second data in the second entry;

setting the first indication in the first metadata associated with the second entry, the first indication indicating that the second entry corresponds to the transaction log of the application.

11. The article of manufacture of claim 10 , wherein the method further comprises:

determining that the transaction log comprises a number of transactions equal to a threshold number of transactions;

identifying an oldest transaction in the transaction log;

determining that the second entry corresponds to the oldest transaction;

setting the first indication in the first metadata associated with the second entry to no longer indicate that the second entry corresponds to the transaction log;

determining that the first indication in the first metadata does not indicate that the second entry corresponds to a transaction log of the application and that the second entry has been invalidated; and

reclaiming the first entry based at least in part on the determination that the first indication does not indicate that the second entry corresponds to the transaction log and that the second entry has been invalidated.

12. The article of manufacture of claim 8 , wherein the first metadata comprises a bitmap, a given bit of the bitmap corresponding to the first entry.

13. The article of manufacture of claim 8 , wherein:

the log-structured array comprises a plurality of log segments, each log segment comprising a plurality of entries;

a first log segment of the plurality of log segments comprises a plurality of entries including the first entry;

the first metadata corresponds to the first log segment; and

the first metadata comprises a plurality of indications, each indication in the plurality of indications corresponding to a given entry of the plurality of entries of the first log segment.

14. The article of manufacture of claim 8 , wherein:

the application comprises a database application that implements a database data structure comprising a plurality of logical data devices including the logical data device associated with the first data, each logical data device of the plurality of logical data devices corresponding to data stored on the storage system; and

the storage system maps the logical data devices to physical locations where the data is stored in the log-structured array.

15. A server node, comprising:

at least one processor; and

system memory configured to store program code, wherein the program code is executable by the at least one processor to implement a storage control system which is configured to:

obtain a write operation issued by an application, the write operation comprising first data associated with a logical data device of the application;

store the first data in a first entry of a log-structured array implemented in at least one storage device of a storage system;

invalidate a second entry of the log-structured array based at least in part on the storage of the first data in the first entry, the second entry comprising second data that was associated with the logical data device prior to obtaining the write operation;

determine that a first indication in a first metadata indicates that the invalidated second entry corresponds to a transaction log of the application; and

defer reclamation of the second entry based at least in part on the determination that the first indication in the first metadata indicates that the invalidated second entry corresponds to the transaction log of the application;

wherein the first indication in the first metadata indicating that the invalidated second entry corresponds to the transaction log further indicates that the invalidated second entry is being utilized to provide at least a portion of a logical log device that is distinct from the logical data device.

16. The server node of claim 15 , wherein:

obtaining the write operation comprises obtaining a first write operation issued by the application, the first write operation comprising the first data; and

the storage control system is further configured to set a second indication in a second metadata associated with the first entry, the second indication indicating that the first entry corresponds to the transaction log of the application.

17. The server node of claim 16 , wherein the storage control system is further configured to:

obtain a second write operation issued by the application, the second write operation comprising the second data;

store the second data in the second entry;

set the first indication in the first metadata associated with the second entry, the first indication indicating that the second entry corresponds to the transaction log of the application.

18. The server node of claim 17 , wherein the storage control system is further configured to:

determine that the transaction log comprises a number of transactions equal to a threshold number of transactions;

identify an oldest transaction in the transaction log;

determine that the second entry corresponds to the oldest transaction;

set the first indication in the first metadata associated with the second entry to no longer indicate that the second entry corresponds to the transaction log;

determine that the first indication in the first metadata does not indicate that the second entry corresponds to a transaction log of the application and that the second entry has been invalidated; and

reclaim the first entry based at least in part on the determination that the first indication does not indicate that the second entry corresponds to the transaction log and that the second entry has been invalidated.

19. The server node of claim 15 , wherein the first metadata comprises a bitmap, a given bit of the bitmap corresponding to the first entry.

20. The server node of claim 15 , wherein:

the log-structured array comprises a plurality of log segments, each log segment comprising a plurality of entries;

a first log segment of the plurality of log segments comprises a plurality of entries including the first entry;

the first metadata corresponds to the first log segment; and

the first metadata comprises a plurality of indications, each indication in the plurality of indications corresponding to a given entry of the plurality of entries of the first log segment.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: AHARONI, DAN; KELLER, ITAY; NARAHARI, SANJAY; STERN, RON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053384/0363 →
Cited By (3)
US 12,299,303 US 12,339,805 US 12,367,216