InnoDB faster than NoSQL solutions?
mysqldba.blogspot.com
mysqldba.blogspot.com
InnoDB is a great engine, but we need to know exactly what the benchmarking number means before we can start relying on it.
http://www.ramsan.com/products/2
Although in this context it would be cheating!
What is actually interesting, is that InnoDB actually has some optimizations around writing that NoSQL databases do not (configure multiple read/write threads - required for raid controllers and faster SSDs). So while the benchmark does show the absolute best case, it's not like everything else is a write off.
A B+Tree index (assuming hot spots) can usually scale quite well for out of memory fit. This is different for example, from a hash index which aims to have random distribution to each bucket.
(Disclaimer: I work for Percona, the company that releases Percona Server).
http://news.ycombinator.com/item?id=1886137
Original article: http://yoshinorimatsunobu.blogspot.com/2010/10/using-mysql-a...
Instead here I see tons of comments that are to the point, that show how we are evolving as the hackers community about the ability to understand tradeoffs with database systems. This is a huge win.
Also I bet the reverse is true, that the "magical features" about NoSQL systems to be fast, scalable, handling huge data sets, fault tolerant while distributed, everything at the same time, is hardly believed at this point.
It still has durability against partially written writes via InnoDB's double write buffer - so it's more ACID than most NoSQL solutions.
No benchmarks, no comparative NoSQL code, and the example is trivial. There's nothing interesting here.
Yes, nothing EXCEPT raw information, that you have to access yourself. Is only spoon-feeding "interesting"?
I, for one, didn't know about this alternative MySQL connection pipeline at all. Now, I know at least that it exists, how it works, etc. I can do the benchmarks myself, if I need to.
Having a dual angle of accessing the data could be very beneficial when it comes to reporting etc, while maintaining a high throughput access for the actual production code.
I believe there is a locking mechanism whereby the HandlerSocket interface holds its own lock for all its concurrent client, which it releases occasionally to allow MySQL to have access as well ('occasionally' in this case might be 'a hundred times a second' for all I know).
Note that this doesn't give you SQL or any of the benefits. For example, you can't do joins (but you could write them manually, since you get better throughput manually so the speed might outweigh the inefficiencies of multiple round-trips.
Another aspect where this solution will always lose under real load, is the speed loss due to locking and blocking. CouchDB for instance uses MVCC, which never blocks.
I see an encouraging trend in enhancing proven technology, instead of re-writing everything indiscriminately.