问题标签 [chronicle]

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 回答
179 浏览

java - Chronicle 中 Java9Memory 的来源

我对 openHFT 项目使用的堆外机制感到好奇,我正在寻找下面源代码定义的类文件(在 github 中的任何地方都找不到):

来自 github 存储库:https ://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java

我的问题是:这个类是开源的吗?如果是,它是如何工作的?谢谢。

0 投票
1 回答
195 浏览

chronicle - 编年史地图中的 NavigableMap 支持?

预先感谢您的支持。

有没有办法在 Chronicle-Map 中创建 java NavigableMap ?

0 投票
1 回答
197 浏览

java - Chronicle Queue StoreTailer.next() 创建大量垃圾

我正在为我们的一个用例对 Chronicle 队列进行基准测试,并注意到 ExcerptTailer 的 readDocument() API 创建了太多垃圾!JFR 显示,该过程在下面的堆栈中花费了大约 66% 的时间。

我使用的是哪个版本的 Chronicle Queue?

net.openhft:编年史队列:4.5.9

我如何创建队列?

产生了多少垃圾?

3 分钟大约 11 GB

堆栈跟踪

我还尝试了什么?

我使用 JitWatch 并将用于转义分析的字节码大小从 150 字节增加到 516 字节。我注意到 readDocument 方法是 JIT 编译的。

对下一步有什么建议吗?

0 投票
0 回答
92 浏览

java - Chronicle 队列在每次空读取时写入 moveToIndex 日志

Chronicle 队列在 rollcycle 到达后的每个调用上写入moveToIndex日志。此日志仅在队列中没有可用消息时出现。这是预期的行为吗?如果appender长时间闲置有什么问题吗?excerptTailer.readDocument(message)

我有一个案例,即使附加程序仍然将消息写入队列,阅读器也会停止阅读消息并返回 false。但我无法找出场景。这就是我怀疑日志的原因。

日志如下,

我的编年史队列版本:4.5.27

0 投票
1 回答
148 浏览

chronicle - 将数据从一个编年史复制到另一个

对于备份的概念,我需要将数据从一个编年史队列复制到另一个。

将整个 Bytes 对象从一个队列的线直接复制到另一个队列中是否安全?

就像是

documentContext().wire().bytes().read(byte_buffer)

然后将此 byte_buffer 包装到 byte_store 中并写为

documentContext().wire().bytes().write(byte_Store)。

我这样做的原因是避免任何来回转换为自定义对象?

0 投票
1 回答
170 浏览

transactions - Chronicle Map 原子性语义

我想知道 Chronicle Map 中的原子性语义。如果我有一个跨 2 个节点(服务器)共享的编年史地图,并且我尝试在两个节点上同时将相同的密钥插入到该地图中,那么事务语义是什么?

第一次put成功,第二次失败吗?

我很好奇 Chronicle Map 是否保证与 Apache Zookeeper 相同的事务语义?

在我的用例中,我想依靠这样一个事实,即如果 node1 将密钥 K1 放入映射中,则 node2 将能够检查 K1 的存在,如果它不存在,它将明确知道它是第一个添加K1。

实际上,询问 ChronicleMap 上的 put 是否是跨 2 个节点的分布式事务。

非常感谢克利福德

0 投票
2 回答
217 浏览

dictionary - 编年史地图更新持久值

我需要更新一个持久值。我是说:

////// 类 InfoEquipoCache 用作 CM 的值

///// Principal Class 有一个 InfoEquipoCache 的 CM

..... //// 在主体类的某些部分:

但是,equipos.get(idEquipo) 有一个 EquipoCache 的引用,而 InfoEquipoCache 内部有一个不同的 EquipoCache 引用。由于结果实际化方法是无用的

有人知道如何更改此值吗?

0 投票
1 回答
87 浏览

chronicle - Chronicle-wire 如何支持模式演化?

我是Chronicle-wire 的新手。在文档中,它声称支持模式演变部分中的“将字段设置为默认值,如果不可用”。

我们有一个例子说明这是如何工作的吗?

我有一个将数组字段添加到简单 Marshallable 对象的示例。当读取包含旧版本对象的期刊时,我们如何为该字段设置默认值(例如 new String[0])而不是 null?

0 投票
2 回答
1253 浏览

chronicle - Chronicle Queue - 从上次读取位置读取并删除所有消费者读取的文件

我正在使用 Chronicle 4.5.27 编写和读取市场数据。我有一个作家,但有多个读者。开发操作系统是 Windows,然后是 Linux,用于 Prod 部署。

如何实现以下用例?

  1. 如何从上次读取位置开始读取队列?例如,如果阅读器从一个有 100 条记录的文件中读取了 15 条记录并且崩溃/停止了如何从下一次重新启动时从第 16 条记录开始读取?CQ 中是否有内置的持久支持?
  2. 删除所有消费者读取的文件以节省磁盘空间。

为此,我已经实现了,但由于一些未解决的问题,文件似乎没有在 Windows 上删除。CQ 中是否有任何内置支持,只有所有感兴趣的消费者都可以删除文件?

我已经阅读了一些关于这个主题的博客和帖子,例如

https://vanilla-java.github.io/2016/03/29/Microservices-in-the-Chronicle-world-Part-4.html

https://groups.google.com/forum/#!topic/java-chronicle/0Nz5P-nvLgM

但仍然想知道是否有人实现了这个用例。

0 投票
1 回答
145 浏览

java - 多次同时读取 Chronicle Bytes 作为流

我正在使用 Chronicle Bytes 版本 1.7.22。我想将字节用于堆外缓存和大型媒体(例如图像、视频)的持久性。目前我正在创建字节如下:

或(用于持久性)

我使用 Bytes.outputStream() 编写媒体内容并使用 Bytes.inputStream() 读取媒体内容。但是,我只能读取一次 InputStream。它似乎不支持重置。如何在不分配额外内存的情况下多次同时读取媒体内容?