Resolving Issues of Currency and Optimization of the Process of Replication/Migration
Original Publication Date: 2003-Oct-03
Included in the Prior Art Database: 2003-Oct-03
Replication helps provide both disaster recovery and higher availability. In the Content Managerment, replication is defined as making an asynchronous peer copy of a resource item's referenced object on a different resource manager/collection tuple. The Library Server tracks the state of each replica during the process of Replication/Migration. Replication/Migration proceeds currently with other update and modification operations. Care must be taken on issues of currency to avoid incorrectly overwriting and corrupting the most recent data with those that are stale. The current invention involves a new approach for replication/migration that guarantees the correct resolution of the issue of currency and ensures error-free replication and migration. This approach also significantly reduces the complexity of the logic for determining the location of the Replication/Migration path, optimizes this process, and offers a clear self-illustration of its workings.
Resolving Issues of Currency and Optimization of the Process of Replication /Migration
Previous known approaches attempt to use the date and time stamps of the source and target items in the replica. Comparisons are made between the date/time stamps to determine the necessity to proceed with replication. Since date and time are separately and independently kept on different server and client machines, difficulty having to constantly synchronize the date and time of all servers and clients makes such approaches prone to corruption. The current invention does not rely on the date and time stamps and makes use of state flags in the replica. This new approach removes all unnecessary replication/migration operations and virtually eliminates any possibility of corruption.
The new migration/replication process makes use of the state flags NO_CONTENT, WAITING_REPLICATOR. These flags are maintained by the Library Server with the associated data and updated appropriately as items are created and modified. These flags define the state of objects as follows:
NO_CONTENT: The object does not currently exist. This flag turns on at the time of the object's creation when it is known the object will be managed but prior to its existence . The flag turns off when the Resource Manager completes the store order successfully.
WAITING_REPLICATOR: The replicator currently holds the most recent copy of an object for replication/replacement. The Resource Manager/Collector is waiting for the replicator to complete its operation.
The migration/replication logic uses these flags to determine whether to proceed with replication. Only when all the above flags are cleared will the migration/replication on the object be allowed to proceed.
This ensures error-free replication and migration as follows:
Create a resource item with object stored in the Stored RM:
When a new item is created through a CreateItem call, the Stored RM that has originally Stored the object is knowledgeable of the object's state turn off both the NO_CONTENT and WAITING_REPLICATOR flags. This indicates that the object in the Stored RM is the most recent and a candidate for replication/migration. For all RMs other than the Stored RM, both NO_CONTENT and WAITING_REPLICATOR flags turn on f...