问题标签 [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.

0 投票
2 回答
1357 浏览

java - ChronicleMap(以及更通用的堆外数据结构)实现?

在 OpenHFT 的Github 存储库上的 ChronicleMap在他们的文档中声明:

我已经构建了一个编译器,并为一些分支语言的编译器实现做出了贡献。我使用过的分配堆栈上的所有内容(这就是代码生成期间可用的内容)。我从未在 JVM 和 java 编译器上工作过,但我知道通常只有堆和堆栈可用于分配类实例、局部变量、函数参数等。

有人可以解释一下我们是如何编写代码的,我们可以告诉编译器实例化诸如 ChronicalMap 之类的数据结构,让它们可用于 JVM 的垃圾收集(并通过 JVM 的一般内存管理进行跟踪功能),但生活在堆外?

我已经阅读了简单的构造文档和相关示例。我看到了,how但是与 JVM 结合到底发生了什么的原因尚不清楚。

0 投票
2 回答
567 浏览

java - 编年史地图 UnsupportedClassVersionError

我只是在尝试 ChronicleMap 并立即遇到了一个问题,即“UnsupportedClassVersionError: Unsupported major.minor version 52.0”。

我正在使用 Java 7... 我是否应该将此错误解释为 Chronicle Map 是在 Java 8 下编译的?我是否需要下载源代码并在 Java 7 下编译来解决这个问题(这甚至可以工作)?

0 投票
2 回答
421 浏览

java - 来自 Chronicle Map 玩具代码的奇怪 NPE

我正在尝试编年史地图 2.0.0.a,并设置了一个玩具示例地图。我想设置一个乒乓示例,我在一个 JVM 中设置一个值并从另一个 JVM 中读取。我在下面的代码中得到了一个调用 map.get 的 NPE。这很奇怪,因为地图不为空(在命令行上打印出“{}”)......有人见过这个吗?

更多信息......如果我在 while 循环之前添加一行到map.put(7, true),然后map.get(7)抛出一个不同的异常:

引起:java.lang.IllegalStateException:net.openhft.lang.io.serialization.BytesMarshallableSerializer.readSerializable(BytesMarshallableSerializer.java:119) 处的未知类型 ¬ net.openhft.lang.io.AbstractBytes.readInstance(AbstractBytes.java: 1907) ... 16 更多

0 投票
1 回答
333 浏览

chronicle - 哪个是 ChronicleMap 的生产就绪版本?

我想玩一下 ChronicleMap,有点困惑我应该在生产中使用哪个版本。

1.*看起来像“已发布”,2.*看起来像处于 alpha 阶段。我会使用发布版本,但据我了解,当前文档指的是 alpha 版本的功能。即我没有看到OffHeapUpdatableChronicleMapBuilder1.0.2由于它是“官方”文档,我认为它2.*也可以用于生产。它可以?

PS 环境 - 用于开发的 Java 8、64 位 Windows,生产中的 linux。

0 投票
1 回答
543 浏览

akka-persistence - 在编年史地图上快速排队?

我们正在为akka-persistence实现存储插件, 这意味着 2 个提供者,用于:

  1. 队列类日志插件 API
  2. 类似地图的快照存储插件 API

由于只有Chronicle Map支持多节点对称复制,因此我们将Chronicle Queue排除在外。

问题:在地图顶部创建快速队列的最佳方法是什么?谢谢你。

0 投票
0 回答
446 浏览

java - 使用 Chronicle Map 的 JVM 崩溃

当我尝试使用 Chronicle Map 时,我遇到了一些我无法解决的错误。在我最近的调试尝试中,我将流读入内存以检查字节是什么,但它使整个 JVM 崩溃。

我正在使用 Kryo 来写入我的数据,并使用BytesMarshaller<T>如下所示的每种类型将其读回:

写和读:

我试过关闭流但遇到完全相同的问题。

当我开始迭代一个键集时会发生这个问题 - 不确定这是否相关。

这是我的堆栈跟踪:

0 投票
1 回答
207 浏览

chronicle - 在编年史前面放置一个堆上缓存

将堆上缓存(例如番石榴缓存)放在持久的堆外编年史缓存之前是否有意义?那么,当您遇到番石榴缓存未命中时使用编年史缓存?

谢谢

0 投票
1 回答
927 浏览

java - 编年史地图 - 值数据类型

在价值方面是地图或集合的情况下,实现编年史地图的最佳方式是什么?

我需要类似于以下的数据结构,我可以在其中存储具有特定 ID 的某些数据的多个版本:

或者可能有两张地图:

(原子性和序列化性能是我主要关心的问题)。acquireUsingLocked/getUsingLocked方法似乎不适用于标准 map/set 实现。

0 投票
1 回答
274 浏览

database - 如何将 ChronicleMap 用作时间序列数据库?

我有一个回测框架,该框架需要按顺序重放报价水平市场数据。我目前正在使用 Cassandra,其中我的架构被构造为在 1 行中包含单个交易日期的所有刻度。每列代表一个刻度。这使得回测框架变得简单,因为它可以通过按顺序一次拉出一个日期来播放日期范围。

我想使用 ChronicleMap 并将其性能与 Cassandra 进行比较。

您如何对 ChronicleMap 进行建模以支持每个刻度数据 1 行的模式?

0 投票
1 回答
145 浏览

chronicle - ChronicleMap WriteContext 用法

调查 ChronicleMap (2.1.7),在调用 acquireUsingLocked(); 时,我不清楚 WriteContext 的正确用法;

我感兴趣的场景是一个函数,从函数调用者的角度来看,我需要以原子方式执行 2 个操作。其中之一是向地图添加一个条目(如果不存在)。只有在地图中给定键之前没有值的情况下,才应该发生另一个。

如果先前在映射中没有给定键的值,并且第二个操作失败,则不应更新映射,以便后续测试找不到相应键的值。

如果地图中已经有给定键的条目,我不想更新它的原始值,也不想进行第二个动作。但是,我确实需要使用原始条目的值来构造调用者的返回值。

WriteContext.created() 的文档说,仅当条目先前存在时它才返回 true。如果该条目先前存在,是否可以从上下文中获取对先前值的引用(或其他方式 - 例如在 WriteContext 范围内调用 map.get() )?

WriteContext.value() 指的是什么?上一个条目的值,还是我在调用 acquireUsingLocked() 时提供的可能更新的值?

此外,如果地图中以前没有条目,并且我不想更新地图,我应该调用 WriteContext.removeEntry() 还是 WriteContext.dontPutOnClose()?

这是我认为需要的逻辑示例: