A storage node (SN) is typically a physical machine with its own local persistent storage, either disk or solid state, a CPU with one or more cores, memory, and an IP address. A NoSQL Database system with more storage nodes will provide greater aggregate throughput and storage capacity than one with fewer nodes. Although virtual machines can be used for storage nodes, performance and latency predictability can be adversely affected when external events and processes affect the resources that are available to the VM. In a nutshell, performance becomes less predictable than on systems using physical machines for storage nodes.
A Storage Node Agent (SNA) runs on each storage node, monitoring that node’s behavior. The SNA both receives configuration from and reports monitoring information to the Administration Service, which interfaces to the Oracle NoSQL Database monitoring dashboard.
A storage node serves one or more replication nodes. Each replication node belongs to a single replication group. The nodes in a single replication group all serve the same data, which contains a subset of the overall key-space data based on the hashed major key. A typical installation uses a replication factor of three in the replication groups, to ensure that the system can survive at least two simultaneous node failures within the same replication group and still continue to service read operations.
Oracle NoSQL Database uses replication to ensure data availability in the case of failure. Its single-master architecture requires that writes are applied at the master node and then propagated to the replicas. In the case of failure of the master node, the nodes in a replication group automatically hold a reliable election (using the Paxos protocol), electing electing one of the remaining nodes to be the master. The new master then assumes write responsibility.