上一篇:
1. 检查 WAL XLog 读取长度
上一篇文章中的 XLogPageRead() 执行完成后,回到了 ReadPageInternal() 函数。这里需要对 读取到的单个XLOG page 长度进行校验,因为理论上,读取到的页面至少需要包含 [pageptr, reqLen]
的有效数据。
从前面文章可知,这里读取到的 readLen 是 8192字节,值得注意的是,这里回再次调用函数 XLogReaderValidatePageHeader() 对 state->readBuf
中数据的 WAL page header 进行校验。
static int
ReadPageInternal(XLogReaderState *state, XLogRecPtr pageptr, int reqLen