Multi-Dimensional Scaling Introduction

Couchbase Multi-Dimensional Scaling is breakthrough database technology that substantially increases application performance and dramatically reduces cost. Multi-Dimensional Scaling achieves these gains with the option to separate, isolate, and scale individual database services - query, index and data – allowing you to support more than one hardware profile so the resources can be optimized for a single service. The result is that you can run complex queries, create unlimited indexes, and continue to scale data across many nodes without worrying about performance suffering.

 

Other databases, such as MongoDB, Oracle, and Cassandra, have a limiting one size fits all approach to scaling that forces you to run every database service on every node. This approach leads to resource contention, slower performance, limited query capabilities, and overprovisioning. Couchbase Server 4.0 with Multi-dimensional Scaling removes all of these limitations, resulting in greater performance, at greater scale, all at a lower cost.

 

 

Why is Multi-dimensional Scaling Necessary?

 

While scaling a distributed architecture is great for data, it is a challenge for indexes and queries.

Simply put, scaling data speeds up reads and writes but it slows down queries, and while creating indexes speeds up queries it slows down writes. For example, if you scale out your database to support a massive amount of data, your query performance will suffer dramatically because the more nodes participating in a distributed query, the worse it performs. And creating many indexes to improve query performance will negatively impact write performance because writes do not complete until all indexes have been updated. The bottom line is that scaling out, with every database service running on every node, can result in a big drop in efficiency and performance.

 

 

How do Database Services Benefit from Isolation?

 

Queries require fast processors

If a query can be executed by a single node, or many queries by many nodes, the results will be returned faster, and it will not slow down reads and writes by monopolizing CPU time.

Indexes require high performance SSDs

If an index can be stored on a single node, or many indexes on many nodes, it can be searched faster, and it will not slow down writes by monopolizing disk IO.

Data is the whole reason for a distributed database

The more nodes you have, the more data you can store. These nodes benefit from increased memory but require less from the CPU and disk. When data is isolated from queries and indexes, read and write performance not only improves, it remains consistent.

Isolation Benefits

Query

Index

Data

Resource Optimization

Processing

Storage Memory
Isolation Benefits

Queries are faster.

Queries do not slow down reads or writes.


Scaling the query service does not force data to be rebalanced.

No CPU contention with the index and data services.



Indexes are searched faster.

Indexes do not slow down writes.


Scaling the index service does not force data to be rebalanced.

No disk IO contention with the data service.

No limit to the number of indexes.

 

Reads and writes are faster.

Scaling data does not slow down queries or index searches.

Scaling the data service does not force indexes to be rebalanced.

No resource contention with the query and index services.

 

Hardware Requirements

Fast Processor

Less Memory

HDD

Basic Processor

Less Memory

SSD

Basic Processor

More Memory

HDD or SSD

How does Multi-Dimensional Scaling Work

Multi-dimensional Scaling allows you to separate and isolate database services - querying, indexing, and data - so you can scale and optimize the resources for each one based on its own individual workload.

– Your queries and indexes will perform better as they are no longer require every node.  
– Your entire application will perform better as reads, writes, and queries will no longer compete for shared resources.
– Your hardware costs will decrease as you can apply bigger servers for queries and indexes, and smaller servers for data.

The Benefits are Impactful and Immediate.

Technical Benefit

- Improved Application Performance

- Improved Application Stability

- Improved Resource Utilization

- Improved Operational Efficiency

Business Benefit

- Better Customer Experience

- Consistent Customer Experience

- Lower Hardware Costs

- Reduced Administrative Overhead