Home About Replication Our Solution Blog Contact

 

 

Use Scenarios  

Existing Technologies  

Index

1. IBM Replication Solutions

A number of IBM products enable data replication, including, DB2 DataPropagator (for data replication among relational database); DataPropagator NonRelational (for data replication among non-relational database platforms.); DB2 DataJoiner (Multidatabase server solution for accessing heterogeneous data as if it were in a single data store); IMS DataPropagator (for replication between IMS db and DB2 db); SQL Replication (updates are staged in relational tables before replicating); Queue replication (updates are written in messages that are transported through WebSphere MQ message queues).

DataPropagator appears in WebSphere Information Integrator earlier versions; since WebSphere II V8, it has been replaced by SQL Replication and Queue replication.

1.1 DB2 DataPropagator

There are 3 main components in DataPropagator architecture: Administration Interfaces (are used to create control table to store replication criteria), Change-Capture Mechanisms (use database log or triggers to captures the changes and store them temporarily in tables) and the Apply Program (copies data target DB by scheduled applying transactions accumulated). These components communicate to each other by using control tables. DataPropagator supports after-image (copy data after updating)/before-image (copy data before updating, useful for auditing or rollback) replication; full-refresh (copy all data)/differential-refresh (copy only the changes) replication; multiply levels of conflict detection (standard conflict detection/ enhanced conflict detection/ Row-replica conflict); allowing user indicating a sub set, a simple view or complex joins and unions replication. DataPropagator performs asynchronous replication only, allowing user to apply replication by specifying time intervals, events, or on demand. [7]

1.2 SQL Replication

WebSphere II later version uses IBM SQL-based replication approach that maximizes flexibility and efficiency in managing scheduling, transformation, and distribution topologies. SQL replication uses similar replication approach as DataPropagator, however, a new component -- Alert Monitor -- has been added to its architecture.  This component allows user to check the status or replication processes, keeps the performance information, and sends notification to user when problem happens. As DataPropagator, SQL replication captures changes using either log-based or trigger-based mechanism and inserts them into a relational staging table. An apply process asynchronously handles the updates to the target systems. SQL replication is designed for warehouses or marts, maintaining data consistency between disparate applications, or efficiently managing distribution and consolidation scenarios among headquarter and branch or retail configurations. [8][9][10]



Fig 3.1.1 SQL Replication [8]

1.3 DB2 Q-Replication

The new IBM queue-based replication architecture uses message queues to transport data between sources and targets. As show in Fig3.1.2, changes are captured from the log and placed on a queue. The apply process retrieves the changes from the queue and applies them -- in parallel -- to the target system. A Q Apply browser is used to examine and track dependencies among transactions in the queue, and, based on dependency analysis, apply process allows data to be applied in parallel in a way that preserves data integrity. Q Replication is designed to support business continuity, workload distribution, and application integration scenarios, promising to offer low latency and high throughput replication with managed conflict detection and resolution.


Fig 3.1.1 SQL Replication [8]

2. Sybase Replication Solutions

Sybase’s replication has been available since 1993, pioneering in the field, characterized by its “publish-and subscribe” approach. Microsoft’s database technology is derived from that of Sybase, making use of similar replication strategies. [11]

 

Fig 3.2.1 Sybase Replication Architecture [12]

The main components in Sybase replication architecture include, Replication Agent (running inside of each data publisher (see ASE – Sybase’s Adaptive Server Enterprise -- in Fig 3.2.1) detects changes in source database by reading transaction log); Replication Server (directs data changes to their target databases using pre-configured intelligent routes); Replication Server Manager (GUI-based powerful managing and monitoring tool, running on a single desktop, can create replication environments, monitor and manage the replication flow); Stable Queues (are a safety mechanism, storing data generated by each replication process, ensuring no data is lost, providing a configurable level of component fault tolerance).

When replicating, Replication Agent detects data changes and transfers to Replication Server (if Replication Server is unavailable, data stays in the transaction log); Replication Server connects with the target database, or other Replication Servers, and delivers data through optimized routes; Stable Queue is used here by Replication Servers to store data, and data is removed from the queue only after it has been successfully forwarded. Compare to other similar relational database replication vendors, Sybase solutions give more attention on system performance in terms of availability, reliability, network load balance, and transferring efficiency, and also advanced in providing comprehensive solution for mobile computing.

