2012-04-07 55 views
15

我有超過1億個鍵值對(一個鍵可以有多個值)。我正在使用東京內閣的BDB(B +樹DB),其鍵,值是32位字節陣列。東京內閣 - 內存調整

東京內閣可以設置可以使用多少內存(上限和下限)嗎?實際上,我擁有8GB內存,但似乎無法利用大容量內存。

還有一點就是,我想知道如何設置,

tokyoCabinet.tune() tokyoCabinet.optimize() tokyoCabinet.setxmsiz() tokyoCabinet.setcache() 這些參數因此,我可以得到最大的調整我的情況。提前致謝。任何想法對我也有幫助。

+2

功率您可能想看看京都內閣,續集東京內閣指定的空閒塊池的要素的最大數量。創作者強烈建議搬到京都內閣 - 它看起來不像東京內閣正在維持。 – 2012-08-18 16:32:44

+0

從東京內閣官方網站「順便說一句,你知道京都內閣嗎?實際上,它比東京內閣更強大和便利的圖書館。在這段時間內,京都內閣在各個方面超過東京內閣,我強烈建議你使用京都內閣「。 – 2012-11-26 22:59:46

回答

1

tokyoCabinet.setcache() - 設置緩存大小,通常是一半或更多的文件大小

tokyoCabinet.tune() - 設置之前打開

散列桶文件和B樹索引參數tokyoCabinet.optimize() - 當文件已經打開時,如果記錄的數量增加超過設定值(bnum),則設置哈希桶文件和BTree索引的新參數,可以通過optimize()增加,例如。

tokyoCabinet.setxmsiz()設置額外映射的內存的大小,作爲使用MMAP,通常是文件大小

億鍵 - 值對 - 帶bnum> 100M * 2 值是32位的字節數組 - > recsize來= 32位= 8字節 - > APOW = 3(= 2^3)

如果有陣列的1024個元素:所述recsize來,設置APOW = 13

lmemb指定每個葉頁中成員的數量。如果不大於0,則指定默認值。默認值爲128.

nmemb指定每個非葉頁中成員的數量。如果不大於0,則指定默認值。默認值是256 fpow以2

The official documentation