hi all,
请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 -- Best, Jun Su |
writerbuffer写满会flush到磁盘,checkpoint启动的时候会有一次snapshot过程,会让rocksdb做checkpoint,然后将数据刷到磁盘形成sst文件。
------------------ 原始邮件 ------------------ 发件人: "user-zh" <[hidden email]>; 发送时间: 2020年7月31日(星期五) 下午4:37 收件人: "user-zh"<[hidden email]>; 主题: RocksDBKeyedStateBackend如何写磁盘 hi all, 请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 -- Best, Jun Su |
hi,
看到 RocksDBWriteBatchWrapper类有 flushIfNeeded()方法 , 是这个么? private void flushIfNeeded() throws RocksDBException { boolean needFlush = batch.count() == capacity || (batchSize > 0 && getDataSize() >= batchSize); if (needFlush) { flush(); } } batchSize 来自 state.backend.rocksdb.write-batch-size 参数的配置 jiafu <[hidden email]> 于2020年7月31日周五 下午4:41写道: > > writerbuffer写满会flush到磁盘,checkpoint启动的时候会有一次snapshot过程,会让rocksdb做checkpoint,然后将数据刷到磁盘形成sst文件。 > > > > > ------------------ 原始邮件 ------------------ > 发件人: > "user-zh" > < > [hidden email]>; > 发送时间: 2020年7月31日(星期五) 下午4:37 > 收件人: "user-zh"<[hidden email]>; > > 主题: RocksDBKeyedStateBackend如何写磁盘 > > > > hi all, > > 请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 > > -- > Best, > Jun Su -- Best, Jun Su |
Hi jiafu
RocksDB 刷磁盘是它自己负责的(writebuffer 满了,就会 flush 到磁盘,具体的可以看下 RocksDB 的文档),另外在 snapshot 的时候会 flush 一次 writebuffer 来保证一致性。 你上面截图的是 Flink 中 wrapper 的一个 write batch 操作,这个方法的含义是,积攒一批 操作 再去写 rocksdb,和 rocksdb 刷磁盘还不是一回事。 Best, Congxian jun su <[hidden email]> 于2020年7月31日周五 下午4:57写道: > hi, > > 看到 RocksDBWriteBatchWrapper类有 flushIfNeeded()方法 , 是这个么? > > private void flushIfNeeded() throws RocksDBException { > boolean needFlush = batch.count() == capacity || (batchSize > 0 && > getDataSize() >= batchSize); > if (needFlush) { > flush(); > } > } > > batchSize 来自 state.backend.rocksdb.write-batch-size 参数的配置 > > jiafu <[hidden email]> 于2020年7月31日周五 下午4:41写道: > > > > > > writerbuffer写满会flush到磁盘,checkpoint启动的时候会有一次snapshot过程,会让rocksdb做checkpoint,然后将数据刷到磁盘形成sst文件。 > > > > > > > > > > ------------------ 原始邮件 ------------------ > > 发件人: > > "user-zh" > > < > > [hidden email]>; > > 发送时间: 2020年7月31日(星期五) 下午4:37 > > 收件人: "user-zh"<[hidden email]>; > > > > 主题: RocksDBKeyedStateBackend如何写磁盘 > > > > > > > > hi all, > > > > 请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 > > > > -- > > Best, > > Jun Su > > > > -- > Best, > Jun Su > |
hi congxian,
感谢回复 , 我会再调查下 , 多谢 Congxian Qiu <[hidden email]> 于2020年8月2日周日 下午2:11写道: > Hi jiafu > RocksDB 刷磁盘是它自己负责的(writebuffer 满了,就会 flush 到磁盘,具体的可以看下 RocksDB 的文档),另外在 > snapshot 的时候会 flush 一次 writebuffer 来保证一致性。 > 你上面截图的是 Flink 中 wrapper 的一个 write batch 操作,这个方法的含义是,积攒一批 操作 再去写 > rocksdb,和 rocksdb 刷磁盘还不是一回事。 > Best, > Congxian > > > jun su <[hidden email]> 于2020年7月31日周五 下午4:57写道: > > > hi, > > > > 看到 RocksDBWriteBatchWrapper类有 flushIfNeeded()方法 , 是这个么? > > > > private void flushIfNeeded() throws RocksDBException { > > boolean needFlush = batch.count() == capacity || (batchSize > 0 && > > getDataSize() >= batchSize); > > if (needFlush) { > > flush(); > > } > > } > > > > batchSize 来自 state.backend.rocksdb.write-batch-size 参数的配置 > > > > jiafu <[hidden email]> 于2020年7月31日周五 下午4:41写道: > > > > > > > > > > > writerbuffer写满会flush到磁盘,checkpoint启动的时候会有一次snapshot过程,会让rocksdb做checkpoint,然后将数据刷到磁盘形成sst文件。 > > > > > > > > > > > > > > > ------------------ 原始邮件 ------------------ > > > 发件人: > > > "user-zh" > > > < > > > [hidden email]>; > > > 发送时间: 2020年7月31日(星期五) 下午4:37 > > > 收件人: "user-zh"<[hidden email]>; > > > > > > 主题: RocksDBKeyedStateBackend如何写磁盘 > > > > > > > > > > > > hi all, > > > > > > 请问RocksDBKeyedStateBackend是何时将state序列化到磁盘的, 窗口结束时间?还是配置的checkpoint周期,谢谢 > > > > > > -- > > > Best, > > > Jun Su > > > > > > > > -- > > Best, > > Jun Su > > > -- Best, Jun Su |
Free forum by Nabble | Edit this page |