IP Library Granted Patent US 9,304,699
Granted Patent B1
US 9,304,699 · App. 13/929,027 · Granted Apr 5, 2016

Managing token states across multiple storage processors of a data storage array

Inventors: Robert F. Goudreau (Cary, NC); James M. Holt (Raleigh, NC); Karl M. Owen (Chapel Hill, NC); Alan L. Taylor (Cary, NC); Chung-Huy Chen (Cary, NC)
Assignee: EMC Corporation
G06F3/0622G06F3/0653G06F3/0688G06F3/0689G06F3/0617G06F3/0634
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,304,699
App. No.
13/929,027
Filed
Jun 27, 2013
Granted
Apr 5, 2016
Kind
B1
Art Unit
2135
USPC
711/114
Abstract

A technique manages token states across multiple storage processors (SPs) of a data storage array. The technique involves using a token, by a first SP, to identify particular data stored on the array. The technique further involves updating, by the first SP, a first SP-controlled set of token state information for the token, the first SP-controlled set of token state information including (i) a first token state which indicates whether the token is “idle” or “busy” from a perspective of the first SP and (ii) a second token state which indicates whether the token is “idle” or “busy” from a perspective of a second SP. The technique further involves expiring, by the first SP, the token in response to the first SP-controlled set of token state information indicating that the token has remained “idle” for at least a predefined amount of time.

Claims (52)

1. A method of managing token states across multiple storage processors (SPs) of a data storage array, the method comprising:

using a token, by a first SP of the data storage array, to identify particular data stored on the data storage array;

updating, by the first SP, a first SP-controlled set of token state information for the token, the first SP-controlled set of token state information including (i) a first token state which indicates whether the token is “idle” or “busy” from a perspective of the first SP and (ii) a second token state which indicates whether the token is “idle” or “busy” from a perspective of a second SP of the data storage array; and

expiring, by the first SP, the token in response to the first SP-controlled set of token state information indicating that the token has remained “idle” for at least a predefined amount of time.

2. A method as in claim 1 , further comprising:

using the token, by the second SP, to identify the particular data stored on the data storage array; and

updating, by the second SP, a second SP-controlled set of token state information for the token, the second SP-controlled set of token state information including (i) a first token state which indicates whether the token is “idle” or “busy” from the perspective of the first SP and (ii) a second token state which indicates whether the token is “idle” or “busy” from the perspective of the second SP.

3. A method as in claim 2 wherein expiring the token by the first SP includes:

locally invalidating, by the first SP, the token from the perspective of the first SP, and

providing, by the first SP, an expiration message to the second SP, the expiration message directing the second SP to locally invalidate the token from the perspective of the second SP.

4. A method as in claim 2 wherein the data storage array includes a set of non-volatile data storage units to store host data on behalf of a set of host computers, the host data including the particular data identified using the token; and wherein the method further comprises:

performing, by the first and second SPs, host input/output (I/O) operations on the particular data in response to host I/O requests from the set of host computers.

5. A method as in claim 1 , further comprising:

receiving, by the first SP, an update message from the second SP, the update message indicating that the token is “busy” from the perspective of the second SP due to a write using token (WUT) operation initiated on the second SP, the WUT operation copying the particular data identified using the token, the first SP being constructed and arranged to update the second token state of the first SP-controlled set of token state information in response to the update message from the second SP.

6. A method as in claim 5 wherein a timing mechanism indicates an amount of time that the token has been “idle” from the perspective of the first SP to enable determination as to whether the token has remained “idle” for at least the predefined amount of time; and wherein the method further comprises:

resetting, by the first SP, the timing mechanism in response to the update message which indicates that the token is “busy” from the perspective of the second SP due to the WUT operation initiated on the second SP.

7. A method as in claim 5 , further comprising:

receiving, by the first SP, another update message from the second SP, the other update message indicating that the token is now “idle” from the perspective of the second SP due to completion of all WUT operations initiated on the second SP which copied the particular data identified using the token.

8. A method as in claim 7 wherein a timing mechanism indicates an amount of time that the token has been “idle” from the perspective of the first SP; and wherein the method further comprises:

resetting, by the first SP, the timing mechanism in response to the update message which indicates that the token is “busy” from the perspective of the second SP due to the WUT operation initiated on the second SP, and

resetting, by the first SP, the timing mechanism in response to the other update message which indicates that the token is now “idle” from the perspective of the second SP due to completion of all WUT operations initiated on the second SP which copied the particular data identified using the token.

9. A method as in claim 1 , further comprising:

