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.


Reply via email to