Author: Adam Prout

Scaling Distributed Joins

Most users of SQL databases have a good understanding of the join algorithms single-box databases employ. They understand the trade-offs and uses for nested loop joins, merge joins, and hash joins. Distributed join algorithms, on the other hand, tend not to be as well understood. Distributed databases need to make a different set of tradeoffs to account for table data that is spread around a cluster of machines instead of stored on a single machine, like in a traditional database. Because these...


Making Painless Schema Changes

The ability to change a table’s schema without downtime in production is a critical feature of any database system. In spite of this, many traditional relational databases have poor support for it. Quick and easy schema changes was a key advantage of early distributed NoSQL systems, but of course, those systems jettison relational capabilities. Though conventional wisdom may indicate otherwise, easy schema changes are possible with the relational model. At MemSQL we put careful thought...


The Story Behind MemSQL’s Skiplist Indexes

The most popular data structure used for indexing in relational databases is the Btree (or its variant the B+tree).  Btrees rose to popularity because they do fewer disk I/O operations to run a lookup compared to other balanced trees.  To the best of my knowledge, MemSQL is the first commercial relational database in production today to use a skiplist as its primary index backing data structure.  A lot of research and prototyping went into the decision to use a skiplist.  I hope to provide...


Welcome to the MemSQL Developer Blog!

We’ve been hard at work building the world’s fastest database, and now that we’re shipping MemSQL, we’re looking forward to having a bit more time to blog about some of the fundamentals around the MemSQL technology. In the coming weeks, we’ll be publishing posts that cover an array of topics, including benchmarking, stress testing, database theories, algorithms, and more. In the mean time, we encourage you to download MemSQL and have some fun doing your own...