3. Oracle Advanced Replication

Oracle Advanced Replication aims to support a variety of replication requirements. Its 3 types of replication environments, namely, Multimaster Replication, Materialized View Replication, and Multimaster and Materialized View Hybrid Replication, support all kinds of database objects replicating, such as tables (a partial of table), indexes, views, packages, procedures and functions, etc. [6]

3.1 Multimaster Replication

Multimaster Replication, employing peer-to-peer structure, (shows in Fig 3.3.1), enables multiple sites acting as equal peers, to manage groups of replicated database objects; Update happens at any sites; Changes to the tables are pushed to other sites by either asynchronous or synchronous processing; In a synchronous replication, changes immediately apply to all sites in a single transaction, which rolls back if fails at any site, ensuring no data conflict; In a asynchronous replication, each site has individual scheduled intervals to propagate changes,  cannot guarantee data consistency in real-time, data conflicts(Update conflict – more than one sites tried to update the same row /Uniqueness conflict – more than one sites inserted rows having the same primary key/ Delete conflict -- a site updated a row deleted by the other site) may happen, yet, requiring cheaper hardware and network resources; Multimaster Replication is designed for mission critical database, ensuring continuous availability, providing read load balancing and survivability protection.


Fig 3.3.1 Oracle Multimaster Replication [6]

3.2 Materialized View Replication

In Materialized View Replication, (as show in Fig 3.4.2), typically one mater site manages several non-mater sites, which keeps a copy or a partial copy of database objects in the mater site. Multitier Materialized View Replication is also possible, in which lower tier sites replicate database objects of higher tier sites (in Fig 3.3.3). Designed for Mass Deployment development, Materialized Views enable local access and disconnected computing, which improve response times and availability, and reduce network load; it also enables subset replication, which increase  data security (different view can be granted different privileges). Materialized Views are updatable; three refresh methods are provided to ensure replication consistency, namely fast refresh(only update the changed rows), complete refresh(updates the entire duplicated objects), and force refresh (performs a complete refresh only when a fast refresh is not possible)

                

3.3 Hybrid Replication

Hybrid Replication (Fig 3.3.4) is the combination of Multimaster Replication and Materialized Views.  Multimaster Replication enables real-time refreshment, while Materialized Views propagate changes from multiple transactions in a more efficient, batch-oriented operation, but at less frequent intervals.


Fig 3.3.4 Oracle Hybrid Replication [6]

4. MySQL Replication Solutions

MySQL provides basic data replication services by a light weight Master and Slave structure [14]. In single-master replication, the master server writes updates to its binary log files. The binary log files serve as a record of updates to be sent to any slave servers. When a slave connects to its master, it informs the master of the position up to which the slave read the logs at its last successful update. The slave receives any updates that have taken place since that time, and then blocks and waits for the master to notify it of new updates. A sanity check is performed to compare result on both sites; if the query failed on one site but succeeded on the other, replication stops.

This simple structure can be arbitrarily combined to build complex architectures. (See Fig 3.4.1). These are essentially the same as Oracle master/ materialize view structures.



Fig 3.4.1 MySQL replication architectures [14]

One problem of MySQL replication mechanism is that in a slow network it is difficult for a slave to catch up with its master. In MySQL 4.0 this problem has been fixed by adding the relay log in the slave: slave read the replication queries from master’s binary log and put into its local relay log, another thread responses to read the queries from relay log and execute them. Another problem of MySQL’s replication is that since binary log only record update information, when add a new slave to a master, the user has to restart the master to ensure the snapshot of the database loaded to the slave is exact the point when slave begins to read from binary log. Moreover it’s almost impossible to add a new slave after the master has been running for a long period of time. The solutions for these expect to be provided in MySQL’s future work.

5. Microsoft SQL Server Replication

