Engineering

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


Announcing start[c]up

MemSQL is excited to announce start[c]up – a programming competition, hosted by Codeforces with an onsite at MemSQL HQ in San Francisco, California. Start[c]up consists of two rounds. Both rounds will be prepared by MemSQL engineers: pieguy, nika,exod40, SkidanovAlex and dolphinigle. Round 1 is online and takes place on July 13. Round 1 follows regular Codeforces rules and consists of 5 problems. For this round, the complexity of the problems will be comparable to a regular Codeforces...


Practical Techniques to Achieve Quality in Large Software Projects

High quality is hard to achieve and very expensive, but it’s worth every penny and must be taken extremely seriously. There is no silver bullet – just lines of defense. The good news is with the proper lines of defense, quality becomes incremental. It only goes up with every release. With enough test coverage and quality tools you can substantially increase the quality of your product and protect it from regressions. When you embark upon a large software project you need to figure out...


Common Pitfalls in Writing Lock-Free Algorithms

Formally, a multi-threaded algorithm is considered to be lock-free if there is an upper bound on the total number of steps it must perform between successive completions of operations. The statement is simple, but its implications are deep – at every stage, a lock-free algorithm guarantees forward progress in some finite number of operations. Deadlock is impossible. The promise of a lock-free algorithm seems remarkable in theory. Concurrent threads can modify the same object, and even if...


Where Should TopCoders Work. One Year Later.

A little over a year ago we published a blog post “Where Should Top Coders Work?”. In a few weeks we were approached by topcoder.com and offered to sponsor TopCoder Open. We hired two amazing folks after that event, and two more joined as interns. With a handful of red TopCoders working on the engine, we’ve had a great relationship with the TopCoder community. When I published the original blog post, I had absolute faith into the TopCoder brand, but we had nothing to really back it up....


MemSQL: My First *Real* Startup Experience

This is reposted from Momchil Tomov’s blog. Momchil was part of the first summer batch of MemSQL Interns. After seemingly stumbling into their office by accident, getting interviewed on a lark, and receiving an offer as my Christmas gift, I kept an open mind for what to expect from MemSQL. The one-year-old YC alum was set to build the world’s fastest database, leaving competitors like MySQL and MongoDB in the dust. Very ambitious indeed. From day one, I was thrown in the fire pit....