2013-03-05 61 views
1

這是一個很簡單的問題,顯然有很多答案。什麼是使用Bitcask後端的Riak per-key開銷?

調查結果的範圍有:

a。根據Basho的文檔,22字節: http://docs.basho.com/riak/latest/references/appendices/Bitcask-Capacity-Planning/

b。這裏有450個字節: http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-August/005178.html http://lists.basho.com/pipermail/riak-users_lists.basho.com/2011-May/004292.html

c。還有一些軼事記錄說明了在45到200字節範圍內的任何地方的開銷。

爲什麼沒有直接的答案呢?我知道這是一個複雜的問題 - 上面的郵件列表條目中的一個清楚地說明了這一點! - 但是甚至想出了一個一貫球場如此困難?爲什麼Basho的文檔不清楚這一點?


我有另一套相關的如何,我基於密鑰的開銷(存儲大量的小值相對於在大結構「收集」起來)來構建我的邏輯問題,但我想這是另外一個問題。

回答

1

我們的容量規劃器將靜態開銷聲明爲22個字節,因爲這是C結構的大小。正如該頁所述,容量規劃人員只是簡單地提供的大小估計。

您鏈接到Nico的郵件列表上的舊帖子可能是bitcask內部最好的完整會計,您會發現它是準確的。以8字節爲指針指向入口,桶/密鑰對上Erlang開銷的13字節,在64位系統上以43字節到達。

至於沒有一個直接的答案......實際上要求我們(通過電子郵件,郵件列表,IRC,信鴿等)將始終產生一個實際的答案。

+0

謝謝,但另一個計算加起來大約450字節呢?或者只會在特定的使用情況下才會發生。 – 2013-03-05 15:12:56

+0

我不知道那會是什麼。再次,尼科的發佈是一個準確的會計。 – 2013-03-05 15:18:30

+0

好的謝謝。 RAM中43的開銷對於我試圖追求的模型來說足夠有意義。 P.S:我的咆哮是因爲在閱讀看起來有衝突的帖子之後,基本上改變了我對模型的思考方式而感到沮喪,這些帖子被幾小時的離線工作和Google搜索隔開。不要理解我迄今爲止在郵件列表上看到的數據,以及通過網絡從Basho獲得的幫助。再次感謝。 – 2013-03-05 18:33:40

0

Bitcask需要將所有密鑰保存在內存中。就我所知,a)中引用的開銷是由於此需求而估算整個羣集所需的RAM bitcask總量時要使用的開銷。當將數據寫入磁盤時,Riak將實際值與各種元數據一起存儲,例如,矢量時鐘。在b)中列出的450字節的帖子看起來是對磁盤上存儲開銷的估計,因此可能也適用於其他後端。

尼科的帖子似乎包含一個很好的和準確的解釋。

相關問題