Microsoft SQL Server has supported replication since version 6.0. in SQL Server replication, a replicaiton resource is called as a publisher, and the replication target is called as a subscriber. It provides 3 types of replication strategies: snapshot replication, transactional replication and merge replication

Snapshot replication simply takes a "snapshot" of the data on one server and moves that data to another server (or another database on the same server). After the initial synchronization snapshot, replication can refresh data in published tables periodically—based on the schedule you specify. Although snapshot replication is the easiest type to set up and maintain, it requires copying all data each time a table is refreshed. Between scheduled refreshes, data on the original server might be very different from the data on replicas.

Transactional replication involves copying data from the publisher to the subscriber(s) once and then delivering transactions to the subscriber(s) as they occur on the publisher. The initial copy of the data is transported by using the same mechanism as with snapshot replication: SQL Server takes a snapshot of data on the publisher and moves it to the subscriber(s). As database users insert, update, or delete records on the publisher, transactions are forwarded to the subscriber(s).

Merge replication combines data from multiple sources into a single central database. Much like transactional replication, merge replication uses initial synchronization by taking the snapshot of data on the publisher and moving it to subscribers. Unlike transactional replication, merge replication allows changes of the same data on publishers and subscribers, even when subscribers are not connected to the network. When subscribers connect to the network, replication will detect and combine changes from all subscribers and change data on the publisher accordingly. Merge replication is useful when you have a need to modify data on remote computers and when subscribers are not guaranteed to have a continuous connection to the network. [22]

6. Globus Data Replication Service

The Globus project’s Data Replication Service (DRS) (Ann Chervenak, et al.) [3] generalizes the publication functionality of LIGO to provide a higher-level data management services. Fig 3.5.1 describes the workflow of data replication process in DRS.

a.  Clients begin by creating a request file (2) (containing replication request file names and destination locations) and sent to the DRS (3) to create the Replicator resource.

b.   The Replicator accesses the user’s delegated credential (5) and querying (6) the Replica Location Index to find the Local Replica Catalogs that contain mappings for the requested files. And then queries (7) each of the remote Local Replica Catalogs to get the physical file names associated with the requested files. Thereafter, the Replicator uses the Reliable File Transfer (RFT) service to create a RFT resource (8) and start the transfer.

c.    Reliable File Transfer service retrieves the delegated credential (9), and performs the data transfer between sites (11).

d.  Newly created replicas are registered (13) to its Local Replica Catalog. And the Local Replica Catalog updates (14) the Replica Location Index at remote sites to make the new replicas visible throughout the Grid environment.


Fig 3.5.1 Architecture of Globus Data Replication Service [3]

7. EDG Replica Manager

The EDG Replica Manager (Peter Kunszt, et al. 2000) [4], shown in Fig 3.6.1, implements 7 modules in its general replica management framework.

a.  The Core module implements the main functionality of replica management, (replica creation, deletion, and cataloguing) by interacting with third party services, including Transport services, Replica Location services, MetaData Catalog services and Processing services;

b.  The Optimization component is used to minimize file access times by pointing access requests to appropriate replicas and pro-actively replicating frequently used files based on access statistics gathered.

c.    The Consistency module guarantees the consistency of replicas of a file and the meta-information stored in various catalogs.

d.  The Subscription module takes care of subscription-based replication where data appearing at a data source is automatically replicated to subscribed sites.

e.   The Session Management component provides generic check-pointing, restart, and rollback mechanisms to enhance fault tolerance to the system.

f.    Collections are defined as sets of logical filenames and other collections.

g.   The Security module manages the authentication and authorization, checking allowance for a user to create, delete, read, and write a file.


Fig 3.6.1 Architecture of EDG Replica Manager [4]

8. EGEE Grid Replication Solutions

The Enabling Grids for E-sciencE (EGEE) project [20] (new versions of EDG) builds on top of LCG-2 middleware [21], providing 3 main grid services, job management, data management, and resource information retrieving. The EGEE Data Management Services provides functions of uploading, downloading, and replicating grid data, which characterised as large (> ~20MB), read-only (cannot be modified/deleted), heterogeneous (ascii, binary etc.), and “files” level (no data “structures”), across different Storage Elements. Its data replication system is designed for improving data access efficiency and resilient to failure.

