Hosted application gateway architecture with multi-level security policy and rule promulgations
First Claim
1. A database system, comprising:
- a plurality of database shards operating on a plurality of database servers, each database shard of the plurality of database shards is tagged with a shard identifier on initialization, wherein the shard identifier is unique across the plurality of database shards;
a sharding manager embodied on a non-transitory computer memory including instructions executable by a processor to generate a relationship for database items across at least two of the database shards, wherein generating the relationship includes the sharding manager;
storing a first data structure representing a first split of the relationship in a first shard, the first data structure referencing a second database item in a second shard and keyed to a first database item in the first shard, the first database item having a first object identifier encoded with the shard identifier of the first shard; and
storing a second data structure representing a second split of the relationship in a second shard, the second data structure referencing the first database item in the first shard and keyed to the second database item in the second shard, the second database item having a second object identifier encoded with the shard identifier of the second shard, the second object identifier generated by the second shard independently of the first object identifier generated by the first shard;
wherein the sharding manager is included in a gateway server node or is in communication with the gateway server node;
wherein the sharding manager is communicatively connected to the plurality of database shards through an application programming interface; and
wherein the second database item in the second shard is accessible through the application programming interface using the first data structure keyed to the first database item in the first shard.
4 Assignments
0 Petitions
Accused Products
Abstract
A hosted application gateway server node may be communicatively coupled to backend systems, client devices, and database shards associated with database servers. Through the gateway server node, various services may be provided to managed containers running on client devices such that enterprise applications can be centrally managed. A sharding manager may manage relationships of database items across database shards. Each shard stores a copy of a table representing a split of a relationship. A shard ID mask is included in each item'"'"'s ID. At query time, the shard ID can be extracted and used to query the correct database. This query routing mechanism allows navigation from one shard to another when multiple items are in a relationship (e.g., share the same resource such as a document). As such, embodiments can eliminate the need for APIs to join in data that span multiple shards.
309 Citations
20 Claims
-
1. A database system, comprising:
-
a plurality of database shards operating on a plurality of database servers, each database shard of the plurality of database shards is tagged with a shard identifier on initialization, wherein the shard identifier is unique across the plurality of database shards; a sharding manager embodied on a non-transitory computer memory including instructions executable by a processor to generate a relationship for database items across at least two of the database shards, wherein generating the relationship includes the sharding manager; storing a first data structure representing a first split of the relationship in a first shard, the first data structure referencing a second database item in a second shard and keyed to a first database item in the first shard, the first database item having a first object identifier encoded with the shard identifier of the first shard; and storing a second data structure representing a second split of the relationship in a second shard, the second data structure referencing the first database item in the first shard and keyed to the second database item in the second shard, the second database item having a second object identifier encoded with the shard identifier of the second shard, the second object identifier generated by the second shard independently of the first object identifier generated by the first shard; wherein the sharding manager is included in a gateway server node or is in communication with the gateway server node; wherein the sharding manager is communicatively connected to the plurality of database shards through an application programming interface; and wherein the second database item in the second shard is accessible through the application programming interface using the first data structure keyed to the first database item in the first shard. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
operating a plurality of database shards on a plurality of database servers, each database shard of the plurality of database shards is tagged with a shard identifier on initialization, wherein the shard identifier is unique across the plurality of database shards; and generating a relationship for database items across at least two of the database shards, the generating performed by a sharding manager embodied on a non-transitory computer memory, the generating including; storing a first data structure representing a first split of the relationship in a first shard, the first data structure referencing a second database item in a second shard and keyed to a first database item in the first shard, the first database item having a first object identifier encoded with the shard identifier of the first shard; and storing a second data structure representing a second split of the relationship in a second shard, the second data structure referencing the first database item in the first shard and keyed to the second database item in the second shard, the second database item having a second object identifier encoded with the shard identifier of the second shard, the second object identifier generated by the second shard independently of the first object identifier generated by the first shard; wherein the sharding manager is included in a gateway server node or is in communication with the gateway server node; wherein the sharding manager is communicatively connected to the plurality of database shards through an application programming interface; and wherein the second database item in the second shard is accessible through the application programming interface using the first data structure keyed to the first database item in the first shard. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor for implementing a sharding manager communicatively connected to a plurality of database shards through an application programming interface, the plurality of database shards operating on a plurality of database servers, each database shard of the plurality of database shards is tagged with a shard identifier on initialization, wherein the shard identifier is unique across the plurality of database shards, the instructions when translated by the processor performing:
-
generating a relationship for database items across at least two of the database shards, the generating including; storing a first data structure representing a first split of the relationship in a first shard, the first data structure referencing a second database item in a second shard and keyed to a first database item in the first shard, the first database item having a first object identifier encoded with the shard identifier of the first shard; and storing a second data structure representing a second split of the relationship in a second shard, the second data structure referencing the first database item in the first shard and keyed to the second database item in the second shard, the second database item having a second object identifier encoded with the shard identifier of the second shard, the second object identifier generated by the second shard independently of the first object identifier generated by the first shard; wherein the second database item in the second shard is accessible through the application programming interface using the first data structure keyed to the first database item in the first shard. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification