2011-04-12 11 views
5

molte grazie in anticipo per aver dedicato del tempo a guardare la mia domanda.Un database incorporato non relazionale con una licenza software gratuita permissiva?

(io sono a conoscenza di questo problema Nonrelational Databases for C++, ma le mie esigenze sono un po 'diverso e ha una sola risposta.)

Sto sviluppando un C commerciale ++ libreria che deve, tra le altre cose, persistono i messaggi. Vorrei evitare di reinventare la ruota scrivendo il mio DBMS. Purtroppo, ho i seguenti criteri restrittivi:

  1. Deve essere utilizzabile da C++ - Sto scrivendo una libreria C++. I binding sono potenzialmente accettabili, se il livello di sforzo per farli funzionare non è troppo alto.
  2. Ho bisogno di un database incorporato. Stand-alone non funzionerà.
  3. Voglio evitare un database relazionale. Oltre alle preoccupazioni sul sovraccarico delle prestazioni, ci sono politiche tecniche al di fuori del mio controllo come sviluppatori che scoraggiano un database relazionale.
  4. Ho bisogno di una licenza per software libero permissive. Sarà difficile acquistare licenze, ma il cliente non vuole dare la sua fonte.
  5. Mi piacerebbe avere una soluzione che è stata stabilita (è stato in giro per almeno un po ', oltre la fase sperimentale, è stato utilizzato da diversi progetti).

Purtroppo, i due go-to scelte non funzionano a causa di quanto sopra: -SQLite è relazionale -BerkeleyDB è GPL o commerciali

Ancora una volta, grazie per qualsiasi aiuto.

+2

Vorrei contestare # 3. Sei sicuro che la tua applicazione abbia caratteristiche che rendono le prestazioni in un sistema relazionale più lento rispetto a quello non relazionale? – Reinderien

+1

No. Sospetto un costo non banale, e ho alcune prove che saranno il caso, ma lo stiamo prototipando per essere sicuri. Il problema più grande è la strana percezione del cliente che i database relazionali siano in qualche modo "cattivi". – user343424

risposta

6

Utilizzare la modalità SQLite in b-tree. Dominio pubblico. Evita la politica. Cerchiamo di aggirare i problemi politici evitando l'interfaccia SQL per i percorsi critici per le prestazioni e, facoltativamente, utilizzando il percorso del parser SQL per quelle query che non si trovano nel percorso critico.

Problemi correlati