A cluster is a collection of commodity components to provide scalability and availability at a low cost. With this in mind, it is possible to create a database cluster for high-end enterprise applications by storing and processing information on commodity nodes. The architecture for a clustered database is distinguished by how data responsibilities are shared among compute nodes.
In a shared-nothing architecture, the partitioning is such that each compute node owns a subset of the data. That is, a node will operate exclusively on a particular subset. Scalability of course depends on wise partitioning. The physical partitioning may be that a compute node places its data portion on its local disk, and that all nodes are connected via a high-speed network (such as Myrinet or InfiniBand). Such a scheme—which resembles a storage area network—reduces fault tolerance as a node crash makes a portion of the database inaccessible. Therefore, the physical partitioning may actually share the disks so that one node can “take over” in the event that another node crashes.
This architecture is by far the most popular; IBM DB2, Microsoft SQL Server, MySQL Cluster, and Bizgres MPP (based on PostgreSQL) all follow this scheme. The supposed downside of this setup is the difficulty in installation and maintenance.
In a shared-everything (or shared-disk) architecture, any compute node can operate on any portion of the database. The physical layout usually involves network-attached storage, in which all nodes communicate with a separate, shared disk (often a RAID) via a high-speed interconnect (traditionally Fibre Channel). Again the logical partitioning is key for scalability. The obvious downside to a shared-everything architecture is that there may be enormous contention when numerous nodes attempt to communicate with the disk simultaneously.
As such, the only major database vendor that offers a shared-everything architecture is Oracle, whose RAC (Real Application Cluster) product builds a shared cache on each of the computing nodes through “Cache Fusion.” This technology uses the high-speed network to maintain cache coherency.
Both architectures may require a three different interconnects: Ethernet for management, InfiniBand or Myrinet for internode communication, and Fibre Channel for block storage communication. Given the trends in commoditization, it is possible that iWARP or Myri-10G will emerge as the single interconnect for a clustered database.