Multidimensional Scaling (MDS)
Multidimensional Scaling (MDS) improves performance and throughput for mission-critical systems by enabling independent scaling of data, query and indexing workloads.
Historically scale-out and scale-up have been the scalability model for databases. Both models are useful, and Couchbase and other products take advantage of both models. However, there are unique ways to combine and mix these models in a single cluster to maximize throughput and latencies. With MDS, admins can achieve both the existing homogeneous scalability model and the new independent scalability model.
Homogenous Scaling ModelTo better understand the new multidimensional scaling model, it is beneficial to take a look at the current homogeneous scaling model.
In this model, your applications workload is distributed equally across a cluster made up of the homogeneous set of nodes. Each node that does the core processing takes a similar slice of the work and has the same HW resources.
- Components processing core data operations (inserts, updates, deletes), index maintenance or executing queries compete and interfere with each other.
- It is impossible to fine-tune each component because each of them has different demands on hardware resources. While the core data operations can benefit greatly from scale-out with smaller commodity nodes, many low latency queries do not always benefit from wider fan-out.
Independent Scaling ModelMDS is designed to minimize interference between services. When you separate the competing workloads into independent service and isolate the services in different zones, interference among them is minimized. The figure below demonstrates a deployment topology that can be achieved with MDS. In this topology, each service is deployed to an independent zone within the cluster.
Each service zone within a cluster (data, query, and index services) can now scale independently so that the best computational capacity is provided for each of them.
In the figure above, the green additions signify the direction of scaling for each service. In this case, query and index services scale up over the fewer sets of powerful nodes and data service scale out with an additional node.