Q: There are so many replication tools, why ICX-UDS? |
| A: Existing transaction replication tools are inherently serial. These include disk replication, file replication and transaction replication systems, synchronous and asynchronous. Since it was not possible to replicate the exact order of the concurrent activities in the primary system to the replication target(s), a totally serialized sequence of events is essential to every replication system today.
Synchronous serial replication has two serious problems:
It must use two-phase-commit protocol (2PC) to ensure all involved system commit the data changes at the same time or the change must be rolled back. The overall system availability is the single system's availability divided by N+1 times, where N is the number of replication targets.
It must force the primary system to operate at the same speed as the serial processing of the target system -- a large waste of resources.
As a result, synchronous serial replication is known to work only within 5 mile radius using fiber optic networks.
Asynchronous serial replication is the only practical solution for the vast majority computer applications today.
However, asynchronous serial replication necessarily requires a replication queue between the primary and secondary systems. The primary processes everything in parallel while the replication is strictly serial causing an unavoidable replication queue overflow problem. Rebuilding the replication queue requires rebuilding the entire target dataset. The larger the dataset the longer the service downtime.
These weaknesses undermine every IT infrastructure today. And the prospect of steadily increasing transaction (think about micro-payments from cell phones) is only making the matter worse.
ICX-UDS is the first parallel synchronous transaction replication engine. It does not require total serialization nor 2PC. Therefore it promises to deliver higher performance and higher availability at the same time when used for database clusters (U.S. PAT: #6,421,668).
|
Q: Isn't it true that ICX-UDS gateway is the single-point-of-failure? |
| A: Yes. This single point-of-failure can be avoided by employing a redundant ICX-UDS Gateway with the built-in IP-takeover function for LAN deployments or DNS-switch over for WAN deployments. |
Q: What are the architectural advantages of ICX-UDS solution? |
A: ICX-UDS is situated in the strategically important network path of database services. It exerts its control from that location, similar to a firewall or content management network switch.
On the surface ICX-UDS will increase transaction processing latency. However, it compensates the performance loss by massive performance gains via distributing read-only queries to multiple synchronously replication database engines. Further, this is the only transaction replication system that does not drain primary server's power for replication.
Theoretically, this is also the ONLY universal database replication architecture that can eliminate all single-point-of-failures without altering user API (Application programming interface).
Moreover, this truly shared-nothing architecture with full redundancy is capable of delivering extreme fail over performance that was only possible by proprietary fully redundant fault tolerant hardware systems -- fully redundant synchronous concurrent processes.
All these result in the most scalable multi-processor architecture -- need more power, add more server.
One way to see the asynchronous serial replication (log shipping and others) problem is to try to rebuild the replication queue without interrupting service. A careful look into this reveals a critical dependency -- the "known good point" between the primary and the backup servers. For asynchronous methods, without this point, all primary log contents are meaningless. The nature of asynchronous replication methods mandate the waiting for the complete building of the backup server to the "known good point" or void all saved log contents on the primary. The parallel synchronous replication architecture eliminates this problem entirely (see www.pcticorp.com/onlinebook/3.1 for details).
|
Q: Why can't simple hard disk mirroring be used for database replication?
|
| A: Hard disk mirroring can replicate data changes on hard disks at the file system level in the operating system. The replicated database file is not useable for service until it is "attached" to a database server. Therefore it is impossible to use the backup dataset for load balancing at all.
Disk mirror systems also have a detrimental weakness: if the primary disk is corrupted due to a server crash, hard disk mirroring systems will automatically replicate the corrupted data to the backup servers -- resulting in unnecessary losses. In fact, all replication systems working on database file level have the same problem.
|
Q: What about the transaction log replication systems? |
| A: Transaction log replication is asynchronous serial replication.Like all asynchronous replication systems, transaction logs (actual data changes) is strictly serial. Two issues arise: a) potential transaction loss when the primary fails (before the log is replicated); b) replication queue overflow problem.
Saved journal files can be used to manually recover some lost transactions after a primary crash. Time dependent transactions, such as bidding results, are not recoverable. More seriously, there is no simple way to rebuild the replication queue without shutting down service. This is because correct replication depends on the fact that both servers holds exactly the same data after all queued logs are applied and before the new transaction begins. |
Q: How does ICX-UDS solve the data corruption problem? |
| A: Unlike asynchronous methods, ICX-UDS creates multiple copies of datasets at the same time. Whenever the servers return inconsistent results for the same query, only the servers with consistent result when compared with the primary will be allowed to proceed. The others must be re-synchronized to correct the potential data inconsistency (and corruption) problems. Due to the parallel processing of multiple independent servers, re-building a group of servers costs approximately the same downtime as re-building a single server: 3 seconds network quiet time, independent of dataset sizes (see www.pcticorp.com/onlinebook/3.1 for details). |
Q: What database servers can ICX-UDS support now? |
| A: Standard or Enterprise versions of Microsoft SQL Server v7.0 and SQL Server 2000. |
Q: How many database servers can I cluster for each ICX-UDS Gateway? |
| A: The answer depends on the hardware configuration of the ICX-UDS gateway and your update intensity. Using an old 32-bit PC server motherboard with 100MHZ bus, we have tested up to 8 database servers without seeing a performance degradation. The key is in the deliverable front-end-bus and the processor speeds in comparison to network interface speeds. With multiple gigabit NIC (Network Interface Cards), you can easily boost the network speed to be comparable to the motherboard. With newer server hardware and gigabit NICs, we can replicate up to 16 servers with moderate update intensity. |
Q: How many users can I connect to each ICX-UDS Gateway? |
| A: It depends on the license. The basic connection license allows 100 simultaneous client (TCP/IP) connections. You can always upgrade to higher numbers later at a cost. |
Q: How many Network Interface Cards (NICs) should each ICX Gateway have? |
| A: Multiple NICs can be used to improve network performance by distributing the communication loads and leveraging the fast internal data bus. A typical 32-bit PC motherboard with 100MHZ front-side-bus can support up to 8 NICs running Microsoft Windows 2000 Server(r) Standard Edition.
It is a good idea to separate the client traffic from the server traffic by giving them separate NICs. You can speedup operations by giving one NIC to each clustered SQL Server. You can also further distribute the client traffic onto multiple NICs. |
Q: Can ICX Gateway protect non-database files? |
| A: No, unless you insert data in the file into the database in a logical manner. |
Q: Why do I have to use TCP/IP protocol to access the database? |
| A: TCP/IP is the most widely used communication protocol that can travel long distance without data loss. It has also been tested as the fastest protocol amongst all other supported database access protocols. |
Q: What are the requirements for the member database servers "behind" an ICX Gateway? |
| A: All SQL Servers in the same cluster should run the SAME SQL Server version and with the same service packs installed.
The hardware configuration may vary amongst servers. This variation will come with a cost -- since your update performance is determined by the slowest server in the cluster. Therefore, unless your updates are very light, the hardware configurations should be very similar.
ICX-UDS will work even if the servers are of different configuration. If your application contains mostly read queries and infrequent updates, then the use of diversified hardware is permissible and encouraged. |
Q: How does the resync function work? |
| A: ICX-UDS has a built-in automatic dataset resynchronization function. This function allows true non-stop service by allowing any subset of database servers to be upgraded, repaired, rebuilt or added without shutting down the service.
There are two resync utilities: Delta Resync Tool (DRT) and Power Resync Tool (PRT).
DRT takes advantage of ICX-UDS' strategic position on the network to save a transaction log difference (delta) while some servers are out of sync. This log can be re-applied at a later time to re-synchronize the servers for service.
PRT is activated via ICX-UDS Control Center. It can be configured to: a) re-synchronize out-of-sync database servers; and b) generate backup scripts to help reduce future resync time for remote servers via slow networks. PRT uses SQL Server's native backup and restore functions coordinated by PCTI's proprietary resync algorithm to provide a true seamless resync process without interrupting production cluster. (see http://www.pcticorp.com/onlinebook, follow Administration, Non-Stop Server Resynchronization).
Since ICX-UDS replicates at the SQL Server level, if you are an ISP or ASP, this feature will save you hours of log shipping work for the multiple databases hosted on your server. |
Q: Does ICX-UDS support any network technologies other than Ethernet/Fast Ethernet? |
| A: Yes. We provide consulting service to our customers for various networking technologies including FDDI, ATM, wireless and Gigabit Ethernet. Please contact us for details. |
Q: How does ICX-UDS handle Stored Procedures? |
| A: Stored procedures are saved on servers. ICX-UDS can only "see" their invocation but not the details inside of the stored procedures.
An ICX-UDS replication gateway allows the user to set default serialization method for each critical database operation, such as select, insert, delete, update and stored procedure. If the stored procedure(s) can update data, setting it to use exclusive locks will provide data consistency. Otherwise, using shared lock will improve performance.
If the application uses stored procedures to update database and if it is possible for multiple stored procedures update multiple dependent tables concurrently, then in the current releases (v.3.1), it is necessary to manually insert the concurrent dependencies via the Critical Information dialog interface. This interface will generate two files: Critical1.ini and Critical2.ini. These two files record the concurrent dependencies between stored procedures and updated tables, ICX-UDS can use this information to maintain data consistency even for the most complex dependencies. See http://www.pcticorp.com/onlinebook/3.1 for details.
Finally, if the application demands very high performance using data altering stored procedures, then the use ICX-UDS embedded control statements should be used to minimize the serialization overhead delivering the best possible performance. |