IP Library Granted Patent US 9,946,649
Granted Patent B1
US 9,946,649 · App. 14/755,873 · Granted Apr 17, 2018

Data coherency system and method

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,946,649
App. No.
14/755,873
Granted
Apr 17, 2018
Kind
B1
Abstract

A method, computer program product, and computing system for defining an IO splitter module within each of a plurality of nodes included within a hyper-converged storage environment. A coherency module is defined on at least one of the plurality of nodes. A data request is received.

Claims (86)

1. A computer-implemented method, executed on a computing device, comprising:

defining an IO splitter module within each of a plurality of nodes included within a hyper-converged storage environment;

defining a coherency module on at least one of the plurality of nodes;

receiving a data request, wherein the data request is one or more of a data read request and a data write request;

processing a data write request on a local IO splitter module of a local node onto which a data extent is to be written, wherein processing the data write request includes determining a local storage location within the local node and a remote storage location within a remote node; and

locking, via the coherency module, the remote storage location within the remote node into which a remote copy of the data extent is to be written and the local storage location within the local node into which a local copy of the data extent is to be written in response to a single data write request, wherein locking the remote storage location and the local storage location includes:

requesting a lock concerning the remote storage location from the coherency module,

receiving a lock confirmation concerning the remote storage location from the coherency module,

writing the remote copy of the data extent into the remote storage location,

requesting a lock concerning the local storage location from the coherency module,

receiving a lock confirmation concerning the local storage location from the coherency module, and

writing the local copy of the data extent into the local storage location.

2. The computer-implemented method of claim 1 wherein the data request is a data read request for a data extent, the computer-implemented method further comprising:

processing the data read request on a local IO splitter module of a local node that contains the data extent to be read;

locking, via the coherency module, a local storage location within the local node that contains the data extent to be read;

reading the data extent from the local storage location; and

unlocking, via the coherency module, the local storage location within the local node that contains the data extent that was read.

3. The computer-implemented method of claim 2 wherein:

locking, via the coherency module, a local storage location within the local node that contains the data extent to be read includes:

requesting a lock concerning the local storage location from the coherency module, and

receiving a lock confirmation concerning the local storage location from the coherency module; and

unlocking, via the coherency module, the local storage location within the local node that contains the data extent that was read includes:

requesting an unlock concerning the local storage location from the coherency module, and

receiving an unlock confirmation concerning the local storage location from the coherency module.

4. The computer-implemented method of claim 1 further comprising:

unlocking, via the coherency module, the remote storage location; and

unlocking, via the coherency module, the local storage location.

5. The computer-implemented method of claim 4 wherein unlocking, via the coherency module, the remote storage location includes:

requesting an unlock concerning the remote storage location from the coherency module, and

receiving an unlock confirmation concerning the remote storage location from the coherency module.

6. The computer-implemented method of claim 4 wherein unlocking, via the coherency module, the local storage location includes:

requesting an unlock concerning the local storage location from the coherency module, and

receiving an unlock confirmation concerning the local storage location from the coherency module.

7. The computer-implemented method of claim 1 wherein the hyper-converged storage environment includes a first storage environment portion and a second storage environment portion, the first storage environment portion includes a first coherency module, and the second storage environment portion includes a second coherency module.

8. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

defining an IO splitter module within each of a plurality of nodes included within a hyper-converged storage environment;

defining a coherency module on at least one of the plurality of nodes;

receiving a data request, wherein the data request is one or more of a data read request and a data write request;

processing the data write request on a local IO splitter module of a local node onto which the data extent is to be written, wherein processing the data write request includes determining a local storage location within the local node and a remote storage location within a remote node; and

locking, via the coherency module, a remote storage location within a remote node into which a remote copy of the data extent is to be written and a local storage location within the local node into which a local copy of the data extent is to be written, wherein locking the remote storage location and the local storage location includes:

requesting a lock concerning the remote storage location from the coherency module,

receiving a lock confirmation concerning the remote storage location from the coherency module,

