暂无图片
pg中备库发给主库的信息中,已经写入的最新的wal数据和已经刷新的最新的wal数据,有啥区别?
我来答
分享
暂无图片 匿名用户
pg中备库发给主库的信息中,已经写入的最新的wal数据和已经刷新的最新的wal数据,有啥区别?

 write_location AS write_LSN, flush_location  as flush_lsn   


这个write_LSN 是指的内存中接收的wal ,flush_lsn 是指的已经写到磁盘中的 wal ,是这么理解的吗 ?


如果是第一个内存具体指的是哪个内存 ,wal buffer 吗?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
清风生
2024-04-16

官文write_lsn字段的解释:Last write-ahead log location written to disk by this standby server

flush_lsn:Last write-ahead log location flushed to disk by this standby server,

一个是调用write()写wal文件,一个是调用fsync()写wal文件,所以应该不是wal buffer

暂无图片 评论
暂无图片 有用 0
打赏 0
小满未满、
2024-04-16

你是想问PostgreSQL同步流复制这块吗?
然后备库会返回多个ack 通知主库

你指的这个 write_location AS write_LSN
对应到PG数据库设置的话就是

synchronous_commit = remote_write

image.png
实际就是写入文件系统缓存

第二个其实就是将缓存实际落到磁盘上
还有一个就是将WAL回放

暂无图片 评论
暂无图片 有用 0
打赏 0
simsun
2024-07-08
  • write_location:表示 WAL 日志已经写入内存的位置,这些日志记录可能还未持久化到磁盘。
  • flush_location:表示 WAL 日志已经刷入磁盘的位置,这些日志记录已经持久化,确保数据不会丢失。
  • 暂无图片 评论
    暂无图片 有用 0
    打赏 0
    回答交流
    提交
    问题信息
    请登录之后查看
    邀请回答
    暂无人订阅该标签,敬请期待~~
    暂无图片墨值悬赏