

Ask HN: Anyone running a free app want to try a in-ram MySQL NDB server on me?   - lsc

Yeah, so there's a lot of talk about how MySQL is 'not enough'  both from the Oracle RAC people and the couchdb and other non-relational data stores.  Many of these people advocate going to things like SSD, which costs almost as much as ram, while others suggest SAN (which is often more expensive than ram, when you include the infrastructure costs, and the fact that most databases are relatively small.)<p>A few years back, when MySQL 5.0 was in late beta, I set up a MySQL ndb cluster to handle Dspam for a fairly large mailserver I was in charge of.  It seemed to work well, and was really fast.  I thought this would overrun the other database solutions with the ease of a man outrunning a small child.<p>In the intervening years, I've been less involved with databases.  I've only needed to touch them for accounting and other performance insensitive applications.<p>Anyhow, I find the problem interesting.   As far as I can tell, NDB is awesome, but I have nothing but synthetic benchmarks.  Real load is different.<p>anyone with real load willing to test that with me?  I can donate 3 CPUs and 9-17GiB ram to the project.  I would implement on my Xen-based VPS platform[1].  (I'd have the servers on separate power;  I can even put them on separate uplinks)<p>my motivation:  well, if I'm wrong, I want to know  so I quit giving people shit.  If I'm right, and NDB is the answer to MySQL performance problems, I'd like the publicity of saying so.<p>Also, if the MySQL NDB cluster is as good as I think it is, I'd like to sell it as a service.  It's a natural choice, as I'm already setup to host as much ram as possible at the lowest cost possible.<p>I'm looking for someone who currently has a database that is on a MySQL server with around 4GiB ram, that can't respond to queries in an acceptable timeframe, or perhaps someone who has multiple MySQL servers. If the queries are write-biased, even better (I suspect that regular mysql will do about as well as mysql cluster when it comes to reads, due to filesystem caches, until you start adding more nodes.)<p>If the experiment is successful, I can continue hosting  you for free.  The MySQL cluster hosting service will require credibility.<p>[1]http://prgmr.com/xen/
======
RobGR
I am very interested in your project and I hope you publish your results. I
don't have a suitable database project, unfortunately.

I have been experimenting with master-slave replication in MySQL. I am
interested in performance, but redundancy and high availability are more
important to me.

I have a question -- if you are doing high end RAM based MySQL servers, won't
running them in a virtual machine introduce other issues ? Shouldn't these be
standalone real computers ?

~~~
lsc
also, what's high-end about an in-ram database? It's all cheap commodity
parts; my cost for a full on 8 core box with 32GiB ram is well under $1500,
and around two amps of (American 120v) power. This is decidedly low-end, until
you get, you know, a few marketing guys and 3 vars in the mix and start paying
double for hardware put together by people who don't believe that ESD is a
problem.

~~~
RobGR
It's awesome that you can get servers like that for those prices these days.
One of my customers recently purchased a similarly configured PowerEdge.

What is high-end about the database is you are trying to get high-end
performance. Having all the data in RAM is the "close to the hardware" part of
getting that performance. Having multiple computers is the parallelism part of
that performance. Having virutualization sticks a software layer between MySQL
and the RAM, and if you have other VMs running on the hardware, then any
performance numbers will be dependent on what the other VMs are doing. Of
course, if you have all the NDB nodes running as VMs on the same machine, then
that will never be as fast as one NDB node running native on that same
machine.

If you are using the virtualization environment as a way to partition
customers, consider that MySQL already does this well. A web hosting shop can
have a singkle MySQL server and give each customers a database or databases
and a user / pass to access only their own stuff.

