我想构建一个使用RavenDb Embedded的Windows应用程序(WPF),它将支持使用USB密钥来定位中央数据库。
当USB密钥不存在时,应用程序将使用本地商店。
当存在USB密钥时,应用程序将使用密钥上的商店作为主存储。
当然,当存在USB密钥时,两个商店之间的数据将被合并/同步。
这样做有“已知”模式吗?两家商店之间是否有开箱即用的“合并”数据? RavenDb Embedded是否支持“多商店数据库”?
答案 0 :(得分:2)
根据documentation,嵌入式模式不支持多个数据库。但是,您可以通过创建具有不同DataDirectory路径的两个单独的EmbeddableDocumentStore实例来自行管理多个数据库。
您可以启用Embedded+HTTP模式在两个实例之间进行复制,只要将它们放在不同的HTTP端口上即可。
那就是说,我不认为让乌鸦直接使用USB密钥是个好主意。关注点是:
如果在写入操作过程中删除了键,会发生什么? Raven应该很好地处理停机,但我的猜测是你会得到一些例外,而且我认为它的设计并没有考虑到这种情况。
磁盘I / O可能不足以提高性能,但这可能取决于USB记忆棒的额定速度。试一试,告诉我们您的表现如何。