属性值数据库的最成熟和最高性能选项是什么?

时间:2011-12-23 14:14:39

标签: database key-value non-relational-database

我在电子健康记录领域工作,如果尝试使用关系数据库,那么使用(http://www.openehr.org)的标准会在许多用例中造成严重的不匹配。

我设法开发了一些相当成功的方法来使用关系数据库来处理大部分树结构,但如果我使用了键值类型的存储,我本可以做得更好。

问题是,RDMS概念在市场上变得如此占主导地位,以至于成熟度几乎完全与关系数据库相关联。每当有人考虑离开关系空间时,特别是现在,NOSQL歌曲开始播放。 大多数NOSQL选项太年轻了,我很难投入其中来处理敏感的医疗保健数据。

所以我在非关系空间中寻找成熟的,开源的,高性能的选项,特别是那些便于键值类型操作的选项。例如,BerkeleyDB就是这样一个选项,但甲骨文目前的许可条款对我不起作用。

我不需要SQL,无论如何我都必须实现自定义查询语言(已经将其定义为openEHR规范的一部分)。我不需要表,因为我的数据都是树结构。我需要成熟度,稳定性和性能,我需要ACID合规性,可扩展性,而且我需要开源。我甚至考虑将各种成熟的Java框架集合起来实现这些目标,并在此问一个问题,但看起来这不是一个现实的方法。

我有什么隐藏的或可能是明显的宝石吗?

2 个答案:

答案 0 :(得分:0)

成熟度,稳定性,性能,ACID合规性,可伸缩性,开源,树状结构数据 - 使用OpenLDAP。

如果您真的想要推出自己的数据模型查询语言,可以使用LMDB,这是为OpenLDAP开发的键值存储。

答案 1 :(得分:0)

如果您的应用程序是用Java编写的,Chronicle Map是解决您问题的成熟且very efficient解决方案。它比BerkeleyDB快得多。但是,Chronicle Map不是ACID,它仅通过OS级文件内存映射提供最终的一致性。您可以找到有关Chronicle Map的持久性保证here的确切信息。