IP Library Granted Patent US 10,691,373
Granted Patent B2
US 10,691,373 · App. 16/038,612 · Granted Jun 23, 2020

Object headers facilitating storage of data in a write buffer of a storage system

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 10,691,373
App. No.
16/038,612
Granted
Jun 23, 2020
Kind
B2
Abstract

An apparatus in one embodiment comprises at least one processing device comprising a processor coupled to a memory. The processing device is configured to receive a request to write a given data object to a write buffer of at least one storage system, to allocate an entry in the write buffer, to generate a header for the given data object comprising a first portion indicating a validation status, to write the header to the allocated entry of the write buffer with the first portion of the header comprising a value indicating invalid status, to write the given data object to the allocated entry of the write buffer, and to update the header of the allocated entry by modifying the value of the first portion of the header to indicate valid status responsive to a successful write of the given data object to the allocated entry of the write buffer.

Claims (58)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the processing device being configured:

to receive a request to write a given data object to a write buffer of at least one storage system;

to allocate an entry in the write buffer for storage of the given object;

to generate a header for the given data object, the header comprising a first portion indicating a validation status of the given data object;

to write the header for the given data object to the allocated entry of the write buffer with the first portion of the header comprising a value indicating an invalid status for the given data object;

to write the given data object to the allocated entry of the write buffer; and

to update the header of the allocated entry by modifying the value of the first portion of the header to indicate a valid status for the given data object responsive to a successful write of the given data object to the allocated entry of the write buffer;

wherein the write buffer is associated with one or more size constraints for atomicity of writing data objects;

wherein a size of the header meets the one or more size constraints such that writing the header for the given data object to the allocated entry of the write buffer and updating the header of the allocated entry of the write buffer comprise atomic write operations; and

wherein a size of the given data object violates at least one of the one or more size constraints such that writing the given data object to the allocated entry of the write buffer does not comprise an atomic write operation.

2. The apparatus of claim 1 wherein the processing device is implemented in one of:

a host device configured to communicate over a network with said at least one storage system that comprises the write buffer; and

said at least one storage system that comprises the write buffer.

3. The apparatus of claim 1 wherein the allocated entry comprises an existing entry in the write buffer with a header having a first portion with a value indicating an invalid status for its associated data object.

4. The apparatus of claim 1 wherein the allocated entry comprises a new entry in the write buffer.

5. The apparatus of claim 1 wherein the header for the given data object further comprises a second portion indicating a unique identifier for the given data object.

6. The apparatus of claim 5 wherein the unique identifier for the given data object is provided by an application that is a source of the write request.

7. The apparatus of claim 5 wherein the unique identifier for the given data object comprises a first portion indicating an object type and a second portion indicating an object identifier.

8. The apparatus of claim 5 wherein the processing device is further configured:

to search the write buffer for an existing entry with a header having a second portion with the unique identifier for the given data object; and

to update the header of the existing entry by modifying a value of a first portion thereof to indicate an invalid status responsive to the successful write of the given data object to the allocated entry of the write buffer.

9. The apparatus of claim 1 wherein writing the given data object to the allocated entry of the write buffer comprises writing the given data object consecutively after the header in the allocated entry of the write buffer.

10. The apparatus of claim 1 wherein the processing device is configured to recover a journal provided by the write buffer utilizing validation status provided by first portions of headers in entries of the write buffer.

11. The apparatus of claim 10 wherein, when during recovery of the journal provided by the write buffer at least two entries thereof have headers with first portions indicating valid status for a same data object, selecting one of the at least two entries as a valid entry and invalidating remaining ones of the at least two entries by modifying values of the first portions of the headers thereof to indicate invalid status.

12. A method comprising:

receiving a request to write a given data object to a write buffer of at least one storage system;

allocating an entry in the write buffer for storage of the given object;

generating a header for the given data object, the header comprising a first portion indicating a validation status of the given data object;

