问题标签 [chronicle-map]
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 - 打开 HFT 编年史地图,Websphere 上未找到类异常
我正在尝试使用 OpenHFT ChronicleMap ,代码在 Tomcat 中运行,但在 Websphere 中失败并出现以下错误(如下)
注意:这不会在 Tomcat 中发生,仅在 Websphere 中发生。
代码 :
谁能帮我解决这个错误。
java - 在编年史地图上执行的操作的观察者模式
我期待将 Chronicle Map 用作数据存储/数据缓存,并打算与在同一机器上运行的其他 JVM 进程共享它,以减少每个其他 JVM 进程的内存占用,否则每个 JVM 进程将加载相同的数据。每当从数据存储中添加或删除条目时,是否可以获得有关每个 JVM 进程的通知?它真的会减少内存占用吗?因为,每个 JVM 进程无论如何都会创建一些域对象。
我查看了 API 和文档,但我不太清楚如何实现我的用例。MapMethods 和 remoteOperations 最接近它,也许是要走的路。我想知道获得预期功能的正确方法是什么,或者我是否有路要走。
如果我走在正确的轨道上,那么我猜测 mapMethods/remoteOperations 只需要在观察者端提供,而不是在主数据存储上。我对么?
java - Java:Chronicle Map 是否支持不同的值类?
我通常使用这样的方法创建一个新的编年史地图:ChronicleMapBuilder
Chronicle Map 是否支持存储不同值类的实例,如果支持,我如何构建该地图?
例如:
基本上,我只有一个关键类 - a LocalDate
。但是这个日期可以(或者至少,我希望它)映射到一个通用接口的不同实现。我认为自己很幸运有一个通用接口,但是如果即使没有通用接口也可以构建一个编年史地图,请指教。
很抱歉,我目前无法测试 Chronicle Map 对不同值类的支持,也无法在 Internet 上找到任何形式或形式的文档。
memory-mapped-files - Windows 上的编年史地图问题
我正在尝试将 ChronicleMap 用于我的索引结构,这似乎在 Linux 上运行良好,但是当我在 Windows(这是我的开发环境)上运行 JUnit 测试时,我不断收到错误:java.io.IOException: Unable to等到文件准备好,可能是创建文件的进程崩溃或挂起超过 1 分钟。
这是有问题的代码片段:
抛出以下异常:
chronicle-map - 从编年史地图文件读取时出现异常
我正在使用 3.8.0 版本,并且出现以下异常。我正在使用没有太多自定义的 ChronicleMap。我目前正在制作原型,以展示 ChronicleMap 作为在同一机器上的不同 JVM 进程之间共享数据的可行选项。当我创建一个将东西放入 ChronicleMap 的实例时,我没有看到任何问题。但是,当我尝试主要将 ChronicleMap 用作阅读器时,我每次都会看到这个异常。
chronicle-map - Chronicle Map v3.9.0 返回不同大小
我正在使用 Chronicle Map 的 v3.9.0,其中我有两个进程,其中进程 A 写入 ChronicleMap,进程 B 仅使用 A 使用的相同持久文件进行初始化。加载后,我在进程 A 和进程 B 中打印 Map.size 但我得到不同的地图大小。我希望两种尺寸相同。在什么情况下,我可以看到这种行为?
如何解决此问题?是否需要任何类型的冲洗操作?
我尝试做的一件事是使用 getAll 方法转储文件,但它将所有内容作为 json 转储到单个文件中,这几乎杀死了我拥有的任何编辑器。我尝试在 Process B 中使用 MapEntryOperations 来查看是否发生了任何有趣的事情,但似乎主要是在将某些内容写入地图时调用它,而不是在直接从持久存储初始化 Map 时调用。
java - OpenHFT ChronicleMap 内存分配和限制
这篇文章可能是 OpenHFT 常见问题的一个很好的候选者。
我正在玩 ChronicleMap 考虑它的一个想法,但有很多问题。我相信大多数研究这个产品的初级程序员都有类似的考虑。
您能解释一下这个 API 是如何管理内存的吗?
ChronicleMap 宣称有一些出色的 TB 堆外内存资源可用于处理其数据,我想对此有一个清晰的认识。
让我们来看看一个拥有 500GB HD 和 4GB RAM 的笔记本电脑的程序员。在这种情况下,纯数学 sais - 可用“交换”内存的总资源为 504GB。让我们将操作系统和其他程序减半,剩下 250GB HD 和 2GB RAM。您能否详细说明 ChronicleMap 可以相对于可用资源分配的实际可用内存?
下一个相关问题与 ChronicleMap 的实现有关。
我的理解是,每个 ChronicleMap 分配它使用的内存块,并且当我们可以准确预测通过的数据量时,可以实现最佳性能/内存使用。然而,这是一个动态的世界。
让我们设置一个(夸张但可能的)示例:
假设 K(关键)“城市”及其 V(值)-“描述”(城市)的地图,并允许用户对描述长度有很大限制。
第一个用户输入: K = "Amsterdam"
,V = "City of bicycles"
这个条目用于声明地图 - 它为这样的对设置了先例:
现在,下一个用户被带走并写了一篇关于布拉格的分析他传递给:K = "Prague"
,V = "City of 100 towers is located in the hard of Europe ... blah, blah... million words ..."
现在程序员预计最多 5_000 个条目,但它失去了他的控制,并且有数千个条目。
ChronicleMap 会为这种情况自动分配内存吗?如果是的话,有没有更好的方法为这个动态解决方案声明 ChronicleMaps?如果不是,您会推荐一种方法(最好的代码示例)如何最好地处理这种情况?
这如何与持久性文件一起工作?
ChronicleMaps 会耗尽我的 RAM 和/或磁盘空间吗?避免这种情况的最佳做法?
换句话说,请解释在低估和高估值(和/或键)长度和条目数的情况下如何管理内存。
哪些适用于 ChronicleMap?
- 如果我分配大块 (
.entries(1_000_000)
,.averageValueSize(1_000_000)
实际使用量是 - Entries = 100,Average Value Size = 100。
怎么了?:
1.1。- 一切正常,但会有大块浪费 - 未使用?
1.2. - 一切正常,未使用的内存可用于:
1.2.1 - 编年史地图
1.2.2 - 给定线程使用 ChronicleMap
1.2.3 - 给定进程
1.2.4 - 给定 JVM
1.2.5 - 操作系统
1.3. - 请解释未使用的内存是否发生其他情况
1.4. - 过大的声明对我的持久性文件有什么影响?
- 与案例1相反 - 我分配了小块 (
.entries(10)
,.averageValueSize(10)
实际使用量为 1_000_000s 个条目,平均值大小 = 1_000s 个字节。会发生什么?:
chronicle - 输入条目后需要多长时间才能保留最新的键值?
我使用 createOrRecoverPersistedTo 方法创建了一个编年史地图。但是在重新启动 jvm 进程后,一些条目消失了。输入条目后需要多长时间才能保留最新的键值?是否有强制保留最新数据?
chronicle-map - 遍历 ChronicleMap 会导致异常
我正在使用编年史地图 v3.10.1。在我的地图中,我有大约 77K 条目。我正在尝试使用entrySet()
方法遍历此地图。它没有成功迭代,并且在抛出 Chronicle 特定异常之间。以下是 Chronicle Map 产生的日志
和例外:
它是一个单线程和持久化的映射。
chronicle-map - 重新启动后编年史地图抛出异常
我得到了以下异常:java.lang.IllegalStateException:我们没有中断的层,但根据层计数器应该还有 1 个条目。大小不同?net.openhft.chronicle.map.impl.CompiledMapIterationContext.forEachTierEntryWhile(CompiledMapIterationContext.java:3779) net.openhft.chronicle.map.impl.CompiledMapIterationContext.innerForEachSegmentEntryWhile(CompiledMapIterationContext.java:3791) net.openhft.chronicle.map.impl。 CompiledMapIterationContext.forEachSegmentEntryWhile(CompiledMapIterationContext.java:3811) net.openhft.chronicle.map.impl.CompiledMapIterationContext.forEachSegmentEntry(CompiledMapIterationContext.java:3816) net.openhft.chronicle.map.ChronicleMapIterator.fillEntryBuffer(ChronicleMapIterator.java:61) 净。 openhft.chronicle.map.ChronicleMapIterator.hasNext(ChronicleMapIterator.