Method and apparatus for providing concurrent data insertion and updating
AssigneeEMC Corporation
InventorQiang Dai
Life of this patent
Estimating the term…
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.
Claims21
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.
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.
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.
Dependencies are inferred from the claim text.