My exposure to NoSQL or NewSQL/NeoSQL database servers is extremely limited, only theoretical. I've worked with traditional RDBMSs (like MySQL, Postgres) and directory-server (OpenLDAP), with and without replication.
My application stack is based on JBoss, and I've been tasked with setting up a minimal demo (with our application) that can demonstrate durability and high-availability of data, in VoltDB. Performance testing, is not an objective at all.
Have been going thru the VoltDB Planning Guide, but I am confused between the "+1" or "x2" in terms of number of servers (or VoltDB instances) required. Especially given these 2 statements:-
The easiest way to size hardware for a K-Safe cluster is to size the initial instance of the database, based on projected throughput and capacity, then multiply the number of servers by the number of replicas you desire (that is, the K-Safety value plus one).
Rule of Thumb
When using K-Safety, configure the number of cluster nodes as a whole multiple of the number of copies of the database (that is, K+1)
Questions:
- Now, let's say that I need 1 server given capacity/throughput requirements. So, to be able to have durability and high-availability, do I need: 2, 3 or 4 servers ?
- OTOH, using just 1 server, what all key features of VoltDB would I have to forgo ?
- Is there any relationship (or conflict) between VoltDB's full disk-persistence and snapshots ? Say, the availability of disk-persistence removes the need for snapshots ?