DATABASE SYSTEMS AND APPLICATIONS FOR ASSIGNING RECORDS TO CHUNKS OF A PARTITION IN A NON-RELATIONAL DATABASE SYSTEM WITH AUTO-BALANCING
First Claim
1. A method for assigning a particular record into a chunk of a partition within hardware-based network storage of a non-relational database system, wherein the partition comprises a plurality of chunks, and wherein each chunk stores a number of records within the partition, the method comprising:
- executing an application at a hardware-based processing system of an application server to generate a particular record having a corresponding record key;
accessing the non-relational database system via a query interface and application programming interface for the application when the particular record is ready to be inserted into the partition;
determining, at a mapping function of the application based on the particular record, a natural chunk key;
assigning the particular record, at a chunk assignment module of the application, to a particular candidate chunk that is a closest chunk available for insertion of the particular record at a particular time that satisfies an assignment formula, wherein the particular candidate chunk comprises a plurality of records sorted by their corresponding record keys;
inserting the particular record into the particular candidate chunk having the particular chunk key, wherein the record key of the particular record is mapped to the particular chunk key associated with the particular record;
determining whether a number of records in the particular candidate chunk exceeds a particular threshold number; and
when the number of records in the particular candidate chunk is greater than the particular threshold number;
performing an auto-balancing operation at a chunk splitting module to split the particular candidate chunk such that records originally assigned to the particular candidate chunk are divided among the particular candidate chunk and a new chunk after the auto-balancing operation is complete, wherein some of the number of records that were originally part of the particular candidate chunk are assigned to the new chunk and wherein other remaining ones of the number of records that were originally part of the particular candidate chunk remain assigned to the particular candidate chunk.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system are provided for assigning a particular record into a chunk of a partition within a non-relational database system. When a number of records in a particular candidate chunk is greater than a particular threshold number, an application performs an auto-balancing operation to split the particular candidate chunk such that records originally assigned to the particular candidate chunk are divided among the particular candidate chunk and a new chunk. Some of the number of records that were originally part of the particular candidate chunk are assigned to a new chunk and the other remaining ones of the number of records that were originally part of the particular candidate chunk remain assigned to the particular candidate chunk.
17 Citations
20 Claims
-
1. A method for assigning a particular record into a chunk of a partition within hardware-based network storage of a non-relational database system, wherein the partition comprises a plurality of chunks, and wherein each chunk stores a number of records within the partition, the method comprising:
-
executing an application at a hardware-based processing system of an application server to generate a particular record having a corresponding record key; accessing the non-relational database system via a query interface and application programming interface for the application when the particular record is ready to be inserted into the partition; determining, at a mapping function of the application based on the particular record, a natural chunk key; assigning the particular record, at a chunk assignment module of the application, to a particular candidate chunk that is a closest chunk available for insertion of the particular record at a particular time that satisfies an assignment formula, wherein the particular candidate chunk comprises a plurality of records sorted by their corresponding record keys; inserting the particular record into the particular candidate chunk having the particular chunk key, wherein the record key of the particular record is mapped to the particular chunk key associated with the particular record; determining whether a number of records in the particular candidate chunk exceeds a particular threshold number; and when the number of records in the particular candidate chunk is greater than the particular threshold number;
performing an auto-balancing operation at a chunk splitting module to split the particular candidate chunk such that records originally assigned to the particular candidate chunk are divided among the particular candidate chunk and a new chunk after the auto-balancing operation is complete, wherein some of the number of records that were originally part of the particular candidate chunk are assigned to the new chunk and wherein other remaining ones of the number of records that were originally part of the particular candidate chunk remain assigned to the particular candidate chunk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system, comprising:
-
a non-relational database system comprising; hardware-based network storage that comprises a plurality of partitions, wherein each partition comprises one or more chunks, wherein each chunk stores a number of records within a particular partition; and a database management system (DBMS) having a query interface and application programming interface for an application, and a database storage engine used to create, read, update and delete (CRUD) records at the hardware-based network storage; and an application server, comprising;
a hardware-based processing system configured to execute the application as a server process to generate a particular record having a corresponding record key that is to be inserted into the non-relational database system, wherein the application is configured to;
access the non-relational database system through the query interface and application programming interface for the application when the particular record is ready to be inserted into the partition; andwherein the application is configured to; determine, at a mapping function of a mapping module of the application based on the particular record, a natural chunk key; assign the particular record, at a chunk assignment module of the application, to a particular candidate chunk that is a closest chunk available for insertion of the particular record at a particular time that satisfies an assignment formula, wherein the record key of the particular record is mapped to the particular chunk key associated with the particular record; insert the particular record into the particular candidate chunk; determine whether a number of records in the particular candidate chunk exceeds a particular threshold number; and when the number of records in the particular candidate chunk is greater than the particular threshold number;
perform an auto-balancing operation at a chunk splitting module to split the particular candidate chunk such that records originally assigned to the particular candidate chunk are divided among the particular candidate chunk and a new chunk after the auto-balancing operation is complete, wherein some of the number of records that were originally part of the particular candidate chunk are assigned to the new chunk and wherein other remaining ones of the number of records that were originally part of the particular candidate chunk remain assigned to the particular candidate chunk. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory, computer-readable medium containing instructions for an application thereon, which, when executed by a processor of an application server, are configurable to perform a method comprising:
-
executing an application to generate a particular record having a corresponding record key; accessing a non-relational database system via a query interface and application programming interface for the application when the particular record is ready to be inserted into a partition of the non-relational database system that comprises a plurality of partitions, wherein the partition comprises a plurality of chunks, and wherein each chunk stores a number of records within the partition; determining, at a mapping function of a mapping module of the application based on a particular record, a natural chunk key; assigning the particular record, at a chunk assignment module of the application, to a particular candidate chunk that is a closest chunk available for insertion of the particular record at a particular time that satisfies an assignment formula, wherein the record key of the particular record is mapped to a particular chunk key associated with the particular record; inserting the particular record into the particular candidate chunk; determining whether a number of records in the particular candidate chunk exceeds a particular threshold number; and when the number of records in the particular candidate chunk is greater than the particular threshold number; performing, at an auto-balancing module, an auto-balancing operation to split the particular candidate chunk such that records originally assigned to the particular candidate chunk are divided among the particular candidate chunk and a new chunk after the auto-balancing operation is complete, wherein some of the number of records that were originally part of the particular candidate chunk are assigned to the new chunk and wherein other remaining ones of the number of records that were originally part of the particular candidate chunk remain assigned to the particular candidate chunk.
-
Specification