2012-04-07 12 views
15

Ho più di 100 milioni di coppie chiave-valore (una chiave può avere più valori). Uso il BDB (B + Tree DB) di Tokyo Cabinet, il cui valore chiave è un array di byte a 32 bit.Tokyo Cabinet - Memory Tuning

È possibile in Tokyo Cabinet impostare la quantità di memoria (limite inferiore e superiore) che può utilizzare? In realtà, ho una memoria da 8 GB, ma sembra che non possa sfruttare la grande memoria.

Un altro punto è che, voglio sapere che come impostare,

tokyoCabinet.tune() tokyoCabinet.optimize() tokyoCabinet.setxmsiz() tokyoCabinet.setcache() questi parametri così io posso ottenere la massima sintonizzazione per il mio caso. Grazie in anticipo. Ogni idea è anche utile per me.

+2

Si consiglia di controllare Kyoto Gabinetto, il sequel di Tokyo Gabinetto. I creatori suggeriscono fortemente di trasferirsi al Gabinetto di Kyoto - non sembra che il governo di Tokyo venga mantenuto. –

+0

Dal sito web del Gabinetto di Tokyo, "BTW, conosci il Gabinetto di Kyoto? In realtà, è una biblioteca più potente e conveniente del Gabinetto di Tokyo.A questo lasso di tempo, Kyoto Cabinet supera il Gabinetto di Tokyo in ogni aspetto. Governo di Kyoto. " –

risposta

1

tokyoCabinet.setcache() - impostare la dimensione della cache, di solito è la metà o più spazio

tokyoCabinet.tune() - impostare il file hash secchio e parametri indice BTree prima aperta

tokyoCabinet.optimize() - i nuovi parametri impostati del file bucket hash e dell'indice BTree quando il file è già aperto, se il numero di record aumentava più di quello impostato nel brano (bnum), È possibile aumentare mediante optimize(), per esempio.

tokyoCabinet.setxmsiz() impostare la dimensione della memoria aggiuntiva mappata, come usando mmap, di solito è spazio

100 milioni di paia di valori chiave - bnum> 100M * 2 valore è 32 bit byte-array -> RECSIZE = 32 bit = 8 byte -> APOW = 3 (= 2^3)

Se ha 1024 elementi Array: la RECSIZE, impostare APOW = 13

lmemb specifica il numero di membri in ciascuna pagina foglia. Se non è superiore a 0, viene specificato il valore predefinito. Il valore predefinito è 128.

nmemb specifica il numero di membri in ciascuna pagina non foglia. Se non è superiore a 0, viene specificato il valore predefinito. Il valore predefinito è 256. fpow specifica il numero massimo di elementi della piscina blocco libero dal potere del 2.

The official documentation