IP Library Granted Patent US 10,489,321
Granted Patent B1
US 10,489,321 · App. 16/050,400 · Granted Nov 26, 2019

Performance improvement for an active-active distributed non-ALUA system with address ownerships

Inventors: Amitai Alkalay (Kadima, IL); Zvi Schneider (Tel Aviv, IL); Assaf Natanzon (Tel Aviv, IL)
Assignee: EMC IP Holding Company LLC
G06F13/28G06F12/0292G06F12/1081G06F2212/621G06F2213/28
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,489,321
App. No.
16/050,400
Granted
Nov 26, 2019
Kind
B1
Abstract

An aspect of performance improvement for an active-active distributed non-ALUA (asymmetrical logical unit assignment) system with address ownerships includes receiving an input/output (IO) by a host computer; accessing, by the host computer, an address-to-compute module (a→c) table; and determining, from the table, a target location of the IO request. The target location specifies an address. An aspect further includes determining an address owner of a storage controller port of a storage controller that owns the address of the IO, selecting a path associated with the address owner, and transmitting the IO request to the storage controller port.

Claims (43)

1. A method, comprising:

receiving, by a routing module of a content-addressable storage system, an input/output (IO) request from a host computer;

accessing, by the routing module, an address-to-compute module (a→c) table, the (a→c) table providing a listing of addresses and compute modules having ownership to the addresses;

accessing a path table that provides a mapping between each of the compute modules and a physical path to corresponding storage controllers;

determining, by the routing module from the a→c table, a target location of the IO request, the target location specifying an address;

determining, by the routing module from the path table, an address owner of a storage controller port of a storage controller that owns the address of the IO;

selecting a physical path associated with the address owner; and

transmitting, by the routing module, the IO request to the storage controller port via a direct call.

2. The method of claim 1 , further comprising:

upon determining an event which causes a change to the address ownership, updating one or more entries of the a→c table with new address ownership data.

3. The method of claim 2 , wherein the event is one of a failover of one or more storage controllers and a cluster expansion of one of more storage controllers.

4. The method of claim 1 , further comprising initializing entries of the a→c table to provide to each of the entries the associated compute module that owns corresponding entries.

5. The method of claim 1 , wherein transmitting the IO request to the storage controller port includes transmitting the IO request without sending data via remote direct memory access (RDMA).

6. The method of claim 1 , wherein the content-addressable storage system is a distributed non-asymmetrical logical unit assignment (non-ALUA) system.

7. The method of claim 1 , wherein the a→c table includes 1024 entries, each of the entries owned by a corresponding compute module.

8. A system, comprising:

a memory comprising computer-executable instructions; and

a processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising:

receiving, by a routing module of a content-addressable storage system, an IO request from a host computer;

accessing, by the routing module, an address-to-compute module (a→c) table, the (a→c) table providing a listing of addresses and compute modules having ownership to the addresses;

accessing a path table that provides a mapping between each of the compute modules and a physical path to corresponding storage controllers;

determining, by the routing module from the a→c table, a target location of the IO request, the target location specifying an address;

determining, by the routing module from the path table, an address owner of a storage controller port of a storage controller that owns the address of the IO;

selecting a physical path associated with the address owner; and

transmitting, by the routing module, the IO request to the storage controller port via a direct call.

9. The system of claim 8 , wherein the operations further comprise:

upon determining an event which causes a change to the address ownership, updating one or more entries of the a→c table with new address ownership data.

10. The system of claim 9 , wherein the event is one of a failover of one or more storage controllers and a cluster expansion of one of more storage controllers.

11. The system of claim 8 , wherein the operations further comprise initializing entries of the a→c table to provide to each of the entries the associated compute module that owns corresponding entries.

12. The system of claim 8 , wherein transmitting the IO request to the storage controller port includes transmitting the IO request without sending data via remote direct memory access (RDMA).

13. A computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions that, when executed by a computer causes the computer to perform operations comprising:

receiving, by a routing module of a content-addressable storage system, an IO request from a host computer;

accessing, by the routing module, an address-to-compute module (a→c) table, the (a→c) table providing a listing of addresses and compute modules having ownership to the addresses;

accessing a path table that provides a mapping between each of the compute modules and a physical path to corresponding storage controllers;

determining, by the routing module from the a→c table, a target location of the IO request, the target location specifying an address;

determining, by the routing module from the path table, an address owner of a storage controller port of a storage controller that owns the address of the IO;

selecting a physical path associated with the address owner; and

transmitting, by the routing module, the IO request to the storage controller port via a direct call.

14. The computer program product of claim 13 , wherein the operations further comprise:

upon determining an event which causes a change to the address ownership, updating one or more entries of the a→c table with new address ownership data.

15. The computer program product of claim 14 , wherein the event is one of a failover of one or more storage controllers and a cluster expansion of one of more storage controllers.

16. The computer program product of claim 13 , wherein the operations further comprise initializing entries of the a→c table to provide to each of the entries the associated compute module that owns corresponding entries.

17. The computer program product of claim 13 , wherein transmitting the IO request to the storage controller port includes transmitting the IO request without sending data via remote direct memory access (RDMA).

Assignments (7)
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 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 31, 2018
From: ALKALAY, AMITAI; SCHNEIDER, ZVI; NATANZON, ASSAF
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046513/0633 →