Method and apparatus for providing concurrent data insertion and updating
First Claim
Patent Images
1. A computer-implemented method for updating and inserting data items into a database, wherein a processor executes the method comprising:
- fetching data items, each of the data items comprising a key and information, wherein each key comprises a primary key for the respective data item;
obtaining each key of the keys of the data items;
determining whether each key of the keys is in a delay queue or is in processing, wherein each key in the delay queue is not available for updating in the database and is not available for committing in the database;
determining, based on a determination that at least one key of the keys is not in the delay queue and is not in processing, if a process queue exists and, based on a negative determination that the process queue exists, creating the process queue;
determining, based on a determination that at least one key of the keys is in the delay queue or is in processing, if the delay queue exists and, based on a negative determination that the delay queue exists, creating the delay queue;
for each key of the keys, storing the key of the keys in the process queue when the key of the keys is available for updating in the database or is available for committing in the database, otherwise storing the key of the keys in the delay queue;
scheduling an insert/update operation for the database including data items associated with keys in the process queue;
executing a batch commit to information of the data items associated with the keys in the process queue to the database; and
removing the keys from the process queue associated with the information committed to the database.
9 Assignments
0 Petitions
Accused Products
Abstract
A method, computer program product and apparatus for providing a scheduling mechanism for inserting/updating data items in a database including obtaining each of the at least one keys included within a selected data item, determining whether each of the at least one keys is suitable for processing and storing each of the at least one keys in a first queue when each of the keys is available for processing, otherwise storing the keys in a second queue.
-
Citations
21 Claims
-
1. A computer-implemented method for updating and inserting data items into a database, wherein a processor executes the method comprising:
-
fetching data items, each of the data items comprising a key and information, wherein each key comprises a primary key for the respective data item; obtaining each key of the keys of the data items; determining whether each key of the keys is in a delay queue or is in processing, wherein each key in the delay queue is not available for updating in the database and is not available for committing in the database; determining, based on a determination that at least one key of the keys is not in the delay queue and is not in processing, if a process queue exists and, based on a negative determination that the process queue exists, creating the process queue; determining, based on a determination that at least one key of the keys is in the delay queue or is in processing, if the delay queue exists and, based on a negative determination that the delay queue exists, creating the delay queue; for each key of the keys, storing the key of the keys in the process queue when the key of the keys is available for updating in the database or is available for committing in the database, otherwise storing the key of the keys in the delay queue; scheduling an insert/update operation for the database including data items associated with keys in the process queue; executing a batch commit to information of the data items associated with the keys in the process queue to the database; and removing the keys from the process queue associated with the information committed to the database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for updating and inserting data items into a database, the apparatus comprising:
-
a processor in communication with a memory, the processor executing logical code causing the processor to perform; fetching data items, each of the data items comprising a key and information, wherein each key comprises a primary key for the respective data item; obtaining each key of the keys of the data items; determining whether each key of the keys is in a delay queue or is in processing, wherein each key in the delay queue is not available for updating in the database and is not available for committing in the database; determining, based on a determination that at least one key of the keys is not in the delay queue and is not in processing, if a process queue exists and, based on a negative determination that the process queue exists, creating the process queue; determining, based on a determination that at least one key of the keys is in the delay queue or is in processing, if the delay queue exists and, based on a negative determination that the delay queue exists, creating the delay queue; for each key of the keys, storing the key of the keys in the process queue when the key of the keys is available for updating in the database or is available for committing in the database, otherwise storing the key of the keys in the delay queue; scheduling an insert/update operation for the database including data items associated with keys in the process queue; executing a batch commit to information of the data items associated with the keys in the process queue to the database; and removing the keys from the process queue associated with the information committed to the database. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer program product, stored on a non-transitory computer readable storage medium, for updates and inserts of data items into a database, the product providing logical code causing a processor to execute:
-
fetching data items, each of the data items comprising a key and information, wherein each key comprises a primary key for the respective data item; obtaining each key of the keys of the data items; determining whether each key of the keys is in a delay queue or is in processing, wherein each key in the delay queue is not available for updating in the database and is not available for committing in the database; determining, based on a determination that at least one key of the keys is not in the delay queue and is not in processing, if a process queue exists and, based on a negative determination that the process queue exists, creating the process queue; determining, based on a determination that at least one key of the keys is in the delay queue or is in processing, if the delay queue exists and, based on a negative determination that the delay queue exists, creating the delay queue; for each key of the keys, storing the key of the keys in the process queue when the key of the keys is available for updating in the database or is available committing in the database, otherwise storing the key of the keys in the delay queue; scheduling an insert/update operation for the database including data items associated with keys in the process queue; executing a batch commit to information of the data items associated with the keys in the process queue to the database; and removing the keys from the process queue associated with the information committed to the database. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification