2011-04-12 10 views
5

muchas gracias de antemano por tomarse el tiempo para ver mi pregunta.¿Una base de datos incrustada no relacional con una licencia de software libre permisiva?

(Soy consciente de esta cuestión Nonrelational Databases for C++, pero mis necesidades son un poco diferentes y que sólo tiene una respuesta.)

Estoy desarrollando un C comercial ++ biblioteca que se debe, entre otras cosas, persisten los mensajes. Me gustaría evitar reinventar la rueda escribiendo mi propio DBMS. Lamentablemente, tengo los siguientes criterios restrictivos:

  1. Debe poderse usar desde C++ - Estoy escribiendo una biblioteca en C++. Los enlaces son potencialmente aceptables, si el nivel de esfuerzo para que funcionen no es demasiado alto.
  2. Necesito una base de datos incrustada. Stand-alone no funcionará.
  3. Quiero evitar una base de datos relacional. Además de las preocupaciones sobre los gastos generales de rendimiento, hay políticas técnicas más allá de mi control como desarrollador que desaconsejan una base de datos relacional.
  4. Necesito una licencia de software libre permisiva. Será difícil comprar licencias, pero el cliente no quiere revelar su fuente.
  5. Me gustaría que una solución establecida (ha existido por al menos un tiempo, más allá de la etapa experimental, ha sido utilizada por varios proyectos).

Lamentablemente, los dos van a opciones no funcionan debido a lo anterior: -SQLite es relacional -BerkeleyDB se GPL o comercial

Una vez más, gracias por cualquier ayuda.

+2

Competiría con el n. ° 3. ¿Está seguro de que su aplicación tiene características que hacen que el rendimiento en un sistema relacional sea más lento que en uno no relacional? – Reinderien

+1

No. Sospecho que es un costo no trivial, y tengo algunas pruebas de que será el caso, pero estamos creando prototipos para estar seguros. El problema más grande es la percepción extraña del cliente de que las bases de datos relacionales son de alguna manera "malas". – user343424

Respuesta

6

Uso SQLite in b-tree modo. Dominio publico. Evita la política. Vamos a trabajar en torno a los problemas políticos evitando la interfaz SQL para las rutas de rendimiento crítico y, opcionalmente, utilizando la ruta del analizador SQL para las consultas que no están en la ruta crítica.

Cuestiones relacionadas