问题标签 [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.
java - Chronicle 中 Java9Memory 的来源
我对 openHFT 项目使用的堆外机制感到好奇,我正在寻找下面源代码定义的类文件(在 github 中的任何地方都找不到):
来自 github 存储库:https ://github.com/OpenHFT/Chronicle-Core/blob/master/src/main/java/net/openhft/chronicle/core/OS.java
我的问题是:这个类是开源的吗?如果是,它是如何工作的?谢谢。
chronicle - 编年史地图中的 NavigableMap 支持?
预先感谢您的支持。
有没有办法在 Chronicle-Map 中创建 java NavigableMap ?
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 编译的。
对下一步有什么建议吗?
java - Chronicle 队列在每次空读取时写入 moveToIndex 日志
Chronicle 队列在 rollcycle 到达后的每个调用上写入moveToIndex日志。此日志仅在队列中没有可用消息时出现。这是预期的行为吗?如果appender长时间闲置有什么问题吗?excerptTailer.readDocument(message)
我有一个案例,即使附加程序仍然将消息写入队列,阅读器也会停止阅读消息并返回 false。但我无法找出场景。这就是我怀疑日志的原因。
日志如下,
我的编年史队列版本:4.5.27
chronicle - 将数据从一个编年史复制到另一个
对于备份的概念,我需要将数据从一个编年史队列复制到另一个。
将整个 Bytes 对象从一个队列的线直接复制到另一个队列中是否安全?
就像是
documentContext().wire().bytes().read(byte_buffer)
然后将此 byte_buffer 包装到 byte_store 中并写为
documentContext().wire().bytes().write(byte_Store)。
我这样做的原因是避免任何来回转换为自定义对象?
transactions - Chronicle Map 原子性语义
我想知道 Chronicle Map 中的原子性语义。如果我有一个跨 2 个节点(服务器)共享的编年史地图,并且我尝试在两个节点上同时将相同的密钥插入到该地图中,那么事务语义是什么?
第一次put成功,第二次失败吗?
我很好奇 Chronicle Map 是否保证与 Apache Zookeeper 相同的事务语义?
在我的用例中,我想依靠这样一个事实,即如果 node1 将密钥 K1 放入映射中,则 node2 将能够检查 K1 的存在,如果它不存在,它将明确知道它是第一个添加K1。
实际上,询问 ChronicleMap 上的 put 是否是跨 2 个节点的分布式事务。
非常感谢克利福德
dictionary - 编年史地图更新持久值
我需要更新一个持久值。我是说:
////// 类 InfoEquipoCache 用作 CM 的值
///// Principal Class 有一个 InfoEquipoCache 的 CM
..... //// 在主体类的某些部分:
但是,equipos.get(idEquipo) 有一个 EquipoCache 的引用,而 InfoEquipoCache 内部有一个不同的 EquipoCache 引用。由于结果实际化方法是无用的
有人知道如何更改此值吗?
chronicle - Chronicle-wire 如何支持模式演化?
我是Chronicle-wire 的新手。在文档中,它声称支持模式演变部分中的“将字段设置为默认值,如果不可用”。
我们有一个例子说明这是如何工作的吗?
我有一个将数组字段添加到简单 Marshallable 对象的示例。当读取包含旧版本对象的期刊时,我们如何为该字段设置默认值(例如 new String[0])而不是 null?
chronicle - Chronicle Queue - 从上次读取位置读取并删除所有消费者读取的文件
我正在使用 Chronicle 4.5.27 编写和读取市场数据。我有一个作家,但有多个读者。开发操作系统是 Windows,然后是 Linux,用于 Prod 部署。
如何实现以下用例?
- 如何从上次读取位置开始读取队列?例如,如果阅读器从一个有 100 条记录的文件中读取了 15 条记录并且崩溃/停止了如何从下一次重新启动时从第 16 条记录开始读取?CQ 中是否有内置的持久支持?
- 删除所有消费者读取的文件以节省磁盘空间。
为此,我已经实现了,但由于一些未解决的问题,文件似乎没有在 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
但仍然想知道是否有人实现了这个用例。
java - 多次同时读取 Chronicle Bytes 作为流
我正在使用 Chronicle Bytes 版本 1.7.22。我想将字节用于堆外缓存和大型媒体(例如图像、视频)的持久性。目前我正在创建字节如下:
或(用于持久性)
我使用 Bytes.outputStream() 编写媒体内容并使用 Bytes.inputStream() 读取媒体内容。但是,我只能读取一次 InputStream。它似乎不支持重置。如何在不分配额外内存的情况下多次同时读取媒体内容?