2015-05-12 26 views
0

我的理解是RavenDb的設計使得如果一個碎片崩潰,其他碎片可以毫無問題地運行。RavenDb Sharding Hilo存儲模式

但是最近我實現了ShardingResolutionStrategy並找到了MetadataShardIdFor方法。這是對每種文檔類型我們可以指定用於存儲的碎片的方法。

所以,如果我得到它的權利,如果存儲特定文檔類型Hilo的碎片已關閉,我們無法在其他碎片中創建此類型的新文檔(至少自動生成的id不會工作)。或者可能是我錯了,Hilo以某種神奇的方式被複制在碎片之間?

回答

1

Sharding旨在獨立,但爲了創建一致的ID,我們需要能夠從一致的商店創建它們。

因此,我們將數據拆分爲多個節點和HA的概念。 典型的情況是元數據分片是獨立的,並且正在使用在所有分片節點上共享的複製數據庫運行。以這種方式,如果您丟失了元數據碎片,那麼您只需切換。

這利用了RavenDB分片&複製是正交的事實