innodb: All content tagged as innodb in NoSQL databases and polyglot persistence
Wednesday, 6 July 2011
Riak Getting LevelDB as Storage Engine
After Innostore and Bitcask, Basho guys are currently experimenting with integrating Google’s LevelDB as a storage engine for Riak. Preliminary results are looking promising:
For most Riak users, Bitcask is the obvious right storage engine to use. It provides low latency, solid predictability, is robust in the face of crashes, and is friendly from a filesystem backup point of view. However, it has one notable limitation: total RAM use depends linearly (though via a small constant) on the total number of objects stored. For this reason, Riak users that need to store billions of entries per machine sometimes use Innostore (our wrapper around embedded InnoDB) as their storage engine instead. InnoDB is a robust and well-known storage engine, and uses a more traditional design than Bitcask which allows it to tolerate a higher maximum number of items stored on a given host.
It appears that LevelDB may become a preferred choice for Riak users whose data set has massive numbers of keys and therefore is a poor match with Bitcask’s model. Performance aside, it compares favorably to InnoDB on other issues such as permissive license and operational usability.
Original title and link: Riak Getting LevelDB as Storage Engine (©myNoSQL)
Friday, 5 November 2010
Oracle Drops InnoDB from MySQL Classical Edition, But Not From Community Edition
I have heard many mentioning that Oracle removed InnoDB from the MySQL classical edition version. Now, I don’t know too much about the various versions and licenses of MySQL — it looks like there are at least 5: enterprise, classical, standard, cluster carrier grade, and community — but InnoDB doesn’t seem to have been dropped from the community edition too. So, I’m not really sure this is such a big deal.[1]
What are your thoughts on this story?
Update: Basho, creator of Riak that offers a pluggable storage engine based on InnoDB, ☞ clarifies the status of InnoDB:
InnoDB is available under the GPL. Innostore, as a derivative work of Embedded InnoDB, is also available under the GPL. Neither Oracle nor Basho can take that away from you.
- If everyone would actually be forced to go back at using MyISAM, that would be a bit more interesting as it would mean MySQL will be less durable and consistent. (↩)
Original title and link: Oracle Drops InnoDB from MySQL Classical Edition, But Not From Community Edition (NoSQL databases © myNoSQL)
Tuesday, 15 June 2010
Details About Riak Innostore and Bitcask Backends
With the recent release 0.11.0 Riak switched the default backend storage from using embedded Innostore to Bitcask.
Andy Gross and johne had a very interesting conversation about the differences between Innostore and Bitcask Riak backend stores:
innostore currently creates a file per bucket/partition combo but all other backends use one file per partition unless you really want innostore, we recommend you use bitcask one other thing with buckets: buckets dont consume any resources as long as they use the bucket defaults - either the stock riak defaults or ones you set in your app.config buckets that change some of those defaults take up a small amount of space in the ring data structure that’s gossiped around
Details About Riak Innostore and Bitcask Backends originally posted on the NoSQL blog: myNoSQL
Wednesday, 24 February 2010
NoSQL and RDBMS: Learn from Others’ Experience
I firstly thought that Innostore[1], the embedded InnoDB from Basho, is just another cool project they’ve made available to the community. It was only after a couple of days that I realized that Innostore is in fact one option for the pluggable Riak backend storage engines. That definitely made me think more about this decision.
Luckily enough, David Smith from Basho has already took the time to explain ☞ the reasons that brought Riak to use InnoDB as one of its storage engines:
1. predictability and 2. stability. […] we need something that is going to have predictable latency under significant loads. After evaluating TokyoCabinent (TC), BerkeleyDB-C (BDB) and Embedded Inno, it was quite clear that Inno won this aspect hands down.
You’ll notice pretty much the same arguments in this post about ☞ MySQL usage at Flickr:
- it is a very well known component. When you’re scaling a complex app everything that can go wrong, will. Anything which cuts down on your debugging time is gold. All of MySQL’s flags and stats can be a bit overwhelming at times, but they’ve accumulated over time to solve real problems.
- it’s pretty darn fast and stable. Speed is usually one of the key appeals of the new NoSQL architectures, but MySQL isn’t exactly slow (if you’re doing it right). I’ve seen two large, commercial “NoSQL” services flounder, stall and eventually get rewritten on top of MySQL. (and you’ve used services backed by both of them)
As a side note, that last sentence reminded me of the migration Hashrocket team has completed for a pharma company.
Last, but not least, you can also take a look at this ☞ Yahoo! benchmark that includes MySQL and, if I’m not misinterpreting those results, you’ll notice that for some of them MySQL performed quite well.
I guess what we can learn from all these is:
- not all traditional storage engines are as bad as we sometimes want to think of them
- it is probably the complete feature set of the RDBMS that are making them overkill for some projects
- there are still a lot of scenarios in which an RDBMS makes sense
Strange post for a NoSQL centric blog, isn’t it?
References
- [1] About Innostore (↩):