Today, apps have to meet tight requirements on availability and response times or risk loosing users. Also, running costs have to be kept at a minimum, at all times.
The database is a critical component in meeting those requirements, and on Microsoft Azure mishmash io provides autoscaling and high availability out of the box.
To ensure your apps continue to perform well even under heavy load mishmash io will grow the number of running nodes of its cluster automatically. When load goes down, so will the number of nodes in the mishmash io cluster.
A mishmash io cluster continuosly provides detailed metrics of its load, like
current CPU and memory usage, remaining disk capacity, number of client
connections and all the way up to some advanced metrics like how much
data locality
is achieved.
All these metrics can be used for customizing and fine-tuning the rules on when mishmash io will scale up or down, allowing you to always use the least resources for the best performance.
Even when you're hosting multiple apps' data in the same mishmash io cluster, and all those apps have very diverse load patterns and needs.
Preventing data loss, complete or temporary because of a faulty cluster node, also comes out of the box when running mishmash io on Microsoft Azure.
To prevent data loss a mishmash io cluster always stores multiple copies of each data chunk. In general, this allows for higher performance, but also ensures that even when a node in a cluster fails - there are others that can pick it up and continue serving requests (up to a configurable number of nodes).
In a similar way, a faulty node will stop accepting incoming data access requests, and these will be redirected to another, healthy node automatically. This also ensures that data is always accessible.
If, for example, a node fails because of a failed disk, or for some other reason that can't be recovered from - this node can be completely destroyed and erased. A new, fresh node can be brought in as a replacement. The mishmash io cluster will 'rebalance' itself so that this fresh new node takes its equal share and becomes a full-fledged member of the cluster.
When the time comes to upgrade your production mishmash io cluster - either to a
new software version or different CPU or memory specs, it will be performed in a
rolling
way - restarting individual nodes in steps, so that there are always
enough nodes to handle requests.
Unlike other databases, with mishmash io there's no downtime even during operations that require a restart.