有没有可能 Sources.mapJournal() 频繁更新 IMap 很慢?
Is it possible that Sources.mapJournal() is slow for frequently updating of IMap?
我正在尝试通过从 IoT 设备接收数据的 IMap 模拟来自 Sources.mapJournal
的流绘制。这个流的处理太慢了,我在 30-60 秒后得到了大的累积结果。
当我开始使用小数据(每个值 12 KB)频繁更新 IMap 时,异常是:
com.hazelcast.ringbuffer.StaleSequenceException: sequence:123 is too small and data store is disabled.
我将 IMap 日志的默认容量增加了 10 倍。之后它变得稳定,但非常慢。一个类似的问题是当我用大值更新 IMap 时(每 5 秒大约 1.2 MB)。此外,我有几个连接的物联网设备,每个设备都有自己的 Jet 作业,使用相同的管道:
StreamStage<TagPosition> sourceSteam =
p.drawFrom(Sources.<TagPosition, String, TagPosition>mapJournal(
Constants.IMAP_TAGS_POSITIONS_BUFFER,
Util.mapPutEvents().and(entry -> ((String) entry.getKey()).startsWith(instanceNumber)),
Util.mapEventNewValue(),
JournalInitialPosition.START_FROM_OLDEST));
// Drain to SmartMap
sourceSteam.drainTo(SmartMapSinks.newTagPositionSink(instanceNumber));
提前致谢!
更新:
- 期刊大小为EventJournalConfig.DEFAULT_CAPACITY * 10 = 100
000(1 个分区)
- Jet 版本为 0.7.2
- 可序列化类
实现
com.hazelcast.nio.serialization.IdentifiedDataSerializable
问题出在多个作业使用单个 IMap(和地图日志)时。 Map journal 正在像批次一样延迟生成事件,但不是流式的。
已解决。谢谢!
我正在尝试通过从 IoT 设备接收数据的 IMap 模拟来自 Sources.mapJournal
的流绘制。这个流的处理太慢了,我在 30-60 秒后得到了大的累积结果。
当我开始使用小数据(每个值 12 KB)频繁更新 IMap 时,异常是:
com.hazelcast.ringbuffer.StaleSequenceException: sequence:123 is too small and data store is disabled.
我将 IMap 日志的默认容量增加了 10 倍。之后它变得稳定,但非常慢。一个类似的问题是当我用大值更新 IMap 时(每 5 秒大约 1.2 MB)。此外,我有几个连接的物联网设备,每个设备都有自己的 Jet 作业,使用相同的管道:
StreamStage<TagPosition> sourceSteam =
p.drawFrom(Sources.<TagPosition, String, TagPosition>mapJournal(
Constants.IMAP_TAGS_POSITIONS_BUFFER,
Util.mapPutEvents().and(entry -> ((String) entry.getKey()).startsWith(instanceNumber)),
Util.mapEventNewValue(),
JournalInitialPosition.START_FROM_OLDEST));
// Drain to SmartMap
sourceSteam.drainTo(SmartMapSinks.newTagPositionSink(instanceNumber));
提前致谢!
更新:
- 期刊大小为EventJournalConfig.DEFAULT_CAPACITY * 10 = 100 000(1 个分区)
- Jet 版本为 0.7.2
- 可序列化类
实现
com.hazelcast.nio.serialization.IdentifiedDataSerializable
问题出在多个作业使用单个 IMap(和地图日志)时。 Map journal 正在像批次一样延迟生成事件,但不是流式的。
已解决。谢谢!