IP Library Granted Patent US 10,114,714
Granted Patent B2
US 10,114,714 · App. 15/213,271 · Granted Oct 30, 2018

Redundant, fault-tolerant, distributed remote procedure call cache in a storage system

Inventors: John Hayes (Mountain View, CA); Robert Lee (Mountain View, CA); Peter Vajgel (Mountain View, CA); Joshua Robinson (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F11/2069G06F11/1451G06F11/1469G06F11/1666G06F11/2058G06F11/2089G06F12/0246G06F12/0813G06F12/0875G06F2201/805G06F2201/84G06F2212/1032G06F2212/154G06F2212/284G06F2212/286G06F2212/452G06F2212/7208
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,114,714
App. No.
15/213,271
Granted
Oct 30, 2018
Kind
B2
Abstract

A method of operating a remote procedure call cache in a storage cluster is provided. The method includes receiving a remote procedure call at a first storage node having solid-state memory and writing information, relating to the remote procedure call, to a remote procedure call cache of the first storage node. The method includes mirroring the remote procedure call cache of the first storage node in a mirrored remote procedure call cache of a second storage node. A plurality of storage nodes and a storage cluster are also provided.

Claims (38)

1. A storage cluster, comprising:

a plurality of storage nodes configurable to cooperate as a storage cluster and to support a plurality of filesystems, each storage node of the plurality of storage nodes having solid-state storage;

a first remote procedure call cache in a first one of the plurality of storage nodes, the first remote procedure call cache configurable to receive a remote procedure call under a first one of the plurality of filesystems; and

a first mirrored remote procedure call cache in a second one of the plurality of storage nodes, configurable to mirror the first remote procedure call cache.

2. The storage cluster of claim 1 , further comprising:

a second mirrored remote procedure call cache in the first one of the plurality of storage nodes, configurable to mirror a second remote procedure call cache of a further one of the plurality of storage nodes.

3. The storage cluster of claim 1 , further comprising:

a second remote procedure call cache in a further one of the plurality of storage nodes, configurable to receive a further remote procedure call; and

a second mirrored remote procedure call cache in a still further one of the plurality of storage nodes, configurable to mirror the second remote procedure call cache.

4. The storage cluster of claim 1 , further comprising:

a second remote procedure call cache in a second one of the plurality of storage nodes, configurable to receive a remote procedure call under a second filesystem.

5. The storage cluster of claim 1 , further comprising:

the plurality of storage nodes configurable to receive a remote procedure call relating to a file with a first Mode version, corresponding to the first one of the plurality of filesystems, at a first Internet Protocol (IP) address, and receive a further remote procedure call relating to a file with a second Mode version, corresponding to a second one of the plurality of filesystems, at a second IP address.

6. The storage cluster of claim 1 , further comprising:

each of the plurality of storage nodes configurable to receive a remote procedure call, determine which one of the plurality of storage nodes has an authority for data relating to the remote procedure call, and forward the remote procedure call to the one of the plurality of storage nodes that has the authority for the data relating to the remote procedure call.

7. The storage cluster of claim 1 , further comprising:

each storage node of the plurality of storage nodes having a remote procedure call cache and one or more mirrored remote procedure call caches, with the remote procedure call cache associated with a primary authority relating to a range of user data and each of the one or more mirrored remote procedure call caches associated with a corresponding backup authority relating to a further range of user data.

8. A method for fault-tolerant operation of remote procedure call caches in a storage system, comprising:

receiving, at a first remote procedure call cache in a first one of a plurality of storage nodes, a first remote procedure call under a first filesystem;

mirroring the first remote procedure call cache in a first mirrored remote procedure call cache in a storage node other than the first one of the plurality of storage nodes;

receiving, at a second remote procedure call cache in a second one of the plurality of storage nodes, a second remote procedure call under a second filesystem; and

mirroring the second remote procedure call cache in a second mirrored remote procedure call cache in a storage node other than the second one of the plurality of storage nodes.

9. The method of claim 8 , further comprising:

mirroring, at a third mirrored remote procedure call cache in the first one of the plurality of storage nodes, a third remote procedure call cache of a differing one of the plurality of storage nodes.

10. The method of claim 8 , wherein:

the first remote procedure call relates to a file with a first Mode version, corresponding to the first filesystem, and is received at a first Internet Protocol (IP) address associated with the first filesystem; and

the second remote procedure call relates to a file with a second Mode version, corresponding to the second filesystem, and is received at a second IP address associated with the second filesystem.

11. The method of claim 8 , further comprising:

receiving the first remote procedure call at a differing one of the plurality of storage nodes;

determining, at the differing one of the plurality of storage nodes, that the first one of the plurality of storage nodes has an authority for data relating to the first remote procedure call; and

forwarding the first remote procedure call to the first one of the plurality of storage nodes, responsive to the determining.

12. The method of claim 8 , further comprising:

establishing a plurality of mirrored remote procedure call caches each associated with a backup authority relating to a corresponding range of user data, wherein the first remote procedure call cache is associated with a first authority relating to a first range of user data and the second remote procedure call cache is associated with a second authority relating to a second range of user data.

13. The method of claim 8 , further comprising:

further mirroring the first remote procedure call cache in a third mirrored remote procedure call cache in a further storage node.

14. The method of claim 8 , further comprising:

determining which one of the plurality of storage nodes is a destination for the first remote procedure call, based on an Mode number for data relative to the first remote procedure call; and

routing the first remote procedure call to the first one of the plurality of storage nodes, responsive to the determining.

Continuity (3)
Continuation 14697571 · Apr 27, 2015
Continuation 14322888 · Jul 2, 2014
Related Publication 20160328305A1 · Nov 10, 2016