IP Library Granted Patent US 10,877,861
Granted Patent B2
US 10,877,861 · App. 16/174,135 · Granted Dec 29, 2020

Remote procedure call cache for distributed system

Inventors: John Hayes (Mountain View, CA); Robert Lee (San Carlos, CA); Peter Vajgel (Menlo Park, CA); Joshua Robinson (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F11/2069G06F11/1451G06F11/1469G06F11/1666G06F11/2056G06F11/2058G06F11/2089G06F11/2097G06F12/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,877,861
App. No.
16/174,135
Granted
Dec 29, 2020
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 (42)

1. A storage system, comprising:

a plurality of storage nodes configurable to cooperate as a storage cluster, 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; and

a second remote procedure call cache in a second one of the plurality of storage nodes, configurable to mirror the first remote procedure call cache, each of the plurality of storage nodes having an authority with exclusive rights for updating entities associated with the authority.

2. The storage system of claim 1 , wherein the entities are units of data or metadata stored within the cluster.

3. The storage system of claim 1 , wherein the plurality of storage nodes support a plurality of filesystems.

4. The storage system of claim 1 , wherein the remote procedure call cache is configurable to store, as metadata relating to a remote procedure call, a transaction identifier, a client identifier, and a result.

5. The storage system of claim 4 , wherein the transaction identifier is utilized to locate a primary authority for the remote procedure call.

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

each of the plurality of storage nodes having a table, configured to indicate a primary authority, a first backup authority, and a second backup authority, wherein the remote procedure call cache corresponds to the primary authority.

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

each of the plurality of storage nodes configurable to determine whether a mirrored remote procedure call cache is unreachable and to mirror the remote procedure call cache to a replacement mirrored remote procedure call cache responsive to the remote procedure call cache being unreachable.

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

replicating a first remote procedure call cache in a storage node of the storage system into a differing storage node of the storage system; and

determining the storage node of the storage system is unreachable; and

identifying the differing storage node having the replicated remote procedure call cache, responsive to the determining.

9. The method of claim 8 , further comprising:

routing the first remote procedure call from a switch to the storage node, based on an inode number.

10. The method of claim 8 , wherein:

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

11. The method of claim 8 , further comprising:

determining, at the differing one of the plurality of storage nodes, that the storage node has an authority for data relating to the first remote procedure call in order to forward the first remote procedure call to storage node.

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 a 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:

each of a plurality of storage nodes of the storage system has a table configurable to indicate a primary authority, a first backup authority, and a second backup authority, wherein the remote procedure call cache corresponds to the primary authority.

14. The method of claim 8 , further comprising:

determining which one of a plurality of storage nodes is a destination for the first remote procedure call, based on an inode number for data relative to the first remote procedure call in order to route the first remote procedure call to the storage node.

15. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by one or more processors, cause the one or more processors to perform a method comprising:

replicating a first remote procedure call cache in a storage node of the storage system into a differing storage node of the storage system; and

determining the storage node of the storage system is unreachable; and

identifying the differing storage node having the replicated remote procedure call cache, responsive to the determining.

16. The computer-readable media of claim 15 , further comprising:

routing the first remote procedure call from a switch to the storage node, based on an inode number.

17. The computer-readable media of claim 15 , wherein:

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

18. The computer-readable media of claim 15 , further comprising:

determining, at the differing one of the plurality of storage nodes, that the storage node has an authority for data relating to the first remote procedure call in order to forward the first remote procedure call to storage node.

19. The computer-readable media of claim 15 , 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 a second remote procedure call cache is associated with a second authority relating to a second range of user data.

20. The computer-readable media of claim 15 , further comprising:

each of a plurality of storage nodes of the storage system has a table configurable to indicate a primary authority, a first backup authority, and a second backup authority, wherein the remote procedure call cache corresponds to the primary authority.

Continuity (4)
Continuation 15213271 · Jul 18, 2016
Continuation 14697571 · Apr 27, 2015
Continuation 14322888 · Jul 2, 2014
Related Publication 20190073282A1 · Mar 7, 2019