IP Library Granted Patent US 12,314,252
Granted Patent B2
US 12,314,252 · App. 18/501,815 · Granted May 27, 2025

Control plane service of a distributed caching platform

Inventors: Yufei Hu (Foster City, CA); David Albertson (Bellevue, WA); Kexin Zhu (Santa Clara, CA)
Assignee: STRIPE, INC.
G06F16/2379G06F9/547G06F16/24552G06F16/27G06Q10/06313
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 12,314,252
App. No.
18/501,815
Granted
May 27, 2025
Kind
B2
Abstract

A processing device and method for managing a distributed storage system with a control plane is described. The processing device may perform operations including receiving, with a first service, a request to perform an operation associated with a cluster of nodes, wherein the cluster includes one or more router nodes and one or more data storage nodes that are associated with the router nodes, and validating, with the first service, the request. In response to the request being validated, the processing device may perform, with a second service, the operation associated with the cluster. The performing of the operation may include calling on the first service, to access an inventory database that stores an association between the router nodes and the data storage nodes, and communicating the operation with a service of the router nodes to implement the operation.

Claims (45)

1. A method performed by a processing device for managing a distributed storage system with a control plane, comprising:

receiving, with a first service, a request to perform an operation associated with a cluster of nodes, wherein the cluster includes one or more router nodes and one or more data storage nodes that are associated with the one or more router nodes;

validating, with the first service, the request, including accessing an inventory database to validate the operation of the request based on a constraint which is associated with a namespace that is stored in the inventory database; and

in response to the request being validated, performing, with a second service, the operation associated with the cluster, the performing of the operation comprising:

calling on the first service, to access the inventory database that stores an association between the one or more router nodes and the one or more data storage nodes, to perform the operation, including accessing, by the first service, an amount or ratio of the one or more router nodes and the one or more data storage nodes that is associated with the namespace, and

communicating, by the second service, the operation with a service of the one or more router nodes to increase or decrease the amount of the one or more router nodes or the one or more data storage nodes for the cluster, according to the operation.

2. The method of claim 1 , wherein the first service and the second service are integrated within a deployable software package.

3. The method of claim 1 , wherein the first service, the second service, and the inventory database are dedicated to a plurality of clusters associated with a region of the distributed storage system.

4. The method of claim 1 , wherein validating the request comprises:

authorizing the request based on an application programming interface (API) that is invoked through the request, and validating the operation in view of one or more constraints.

5. The method of claim 1 , wherein the method further comprises:

storing, with the first service, the namespace in the inventory database, the namespace logically grouping one or more auto-scaling groups into a single group.

6. The method of claim 5 , wherein

the amount or ratio of the one or more router nodes and the one or more data storage nodes is associated with a scaling requirement that is associated with the namespace.

7. The method of claim 1 , wherein performing the operation associated with the cluster comprises:

scheduling a workflow to execute the operation and monitoring execution of the operation until completion.

8. The method of claim 7 , wherein the second service has access to the one or more router nodes and the one or more data storage nodes, and the first service does not have access to the one or more router nodes and the one or more data storage nodes.

9. The method of claim 1 , wherein the operation comprises adding one or more additional clusters, removing one or more clusters, changing a topology of the cluster, recycling a component of the cluster, or returning a health status of the cluster.

10. The method of claim 1 , wherein the first service includes a first application programming interface (API) endpoint that receives the request from a user, and a second API endpoint that receives a read or a write operation from the second service to access the inventory database.

11. One or more non-transitory computer readable storage media having instructions stored thereupon which, when executed by a system having at least a processor and a memory therein, cause the system to perform processes for managing a distributed storage system with a control plane, comprising:

receiving, with a first service, a request to perform an operation associated with a cluster of nodes, wherein the cluster includes one or more router nodes and one or more data storage nodes that are associated with the one or more router nodes;

validating, with the first service, the request, including accessing an inventory database to validate the operation of the request based on a constraint which is associated with a namespace that is stored in the inventory database; and

in response to the request being validated, performing, with a second service, the operation associated with the cluster, the performing of the operation comprising:

calling on the first service, to access the inventory database that stores an association between the one or more router nodes and the one or more data storage nodes, to perform the operation, including accessing, by the first service, an amount or ratio of the one or more router nodes and the one or more data storage nodes that is associated with the namespace, and

communicating, by the second service, the operation with a service of the one or more router nodes to increase or decrease the amount of the one or more router nodes or the one or more data storage nodes for the cluster, according to the operation.

12. The non-transitory computer readable storage media of claim 11 , wherein the first service and the second service are integrated within a deployable software package.

13. The non-transitory computer readable storage media of claim 11 , wherein the first service, the second service, and the inventory database are dedicated to a plurality of clusters associated with a region.

14. The non-transitory computer readable storage media of claim 11 , wherein validating the request comprises:

authorizing the request based on an application programming interface (API) that is invoked through the request, and validating the operation in view of one or more constraints.

15. The non-transitory computer readable storage media of claim 11 , wherein the processes further comprise:

storing, with the first service, the namespace in the inventory database, the namespace logically grouping one or more auto-scaling groups into a single group.

16. A first computer node for managing a distributed storage system with a control plane, comprising:

a memory having instructions stored thereupon; and

one or more processors coupled with the memory, configured to execute the instructions, causing the one or more processors to perform processes, comprising:

receiving, with a first service, a request to perform an operation associated with a cluster of nodes, wherein the cluster includes one or more router nodes and one or more data storage nodes that are associated with the one or more router nodes;

validating, with the first service, the request, including accessing an inventory database to validate the operation of the request based on a constraint which is associated with a namespace that is stored in the inventory database; and

in response to the request being validated, performing, with a second service, the operation associated with the cluster, the performing of the operation comprising:

calling on the first service, to access the inventory database that stores an association between the one or more router nodes and the one or more data storage nodes, to perform the operation, including accessing, by the first service, an amount or ratio of the one or more router nodes and the one or more data storage nodes that is associated with the namespace, and

communicating, by the second service, the operation with a service of the one or more router nodes to increase or decrease the amount of the one or more router nodes or the one or more data storage nodes for the cluster, according to the operation.

17. The first computer node of claim 16 , wherein the first service and the second service are integrated within a deployable software package.

18. The first computer node of claim 16 , wherein the first service, the second service, and the inventory database are dedicated to a plurality of clusters associated with a region of the distributed storage system.

19. The first computer node of claim 16 , wherein validating the request comprises:

authorizing the request based on an application programming interface (API) that is invoked through the request, and validating the operation in view of one or more constraints.

20. The first computer node of claim 16 , wherein the processes further comprise:

storing, with the first service, the namespace in the inventory database, the namespace logically grouping one or more auto-scaling groups into a single group.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2024
From: HU, YUFEI; ALBERTSON, DAVID; ZHU, KEXIN
To: STRIPE, INC.
Reel/Frame 067433/0243 →
Continuity (1)
Related Publication 20250147950A1 · May 8, 2025
References Cited (7)
US 10652235B1 · Mehta · 2020 [cited by examiner]
US 11349956B1 · Cole · 2022 [cited by examiner]
US 20130346260A1 · Jubran · 2013 [cited by examiner]
US 20180300203A1 · Kathpal · 2018 [cited by examiner]
US 20190332692A1 · Rachapudi · 2019 [cited by examiner]
US 20200192781A1 · Narayanaswamy · 2020 [cited by examiner]
US 20200394061A1 · Sekar · 2020 [cited by examiner]