Engineering

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


Excellent Post On MemSQL Architecture

http://highscalability.com/blog/2012/8/14/memsql-architecture-the-fast-mvcc-inmem-lockfree-codegen-and.html


Loading half a billion records in 40 minutes

Disclaimer. This will not be an apples to apples comparison with derwik, since we obviously don’t have the same dataset, and we need a much bigger machine to load everything into memory. But I believe this experiment will get the point across. So without further ado, let’s go through the steps. Adam Derewecki wrote a cool post about his experience loading half a billion records into MySQL. MemSQL is a MySQL-compatible drop-in replacement that is built from the ground up to run really fast...


Where Should Top Coders Work?

My career as a software engineer really began when I won a medal at the ACM ICPC programming contest in 2001. To place in the tournament, I had spent 24 hours traveling from Russia to Vancouver and back, just to spend 5 hours on the actual competition. The rules are simple: you have 5 hours to solve up to 12 problems. For each problem you need to implement a small program in Java or C++ and send it to the jury. They compile it and run it through an extremely intensive set of tests. Only if it...


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