2

我想构建一个 Windows 应用程序 (WPF),它将使用 RavenDb Embedded,并且支持使用 USB 密钥来定位中央数据库。

当 USB 密钥不存在时,应用程序将使用本地存储。

当 USB 密钥存在时,应用程序将使用密钥上的存储作为主存储。

当然,当 USB 密钥存在时,两个存储之间的数据会合并/同步。

是否有这样做的“已知”模式?两个商店之间是否有开箱即用的“合并”数据?RavenDb Embedded 是否支持“多商店数据库”?

4

1 回答 1

2

根据文档,嵌入式模式不支持多个数据库。但是,您可以通过创建两个具有不同 DataDirectory 路径的独立 EmbeddableDocumentStore 实例来自己管理多个数据库。

您可以启用Embedded+HTTP模式在两个实例之间进行复制,只要将它们放在不同的 HTTP 端口上即可。

也就是说,我认为让 raven 直接使用 USB 密钥并不是一个好主意。担忧是:

  1. 如果在写操作的过程中删除了密钥会发生什么?Raven 应该可以很好地处理关机,但我猜你会抛出一些异常,而且我认为它的设计并没有考虑到这种情况。

  2. 磁盘 I/O 可能不足以提供性能,但这可能取决于 USB 记忆棒的额定速度。试试看,让我们知道您的表现如何。

于 2012-11-09T14:35:06.837 回答