Postgresql日志系统的实现(四)

1.3.1.2 Xlog共享缓存格式及作用

xlog.c文件中:

typedef struct XLogCtlData

{

       XLogCtlInsert Insert;            /* WALInsertLock保护,标识新的可插入到xlog文件中的位置等信息,其中“forcePageWrites”为“PITR”技术提供了条件支持 */

 

       /* Protected by info_lck: */

       XLogwrtRqst LogwrtRqst;

       XLogwrtResult LogwrtResult;      /* 以上两个提供了对于写日志时支持,决定了如何写的条件 */

       uint32            ckptXidEpoch;       /* nextXID & epoch of latest checkpoint 有何作用?*/

       TransactionId ckptXid;                /*同上,被“GetNextXidAndEpoch”函数使用,但不知有和作用? */

 

       /* Protected by WALWriteLock: */

       XLogCtlWrite Write;                    /*作用很大,但关系还是不很明朗? */

 

       /*

        * These values do not change after startup, although the pointed-to pages

        * and xlblocks values certainly do.  Permission to read/write the pages

        * and xlblocks values depends on WALInsertLock and WALWriteLock.

        */

       char                    *pages;                        /* buffers for unwritten XLOG pages */

       XLogRecPtr        *xlblocks;                     /* 1st byte ptr-s + XLOG_BLCKSZ */

       Size                      XLogCacheByte;           /* # bytes in xlog buffers */

       int                         XLogCacheBlck;           /* highest allocated xlog buffer index */

       TimeLineID           ThisTimeLineID;           /*标识物理日志文件的文件名中的时间线同用户的恢复方式有关,如果用户不是恢复到崩溃点(即恢复到以前的某个时间点或以前的某个事务号),则时间线增1*/

 

       slock_t           info_lck;         /* 自旋锁,保护自己;locks shared variables shown above */

} XLogCtlData;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值