IP Library Granted Patent US 10,637,949
Granted Patent B2
US 10,637,949 · App. 15/804,910 · Granted Apr 28, 2020

Transparent sharding of traffic across messaging brokers

Inventor: Xiaodan Wang (Dublin, CA)
Assignee: salesforce.com, inc.
H04L67/2809G06F16/278H04L41/0668H04L43/0817H04L67/1002
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,637,949
App. No.
15/804,910
Granted
Apr 28, 2020
Kind
B2
Abstract

Embodiments regard transparent sharding of traffic across messaging brokers. An embodiment of a method of sharding message traffic across messaging brokers includes providing a message sharding service for message sharding among a plurality of registered message brokers, wherein providing the message sharding service includes applying a current message sharding strategy; and sharding messages among the registered message brokers according to the current message sharding strategy, including registering the message brokers and assigning message queues to registered message brokers according to the current message sharding strategy; wherein the current message sharding strategy is one of a plurality of message sharding strategies.

Claims (45)

1. A method of sharding data across servers, the method comprising:

providing a sharding service to provide data sharding among a plurality of shard servers, wherein providing the sharding service includes:

selecting a first sharding method to be a current sharding method of the sharding service, the first sharding method of the sharding service being one of a plurality of available sharding methods for the sharding service;

sharding data according to the first sharding method of the sharding service, including distributing data to the plurality of shard servers according to the first sharding method; and

switching the current sharding method of the sharding service from the first sharding method to a second sharding method of the plurality of available sharding methods of the sharding service, and sharding data among the plurality of shard servers according to the second sharding method.

2. The method of claim 1 , wherein switching the current sharding method includes adding one or more shard servers to or removing one or more shard servers from the plurality of shard servers.

3. The method of claim 1 , further comprising the sharding service enforcing the current sharding method for distributing data among the plurality of shard servers.

4. The method of claim 1 , further comprising monitoring workload and status of the shard servers of the plurality of shard servers.

5. The method of claim 1 , wherein switching the current sharding method of the sharding service from the first sharding method to the second sharding method includes switching in response to one or more instructions regarding the sharding method.

6. The method of claim 1 , wherein switching the current sharding method of the sharding service from the first sharding method to the second sharding method includes switching in response to one or more of a change in current conditions or a change in a user preference.

7. The method of claim 1 , wherein providing the sharding service includes providing a plurality of instructions for data operations.

8. The method of claim 7 , wherein the plurality of instructions includes one or more of instructions to:

add a shard server to the plurality of shard servers for the sharding service;

remove a shard server from the plurality of server servers for the sharding service; or

switch the current sharding method of the sharding service.

9. A system comprising:

a plurality of shard servers, the shard servers to store shards of data; and

a sharding service to provide data sharding among the plurality of shard servers according to a current sharding method, including selecting a first sharding method to be the current sharding method of the sharding service, wherein the first sharding method is one of a plurality of available sharding methods for the sharding service, and distributing data to the plurality of shard servers according to the first sharding method;

wherein the sharding service is operable to switch from the first sharding method to a second sharding method of the plurality of available sharding methods, and to shard data among the plurality of shard servers according to the second sharding method.

10. The system of claim 9 , wherein the sharding service switching the current sharding method includes the sharding service adding one or more shard servers to or removing one or more shard servers from the plurality of shard servers.

11. The system of claim 9 , wherein the sharding service is to enforce the current sharding method for distributing data among the plurality of shard servers.

12. The system of claim 9 , wherein the sharding service is further to monitor workload and status of the shard servers of the plurality of shard servers.

13. The system of claim 9 , wherein the sharding service provides a plurality of instructions for data operations.

14. The system of claim 13 , wherein the plurality of instructions includes one or more of instructions to:

add a shard server to the plurality of shard servers for the sharding service;

remove a shard server from the plurality of shard servers for the sharding service; or

switch the current sharding method of the sharding service.

15. The system of claim 9 , wherein the sharding service decouples the sharding method from other components of the system.

16. A non-transitory computer-readable storage medium having stored thereon data representing sequences of instructions that, when executed by a processor, cause the processor to perform operations comprising:

providing a sharding service to provide data sharding among a plurality of shard servers, wherein providing the sharding service includes:

selecting a first sharding method to be a current sharding method of the sharding service, the first sharding method of the sharding service being one of a plurality of available sharding methods for the sharding service;

sharding data among the plurality of shard servers according to the first sharding method of the sharding service, including distributing data to the plurality of shard servers according to the first sharding method; and

switching the current sharding method of the sharding service from the first sharding method to a second sharding method of the plurality of available sharding methods of the sharding service, and sharding data among the plurality of shard servers according to the second sharding method.

17. The medium of claim 16 , wherein switching the current sharding method includes adding one or more shard servers to or removing one or more shard servers from the plurality of shard servers.

18. The medium of claim 16 , further comprising instructions that, when executed by the processor, cause the processor to perform operations comprising:

enforcing the current sharding method for distributing data among the plurality of shard servers.

19. The medium of claim 16 , further comprising instructions that, when executed by the processor, cause the processor to perform operations comprising:

monitoring workload and status of the shard servers of the plurality of shard servers.

20. The medium of claim 16 , wherein switching the current sharding method of the sharding service from the first sharding method to the second sharding method includes switching in response to one or more instructions regarding the sharding method.

21. The medium of claim 16 , wherein switching the current sharding method of the sharding service from the first sharding method to the second sharding method includes switching in response to one or more of a change in current conditions or a change in a user preference.

22. The medium of claim 16 , wherein providing the sharding service includes providing a plurality of instructions for data operations.

23. The medium of claim 22 , wherein the instructions for data sharding operations include one or more of instructions to:

add a shard server to the plurality of shard servers for the sharding service;

remove a shard server from the plurality of shard servers for the sharding service; or

switch the current sharding method of the sharding service.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0247 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2017
From: WANG, XIAODAN
To: SALESFORCE.COM, INC.
Reel/Frame 044104/0182 →
Continuity (3)
Continuation 14614146 · Feb 4, 2015
Provisional Application 61941293 · Feb 18, 2014
Related Publication 20180063271A1 · Mar 1, 2018