*** Welcome to piglix ***

MemSQL

MemSQL
Memsql-logo-2016.png
Developer(s) MemSQL Inc.
Stable release
5.0 / March 30, 2016; 12 months ago (2016-03-30)
Written in C++
Operating system Linux
Type RDBMS
License Closed Source
Website www.memsql.com

MemSQL is a distributed, in-memory, SQL database management system. It is a relational database management system (RDBMS). It compiles Structured Query Language (SQL) into machine code, via termed code generation. On April 23, 2013, MemSQL launched its first generally available version of the database to the public.

MemSQL combines lock-free data structures and a just-in-time compilation (JIT) to process highly volatile workloads. More specifically, MemSQL implements lock-free hash tables and lock-free skip lists in memory for fast random access to data. SQL queries sent to the MemSQL server are converted into byte code and compiled through LLVM into machine code. Queries are then stripped of their parameters and the query template is stored as a shared object which is subsequently matched against incoming queries to the system. Executing pre-compiled query plans removes interpretation along hot code paths, providing highly efficient code paths that minimize the number of central processing unit (CPU) instructions required to process SQL statements.

MemSQL is wire-compatible with MySQL. This means that applications can connect to MemSQL through MySQL clients and drivers, as well as standard Open Database Connectivity (ODBC) and Java Database Connectivity (JDBC) connectors.

In addition to MySQL syntax and functionality, MemSQL can also store columns in JSON format, and supports Geospatial datatypes and operations.

MemSQL can store database tables either as rowstores or columnstores. The format used is determined by the user at DDL time (i.e. when the table is created). Data for all rowstore tables is stored completely in-memory, with snapshots and transaction logs persisted to disk. Data for all columnstore tables is stored on-disk, using a rowstore-like structure to handle incoming inserts into the columnstore.


...
Wikipedia

...