Engineering

The Write Stuff

Tell me if this sounds familiar. Once upon a time a company ran its operations on The Database Server, a single machine that talked SQL. It was tricked out with fast hard drives and cool blue lights. As the business grew it became harder for The Database to keep up. So they bought an identical server as a hot spare and set up replication, at first only for backups and failover. That machine was too tempting to leave sitting idle, of course. The business analysts asked for access so they could...


How MemSQL Distributes Data

The world is moving toward highly-parallel, distributed systems up and down the stack. It started with the app servers on the front lines. Now it’s happening at the data layer. This is generally a good thing, but these kinds of systems can sometimes feel like a foreign country. In this article we’ll talk about how MemSQL spreads the work around a cluster of servers without sacrificing ease of use. There are two kinds of machines in a MemSQL cluster: aggregators and leaves. The same...


The Size & Shape of Your Tables

If you ever catch yourself doing mental arithmetic, or writing complex queries while trying to debug a capacity or performance problem, it’s a sign that your database is missing a feature. The information you need may exist, but it’s scattered. One of the most frequent feature requests from our users was more detailed statistics about memory use. In the current version of MemSQL tables are stored in memory (hence the name), so memory management and storage capacity planning are essentially...


MemSQL Tip Tuesday: How to Use the MemSQL Cluster Installer

Whether installing MemSQL on premises or in the cloud, the Cluster Installer is a fast way to get started. The Cluster Installer is a simple command line tool that installs and configures an entire MemSQL Cluster to your specifications. Watch this short instructional video to see how easy it is. There are several advantages to using the Cluster Installer. It is faster and more error-proof than installing manually. Then, once you’ve installed MemSQL with the Cluster Installer, making...


Through a Table, Sparsely

Take a look at your database. What do you see? An alphabetic list of table names. Is that really the most important thing to know? Surely, other facts about your database are more interesting. Maybe you want to know how big the tables are. Database table sizes, like mountain heights and city populations and book sales, tend to follow a pattern casually called a power-law distribution. A minority of tables hold the majority of data. The rest are a long tail of necessary but small things, a kind...


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...


Notes on Sizing a MemSQL Cluster

One of the most valuable features a distributed system can have is predictability. When a system is predictable, you can reason about how it will respond to changes in workload. You can run small-scale experiments, and trust that the results will scale linearly. It’s much more pleasant and efficient to tailor the hardware to the task than the other way around. No one likes to waste money on more compute than you need because your RAM is full, or be unable to use the full power of your systems...


MemSQL 2.5 Ships Today with JSON Datatype, Online Alter Table, and More

We are excited to announce that MemSQL 2.5 is now available for download.  Of the many new features and performance improvements, one of the most exciting is support for JSON analytics. With native support for the JSON datatype, MemSQL delivers a consolidated view across structured and semi-structured data in real-time. Using MemSQL 2.5, developers can use SQL to easily analyze JSON objects while quickly ingesting JSON data feeds. In addition, MemSQL 2.5 ships with support for ONLINE ALTER...


Celebrating the MemSQL start[c]up Finals

This weekend MemSQL challenged some of the world’s best computer programmers in the finals of the inaugural MemSQL start[c]up competition. Similar to computer programming competitions held by Google and Facebook, MemSQL’s start[c]up showcased the best from around the world in a grueling 3 hour competition. [slideshow_deploy id=’664′] MemSQL Engineers pieguy, nika, exod40, SkidanovAlex and dolphinigle created a complex problem set for contestants. Made up...


Google's Code Jam World Finals - Two Senior MemSQL Engineers Make Top 25

MemSQL is proud to announce that David Stolp (Pieguy) and Nika Jimsheleishvili (nika) are on their way to Google’s London office to compete in the 2013 Code Jam World Finals. Pieguy and Nika will compete in the final competition this August for a chance to win $15,000 and the prestigious title of 2013 Code Jam Champion. To qualify for the chance to become Code Jam Champion, Pieguy and Nika have competed in four online qualifying competitions and finished in the top 25 out of more than...