IP Library Granted Patent US 12,450,294
Granted Patent B2
US 12,450,294 · App. 18/529,965 · Granted Oct 21, 2025

Selection of storage servers based on clustering bands

Inventors: Vamsi Penumatsa (Bangalore, IN); Swaroop Jayanthi (Hyderabad, IN); Ramalinga Raju Kalidindi (Hyderabad, IN); Vaibhav Wadikar (Hyderabad, IN)
Assignee: Salesforce, Inc.
G06F16/906H04L67/101
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,450,294
App. No.
18/529,965
Granted
Oct 21, 2025
Kind
B2
Abstract

In some embodiments, a method receives a request for accessing a database and selects a band from a plurality of bands for the request based on a characteristic of the request. A band is associated with a set of characteristics. The method selects a storage server for the band and determines whether the storage server can process requests from the band. When the storage server can process requests from the band, the method causes processing of the request by the storage server to access the database. When the storage server cannot process requests from the band, a traffic limiting indication is set for the storage server to limit processing of requests for the band on the storage server.

Claims (57)

1. A method comprising:

receiving a request for accessing a database;

selecting a band from a plurality of bands for the request based on a characteristic of the request, wherein a band is associated with a set of characteristics;

selecting a storage server for the band from a plurality of storage servers, wherein a metric associated with a performance of respective storage servers processing requests for the band is used to select the storage server;

determining whether the storage server can process requests from the band;

when the storage server can process requests from the band, causing processing of the request by the storage server to access the database; and

when the storage server cannot process requests from the band, setting a traffic limiting indication for the storage server to limit processing of requests for the band on the storage server, wherein the storage server is still able to process requests for other bands in the plurality of bands that do not have a traffic limiting indication set.

2. The method of claim 1 , wherein bands in the plurality of bands are associated with different sets of characteristics.

3. The method of claim 1 , wherein selecting the band comprises:

comparing the set of characteristics for the band to the characteristic for the request to select the band.

4. The method of claim 1 , wherein selecting the band comprises:

comparing different sets of characteristics for bands in the plurality of bands to corresponding characteristics for the request; and

classifying the request in the band based on the comparing.

5. The method of claim 1 , further comprising:

generating the plurality of bands based on clustering previous requests into a plurality of clusters.

6. The method of claim 5 , wherein values for a set of characteristics of the plurality of clusters are used to determine the set of characteristics for the plurality of bands.

7. The method of claim 1 , wherein selecting the storage server comprises:

ranking a plurality of storage servers for the band based on the metric; and

selecting the storage server from the ranking of storage servers.

8. The method of claim 7 , further comprising:

filtering storage servers that have the traffic limiting indication set for the band that is selected for the request to form the plurality of storage servers.

9. The method of claim 7 , wherein ranking the plurality of storage servers comprises:

calculating a plurality of scores for the metric based on performance of respective storage servers processing requests for the band; and

ranking the plurality of scores.

10. The method of claim 9 , wherein calculating the plurality of scores comprises:

applying a respective bias for respective storage servers in the calculating of the plurality of scores.

11. The method of claim 9 , wherein calculating the plurality of scores comprises:

performing a weighted random selection of the storage servers.

12. The method of claim 9 , wherein calculating the plurality of scores comprises:

calculating the plurality of scores for the metric based on a first metric for processing of requests in the band and a second metric for respective storage servers in the plurality of storage servers on processing requests in the band.

13. The method of claim 12 , wherein the first metric and the second metric are weighted.

14. The method of claim 12 , wherein calculating the plurality of scores comprises:

calculating the plurality of scores for the metric based on a third metric for respective bias for respective storage servers in the plurality of storage servers.

15. The method of claim 12 , wherein calculating the plurality of scores comprises:

calculating the plurality of scores for the metric based on a third metric for respective capacity to process requests for respective storage servers in the plurality of storage servers.

16. The method of claim 1 , wherein determining whether the storage server can process requests from the band comprises:

attempting to fetch a token that indicates the storage server can process the request for the band, wherein the storage server can process the request when the token is fetched.

17. The method of claim 1 , wherein the indication is a traffic light that is set for the storage server.

18. A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be configurable to cause:

receiving a request for accessing a database;

selecting a band from a plurality of bands for the request based on a characteristic of the request, wherein a band is associated with a set of characteristics;

selecting a storage server for the band from a plurality of storage servers, wherein a metric associated with a performance of respective storage servers processing requests for the band is used to select the storage server;

determining whether the storage server can process requests from the band;

when the storage server can process requests from the band, causing processing of the request by the storage server to access the database; and

when the storage server cannot process requests from the band, setting a traffic limiting indication for the storage server to limit processing of requests for the band on the storage server, wherein the storage server is still able to process requests for other bands in the plurality of bands that do not have a traffic limiting indication set.

19. The non-transitory computer-readable storage medium of claim 18 , wherein selecting the storage server comprises:

ranking a plurality of storage servers for the band based on the metric; and

selecting the storage server from the ranking of storage servers.

20. An apparatus comprising:

one or more computer processors; and

a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be configurable to cause:

receiving a request for accessing a database;

selecting a band from a plurality of bands for the request based on a characteristic of the request, wherein a band is associated with a set of characteristics;

selecting a storage server for the band from a plurality of storage servers, wherein a metric associated with a performance of respective storage servers processing requests for the band is used to select the storage server;

determining whether the storage server can process requests from the band;

when the storage server can process requests from the band, causing processing of the request by the storage server to access the database; and

when the storage server cannot process requests from the band, setting a traffic limiting indication for the storage server to limit processing of requests for the band on the storage server, wherein the storage server is still able to process requests for other bands in the plurality of bands that do not have a traffic limiting indication set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2023
From: PENUMATSA, VAMSI; JAYANTHI, SWAROOP; KALIDINDI, RAMALINGA RAJU; WADIKAR, VAIBHAV
To: SALESFORCE, INC.
Reel/Frame 065951/0761 →
Continuity (1)
Related Publication 20250181649A1 · Jun 5, 2025
References Cited (16)
US 7395537B1 · Brown · 2008 [cited by examiner]
US 7693847B1 · Brown · 2010 [cited by examiner]
US 8065682B2 · Baryshnikov · 2011 [cited by examiner]
US 8527473B1 · Brown · 2013 [cited by examiner]
US 11481363B2 · Jayanthi et al. · 2022 [cited by applicant]
US 11494202B2 · Jayanthi et al. · 2022 [cited by applicant]
US 11636071B2 · Jayanthi et al. · 2023 [cited by applicant]
US 11683254B1 · Kumar · 2023 [cited by examiner]
US 20050114862A1 · Bisdikian · 2005 [cited by examiner]
US 20060026179A1 · Brown · 2006 [cited by examiner]
US 20080133608A1 · Brown · 2008 [cited by examiner]
US 20080306950A1 · Richards · 2008 [cited by examiner]
US 20190384845A1 · Saxena · 2019 [cited by examiner]
US 20200026563A1 · Bahramshahry · 2020 [cited by examiner]
US 20210125007A1 · Jayanthi et al. · 2021 [cited by applicant]
US 20210279112A1 · Janakiraman · 2021 [cited by examiner]