2013-02-25 45 views
0

做42T驅動我們聽說過的MongoDB一個客戶,每節點42T和我想知道更多關於這一點。我知道cassandra有Bloomfilters,skipp打盤以找出哪一行可能在哪個文件中。怎麼做MongoDB的每個節點

  1. mongodb是否有類似bloomfilters的內容?
  2. 是使用類似於SSTables的mongodb嗎?
  3. 我看過的MongoDB並壓實就像卡桑德拉,我認爲這將是一個非常漫長的過程與42T節點????

我想我不知道什麼條件來搜索,因爲我研究的MongoDB這裏(卡桑德拉他們被稱爲SSTables)。

感謝, 院長

+0

文檔不會從磁盤讀取到RAM中,除非它被訪問。索引用於知道需要訪問哪些文檔。良好的索引策略將意味着只有完整的索引,並且一些小的正在被訪問的文檔子集需要在RAM中,也就是需要從磁盤讀取。 – 2013-02-25 18:42:58

+0

所以mongodb可以支持每個節點數十億行。我無法找到任何關於它的壓縮算法,如大小分層壓縮和壓縮壓縮,這些都是有據可查的谷歌方法,用於壓縮數據集大小的增長。實現其中之一對於快速查找信息通常很關鍵。有了大量的信息,需要將索引存入rowkey(以及它的行存在)中。它是怎麼運行的? – 2013-02-25 18:46:56

+0

它通過使用索引給你直接指向記錄的指針。 – 2013-02-25 18:49:20

回答

2

的MongoDB不支持聯機壓縮。實際上,數據碎片是具有許多文檔更新的系統中的當前問題。爲了防止數據碎片,MongoDB嘗試計算自動填充因子,最大限度地減少數據移動次數。

緊湊命令塊的整個數據庫中,直到它結束了。此外,MongoDB不支持字典壓縮,因此字段名稱會佔用存儲的每個對象的空間。我猜MongoDB使用的佈局不是任何奇特的數據結構。它只是由標題(偏移量,長度...),bson數據和填充因子組成。

由於MongoDB是不是一個鍵/值或它不使用SSTables(柱狀佈局有效的數據結構)的柱狀數據庫。爲數據庫創建的每個文件都被命名爲「extent」。

據我所知,MongoDB中不使用布隆過濾器。

+0

我確實讀過一些關於緊湊命令的東西......甜......這似乎與我正在尋找的東西保持一致,所以42T似乎很難做到,然後用我們的模型來做。 – 2013-02-26 00:03:17