IP Library Granted Patent US 10,223,402
Granted Patent B1
US 10,223,402 · App. 14/982,218 · Granted Mar 5, 2019

Multi-site block level write consistency

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,223,402
App. No.
14/982,218
Granted
Mar 5, 2019
Kind
B1
Abstract

Maintaining write consistency between at least two mirrored storage devices includes receiving a write request for a particular block, obtaining a reservation for the particular block, waiting for the particular block to become available in response to not being able to successfully obtain the reservation, writing the particular block in response to successfully obtaining the reservation, and writing the particular block at a remote one of the storage devices following writing the particular block at the particular one of the storage devices. If a retryable indicator is received, the system waits a predetermined amount of time and releases the reservation. The system responds with a success indicator when writing the particular block at a remote one of the storage devices succeeds and responds with a failure indicator when writing the particular block at a remote one of the storage devices fails and the retryable indicator is not received.

Claims (34)

1. A method of maintaining write consistency between at least two mirrored storage devices, comprising:

receiving a write request for a particular block at a particular one of the storage devices;

attempting to obtain a reservation for the particular block at the particular one of the storage devices;

waiting for the particular block at the particular one of the storage devices to become available in response to not being able to successfully obtain the reservation;

writing the particular block at the particular one of the storage devices in response to successfully obtaining the reservation;

attempt to write the particular block at a remote one of the storage devices following writing the particular block at the particular one of the storage devices;

determining if a retryable indicator is received in response to writing the particular block at a remote one of the storage devices failing;

waiting a predetermined amount of time and releasing the reservation in response to writing the particular block at a remote one of the storage devices failing and receiving the retryable indicator;

responding to the write request with a success indicator and releasing the reservation in response to writing the particular block at a remote one of the storage devices succeeding; and

responding to the write request with a failure indicator and releasing the reservation in response to writing the particular block at a remote one of the storage devices failing and not receiving the retryable indicator.

2. A method, according to claim 1 , wherein the predetermined amount of time is two hundred milliseconds.

3. A method, according to claim 1 , wherein the remote one of the storage device returns the retryable indicator in response to the remote one of the storage device being deemed a primary storage device.

4. A method, according to claim 1 , wherein the at least two mirrored storage devices are coupled to a switch.

5. A method, according to claim 4 , wherein the switch is coupled to a plurality of host devices that access the at least two storage devices.

6. A method, according to claim 4 , wherein the switch causes the at least two mirrored storage devices to appear as a single storage device.

7. A method, according to claim 1 , wherein following waiting for the particular block at the particular one of the storage devices to become available in response to not being able to successfully obtain the reservation, the I/O times out and fails.

8. A method, according to claim 1 , wherein the blocks are a fixed length of 512 bytes.

9. A non-transitory computer-readable medium containing software that maintains write consistency between at least two mirrored storage devices, the software comprising:

executable code that receives a write request for a particular block at a particular one of the storage devices;

executable code that attempts to obtain a reservation for the particular block at the particular one of the storage devices;

executable code that waits for the particular block at the particular one of the storage devices to become available in response to not being able to successfully obtain the reservation;

executable code that writes the particular block at the particular one of the storage devices in response to successfully obtaining the reservation;

executable code that attempts to write the particular block at a remote one of the storage devices following writing the particular block at the particular one of the storage devices;

executable code that determines if a retryable indicator is received in response to writing the particular block at a remote one of the storage devices failing;

executable code that waits a predetermined amount of time and releases the reservation in response to writing the particular block at a remote one of the storage devices failing and receiving the retryable indicator;

executable code that responds to the write request with a success indicator and releases the reservation in response to writing the particular block at a remote one of the storage devices succeeding; and

executable code that responds to the write request with a failure indicator and releases the reservation in response to writing the particular block at a remote one of the storage devices failing and not receiving the retryable indicator.

10. A non-transitory computer-readable medium, according to claim 9 , wherein the predetermined amount of time is two hundred milliseconds.

11. A non-transitory computer-readable medium, according to claim 9 , wherein the remote one of the storage device returns the retryable indicator in response to the remote one of the storage device being deemed a primary storage device.

12. A non-transitory computer-readable medium, according to claim 9 , wherein the at least two mirrored storage devices are coupled to a switch.

13. A non-transitory computer-readable medium, according to claim 12 , wherein the switch is coupled to a plurality of host devices that access the at least two storage devices.

14. A non-transitory computer-readable medium, according to claim 12 , wherein the switch causes the at least two mirrored storage devices to appear as a single storage device.

15. A non-transitory computer-readable medium, according to claim 9 , wherein following waiting for the particular block at the particular one of the storage devices to become available in response to not being able to successfully obtain the reservation, the I/O times out and fails.

16. A non-transitory computer-readable medium, according to claim 9 , wherein the blocks are a fixed length of 512 bytes.

Assignments (9)
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 (050724/0466) Recorded Jun 23, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 26, 2016
From: QUILL, GEORGE
To: EMC CORPORATION
Reel/Frame 037583/0709 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2015
From: VOKALIGA, DEEPAK; YODER, BENJAMIN
To: EMC CORPORATION
Reel/Frame 037374/0014 →
Cited By (2)
US 12,568,160 US 12,641,166