Is there a lightweight, embeddable, key/value database? (something like diet couchdb) [closed]
Asked Answered
G

6

15

I was wondering if there was a lightweight, embeddable, key/value database out there.

Something like a lightweight Couchdb (RESTful, key/value, etc) where you just send it the key and it responds with appropriate values.

Thanks!

Goosefish answered 21/7, 2009 at 21:7 Comment(2)
I'm confused.... RESTful and embeddable?Hoekstra
Is 'portable application' implied in the specification?Uri
N
6

On the Related Projects page of the CouchDB wiki, under "Alternatives" they mention some similar projects:

  • Feather DB* CouchDB clone in java.
  • StrokeDB* A CouchDB-like database written in Ruby to make embedding into Ruby apps easier.
  • mongoDB A high-performance, open source, schema-free document-oriented database.

And of course Tokyo Cabinet which has already been mentioned.

There's also neo4j which is a "graph database" for java.

Of course, part of the power of CouchDB and some of the others is not just being able to store key/value pairs, but the high capacity, replication, and in particular views, which are basically the way of running queries over your documents.

If you just needed a simple key/value datastore that you can embed into your program, that doesn't have to hold gigs of data, the venerable GDBM might suit your needs.

A little hard to answer without knowing a bit more about your needs (programming language, concurrency requirements, data volumes and such).

* Web site does not appear to be working at the time of this writing.

Nocturnal answered 22/7, 2009 at 8:23 Comment(0)
C
5

Would TinyCDB be suitable?

http://www.corpit.ru/mjt/tinycdb.html

Introduction

TinyCDB is a very fast and simple package for creating and reading constant data bases, a data structure introduced by Dan J. Bernstein in his cdb package. It may be used to speed up searches in a sequence of (key,value) pairs with very big number of records. Example usage is indexing a big list of users - where a search will require linear reading of a large /etc/passwd file, and for many other tasks. It's usage/API is similar to ones found in BerkeleyDB, gdbm and traditional *nix dbm/ndbm libraries, and is compatible in great extent to cdb-0.75 package by Dan Bernstein.

CDB is a constant database, that is, it cannot be updated at a runtime, only rebuilt. Rebuilding is atomic operation and is very fast - much faster than of many other similar packages. Once created, CDB may be queried, and a query takes very little time to complete.

Carrizales answered 21/7, 2009 at 21:33 Comment(3)
Didn't know about TinyCDB, but I would kill for a CDB clone that doesn't have the 4GB size restriction.Quixote
If you're keen, modify the source to remove the restriction.Carrizales
2.5 million records tonight on my MBP took 0.081s to find a random record with cdbget.Implode
T
4

Simple, embeddable key/value database ? That's pretty much BDB

Tallbot answered 28/7, 2009 at 14:53 Comment(0)
M
3

The OS filesystem is a lightweight key/value database. Keys are filenames and values are data in the files.

The word "embeddable" has an odd meaning if it's to be RESTful, so I don't really understand your requirements; but if all you need is storage and retrieval, why not use the FS?

Miff answered 22/7, 2009 at 11:30 Comment(1)
At no point did the OP say that he only needed storage and retrieval.Dorwin
F
1

For what platform? Tokyo Cabinet is a lightweight, embeddable, associative database engine for a variety of scripting environments (Java, Ruby, Perl, Lua, et al.)

Flatting answered 21/7, 2009 at 21:42 Comment(0)
B
1

Check out Perst -- it's licensed GPLv2 and/or proprietary depending on your needs. I've never used it but I hear that it's good. It's an application-embedded key-value store database under active development with ports to a number of popular frameworks and languages.

Bracket answered 11/8, 2010 at 0:0 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.