writing the remote copy of the data extent into the remote storage location,

requesting a lock concerning the local storage location from the coherency module,

receiving a lock confirmation concerning the local storage location from the coherency module, and

writing the local copy of the data extent into the local storage location.

9. The computer program product of claim 8 wherein the data request is a data read request for a data extent, the computer-implemented method further comprising instructions for:

processing the data read request on a local IO splitter module of a local node that contains the data extent to be read;

locking, via the coherency module, a local storage location within the local node that contains the data extent to be read;

reading the data extent from the local storage location; and

unlocking, via the coherency module, the local storage location within the local node that contains the data extent that was read.

10. The computer program product of claim 9 wherein:

locking, via the coherency module, a local storage location within the local node that contains the data extent to be read includes:

requesting a lock concerning the local storage location from the coherency module, and

receiving a lock confirmation concerning the local storage location from the coherency module; and

unlocking, via the coherency module, the local storage location within the local node that contains the data extent that was read includes:

requesting an unlock concerning the local storage location from the coherency module, and

receiving an unlock confirmation concerning the local storage location from the coherency module.

11. The computer program product of claim 8 further comprising instructions for:

unlocking, via the coherency module, the remote storage location; and

unlocking, via the coherency module, the local storage location.

12. The computer program product of claim 11 wherein unlocking, via the coherency module, the remote storage location includes:

requesting an unlock concerning the remote storage location from the coherency module, and

receiving an unlock confirmation concerning the remote storage location from the coherency module.

13. The computer program product of claim 11 wherein unlocking, via the coherency module, the local storage location includes:

requesting an unlock concerning the local storage location from the coherency module, and

receiving an unlock confirmation concerning the local storage location from the coherency module.

14. The computer program product of claim 8 wherein the hyper-converged storage environment includes a first storage environment portion and a second storage environment portion, the first storage environment portion includes a first coherency module, and the second storage environment portion includes a second coherency module.

15. A computing system including a processor and memory configured to perform operations comprising:

defining, by the processor, an IO splitter module within each of a plurality of nodes included within a hyper-converged storage environment;

defining, by the processor, a coherency module on at least one of the plurality of nodes;

receiving, by the processor, a data request, wherein the data request is one or more of a data read request and a data write request;

processing the data write request on a local IO splitter module of a local node onto which the data extent is to be written, wherein processing the data write request includes determining a local storage location within the local node and a remote storage location within a remote node; and

locking, via the coherency module, a remote storage location within a remote node into which a remote copy of the data extent is to be written and a local storage location within the local node into which a local copy of the data extent is to be written, wherein locking the remote storage location and the local storage location includes:

requesting a lock concerning the remote storage location from the coherency module,

receiving a lock confirmation concerning the remote storage location from the coherency module,

writing the remote copy of the data extent into the remote storage location,

requesting a lock concerning the local storage location from the coherency module,

receiving a lock confirmation concerning the local storage location from the coherency module, and

writing the local copy of the data extent into the local storage location.

16. The computing system of claim 15 wherein the data request is a data read request for a data extent, the computer-implemented method further configured to perform operations comprising:

processing the data read request on a local IO splitter module of a local node that contains the data extent to be read;

locking, via the coherency module, a local storage location within the local node that contains the data extent to be read;

reading the data extent from the local storage location; and

unlocking, via the coherency module, the local storage location within the local node that contains the data extent that was read.

17. The computing system of claim 15 wherein the hyper-converged storage environment includes a first storage environment portion and a second storage environment portion, the first storage environment portion includes a first coherency module, and the second storage environment portion includes a second coherency module.

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 (046366/0014) 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 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 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/0093 →
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 (NOTES) Recorded Jun 1, 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 046366/0014 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 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 046286/0653 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044906/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2015
From: NATANZON, ASSAF; BROMLING, STEVEN R.; BAERGEN, JOSHUA C.; TRACHTMAN, MICHAEL
To: EMC CORPORATION
Reel/Frame 036378/0017 →