Sto cercando una struttura hash persistente in java, un semplice archivio di valori-chiave, dove key è una stringa univoca e value è un int. Il valore di una chiave deve essere incrementato ogni volta che una chiave esistente viene aggiunta all'archivio.Java: grande struttura hash persistente?
Ho bisogno che questo sia abbastanza grande - possibilmente 500m - 1 miliardo di chiavi. Sto valutando tokyo-cabinet http://fallabs.com/tokyocabinet/javadoc/ ma non sono sicuro di quanto sarà scalabile: i tempi di inserimento sembrano allungarsi man mano che l'hash cresce.
Qualche idea su cosa potrebbe essere appropriato?
Grazie
Edit: Al fine di ridurre disco I/O ho intenzione di essere la memorizzazione nella cache i dati in un HashMap in memoria, quindi l'aggiornamento del hash persistente in un colpo solo quando la cache cresce fino a un certa dimensione
Edit2: Una delle ragioni per la persistenza è che ho poca RAM, 4 GB, quindi non può andare bene un grande struture in memoria.
Interessante domanda. –
Hai il tipo di problema che sarà limitato dalla scelta dell'hardware. Dovresti progettare il tuo software per aggirare questa limitazione, tuttavia, dato che hai solo permesso a te stesso 4 byte per voce, ne soffrirai perché le prestazioni del disco possono essere fino a 1000 volte più lente della memoria principale. –