2015-10-13 86 views
0

我有很多數據需要存儲在磁盤上。 由於它只是鍵值對,我想用couchbase來做到這一點。我可以真正堅持數據在磁盤上使用couchbase

數據是幾個GB,我只分配1 GB RAM到存儲桶。 雖然RAM到couchbase只是一個緩存。 但將大量的數據後,我得到了:

Hard Out Of Memory Error. Bucket "test2" on node 100.66.32.169 is full. All memory allocated to this bucket is used for metadata. 
當我打開couchbase Web控制檯

couchbase可以作爲數據庫來存儲磁盤上的數據嗎?或者它是RAM嗎?

更新:

OK,讓我的問題更具體: 在couchbase:

  1. 如果我分配一個桶的RAM爲1 GB,可我存儲10點GB的數據這桶?
  2. 如果我能做到1,我可以認爲1 GB RAM是一種具有10個GB的數據高速緩存的(就像CPU二級緩存的RAM緩存)?
+0

1.是 2. 1GB將被分配給該存儲桶的Couchbase中內置的託管緩存。Couchbase的數據服務是託管緩存和持久層的層合併,以組成數據庫。 – Kirk

回答

1

默認情況下,Couchbase存儲所有鍵(和一些元數據)的RAM,並且填充任何保持與價值觀。從版本3.0開始,您可以將存儲桶設置爲完全逐出模式,該模式僅將緩存文檔的密鑰保存在RAM中。這使您可以存儲比內存多得多的數據,但是對於某些讀取操作而言,性能會降低,特別是嘗試檢索不存在的密鑰。

爲了解決您的具體問題,編輯水桶並將其設置爲全部元數據驅逐。請注意,這將重啓桶。

0

Couchbase試圖將「活動數據集」(即大多數使用/請求的鍵)保留到節點的內存中。這對於數據庫性能和設計的一部分至關重要,因此您的節點和您的存儲桶配額的良好內存大小是關鍵。

它提供了持久性,但我會說這不是一個磁盤優先的數據庫。

餘輝磁盤主要爲兩件事情:從RAM磁盤使數據耐用,彈性的,以節點停機(當然)和卸載數據(按優先最少使用的數據)。

+0

我可以認爲在couchbase中的RAM是一種緩存嗎? – worldterminator

+0

這是精神,是啊...看到大衛Ostrovsky回答你的更新問題;) –

0

我想你在這裏問了一堆不同的問題。 關於錯誤消息的具體內容:看起來您的存儲桶太小,無法存儲您存儲在其中的所有數據。

關於堅持光盤:你可以強制couchbase寫入光盤(甚至配置文件複製到的節點的數量),但如上所述,這可能會損害你的性能。

看看,例如,在python客戶端的couchbase的set()api的persist_to標誌。

couchbase client for python

+0

問題更新 – worldterminator

相關問題