On Apr 19, 2013, at 4:59 AM, Angelo Chen <[email protected]> wrote:
> Hi, > > What are the options for embedded database? I use redis and mongodb for now, > but sometimes you made some small apps, and does not want to mix data with > existing redis db or mongodb. it should be easier to install, now I'm looking > at nosql, https://npmjs.org/package/nosql, also ejdb, > https://npmjs.org/package/ejdb, but seems you can not have your own data file > for a individual app. sqllite is another, but it's not json based, any > suggestions? Thanks, > > Angelo Hey Angelo, I'm working on an a persistent key-value store in Node right now. It's called Medea, and it's currently 100% JavaScript. https://github.com/argo/medea It's pre-1.0 at this time, but I think the API is pretty stable. Julian Gruber maintains a benchmark of databases/libraries called from Node. You can find that here: https://github.com/juliangruber/multilevel-bench Medea (10.000x) 12,324 op/s ⨠ set small 12,313 op/s ⨠ set medium 12,248 op/s ⨠ set large 40,566 op/s ⨠ get large 44,246 op/s ⨠ get medium 45,174 op/s ⨠ get small levelUP (10.000x) 38,374 op/s ⨠ set small 33,019 op/s ⨠ set medium 23,348 op/s ⨠ set large 30,622 op/s ⨠ get large 36,191 op/s ⨠ get medium 38,326 op/s ⨠ get small This is using an earlier version of Medea. The "set" numbers for Medea are a lot better now than they were at that time, though I believe levelUP is still doing faster writes. LevelUP (and LevelDB) have a few differences. In Medea, a range query would have to be built from the calling code. You'd have to filter listKeys() and then iterate over those keys doing a get on each one. Medea keeps a copy of all keys and value file IDs/offsets in-memory (to make a maximum of 1 disk seek per get), so your key set has to fit in memory. It's working pretty good for me, and I know at least one other person who is using it for their project. Medea is pretty stable now, but I expect stability issues to be raised and squelched as we approach 1.0. That said, levelUP and LevelDB are great projects, and you can't go wrong with those options, either. Medea being all-JavaScript is a pro for me at this time. Cheers, -- Kevin Swiber @kevinswiber https://github.com/kevinswiber -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
