I want to like this product but I am skeptical as a result of endless streams of new database products promising the world and under-delivering.
How are we allowing horizontal scaling but ensuring transitionally consistent, write anytime records?
Also, I know MSSQL will use nearly all memory on a system to put the DB into memory. If it can't fit the entire DB it will use logic to put the most appropriate data into memory. This product seems entirely based around the not new idea of putting records into memory. What am I missing?
Hi Steve, this is Eric, one of the cofounders; to answer your question, it's about combining a few ideas together that make MemSQL a database that delivers on its promises. They are:
- Data resides in memory with lock-free data structures
- Full SQL, both operational and analytic
- Distributes on commodity hardware, distributed query optimizer
On its own, putting data in memory isn't enough. As you mentioned, MSSQL does it, as many other vendors. The gap though is that they are still single-box DBs. With a distributed database, not only do you get more storage, you also (and most importantly) get more compute power.
Once the data is in-memory, using SQL to manipulate it and query it is the way to go. But again, once you escape a single box, you have to build a distributed query optimizer, which is hard stuff to say the least.
Customers use MemSQL because they no longer need multi-million dollar Big Iron Appliances from the monolithic vendors. Customers want a cost-effective architecture that uses commodity web servers. We can prove the technology works by our customers who vouch for its efficacy.
And, since we launched the Community Edition, please feel free to take MemSQL for a spin and even use it however you'd like. It's unlimited in both scale and capacity and has all the SQL features in the enterprise edition.
3 comments
[ 18.3 ms ] story [ 1482 ms ] threadHow are we allowing horizontal scaling but ensuring transitionally consistent, write anytime records?
Also, I know MSSQL will use nearly all memory on a system to put the DB into memory. If it can't fit the entire DB it will use logic to put the most appropriate data into memory. This product seems entirely based around the not new idea of putting records into memory. What am I missing?
- Data resides in memory with lock-free data structures
- Full SQL, both operational and analytic
- Distributes on commodity hardware, distributed query optimizer
On its own, putting data in memory isn't enough. As you mentioned, MSSQL does it, as many other vendors. The gap though is that they are still single-box DBs. With a distributed database, not only do you get more storage, you also (and most importantly) get more compute power.
Once the data is in-memory, using SQL to manipulate it and query it is the way to go. But again, once you escape a single box, you have to build a distributed query optimizer, which is hard stuff to say the least.
Customers use MemSQL because they no longer need multi-million dollar Big Iron Appliances from the monolithic vendors. Customers want a cost-effective architecture that uses commodity web servers. We can prove the technology works by our customers who vouch for its efficacy.
And, since we launched the Community Edition, please feel free to take MemSQL for a spin and even use it however you'd like. It's unlimited in both scale and capacity and has all the SQL features in the enterprise edition.
Availability: Each client can always read and write.
Consistency: All clients always have the same view of the data.
Partition Tolerance: The system works well despite physical network partitions.
The saying goes: "Pick two." Are you implying that you can pick three with your system?
When you say 'Data resides in memory with lock-free data structures' I feel like the trade-off is consistency-- data becomes eventually consistent.
What are your thoughts?