IP Library Granted Patent US 10,852,955
Granted Patent B2
US 10,852,955 · App. 14/983,203 · Granted Dec 1, 2020

Method and system for accessing data objects stored in a storage system using object descriptors allocated by clients

Inventor: David Powell (Mountain View, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0619G06F3/0665G06F3/0689
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,852,955
App. No.
14/983,203
Granted
Dec 1, 2020
Kind
B2
Abstract

A storage system includes a communication fabric, a storage module, a client device having an object descriptor (OD) generator to generate object descriptors (ODs) to access data stored in storage devices of the storage module. The storage system further includes a first control module (CM) coupled to the client device and the storage module via the communication fabric to manage accesses of the storage module. The first CM is adapted to receive a request from client device to access a data object stored in the storage module, where the request includes an OD uniquely identifying the data object and created by the OD generator of the client device. In response, the first CM examines a first object descriptor table (ODT) associated with the first CM to determine whether the OD is valid, and if the OD is valid allows the storage module to service the request.

Claims (77)

1. A storage system, comprising:

a communication fabric;

a storage system coupled to the communication fabric, the storage system having one or more storage devices for storing data;

a client device coupled to the communication fabric, the client device having an object descriptor (OD) generator to generate a plurality of object descriptors (ODs) for a plurality of data access sessions, each OD corresponding to a different data access session, to access data stored in the one or more storage devices of the storage system;

a first processor coupled to the client device and the storage system via the communication fabric to manage accesses of the storage system; and

a second processor coupled to the communication fabric, wherein the second processor is further coupled to the first processor via an inter-processor link,

wherein the first processor is adapted to:

receive a request from the client device to access a data object stored in the storage system, the request including an OD uniquely identifying the data object, wherein the OD uniquely identifying the data object is created by the OD generator of the client device,

in response to the request, examine a first object descriptor table (ODT) associated with the first processor to determine whether the OD is valid, wherein the second processor maintains a second ODT to enable the second processor to provide access to the storage system

in response to determining that the OD is valid, allow the client device to access the data object, wherein in response to the request being a first request to initiate a first data access session for accessing a first data object, the first processor is further adapted to

examine the first ODT to determine whether the first ODT includes an ODT entry that matches a first OD extracted from the first request, and

in response to determining that no matching ODT entry is found,

create a first ODT entry in the first ODT to store the first OD and an attribute of the first data object to be accessed, and

transmit a first control signal to the second processor via the inter-processor link to allow the second processor to synchronize the second ODT with respect to the first ODT entry.

2. The storage system of claim 1 , wherein the first processor is further adapted to

receive a response from the second processor indicating that the second ODT has been synchronized with the first ODT, and

return a status of the request to the client device indicating whether the request has been serviced successfully.

3. The storage system of claim 1 , wherein the first OD was created by the client device, and

in response to determining that no matching ODT entry is found,

the first processor is further adapted to return a first status to the client device, in response to receiving a first response to the first control signal from the second processor via the inter-processor link.

4. The storage system of claim 1 , wherein in response to determining that a matching ODT entry is found, the first processor denies the first request without synchronizing with the second processor.

5. The storage system of claim 1 , wherein in response to the request being a second request

to terminate a second data access session of accessing a second data object,

the first processor is adapted to

examine the first ODT to determine whether the first ODT includes an ODT entry that matches a second OD extracted from the second request, wherein the second OD was created by the client device, and

in response to determining that a second ODT entry is found matching the second OD, remove the second ODT entry from the first ODT,

transmit a second control signal to the second processor via the inter-processor link to allow the second processor to synchronize the second ODT with respect to the removed second ODT entry, and

return a second status to the client device, in response to receiving a second response to the second control signal from the second processor via the inter-processor link.

6. The storage system of claim 5 , wherein in response to determining that no matching ODT entry matching the second OD is found, the first processor denies the second request without synchronizing with the second processor.

7. The storage system of claim 1 , wherein the communication fabric comprises a peripheral component interface express (PCIe) fabric.

8. A computer-implemented method for accessing data in a storage system, the method comprising:

receiving, by a first processor, a request from a client device to access a data object stored in a storage system having one or more storage devices, the request including an object descriptor (OD) uniquely identifying the data object, wherein the OD uniquely identifying the data object is created by an OD generator of the client device, each OD corresponding to a different data access session, wherein the first processor is coupled to the client device and the storage system via a communication fabric to manage accesses to data stored in the storage system and the first processor is coupled to a second processor via an inter-processor link, the second processor being coupled to the client device and the storage system via the communication fabric;

in response to the request, examining by the first processor a first object descriptor table (ODT) associated with the first processor to determine whether the OD is valid, wherein the second processor maintains a second ODT to enable the second processor to provide access to the storage system; and

in response to determining that the OD is valid, allowing the client device to access the data object, wherein in response to the request being a first request to initiate a first data access session for accessing a first data object, the method further comprises

examining the first ODT to determine whether the first ODT includes an ODT entry that matches a first OD extracted from the first request; and

in response to determining that no matching ODT entry is found,

creating a first ODT entry in the first ODT to store the first OD and an attribute of the first data object to be accessed,

transmitting a first control signal to the second processor via the inter-processor link to allow the second processor to synchronize the second ODT with respect to the first ODT entry.

9. The method of claim 8 , further comprising:

receiving by the first processor a response from the second processor indicating that the second ODT has been synchronized with the first ODT, and

returning by the first processor a status of the request to the client device indicating whether the request has been serviced successfully.

10. The method of claim 8 , wherein the first OD was created by the client device; and the method further comprises,

in response to determining that no matching ODT entry is found,

returning a first status to the client device, in response to receiving a first response to the first control signal from the second processor via the inter-processor link.

11. The method of claim 8 , further comprising, in response to determining that a matching ODT entry is found, denying the first request without synchronizing with the second processor.

12. The method of claim 8 , wherein in response to the request being a second request

to terminate a second data access session of accessing a second data object, the method further comprises;

examining the first ODT to determine whether the first ODT includes an ODT entry that matches a second OD extracted from the second request, wherein the second OD was created by the client device; and

in response to determining that a second ODT entry is found matching the second OD,

removing the second ODT entry from the first ODT,

transmitting a second control signal to the second processor via the inter-processor link to allow the second processor to synchronize the second ODT with respect to the removed second ODT entry, and

returning a second status to the client device, in response to receiving a second response to the second control signal from the second processor via the inter-processor link.

13. The method of claim 12 , further comprising, in response to determining that no matching ODT entry matching the second OD is found, denying the second request without synchronizing with the second processor.

14. The method of claim 8 , wherein the communication fabric comprises a peripheral component interface express (PCIe) fabric.

15. A non-transitory machine-readable medium having instructions stored therein, which when executed by a machine, cause the machine to perform operations of accessing data in a storage system, the operations comprising:

receiving, by a first processor, a request from a client device to access a data object stored in a storage system having one or more storage devices, the request including an object descriptor (OD) uniquely identifying the data object, wherein the OD uniquely identifying the data object is created by an OD generator of the client device, each OD corresponding to a different data access session, wherein the first processor is coupled to the client device and the storage system via a communication fabric to manage accesses to data stored in the storage system, wherein the first processor is coupled to a second processor via an inter-processor link, and wherein the second processor is coupled to the client device and the storage system via the communication fabric;

in response to the request, examining by the first processor a first object descriptor table (ODT) associated with the first processor to determine whether the OD is valid, wherein the second processor maintains a second ODT to enable the second processor to provide access to the storage system;

in response to determining that the OD is valid, allowing the client device to access the data object, wherein in response to the request being a first request to initiate a first data access session for accessing a first data object, the operations further comprise:

examining the first ODT to determine whether the first ODT includes an ODT entry that matches a first OD extracted from the first request, wherein the first OD was created by the client device; and

in response to determining that no matching ODT entry is found,

creating a first ODT entry in the first ODT to store the first OD and an attribute of the first data object to be accessed,

transmitting a first control signal to the second processor via the inter-processor link to allow the second processor to synchronize the second ODT with respect to the first ODT entry.

16. The non-transitory machine-readable medium of claim 15 wherein the operations further comprise:

receiving by the first processor a response from the second processor indicating that, the second ODT has been synchronized with the first ODT, and

returning by the first processor a status of the request to the client device indicating whether the request has been serviced successfully.

17. The non-transitory machine-readable medium of claim 15 , wherein the first OD was created by the client device; and wherein the medium has further instructions comprising,

in response to determining that no matching ODT entry is found,

returning a first status to the client device, in response to receiving a first response to the first control signal from the second processor via the inter-processor link.

18. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise, in response to determining that a matching ODT entry is found, denying the first request without synchronizing with the second processor.

19. The non-transitory machine-readable medium of claim 15 , wherein in response to the request being a second request

to terminate a second data access session of accessing a second data object, the medium has further instructions comprising

examining the first ODT to determine whether the first ODT includes an ODT entry that matches a second OD extracted from the second request, wherein the second OD was created by the client device; and

in response to determining that a second ODT entry is found matching the second OD, removing the second ODT entry from the first ODT,

transmitting a second control signal to the second processor via the inter-processor link to allow the second processor to synchronize the second ODT with respect to the removed second ODT entry, and

returning a second status to the client device, in response to receiving a second response to the second control signal from the second processor via the inter-processor link.

20. The non-transitory machine-readable medium of claim 19 , wherein the operations further comprise, in response to determining that no matching ODT entry matching the second OD is found, denying the second request without synchronizing with the second processor.

21. The non-transitory machine-readable medium of claim 15 , wherein the communication fabric comprises a peripheral component interface express (PCIe) fabric.

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 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 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 Feb 25, 2016
From: POWELL, DAVID
To: EMC CORPORATION
Reel/Frame 037834/0182 →
Continuity (1)
Related Publication 20170185327A1 · Jun 29, 2017