Data Ownership
In designing a replication system, consider allowing each location ownership over specific data. Data ownership can reduce Ingres Replicator maintenance by eliminating collisions and keeping databases synchronized.
For example, assume that there is a sales organization in one location and a warehouse in another location. The warehouse owns the inventory tables and all information about shipping, while the sales organization owns the sales order records, except for shipping data. In this case, assume also that the sales organization needs to know the state of the inventory and the warehouse needs to know about sales orders. These two sets of information react to each other, but do not manipulate each other’s data.
Following is the replicated process flow for this scenario:
1. A salesperson reviews a replicated copy of the inventory summary information, determining that it is possible to sell three widgets. The salesperson makes the sale and enters the sales order for three widgets, without manipulating inventory.
2. The sales orders are replicated back to the warehouse. On arrival of the sales order in the warehouse database, the following actions occur:
a. Rules execute database procedures to generate the required packing slips.
b. Database events alert the server responsible to print the new packing slips.
c. A database procedure adjusts the inventory table to subtract three widgets from the total number.
d. The sales order records are updated with the shipping information.
3. Sales order records are replicated back to the sales organization so those customers can be informed of their forthcoming widget shipment.
Because salespersons can only manipulate their sales orders, and the servers at the warehouse can only update inventory information, no replication collisions are possible. If a database is unavailable, all other databases can continue business. When the failed database is again in service, it is automatically brought back in synch with other databases and is collision free.