writing the header for the given data object to the allocated entry of the write buffer with the first portion of the header comprising a value indicating an invalid status for the given data object;

writing the given data object to the allocated entry of the write buffer; and

updating the header of the allocated entry by modifying the value of the first portion of the header to indicate a valid status for the given data object responsive to a successful write of the given data object to the allocated entry of the write buffer;

wherein the write buffer is associated with one or more size constraints for atomicity of writing data objects;

wherein a size of the header meets the one or more size constraints such that writing the header for the given data object to the allocated entry of the write buffer and updating the header of the allocated entry of the write buffer comprise atomic write operations;

wherein a size of the given data object violates at least one of the one or more size constraints such that writing the given data object to the allocated entry of the write buffer does not comprise an atomic write operation; and

wherein the method is implemented by at least one processing device comprising a processor coupled to a memory.

13. The method of claim 12 wherein the header for the given data object further comprises a second portion indicating a unique identifier for the given data object, and further comprising:

searching the write buffer for an existing entry with a header having a second portion with the unique identifier for the given data object; and

updating the header of the existing entry by modifying a value of a first portion thereof to indicate an invalid status responsive to the successful write of the given data object to the allocated entry of the write buffer.

14. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device:

to receive a request to write a given data object to a write buffer of at least one storage system;

to allocate an entry in the write buffer for storage of the given object;

to generate a header for the given data object, the header comprising a first portion indicating a validation status of the given data object;

to write the header for the given data object to the allocated entry of the write buffer with the first portion of the header comprising a value indicating an invalid status for the given data object;

to write the given data object to the allocated entry of the write buffer; and

to update the header of the allocated entry by modifying the value of the first portion of the header to indicate a valid status for the given data object responsive to a successful write of the given data object to the allocated entry of the write buffer;

wherein the write buffer is associated with one or more size constraints for atomicity of writing data objects;

wherein a size of the header meets the one or more size constraints such that writing the header for the given data object to the allocated entry of the write buffer and updating the header of the allocated entry of the write buffer comprise atomic write operations; and

wherein a size of the given data object violates at least one of the one or more size constraints such that writing the given data object to the allocated entry of the write buffer does not comprise an atomic write operation.

15. The computer program product of claim 14 wherein the header for the given data object further comprises a second portion indicating a unique identifier for the given data object, and further comprising:

searching the write buffer for an existing entry with a header having a second portion with the unique identifier for the given data object; and

updating the header of the existing entry by modifying a value of a first portion thereof to indicate an invalid status responsive to the successful write of the given data object to the allocated entry of the write buffer.

16. The apparatus of claim 1 wherein a given one of the one or more size constraints for atomicity of writing data objects specifies a designated alignment size, and wherein the given data object exceeds the designated alignment size.

17. The apparatus of claim 1 wherein a given one of the one or more size constraints for atomicity of writing data objects specifies a designated alignment boundary size, and wherein the given data object crosses the designated alignment boundary size.

18. The apparatus of claim 1 wherein a given one of the one or more size constraints for atomicity of writing data objects specifies a designated maximum object size for atomic writes, and wherein the given data object exceeds the designated maximum object size.

19. The method of claim 12 wherein the one or more size constraints for atomicity of writing data objects comprise at least one of a designated alignment size, a designated alignment boundary size, and a designated maximum object size for atomic writes, and wherein the given data object at least one of exceeds the designated alignment size, crosses the alignment boundary size, and exceeds the designated maximum object size.

20. The computer program product of claim 14 wherein the one or more size constraints for atomicity of writing data objects comprise at least one of a designated alignment size, a designated alignment boundary size, and a designated maximum object size for atomic writes, and wherein the given data object at least one of exceeds the designated alignment size, crosses the alignment boundary size, and exceeds the designated maximum object size.

Assignments (8)
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 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
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 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2018
From: HARDUF, YUVAL; SCHNEIDER, ZVI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046384/0788 →