In turn, these requirements are met through combinations of the four key techniques shown above. Figure 1 shows the relationships among the central goal of scalability, the requirements for manageability, availability, and performance, and the key features or techniques used in the system. For example, dynamic transaction scheduling, automatic reconfiguration, and functional homogeneity together make the system manageable, since changes to the number or quality of machines, users, and load are handled automatically. Similarly, dynamic scheduling and replication improve performance, because load can be distributed dynamically to less busy machines. Today, Porcupine runs on a cluster of thirty PCs connected by a high-speed network, although we show that it is designed to scale well beyond that.
Performance is linear with respect to the number of nodes in the cluster.
The system adapts automatically to changes in workload, node capacity, and node availability. Data is available despite the presence of a few or many failures.