The architecture of EGEE Replication Management System (RMS) and its interactions with other Grid elements is illustrated in Fig 3.7.1.


Fig 3.7.1 EGEE Data Management services [21]

a.    The Replica Manager (RM) presents a single interface for the Replication Management System to the user, and interacts with the other EGEE components, e.g. Resource Broker, and Storage Element.

b.    The files in the Grid are referred to by different names: Grid Unique Identifier (GUID), Logical File Name (LFN), Storage URL, and Transport URL. Two types of File Catelogs keep mappings between different names:

  • The Replica Location Service (RLS) maintains information about the physical location of the replicas (mapping with the GUIDs). It is composed of several Local Replica Catalogs (LRCs) which hold the information of replicas for a single VO; and Replica Metadata Catalog (RMC) which stores the mapping between  GUIDs and the respective aliases (LFNs) associated with them, and also maintains other metadata information (sizes, dates, ownerships...)
  • the LCG File Catalog (LFC)  is created to overcome performance and functionality issues observed in RLS

9. Storage Resource Broker Project

Storage Resource Broker (SRB) project, proposed by the San Diego Supercomputer Centre, is client-server middleware that provides a uniform interface to access heterogeneous distributed storage resources including, file systems, database systems and archival storage systems in a logical manner using abstraction mechanisms. It also provides a way to access files and computers based on their attributes rather than just names or physical locations. SRB utilizes MCAT, a database system that keeps track of namespaces and the mapping of data objects to storage resources within the federation. MCAT is used to determine the physical location of a given data object, file attributes, metadata, access control lists, storage resource information, and user data.

The SRB middleware consists of one or more SRB Master daemon processes, and SRB Agent processes associated with each Master. The details of one SRB agent is depicted in Fig 3.8.1


Fig 3.8.1 the SRB Agent Architecture

The Dispatcher monitors incoming client requests and delivers requests to the High Level Request Handler (which communicates with MCAT to retrieve metadata information), or the Low-level Request Handler (which communicates with particular storage resource to obtain data). In a federated SRB operation scenario, the High Level Request Handler can also communicate with another SRB server and passes the original open request to a remote MCAT. Returned file handle is sent back to application, and client application may access the data item in a remote server, using the returned file handle. [18]

Replications enabled in SRB include MCAT Replication, Data Replication, Synchronous Replication, Asynchronous Replication, and Out of Band Replication. MCAT Replication allows a series of transactions to be captured on the master MCAT database and replayed at a remote MCAT database. The remote database would be a separate SRB environment with its own MCAT. Vendor specific replication, such as Oracle Advanced Replication or Data Guard could be used to move data. Yet, transaction-based SRB replication isn’t available. Data Replication is used for moving copies of data closer to the user. SRB maintains a hierarchical global name space. Each replica is allocated a persistent SRB identifier. A replica can exist in any type of resource and need not be in the same format. Synchronous Replication is via the logical resource definition and is integrated into the SRB open/create and write functions. In this case, SRB provides consistency of replicas. User are allowed to associate replication with containers/collections as well as individual objects. Asynchronous replication (offline) is possible, which can be initiated by the user or controlling client. The system allows a choice at real time to decide which specific replica should be used (Out of Band Replication), e.g. to use any replica, a specific replica,  the next Round-robin replica, the nearest replica, replica with appreciate resource characteristics, a replica with appreciate timestamp or other characteristics, a replica with specific Meta characteristics (user defined metadata and annotations).Once replicated files can be locked while changes are applied. Basic versioning for data within SRB is also available. [19]

10. Grid Data Distribution

The Grid Data Distribution (GDD) [5] project aims to provide functionality supporting Grid Data Access and Notification. It develops variety of operations, such as publication operations, subscription operations, propagation operations, which can be used for Data Replication, third-party data delivery, workflow, etc.

11. IBM Grid Wrapper for WebSphere Information Integrator

IBM WebSphere II is an information integration middleware, providing a range of integration technologies, such as enterprise search, data federation, data replication, data transformation and data event publishing. To interact with a data grid, a new component, Grid Wrapper, was developed to glue WebSphere II and OGSA-DAI, which enables dynamic data resource binding. [15][16]

