2010-02-06 40 views

回答

4

現在,他們不建議存儲大小超過50MB的文件,而不分裂他們。請參閱:FAQ - Riak Wiki

如果您的文件小於50MB,則按照在Riak中存儲非二進制數據的方式繼續。

人們可能會選擇Riak的另一個原因是靈活性爲您的數據建模。 Riak會以內容不可知的方式存儲您告訴它的任何數據 - 它不強制表,列或參照完整性。這意味着您可以將二進制文件和更多的程序員透明格式(比如JSON或XML)一起存儲。使用Riak作爲一種「文檔數據庫」(半結構化,大多數非標準化數據)和「附件存儲」將具有不同於鍵/值風格方案的需求 - 即需要高效的在線查詢,衝突分辨率,增加的內部語義和強大的關係表達。 Schema Design in Riak - Introduction

-1

就像其他的價值一樣。爲什麼會有所不同?

0

@布賴恩曼塞爾的答案是正確的軌道上 - 你真的不希望較大的二進制值(50 MB)存儲爲單個對象,在了Riak(集羣變得unusably慢,過了一段時間)。

您有2個選項,而不是:

1)如果一個二進制對象足夠小,直接存儲。如果它超過了某個閾值(50 MB是一個合適的任意值,但實際上,運行一些性能測試以查看羣集的平均對象大小,然後開始爬行) - 分解文件分成幾個塊,並分別存儲塊。 (實際上,我見過的大多數人都使用這種方式,使用1 MB大小的塊)。 這意味着,當然,你必須跟蹤「清單」 - 哪些塊存儲在哪裏,以什麼順序存儲。然後,要檢索文件,首先必須獲取跟蹤塊的對象,然後獲取單個文件塊並將其重新組合回原始文件。看看像https://github.com/podados/python-riakfs這樣的項目,看看他們是如何做到的。 2)或者,您可以使用Riak CS(Riak Cloud Storage)完成以上所有操作,但代碼是爲您編寫的。這正是RiakCS的工作原理 - 它將傳入的文件分解爲塊,存儲並在簡單的Riak中分別進行跟蹤,並在需要時將其重新組合。並提供用於文件存儲的Amazon S3 API,以方便您使用。我強烈建議這條路線(以免重新發明輪子 - 分塊和跟蹤文件已經足夠困難)。是的,CS是付費產品,但如果您好奇,請查看免費Developer Trial

相關問題