问题标签 [mapdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - MapDB 集合大小问题
我正在使用 MapDB 0.9 快照。我有一些包含数百万条记录 String->String 的集合。我的问题是这种 ConcurrentMap(s) 上的方法 size() 需要大量时间和大量内存(我什至有 OutOfMemory 错误)。
有没有其他人遇到过这样的问题?谢谢再见
java - 内存不足 w/mapdb
测试 mapdb 时出现内存不足错误。鉴于该项目的整个想法是将数据结构序列化到磁盘并避免内存问题,我认为我做错了什么。任何想法我做错了什么?还是有错误?
堆栈跟踪。我的函数中的第 29 行对应于“assertNotNull(storage.get(key));” 线。
根据 unholysampler 的建议,我进行了以下更改以解决问题。
java - 有效地使用 MapDB(对提交感到困惑)
我在一个处理数十亿需要映射/排队的对象的项目中使用MapDB 。程序完成后我不需要任何持久性(MapDB 数据库都是临时的)。我希望程序尽可能快地运行,但我对 MapDB 的 commit() 函数(我认为它与性能相关)感到困惑,即使在阅读了docs之后也是如此。我的问题:
提交到底是做什么的?我的工作理解是它将对象从堆序列化到磁盘,从而释放堆空间。这是准确的吗?
对刚刚提交的对象的引用会发生什么?它们是否被 GC 清理了,或者它们是否以某种方式“引用”磁盘上的一个对象(MapDB 使它变得透明?)
最终,我想知道如何尽可能高效地使用 MapDB,但是如果不知道 commit() 的用途,我就无法做到这一点。对于您有效使用 MapDB 的任何其他建议,我将不胜感激。
java - Java:使用 mapDB,写入数据库会覆盖以前的条目
我使用 mapDB 来存储插入到地图中的数据。我按照 mapDB-Site 上的说明进行操作,能够设置数据库并用值填充它。但是我的问题就在这里,我将数据插入到地图中,然后调用数据库类将地图插入到数据库中。然后将当前映射添加到数据库中,但会自动覆盖先前的条目,因此条目数始终为 1。
这是我的代码:
就像我说的那样,我用一些值和 Method Database.putHW 填充 Multimap mm,它看起来像这样(在 mapDB 页面的示例中创建)。
那么为什么数据库中的 multimapHW 只包含 1 个条目,而不是许多条目?
java - 如何在 MapDB 中使用字节数组作为键
我有一个用例,我想使用 opaque byte[] 作为 MapDb 的键。我发现了这一点——使用字节数组作为映射键——限制很快;并想知道推荐哪种方法。
我宁愿不创建一堆临时对象和序列化开销,但这似乎ByteBuffer.wrap(my_bytes)
是 Java 指向我的地方。
我希望 MapDB 的核心开发人员之一可以对此或ByteBuffer
JVM 专家进行权衡。
database - mapdb如何坚持交叉重启
我使用mapdb
如下
那么当我这样做的时候
但是,如果我重新启动我的服务器,我确实看到我在磁盘上有 cache.db 但是读取时它将有一个空映射
所以
从文件重新启动后,如何让它重新读取我的地图?
java - 在 mapDb 中序列化和反序列化对象 - Java
我正在尝试序列化和反序列化一个对象以将其存储在 mapDb 中。
我设法使用这个片段序列化对象:
之后,我将“结果”存储在 mapDb 中。一切似乎都像一个魅力。
不幸的是,我在尝试反序列化时遇到了一些问题。
这里的片段:
str是来自 mapDB 的序列化对象,被视为字符串。之后,我将其“投射”为 byteArray。我使用这种方法是因为我在从 mapDb 作为对象获取数据时遇到了一些问题。
所以,我问你,我该如何解决这个问题。因为对象“ a ”是 java.lang.Integer 的一个实例,而不是所需的类,所以反序列化不起作用。
java - MapDB 批量导入性能
是否可以通过添加记录块而不是逐个添加记录来提高 mapdb 在大型数据集上的 HTreeMap 性能?我使用文件系统。
java - 如何在 MapDB 的 BTreeMap 实现中使用字节数组作为键
有没有办法像这样使用字节数组作为键BTreeMap
:
当前尝试将新对象放入地图时会引发此异常:
什么是使它工作的正确方法?我想知道不使用包装类的解决方案。
欢迎任何想法。
[更新]
我使用了 SJuan76 提出的解决方案:
如果需要,可以在 Guava 库中找到使用的比较器。