The architecture of Grid Wrapper was depicted in Fig 3.10.1.

 

Fig 3.10.1 IBM Grid Wrapper Architecture [15]

a.    DB2 is put in front of all relational data sources to unify the access language;

b.    WebSphere II provides federation capabilities;

c.    OGSA-DAI enables transparent data access to grid data sources;

d.    The Registry keeps metadata (data location, access means, structure, QoS, etc.), used for information discovery of the grid on behalf of applications;

e.    Access Patterns encapsulate the semantics of data sources and data access means;

f.    Transforms transform the SQL of remote data source to a form being recognised by the application.

IBM Grid Wrapper enables data federating in the grid. It reuses existing technology to deal with relational space, combining OGSA-DAI technology to interact with grid data resources, employing a Registry to remove the tight coupling of WebSphere II to the data sources, which allows run-time resource binding, and also enhance system fault tolerance – when data resource has been removed/ failed, it easily switches data access to a replica.

References

[1]  SIMDAT project: http://www.scai.fraunhofer.de/710.0.html
[2]  LIGO: http://www.ligo.caltech.edu/
[3]  Wide Area Data Replication for Scientific Collaborations, Ann Chervenak, Robert Schuler, Carl Kesselman, Scott Koranda, Brian Moe
[4] Data Grid- Replica Management with Reptor, Peter Kunszt, Erwin Laure, Heinz, Stockinger, Kurt Stockinger
[5] Data Distribution in the Grid Environment, Dieter Gawlick, Vitthal Gogate, et al.
[6] Oracle 9i Advanced Replication Release 2 (9.2), http://www.lc.leidenuniv.nl/awcourse/oracle/server.920/a96567/toc.htm
[7] ReplicationGuide and Reference, http://www.pdc.kth.se/doc/SP/manuals/db2-7.1/html/db2e0/frame3.htm#index
[8] The Next Generation: Q Replication, Anthony J. Ciccone and Beth Hamel, http://www.db2mag.com/story/showArticle.jhtml?articleID=23903558
[9] A Practical Guide toDB2 UDB Data Replication V8, http://www.redbooks.ibm.com/redbooks/pdfs/sg246828.pdf
[10] WebSphere Information Integration, http://www-306.ibm.com/software/data/integration/replication.html
[11] Database Replication, Charles Thompson, http://www.dbmsmag.com/9705d15.html
[12] Replication Strategies: Data Migration, Distribution and Synchronization, Sybase White Paper, http://www.sybase.com/content/1028711/6143_whitepaper_v2.pdf
[13] High Performance MySQL: Optimization, Backups, Replication & Load Balancing, Jeremy D.Zawodny, Derek J. Balling, O’REILLY,
 http://www.oreilly.com/catalog/hpmysql/chapter/ch07.pdf
[14] MySQL 5.0 Reference Manual, http://dev.mysql.com/doc/refman/5.0/en/replication-intro.html
[15] Bridging the integration gap, Part 1: Federating grid data, Adrian Lee, James Magowan, Patrick Dantressangle, Fabian Bannwart, http://www-128.ibm.com/developerworks/grid/library/gr-feddata/
[16] Grid Wrapper for WebSphere Information Integrator http://www.alphaworks.ibm.com/tech/gridwrapper
[17] SRB Project website: http://www.sdsc.edu/srb/index.php/Main_Page
[18] The SDSC Storage Resource Broker, C. Baru, R.Moore, A. Rajasekar, M. Wan, Proc. CASCON'98 Conference , Nov.30-Dec.3, 1998, Toronto, Canada.
[19] Introduction of Storage Resource Broker: http://www.e-science.clrc.ac.uk/web/projects/storage_resource_broker
[20] EGEE Project http://public.eu-egee.org/
[21] LHC Computing Grid: LCG-2 User Guide Manuals Series https://edms.cern.ch/file/454439/2/LCG-2-UserGuide.pdf
[22]http://www.awprofessional.com/articles/article.asp?p=169612&seqNum=1&rl=1