MemSQL 2.0 Release Notes

Distributed

MemSQL 2.0 enables running MemSQL as a distributed system. A distributed deployment enables you to massively parallelize workloads across several machines in a cluster. MemSQL ships with both high availability and cluster management features to help you manage and monitor the cluster with simple SQL commands.

MemSQL Watch

MemSQL 2.0 ships with MemSQL Watch, an operational dashboard that gives you a real-time bird’s-eye view over the distributed system.

MemSQL Watch continuously collects both MemSQL and system (via collectd) statistics and exposes them through a unified view with a web interface. MemSQL Watch scales with your cluster by storing time-series data in MemSQL single-box and leveraging MemSQL’s powerful analytical capabilities to let you explore your system’s health in real-time.

Engine Improvements

Query optimizer. MemSQL 2.0 introduces a join-aware, cost-based optimizer:

  • Intelligent join order selection.
  • Index selection for single table queries based on the query predicate and table statistics.
  • Various query transformations to produce better query plans.

Synchronous replication. In addition to asynchronous replication (introduced in MemSQL 1.8), MemSQL now supports synchronous replication.

  • With synchronous replication , write queries against a database are not acknowledged until they are replicated to every synchronous MemSQL slave.
  • MemSQL supports an arbitrary number of synchronous and asynchronous slaves.
  • MemSQL supports converting between synchronous and asynchronous replication via PAUSE REPLICATING and CONTINUE REPLICATING ... [SYNC | ASYNC].

Bidirectional iterators. MemSQL 2.0 supports efficiently iterating lock-free skiplists both forwards and backwards [1]. You no longer need to create both an ASC and DESC index to efficiently use a skiplist index in both directions.

Surface Area. MemSQL 2.0 introduces significant enhancements in SQL surface area including the following:

  • Support for several JOIN shapes that were previously locked out.
  • More builtin functions and SQL features like SQL_CALC_FOUND_ROWS.
  • Support for MemSQL show statements like SHOW PLANCACHE in INFORMATION_SCHEMA.

Miscellaneous bug fixes.

Upgrading from older versions of MemSQL

MemSQL 2.0 will not recover from older versions of MemSQL such as 1b, 1c, 1.8, or 1.9. To upgrade from older versions use mysqldump.

Use --all-databases to dump the contents of every database in the system or --databases to specify the ones you want to migrate. You can then pipe this file directly into an instance of MemSQL 2.0 with the mysql client program and resume your workload against the new instance.

[1]Patent pending.