2012-11-09 97 views
2

我想構建一個Windows應用程序(WPF),它將使用RavenDb Embedded,並支持使用USB密鑰作爲中央數據庫的位置。RavenDb嵌入式在線/離線模式下的USB密鑰

當USB密鑰不存在時,應用程序將使用本地存儲。

當USB密鑰存在時,應用程序將使用該密鑰上的存儲作爲主存儲。

當然,當存在USB鑰匙時,兩個商店之間的數據被合併/同步。

這樣做是否存在「已知」模式?兩個商店之間是否有「合併」數據的開箱即用? RavenDb Embedded是否支持「多商店數據庫」?

回答

2

根據documentation,嵌入模式不支持多個數據庫。但是,您可以通過使用不同的DataDirectory路徑創建兩個單獨的EmbeddableDocumentStore實例來自行管理多個數據庫。

只要將它們放在不同的HTTP端口上,就可以啓用Embedded+HTTP模式在兩個實例之間進行復制。

也就是說,我不認爲有烏鴉直接使用USB密鑰是一個非常好的主意。問題是:

  1. 如果在寫入操作過程中刪除密鑰,會發生什麼情況? Raven應該很好地處理關機,但我的猜測是,你會得到一些例外,我不認爲它是爲了這個想法而設計的。

  2. 磁盤I/O可能不足以提高性能,但也許取決於USB棒的額定速度。試試吧,讓我們知道你的表現如何。

+0

好的信息,謝謝。我比較了創建一個新的商店並添加了50 000個新文檔到數據庫,usb key vs ide。在一個有點「快速」的USB密鑰上,它花了3倍的時間完成。 –