IP Library Granted Patent US 9,424,330
Granted Patent B2
US 9,424,330 · App. 14/209,934 · Granted Aug 23, 2016

Database sharding by shard levels

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 9,424,330
App. No.
14/209,934
Granted
Aug 23, 2016
Kind
B2
Abstract

A system and a method are disclosed for identifying a particular database shard associated with a given user. Each user is assigned a shard level that corresponds to a set of database shards that were active within a database management system when the user first joined the data management system. When a data request associated with a given user is received, the shard level assigned to the user identifies the database shard in the database management system that stores data associated with the user. The data request is thus processed using the identified database shard.

Claims (40)

1. A method for identifying a particular database shard associated with a given user, the method comprising:

receiving a data request associated with a first user;

determining a shard level assigned to the first user, the shard level corresponding to a set of database shards that were active within a data management system when data associated with the first user is first stored in the data management system;

selecting a shard function corresponding the shard level from a set of shard functions, each shard function in the set of shard functions corresponding to a different shard level; and

inputting a user identifier associated with the first user into the shard function to identify a first database shard in the set of database shards that stores data associated with the first user; and

processing the data request using the first database shard.

2. The method of claim 1 , wherein inputting the user identifier comprises generating a derivative of the user identifier associated with the first user and providing the derivative as an input to the shard function.

3. The method of claim 1 , wherein only the first database shard stores data associated with the first user.

4. The method of claim 1 , wherein the data associated with the first user and stored in the first database shard is aggregated from a plurality of disparate data sources.

5. A method for identifying a particular database shard associated with a given user, the method comprising:

receiving a data request associated with a first user, the first user associated with a user identifier that includes a shard level assigned to the first user;

extracting the shard level assigned to the first user from the user identifier, the shard level corresponding to a set of database shards that were active within a data management system when data associated with the first user is first stored in the data management system;

selecting a shard function from a set of shard functions based on the shard level;

executing the shard function to identify a first database shard in the set of database shards that stores data associated with the first user based on the shard level; and

processing the data request using the first database shard.

6. The method of claim 5 , wherein each shard function in the set of shard functions is associated with a different shard level corresponding to the set of database shards.

7. The method of claim 5 , wherein executing the shard function comprises providing the user identifier associated with the first user as an input to the shard function.

8. The method of claim 5 , wherein executing the shard function comprises generating a derivative of the user identifier associated with the first user and providing the derivative as an input to the shard function.

9. The method of claim 5 , wherein only the first database shard stores data associated with the first user.

10. The method of claim 5 , wherein the data associated with the first user and stored in the first database shard is aggregated from a plurality of disparate data sources.

11. A non-transitory computer readable medium storing instructions that, when executed by a processor, causes the processor to identify a particular database shard associated with a given user, the instructions when executed cause the processor to:

receive a data request associated with a first user, the first user associated with a user identifier that includes a shard level assigned to the first user;

extract the shard level assigned to the first user from the user identifier, the shard level corresponding to a set of database shards that were active within a data management system when data associated with the first user is first stored in the data management system;

select a shard function from a set of shard functions based on the shard level;

execute the shard function to identify a first database shard in the set of database shards that stores data associated with the first user based on the shard level; and

process the data request using the first database shard.

12. The computer readable medium of claim 11 , wherein each shard function in the set of shard functions is associated with a different shard level corresponding to the set of database shards.

13. The computer readable medium of claim 11 , wherein executing the shard function comprises providing a user identifier associated with the first user as an input to the shard function.

14. The computer readable medium of claim 11 , wherein executing the shard function comprises generating a derivative of a user identifier associated with the first user and providing the derivative as an input to the shard function.

15. The computer readable medium of claim 11 , wherein only the first database shard stores data associated with the first user.

16. The computer readable medium of claim 11 , wherein the data associated with the first user and stored in the first database shard is aggregated from a plurality of disparate data sources.

17. A non-transitory computer readable medium storing instructions to identify a particular database shard associated with a given user, the instructions when executed by a processor causes the processor to:

receive a data request associated with a first user;

determine a shard level assigned to the first user, the shard level corresponding to a set of database shards that were active within a data management system when data associated with the first user is first stored in the data management system;

select a shard function corresponding the shard level from a set of shard functions, each shard function in the set of shard functions corresponding to a different shard level; and

input a user identifier associated with the first user into the shard function to identify a first database shard in the set of database shards that stores data associated with the first user; and

process the data request using the first database shard.

18. The computer readable medium of claim 17 , wherein the instructions to input the user identifier further comprises instructions that when executed causes the processor to generate a derivative of the user identifier associated with the first user and provide the derivative as an input to the shard function.

19. The computer readable medium of claim 17 , wherein only the first database shard stores data associated with the first user.

20. The computer readable medium of claim 17 , wherein the data associated with the first user and stored in the first database shard is aggregated from a plurality of disparate data sources.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2025
From: AKTANA, INC.
To: PHARMAFORCEIQ, INC.
Reel/Frame 073482/0293 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2025
From: EXCALIBUR ACQUISITIONCO, LLC
To: AKTANA, INC.
Reel/Frame 072738/0118 →
RELEASE OF SECURITY INTEREST Recorded Nov 8, 2023
From: HERCULES CAPITAL, INC.
To: TACT.AI TECHNOLOGIES, INC.
Reel/Frame 065498/0296 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2023
From: TACT.AI TECHNOLOGIES, INC.
To: EXCALIBUR ACQUISITIONCO, LLC
Reel/Frame 065498/0893 →
SECURITY INTEREST Recorded Feb 13, 2020
From: TACT.AI TECHNOLOGIES, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 051816/0816 →
CHANGE OF NAME Recorded Dec 27, 2017
From: TACTILE, INC.
To: TACT.AI TECHNOLOGIES, INC.
Reel/Frame 044968/0276 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2015
From: PRASANNA, DHANANJAY
To: TACTILE, INC.
Reel/Frame 035506/0467 →