Explain the shared nothing architecture.
A shared-nothing parallel machine is made up of a cluster of single-processor machines that communicate over a high-speed network interconnect. There is no way for a given processor to directly access the memory or disk of another processor. It is mostly used at the extreme high end, typically for decision-support applications on data warehouses. Shared nothing systems provide no hardware sharing abstractions, leaving coordination of the various machines entirely in the hands of the DBMS. In these systems, each machine runs its own Server Process, but allows an individual query’s execution to be parallelized across multiple machines. The basic architecture of these systems is to use horizontal data partitioning to allow each processor to execute independently of the others.
Each tuple in the database is assigned to an individual machine, and hence each table is sliced “horizontally” and spread across the machines. Each individual machine is responsible for the access, locking and logging of the data on its local disks. During query execution, the query planner chooses how to horizontally re-partition tables across the machines to satisfy the query, assigning each machine a logical partition of the work.In a shared-memory system, the failure of a processor typically results in a hardware shutdown of the entire parallel computing machine. In a shared-nothing system, the failure of a single node will not necessarily affect other nodes, but will certainly affect the overall behavior of the DBMS, since the failed node hosts some fraction of the data in the database.
