IP Library Granted Patent US 11,652,884
Granted Patent B2
US 11,652,884 · App. 17/351,864 · Granted May 16, 2023

Customized hash algorithms

Inventor: Taras Glek (Redwood City, CA)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F3/06G06F3/061G06F3/0604G06F3/065G06F3/067G06F3/0611G06F3/0613G06F3/0635G06F3/0655G06F3/0659G06F3/0685G06F3/0688G06F3/0689G06F11/1068G06F11/2092G06F12/0246G11C29/52H03M13/154H04L49/10H04L67/51G06F11/108G06F2201/805G06F2201/845G06F2212/7206G06F2212/7207
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 11,652,884
App. No.
17/351,864
Granted
May 16, 2023
Kind
B2
Abstract

A storage system determines source addresses, and destination addresses in a storage system, for network traffic. The storage system determines a hash algorithm, from a plurality of hash algorithms. The hash algorithm is to be used across the source addresses for load-balancing the network traffic to the destination addresses. The storage system determines that the hash algorithm more closely meets one or more load-balancing criteria than at least one other hash algorithm, of the plurality of hash algorithms. The storage system distributes the network traffic from the source addresses to the destination addresses in the storage system, with load-balancing according to the determined hash algorithm.

Claims (38)

1. A method, comprising:

identifying a plurality of source addresses, and a plurality of destination addresses in a storage system, for network traffic;

determining that a hash algorithm to be used across the plurality of source addresses for load-balancing the network traffic to the plurality of destination addresses more closely meets one or more load-balancing criteria than at least one other hash algorithm of a plurality of hash algorithms; and

distributing the network traffic from the plurality of source addresses, to the plurality of destination addresses in the storage system, with load-balancing according to the determined hash algorithm.

2. The method of claim 1 , wherein:

each of the plurality of source addresses is one of an Internet protocol (IP) address, a media access control (MAC) address, or a port address and the one or more load-balancing criteria comprises a value for evenness of load-balancing.

3. The method of claim 1 , wherein the hash algorithm is further to be used across portions of network packets of the network traffic and the determining regarding the hash algorithm comprises determining that the hash algorithm to be used across the portions of the network packets of the network traffic, including the plurality of source addresses, more closely meets the one or more load-balancing criteria than the at least one other hash algorithm of the plurality of hash algorithms.

4. The method of claim 1 , further comprising:

arranging the plurality of destination addresses in the storage system as a link aggregation group (LAG), multi-link aggregation group (MLAG), or a multi-chassis link aggregation group (MCLAG).

5. The method of claim 1 , wherein the determining that the hash algorithm more closely meets the one or more load-balancing criteria than at least one other hash algorithm of the plurality of hash algorithms comprises selecting the hash algorithm from among the plurality of hash algorithms through machine learning or artificial intelligence.

6. The method of claim 1 , further comprising:

determining that the plurality of source addresses for the plurality of destination addresses comprises a new connection, wherein the determining regarding the hash algorithm is in response to the determining regarding the new connection.

7. The method of claim 1 , wherein the determining regarding the hash algorithm is performed during an administrative window, installing, upgrading, or one or more new connections.

8. The method of claim 1 , wherein the one or more load-balancing criteria comprises a value for rebalancing stored data in the storage system.

9. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

identifying a plurality of source addresses, and a plurality of destination addresses in a storage system, for network traffic;

determining, from a plurality of hash algorithms, that a hash algorithm to be used across the plurality of source addresses for load-balancing the network traffic to the plurality of destination addresses more closely meets a value for data storage balancing or network traffic load-balancing than at least one other hash algorithm of the plurality of hash algorithms; and

distributing the network traffic from the plurality of source addresses, to the plurality of destination addresses in the storage system, with load-balancing according to the determined hash algorithm.

10. The computer-readable media of claim 9 , wherein the method further comprises:

arranging the plurality of destination addresses in the storage system as a link aggregation group (LAG), multi-link aggregation group (MLAG), or a multi-chassis link aggregation group (MCLAG).

11. The computer-readable media of claim 9 , wherein the determining that the hash algorithm more closely meets the value for data storage balancing or network traffic load-balancing than at least one other hash algorithm of the plurality of hash algorithms comprises selecting the hash algorithm from among the plurality of hash algorithms through machine learning or artificial intelligence.

12. The computer-readable media of claim 9 , wherein the method further comprises:

determining that the plurality of source addresses for the plurality of destination addresses comprises a new connection, wherein the determining regarding the hash algorithm is in response to the determining regarding the new connection.

13. The computer-readable media of claim 9 , wherein the determining regarding the hash algorithm is to be performed during or responsive to an administrative window, installing, upgrading, or one or more new connections.

14. A storage system, comprising:

a plurality of blades or nodes having access to storage memory;

a processing device, to:

identify a plurality of source addresses, and a plurality of destination addresses in the plurality of blades or nodes, for network traffic;

determine that a hash algorithm to be used across the plurality of source addresses for load-balancing the network traffic to the plurality of destination addresses more closely meets one or more load-balancing criteria than at least one other hash algorithm of a plurality of hash algorithms; and

distribute the network traffic from the plurality of source addresses, to the plurality of destination addresses in the storage system, with load-balancing according to the determined hash algorithm.

15. The storage system of claim 14 , wherein:

each of the plurality of source addresses is an Internet protocol (IP) address, a media access control (MAC) address, or a port address and the one or more load-balancing criteria comprises a value for evenness of load-balancing.

16. The storage system of claim 14 , wherein the hash algorithm is further to be used across portions of network packets of the network traffic and the determining regarding the hash algorithm comprises determining that the hash algorithm to be used across the portions of the network packets of the network traffic, including the plurality of source addresses, more closely meets the one or more load-balancing criteria than the at least one other hash algorithm of the plurality of hash algorithms.

17. The storage system of claim 14 , further comprising:

arranging the plurality of destination addresses in the storage system as a link aggregation group (LAG), multi-link aggregation group (MLAG), or a multi-chassis link aggregation group (MCLAG).

18. The storage system of claim 14 , wherein determining that the hash algorithm more closely meets the one or more load-balancing criteria than at least one other hash algorithm of the plurality of hash algorithms comprises selecting the hash algorithm from among the plurality of hash algorithms through machine learning or artificial intelligence.

19. The storage system of claim 14 , wherein determining regarding the hash algorithm is performed responsive to upgrading one or more new connections.

20. The storage system of claim 14 , wherein the one or more load-balancing criteria comprises a value for rebalancing stored data in the storage system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2021
From: GLEK, TARAS
To: PURE STORAGE, INC.
Reel/Frame 058218/0309 →
Continuity (9)
Continuation In Part 17147639 · Jan 13, 2021
Continuation In Part 16799551 · Feb 24, 2020
Continuation 15885666 · Jan 31, 2018
Continuation In Part 15376220 · Dec 12, 2016
Continuation 15167792 · May 27, 2016
Continuation 14961665 · Dec 7, 2015
Continuation 14618999 · Feb 10, 2015
Continuation In Part 14296151 · Jun 4, 2014
Related Publication 20210314404A1 · Oct 7, 2021