RavenDb嵌入usb密钥上的在线/离线模式

RavenDb嵌入usb密钥上的在线/离线模式,ravendb,Ravendb,我想构建一个Windows应用程序(WPF),它将使用RavenDb Embedded,并支持使用USB密钥定位中央数据库 当USB密钥不存在时,应用程序将使用本地存储 当USB密钥存在时,应用程序将使用密钥上的存储作为主存储 当然,当有USB密钥时,两个存储之间的数据会合并/同步 这样做是否有“已知”的模式?两个商店之间是否有现成的“合并”数据?RavenDb Embedded是否支持“多存储数据库”?根据,嵌入式模式不支持多个数据库。但是,您可以通过创建两个具有不同DataDirectory

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

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

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

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

这样做是否有“已知”的模式?两个商店之间是否有现成的“合并”数据?RavenDb Embedded是否支持“多存储数据库”?

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

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

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

如果在写操作中间删除了密钥,会发生什么?Raven应该能够很好地处理停机,但我猜您会抛出一些异常,我认为它的设计并没有考虑到这种情况

  • 磁盘I/O可能不足以满足性能要求,但这可能取决于U盘的额定速度。试试看,让我们知道你的表现如何


  • 好消息,谢谢。我比较了创建一个新商店和向数据库添加50000个新文档,usb密钥和ide。在一个有点“快”的usb盘上,它花费了3倍多的时间来完成。