流表持久化后 sizeOnDisk totalSize sizeInMemory 一样多?

dolphindb 版本: 2.00.10.8 2023.11.24 (win64 JIT)

流表持久化设置:

hourStreamTable = keyedStreamTable(`time`mn`item, 199:0, ["time", "mn", "item", "value"], [DATETIME, SYMBOL, SYMBOL, FLOAT])

enableTableShareAndPersistence(

    table = hourStreamTable,

    tableName = "s_hour", 

    cacheSize = 10001 ,

    retentionMinutes = 20,

    preCache = 3

)

查看 getPersistenceMeta(hourStreamTable)的输出:

sizeOnDisk: 64,685

totalSize: 64,685

sizeInMemory: 64,685

memoryOffset: 0

diskOffset: 0


请先 登录 后评论

1 个回答

wfHuang

这个正常的,持久化和内存中的数据不存在互斥关系。内存中的流数据会异步持久化到磁盘上。您的场景是:

1. 内存中有 64685条记录,offset 从0开始

2. 同时这批数据也被持久化到磁盘上了,磁盘offset也从0开始


随着时间的推移,两者会不同,如:

getPersistenceMeta(hourStreamTable)的输出:

sizeOnDisk: 30000

totalSize: 61100

sizeInMemory: 49000

memoryOffset: 12100

diskOffset: 11110

请先 登录 后评论
  • 1 关注
  • 0 收藏,293 浏览
  • needl 提出于 2023-12-01 15:45