berkeley-db - tutorial - download berkeley db
Alternativa a BerkeleyDB? (9)
Estoy buscando una biblioteca tipo dbm que pueda usar en lugar de Berkeley DB, que estoy usando actualmente. Mi razón principal para cambiar es que las tarifas de licencia para BDB son bastante altas (gratis para las aplicaciones de código abierto, pero mi empleador no desea abrir esta aplicación en particular por varias razones).
Miré brevemente qdbm pero parece que no satisfará mis necesidades: muchas claves (varios millones) y elementos de datos grandes (> 1-5 megabytes). Antes de continuar con la búsqueda, pensé en preguntar porque parece que hay toneladas de bibliotecas tipo DBM.
Podrías mirar al Gabinete de Tokio . Es el sucesor de qdbm / gdbm, y si decide escalar tiene un buen front-end de red disponible.
Editar:
Otra variante es el gabinete de Kyoto ; desarrollado por la misma persona, pero supuestamente más fácil de usar.
Si está en Windows, puede usar el motor de la base de datos integrada. http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx
db4o es bastante barato y rápido, pero solo se puede usar con Java o .net
Firebird es tu mejor amigo.
SQLite es de dominio público, lo que significa que puede usarlo para cualquier propósito, y es ampliamente utilizado y compatible.
Postgres o HSQLDB y posible base de datos incluso H2
Puede obtener un rendimiento mucho mejor de cualquier dbm (incluso qdbm) y un paralelismo mejorado con un nivel de indirección simple: simplemente tome sus claves y data_dir/H(key)/
, y use data_dir/H(key)/
como la base de datos para almacenar esas claves. Limite la salida hash a un valor pequeño (digamos) 255 para obtener mejores resultados.
Este enfoque tiene una serie de beneficios, fácilmente resumidos:
- Conceptualmente simple
- Fácil de implementar y probar
- No bloquea la base de datos completa para actualizaciones
- Puede soportar bases de datos mucho más grandes
- Fácil de reemplazar el componente DBM
El hash probablemente ni siquiera necesite ser criptográficamente seguro; solo en su mayoría uniforme. El hash cdb de DJB funciona bien en la mayoría de los casos.
Podrías probar JDBM . Es un almacenamiento de clave-valor gratuito (Apache 2) con persistencia de disco. API simple y alto rendimiento
C / C ++
- http://sphia.org/ a Tienda clave / valor, escrita en C y con licencia BSD.
- https://code.google.com/p/leveldb/ Escrito en C ++, también BSD-Licensed
- http://luxio.sourceforge.net/ Escrito en C ++, LGPL, más rápido que Berkeley DB
- http://symas.com/mdb/ Escrito en C, la licencia es OpenLDAP Public License (BSD-Like)
- https://github.com/davidar/sdbm Escrito en C, Dominio público, Reimplementación de "ndbm"
- http://repetae.net/computer/vsdb/ Escrito en C, Licencia desconocida, Experimental
- https://github.com/stevedekorte/skipdb Escrito en C, con licencia BSD, tienda de valor-clave utilizando índices de lista de salto
- http://unqlite.org/ escrito en C / C ++, motor de base de datos NoSQL incorporado, BSD-Licensed, similar a SQLite.
- http://hamsterdb.com/ Escrito en C / C ++, motor de base de datos incrustado NoSQL, Apache License 2.0.
Java
- https://github.com/dain/leveldb Un puerto Java de LevelDB, Apache License 2.0
- https://github.com/jingwei/krati Un antiguo proyecto de LinkedIn, Apache License 2.0
- http://www.mapdb.org/ Una base de datos embebida de Java, Apache License 2.0, admite Key-Value Storage, serialización de objetos muy eficiente
- https://github.com/OpenHFT/Chronicle-Map , LGPL v3, almacenamiento de clave-valor de Java puro incrustado, más rápido que Berkeley DB
- https://github.com/jetbrains/xodus , Apache License 2.0, una base de datos incrustada sin esquema transaccional Java, más rápida que Berkeley DB
- https://github.com/lmdbjava/lmdbjava , enlace JNI para LMDB, Apache License 2.0