Domanda

Abbiamo bisogno di un in-memory struttura dati / DB server con le seguenti caratteristiche:

  1. server autonomo : verrà eseguito sulla stessa macchina dei clienti, in modo che qualsiasi tipo di IPC è ok
  2. accesso sequenziale : get next/previous key
  3. due tasti (stringa) per record : una specie di mappa bi-direzionale, in realtà
  4. in memoria solo : dovrebbe avere l'opzione per la persistenza non a tutti
  5. disco RAM / tmpfs soluzione non è auspicabile
  6. SQL / ODBC è un'opzione, anche se non richiesto
  7. ok prodotto commerciale, se il prezzo di licenza OEM è ragionevole

Finora abbiamo considerato le seguenti opzioni, ma ancora una soluzione soddisfacente:

  • mysql : risponde a tutte le esigenze, ma ora ancora rispondere su quanto una licenza OEM avrà un costo
  • memcached, Cassandra : nessun accesso sequenziale, in base alla documentazione on-line
  • Redis : sembra come uno strumento bello, ma ancora una volta, non vedo arrivare get nex/prev nelle specifiche
  • Postgres : non poteva farlo funzionare bene su Linux / ODBC

Sembra che tutti NoSQL in memoria DB forniscono accesso solo direttamente dallo stile chiave, hash-table. Non hanno ancora verificata Apache Derby.

Corriamo su Linux, il client è in C ++.

Sarà felice di avere i vostri suggerimenti. Grazie!

Modifica Sembra che ci sarà perseguendo il mysql , abbiamo una ragionevole offerta di prezzo, e sarà anche utile come il nostro principale (persistente ) DB. Grazie per tutte le risposte, è come al solito difficile scegliere solo uno.

È stato utile?

Soluzione

Io suggerirei di Kyoto Gabinetto, ha una funzione di memoria e accesso sequenziale.

modifica: cosa c'è di sbagliato con la mappa STL?

Altri suggerimenti

mi piacerebbe avere uno sguardo a SQLite, con il file di database nome del set di ": la memoria:". Questo creerà un database di memoria che non esisterà quando i vostri chiude applicazione

E 'di dominio pubblico in modo che non v'è alcun problema con licenza

FastDB dovrebbe funzionare bene. Esso supporta la configurazione in memoria e l'accesso condiviso.

Redis non lo fa sorta chiavi, ma ha liste / set che permettono di recuperare gli elementi in ordine. E 'difficile sapere con certezza se avrebbe funzionato senza sapere perché si vuole l'accesso sequenziale, ma con NoSQL spesso bisogno di pensare un po' diverso per le strutture di dati che si utilizzano.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top