首页 / JAVA / Java持久键值存储
Java持久键值存储
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java持久键值存储,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1487字,纯文字阅读大概需要3分钟。
内容图文
![Java持久键值存储](/upload/InfoBanner/zyjiaocheng/770/709c6f7aa53c4dd1a2291936d116ddac.jpg)
我知道这可能已被问过无数次,但我似乎无法找到我的确切用例的黄金解决方案.
我只有一个数据结构,一个地图,其中键是一个字符串.地图的对象是地图本身,但这次的值是简单的对象/基元,如string,int,double等.所以地图的地图.最里面的地图的键是恒定的,即除了创建之外,没有从最里面的地图添加/删除条目.所以它有点像传统的表,尽管每行可能有任意列.
我需要这个数据结构是持久的和复制的.
这是我的要求:
>纯Java解决方案
>磁盘映射仅在重新启动时使用.因此,从来没有任何从磁盘读取,所有的写入只能由一个应用程序完成)
>嵌入式.
>表现.现有记录的UPDATE性能很重要.更新可能每秒发生100k次(但更可能是每秒20-50k).至于INSERT / DELETE,它们当然会发生,但可能每天只发生几次.因此,我不太担心INSERT / DELETE性能.
>复制.为了恢复,我需要复制地图的磁盘副本.从主服务器到从服务器的复制不需要是原始事务的一部分,即我可以牺牲一些ACIDness来提高性能.
>记录数量预计为10万至20万,但不会高很多.每条记录的大小可能是100-200 KB,因此总的来说并不是那么多数据.我猜测数据文件的总大小将低于100 MB,这可能是偏高的估计值.
>数据总量不超过内存总能容纳的数据量. (这就是为什么我可以保证没有磁盘读取,除了启动时)
>我的申请没有分发.在任何给定的时间点,只有一个活动进程写入磁盘.
>自由开源许可证. (Apache,BSD,LGPL,应该没问题)
有问题的应用程序永远不需要存储除上述数据结构之外的任何内容,即它将不具有对其他持久数据结构的未来发现的需求.因此,基于这种特定的数据结构进行优化是合理的.
我查看了Berkeley DB Java版本,但它未能满足要求#6.我看过TokyoCabinet / KoyotoCabinet,但它没有达到要求#1.
那么你会推荐什么?
解决方法:
有几个选项,但neo4j似乎符合你的要求. HBase和Cassandra也是选项,但比您可能需要的更多.
内容总结
以上是互联网集市为您收集整理的Java持久键值存储全部内容,希望文章能够帮你解决Java持久键值存储所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。