I'm excited to announce Multi-Dimensional Scaling.

We've reimagined and redefined the way enterprises scale a distributed database with Multi-Dimensional Scaling. It's the option to separate, isolate, and scale individual database services – query, index, and data – to improve performance and resource utilization.

Distribute Data, not Query Execution and Indexes

Multi-Dimensional Scaling enables us to distribute data without distributing query execution and indexes. A query will complete faster when it't not executed on every node, and an index will be searched faster when it’s not stored on every node.

Optimize Hardware for the Service, not the Database

Multi-Dimensional Scaling enables us to support multiple hardware profiles by running different services on different nodes. As a result, every single node doesn't require the fastest processor, the fastest solid state drive, and the most memory.

While query nodes require a faster processor, index and data nodes do not.

While index ndoes require a faster solid state drive, query nodes do not.

While data nodes require more memory, query and index nodes do not.

Eliminate Resource Contention

Multi-Dimensional Scaling enables us to eliminate resource contention by running different services on different nodes. When queries are executed on separate nodes, there’s no CPU contention between queries and reads or writes. When indexes are stored on dedi nodes, there’s no disk IO contention between indexes and reads or writes.

Multi-Dimensional Scaling improves performance by:

Storing data and indexes on separate nodes – no disk IO contention

Storing data and executing queries on separate nodes – no CPU contention

Executing a query without distributing it to every node – no network overhead

Storing an index without distributing it to every node – no network overhead

Multi-Dimensional Scaling improves resource utilization by:

Configuring query service nodes with fast processors, no SSDs, and less memory

Configuring index service nodes with fast SSDs and less memory.

Configuring data service nodes with more memory and an HDD or SSD.

Concepts

Elastic Services enable independent scaling of the data, index, and query services. The data service can be scaled without scaling the query or index services.

Service Optimization allows the hardware for a node to be optimized based on the service it’s running. After all, the hardware requirements for the query, index, and data services are different.

Service Isolation ensures the query, index, and data services do not suffer from resource contention. It isolates query, index, and data services to prevent queries and indexes from slowing down reads and writes.

Flexible Deployment enables administrators to decide whether or not to leverage Multi-Dimensional Scaling. When a node is added, administrators can enable all of the services, some of the services, or just one of the services.

Learn more about Multi-Dimensional Scaling and find out what's coming in Couchbase Server 4.0 here.

Discuss on Hacker News