CA2476603C

Avoiding data loss when refreshing a data warehouse

Abstract

The Invention relates to an electronic data element for access for data object processing processes in a computer system comprising said element being settable to at least: a) a first state, in which said element can be accessed by one or more of the data object processing processes and whereby said element is assignable to one or more of the data objects, b) a second state, in which said element can not be accessed by one or more of the data processing processes but is assignable to one or more of the data objects, and c) a third state, in which said element can not be accessed by one or more of the data processing processes and is not assignable to the one ormore data objects. The invention further relates to a method for processing data objects by means of one or more processes running in a computer system having one or more of the electronic data elements comprising a step of a) setting an electronic data element to the second state. By using this method, such electronic data elements can no longer be selected by data processing processes in order to assign them to the processed data objects. However, electronic data elements already selected before they have been set to the second state can still be assigned to the processed data objects.

CA2476603C, drawing sheet 1
Sheet 1 of 21

Term

Term ended

Expired 24 November 2023, 2.8 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

21 claims: 6 independent, 15 dependent

  1. 1
    CA 02476603 2008-06-03 . « What is claimed is:1. A method of replicating data objects from a source system to a target system, the method comprising: providing an electronic data element accessible to at least one software program implementing one or more data-object replication processes and one or more software processes other than the one or more data-object replication processes, the electronic data element having a first data field containing data representing an identifier functioning as a link to one or more data objects and a second data field containing data representing a state of the identifier, wherein the state of the identifier is set to one of the following states: a) a first state, in which said electronic data element is accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is assignable to one or more data objects, b) a second state, in which said electronic data element is not accessible by one or more of the software processes other than the dataobject replication processes and whereby said identifier is assigned to one or more data objects, and c) a third state, in which said electronic data element is not accessible by one or more of the software processes other than the dataobject replication processes and whereby said identifier is not assignable to one or more data objects;-31 CA 02476603 2008-06-03 setting the state of the identifier to the first state;setting a shared lock on the electronic data element after the state of the identifier has been set to the first state;assigning the identifier to one or more data objects stored in a memory of the source system;processing, by one or more of the software processes other than the data-object replication processes, the one or more data objects assigned to the identifier while the identifier is set to the first state;storing, after processing the one or more data objects, the one or more processed data objects to the memory of the source system;removing the shared lock from the electronic data element after the one or more processed data objects have been committed to storage in the memory of the source system;changing, after removing the shared lock from the electronic data element, the state of the identifier to the third state;setting an exclusive lock on the electronic data element after changing the state of the identifier to the third state;replicating, by the one or more data-object replication processes after the exclusive lock has been set on the electronic data element, the one or more processed data objects from the memory in -32CA 02476603 2008-06-03 the source system to a memory in the target system;and removing the exclusive lock from the electronic data element after replicating the one or more processed data objects from the source system to the target system.
  2. 11
    A method of replicating data objects from a source system to a target system, the method comprising:creating an electronic data element having a first data field containing data representing an identifier functioning as a link to one or more data objects and a second data field containing data representing a state of the identifier, wherein the state of the identifier is set to one of the following states: a) a first state, in which said electronic data element is accessible by one or more data object processing operations and whereby said -34CA 02476603 2008-06-03 identifier is assignable to one or more data objects, b) a second state, in which said electronic data element is not accessible by one or more data object processing operations and whereby said identifier is assignable to one or more data objects, and c) a third state, in which said electronic data element is not accessible by one or more data object processing operations and whereby said identifier is not assignable to one or more data objects;setting the state of the identifier to the first state ;setting a shared lock on the electronic data element after the state of the identifier has been set to the first state;assigning the identifier to one or more data objects stored in a memory of the source system;processing, by one or more data object processing operations, the one or more data objects assigned to the identifier while the identifier is set to the first state;storing, after processing the one or more data objects, the one or more processed data objects to the memory of the source system;removing the shared lock from the electronic data element after the one or more processed data objects have been committed to storage in the memory of the source system;-35CA 02476603 2008-06-03 changing, after removing the shared lock from the electronic data element, the state of the identifier to the third state;setting an exclusive lock on the electronic data element after changing the state of the identifier to the third state;replicating, after setting the exclusive lock on the electronic data element, the one or more processed data objects from the memory in the source system to a memory in the target system;removing the exclusive lock from the electronic data element after replicating the one or more processed data objects from the source system to the target system;creating a second electronic data element having: a fourth data field containing data representing an identifier functioning as a link to one or more data objects, a fifth data field containing data representing a state of the identifier stored in the fourth data field, wherein the state of the identifier stored in the fifth data field is set to one of the first, second, and third states, a sixth data field containing data functioning as a flag representative of whether the fourth data field in the second electronic data element contains a default identifier;changing the data stored in the sixth data field to indicate that the fourth data field contains the default identifier;and -36CA 02476603 2008-06-03 changing, during the one or more data object processing operations, the data stored in the second data field to the second state.
  3. 12
    A method of replicating data objects from a source system to a target system, the method comprising:creating an electronic data element having a first data field containing data representing an identifier functioning as a link to one or more data objects and a second data field containing data representing a state of the identifier, wherein the state of the identifier is set to one of the following states: a) a first state, in which said electronic data element is accessible by one or more data object processing operations and whereby said identifier is assignable to one or more data objects, b) a second state, in which said electronic data element is not accessible by one or more data object processing operations and whereby said identifier is assignable to one or more data objects, and c) a third state, in which said electronic data element is not accessible by one or more data object processing operations and whereby said identifier is not assignable to one or more data objects;setting the state of the identifier to the first state;setting a shared lock on the electronic data element after the state of the identifier has been set to the first state;-37CA 02476603 2008-06-03 assigning the identifier to one or more data objects stored in a memory of the source system;processing, by one or more data object processing operations, the one or more data objects assigned to the identifier while the identifier is set to the first state;storing, after processing the one or more data objects, the one or more processed data objects to the memory of the source system;removing the shared lock from the electronic data element after the one or more processed data objects have been committed to storage in the memory of the source system;changing, after removing the shared lock from the electronic data element, the state of the identifier to the third state;setting an exclusive lock on the electronic data element after changing the state of the identifier to the third state;replicating, after setting the exclusive lock on the electronic data element, the one or more processed data objects from the memory in the source system to a memory in the target system;removing the exclusive lock from the electronic data element after replicating the one or more processed data objects from the source system to the target system;creating a second electronic data element having: -38CA 02476603 2008-06-03 a fourth data field containing data representing an identifier functioning as a link to one or more data objects, a fifth data field containing data representing a state of the identifier stored in the fourth data field, wherein the state of the identifier stored in the fifth data field is set to one of the first, second, and third states, a sixth data field containing data functioning as a flag representative of whether the fourth data field in the second electronic data element contains a default identifier;changing the data stored in the sixth data field to indicate that the fourth data field contains the default identifier;determining whether the first data field contains the first data field contains the default identifier;and changing, in response to determining that the first data field contains the default identifier, data stored in the first data field from data representing the default identifier to data representing an identifier value other than the default identifier.
  4. 19
    A data-object replication system, comprising:a source memory;a target memory;a microprocessor coupled to the source and target memories and comprising a computer readable memory having computer readable code embodied therein to be programmed to: provide an electronic data element accessible to at least one software program implementing one or more data-object replication processes and one or more software processes other than the one or more data-object replication processes, the electronic data element having a first data field containing data representing an identifier functioning as a link to one or more data objects and a second data field containing data representing a state of the identifier, wherein the state of -40CA 02476603 2008-06-03 the identifier is set to one of the following states : a) a first state, in which said electronic data element is accessible by one or more of the software processes other than the data-object replication processes and assignable to whereby said identifier is one or more data objects, b) a second state, in which said electronic data element is not accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is assigned to one or more data objects, and c) a third state, in which said electronic data element is not accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is not assignable to one or more data objects ;set the state of the identifier to the first state;set a shared lock on the electronic data element after the state of the identifier has been set to the first state;assign the identifier to one or more data objects stored in the source memory;process, by one or more of the software processes other than the data-object replication processes, the one or more data objects assigned to the -41 CA 02476603 2008-06-03 identifier while the identifier is set to the first state;store, after processing the one or more data objects, the one or more processed data objects to the source memory;remove the shared lock from the electronic data element after the one or more processed data objects have been committed to storage in the source memory;change, after removing the shared lock from the electronic data element, the state of the identifier to the third state;set an exclusive lock on the electronic data element after changing the state of the identifier to the third state;replicate, by the one or more data-object replication processes after the exclusive lock has been set on the electronic data element, the one or more processed data objects from the source memory to the target memory;and remove the exclusive lock from the electronic data element after replicating the one or more processed data objects from the source memory to the target memory.
  5. 20
    A system for replicating data objects from a source system to a target system, the system comprising:a source memory;a target memory;a microprocessor coupled to the source and target memories;-42CA 02476603 2008-06-03 means for providing an electronic data element accessible to at least one software program implementing one or more data-object replication processes and one or more software processes other than the one or more data-object replication processes, the electronic data element having a first data field containing data representing an identifier functioning as a link to one or more data objects and a second data field containing data representing a state of the identifier, wherein the state of the identifier is set to one of the following states: a) a first state, in which said electronic data element is accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is assignable to one or more data objects, b) a second state, in which said electronic data element is not accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is assigned to one or more data objects, and c) a third state, in which said electronic data element is not accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is not assignable to one or more data objects;means for setting the state of the identifier to the first state;-43CA 02476603 2008-06-03 means for setting a shared lock on the electronic data element after the state of the identifier has been set to the first state;means for assigning the identifier to one or more data objects stored in the source memory;means for processing, by one or more of the software processes other than the data-object replication processes, the one or more data objects assigned to the identifier while the identifier is set to the first state;means for storing, after processing the one or more data objects, the one or more processed data objects to the source memory;means for removing the shared lock from the electronic data element after the one or more processed data objects have been committed to storage in the source memory;means for changing, after removing the shared lock from the electronic data element, the state of the identifier to the third state;means for setting an exclusive lock on the electronic data element after changing the state of the identifier to the third state;means for replicating, by the one or more dataobject replication processes after the exclusive lock has been set on the electronic data element, the one or more processed data objects from the source memory to the target memory;and means for removing the exclusive lock from the electronic data element after replicating the one -44CA 02476603 2008-06-03 or more processed data objects from the source memory to the target memory.
  6. 21
    A computer-readable memory storing instructions for execution by a processor for performing a method of replicating data objects from a source system to a target system, the method comprising:providing an electronic data element accessible to at least one software program implementing one or more data-object replication processes and one or more software processes other than the one or more data-object replication processes, the electronic data element having a first data field containing data representing an identifier functioning as a link to one or more data objects and a second data field containing data representing a state of the identifier, wherein the state of the identifier is set to one of the following states: a) a first state, in which said electronic data element is accessible by one or more of the software processes other than the data-object replication processes and whereby said identifier is assignable to one or more data objects, b) a second state, in which said electronic data element is not accessible by one or more of the software processes other than the dataobject replication processes and whereby said identifier is assigned to one or more data objects, and c) a third state, in which said electronic data element is not accessible by one or more of the software processes other than the data -45CA 02476603 2008-06-03 object replication processes and whereby said identifier is not assignable to one or more data objects;setting the state of the identifier to the first state;setting a shared lock on the electronic data element after the state of the identifier has been set to the first state;assigning the identifier to one or more data objects stored in a memory of the source system;processing, by one or more of the software processes other than the data-object replication processes, the one or more data objects assigned to the identifier while the identifier is set to the first state;storing, after processing the one or more data objects, the one or more processed data objects to the memory of the source system;removing the shared lock from the electronic data element after the one or more processed data objects have been committed to storage in the memory of the source system;changing, after removing the shared lock from the electronic data element, the state of the identifier to the third state;setting an exclusive lock on the electronic data element after changing the state of the identifier to the third state;replicating, by the one or more data-object replication processes after the exclusive lock has been set on the electronic data element, the one -46CA 02476603 2008-06-03 or more processed data objects from the memory in the source system to a memory in the target system;and removing the exclusive lock from the electronic data 5 element after replicating the one or more processed data objects from the source system to the target system.