providing, by the first SP, an update message to the second SP, the update message indicating that the token is “busy” from the perspective of the first SP due to a write using token (WUT) operation initiated on the first SP, the WUT operation copying the particular data identified using the token, the second SP being constructed and arranged to update a token state of a second SP-controlled set of token state information in response to the update message provided by the first SP.

10. A method as in claim 9 wherein a timing mechanism indicates an amount of time that the token has been “idle” from the perspective of the first SP to enable determination as to whether the token has remained “idle” for at least the predefined amount of time; and wherein the method further comprises:

resetting, by the first SP, the timing mechanism in response to initiating the WUT operation on the first SP.

11. A method as in claim 9 , further comprising:

providing, by the first SP, another update message to the second SP, the other update message indicating that the token is “idle” from the perspective of the first SP due to completion of all WUT operations on the first SP which copied the particular data identified using the token.

12. A method as in claim 11 wherein a timing mechanism indicates an amount of time that the token has been “idle” from the perspective of the first SP; and wherein the method further comprises:

resetting, by the first SP, the timing mechanism in response to initiating the WUT operation on the first SP, and

resetting, by the first SP, the timing mechanism in response to completing all WUT operations on the first SP which copied the particular data identified using the token.

13. A method as in claim 1 , further comprising:

maintaining a first SP-controlled write using token (WUT) counter for the token to indicate a number of WUT operations currently performed by the first SP to copy the particular data identified using the token.

14. A method as in claim 13 wherein maintaining the first SP-controlled WUT counter for the token includes:

for each new WUT operation initiated on the first SP to copy the particular data identified using the token, incrementing the first SP-controlled WUT counter for the token, and

for each WUT operation to copy the particular data identified using the token which is completed on the first SP, decrementing the first SP-controlled WUT counter for the token.

15. A method as in claim 14 wherein updating the first SP-controlled set of token state information for the token includes:

in response to decrementing the first SP-controlled WUT counter for the token to indicate that there is still at least one WUT operation ongoing on the first SP to copy the particular data identified using the token, maintaining the first token state of the first SP-controlled set of token state information to indicate that the token is still “busy” from the perspective of the first SP, and

in response to decrementing the first SP-controlled WUT counter for the token to indicate that there are no WUT operations currently on the first SP to copy the particular data identified using the token, transitioning the first token state of the first SP-controlled set of token state information to indicate that the token is now “idle” from the perspective of the first SP.

16. A method as in claim 15 , further comprising:

in response to maintaining the first token state of the first SP-controlled set of token state information to indicate that the token is still “busy” after decrementing the first SP-controlled WUT counter, not providing any update message regarding the token from the first SP to the second SP to conserve communications bandwidth between the first SP and the second SP, and

in response to transitioning the first token state of the first SP-controlled set of token state information to indicate that the token is now “idle” after decrementing the first SP-controlled WUT counter, providing an update message from the first SP to the second SP, the update message indicating that the token is now “idle” from the perspective of the first SP due to completion of all WUT operations on the first SP which copied the particular data identified using the token.

17. A storage processing apparatus, comprising:

a host interface to communicate with a set of host computers;

a storage interface to communicate with a set of non-volatile data storage units which stores host data on behalf of the set of host computers; and

control circuitry coupled to the host interface and the storage interface, the control circuitry being constructed and arranged to:

use a token to identify particular data of the host data stored on the set of non-volatile data storage units,

update a first SP-controlled set of token state information for the token, the first SP-controlled set of token state information including (i) a first token state which indicates whether the token is “idle” or “busy” from a perspective of the storage processing apparatus and (ii) a second token state which indicates whether the token is “idle” or “busy” from a perspective of another storage processing apparatus, and

expire the token in response to the first SP-controlled set of token state information indicating that the token has remained “idle” for at least a predefined amount of time.

18. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage token states across multiple storage processors (SPs) of a data storage array, the set of instructions, when carried out by a first SP of the data storage array, causing the first SP to perform a method of:

using a token to identify particular data stored on the data storage array;

updating a first SP-controlled set of token state information for the token, the first SP-controlled set of token state information including (i) a first token state which indicates whether the token is “idle” or “busy” from a perspective of the first SP and (ii) a second token state which indicates whether the token is “idle” or “busy” from a perspective of a second SP of the data storage array; and

expiring the token in response to the first SP-controlled set of token state information indicating that the token has remained “idle” for at least a predefined amount of time.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2013
From: GOUDREAU, ROBERT F.; HOLT, JAMES M.; OWEN, KARL M.; TAYLOR, ALAN L.; CHEN, CHUNG-HUY
To: EMC CORPORATION
Reel/Frame 030963/0323 →