HIGH THROUGHPUT ON CONCURRENT WORKLOADS
MemSQL is designed to enable high throughput on concurrent workloads. A distributed query optimizer evenly divides the processing workload to maximize the efficiency of CPU usage. Queries are compiled to machine code and cached to expedite subsequent executions. Rather than cache the results of the query, MemSQL caches a compiled query plan to provide the most efficient execution path. The compiled query plan does not pre-specify values for the parameters, which allows MemSQL to substitute the values upon request, enabling subsequent queries of the same structure to run quickly, even with different parameter values. Moreover, due to MemSQL’s use of MVCC and lock-free data structures, data remains highly accessible, even amidst a high volume of concurrent reads and writes.
HIGHLY-SCALABLE DEPLOYMENTS
MemSQL is designed to be highly scalable. The cluster can be scaled out at any time to provide increased storage capacity and processing power. Sharding is done automatically, and the cluster re-balances data and workload distribution. Because the data is stored in memory, queries run at full speed on clusters built from commodity hardware. In addition to being fast, consistent, and scalable, MemSQL is also durable. Data is replicated across shards, and a node can go down with negligible effect on performance. Also, leaf nodes regularly commit transactions to disk as logs. Periodically, full backups are committed as compressed snapshots of the entire database. If any node goes down, it can restart using one of these snapshots.
|