PostgreSQLxlog格式之nobackupfullpage

heap_insert
	xl_heap_insert xlrec;
	xl_heap_header xlhdr;
	XLogRegisterData((char *) &xlrec, SizeOfHeapInsert);->//xl_heap_insert
	|--	XLogRecData *rdata;
	|	rdata->data = data;
	|	rdata->len = len;
	|	mainrdata_last->next = rdata;
	|	mainrdata_last = rdata;
	|--	mainrdata_len += len;
	//xl_heap_header+heapup->t_data
	XLogRegisterBufData(0, (char *) &xlhdr, SizeOfHeapHeader);->
	|--	regbuf = ®istered_buffers[block_id];
	|	rdata->data = data;
	|	rdata->len = len;
	|	regbuf->rdata_tail->next = rdata;
	|	regbuf->rdata_tail = rdata;
	|--	regbuf->rdata_len += len;
	XLogRegisterBufData(0,(char *) heaptup->t_data + SizeofHeapTupleHeader,heaptup->t_len - SizeofHeapTupleHeader);
	recptr = XLogInsert(RM_HEAP_ID, info);->
	|--	rdt = XLogRecordAssemble(rmid, info, RedoRecPtr, doPageWrites,&fpw_lsn);
	|--	EndPos = XLogInsertRecord(rdt, fpw_lsn, curinsert_flags);

static XLogRecData hdr_rdt;
XLogRecordAssemble:
	char	   *scratch = hdr_scratch;//hdr_scratch是一个xlog记录的开始位置
	rechdr = (XLogRecord *) scratch;
	scratch += SizeOfXLogRecord;
	hdr_rdt.next = NULL;
	rdt_datas_last = &hdr_rdt;//xlog记录链表头
	hdr_rdt.data = hdr_scratch;
	//hdr_rdt->next=xl_heap_header+heapup->t_data
	registered_buffer *regbuf = ®istered_buffers[block_id];
	rdt_datas_last->next = regbuf->rdata_head;
	dt_datas_last = regbuf->rdata_tail;
	//xl_heap_header+heapup->t_data后面紧跟着xl_heap_insert
	rdt_datas_last->next = mainrdata_head;
	rdt_datas_last = mainrdata_last;

PostgreSQL xlog格式之no backup full page

创新互联服务项目包括长兴网站建设、长兴网站制作、长兴网页制作以及长兴网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,长兴网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到长兴省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!


本文名称:PostgreSQLxlog格式之nobackupfullpage
网站地址:http://bzwzjz.com/article/iiosee.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都企业网站建设 app网站建设 专业网站设计 成都网站设计公司 企业网站设计 成都网站制作 盐亭网站设计 成都营销网站制作 网站设计 营销型网站建设 成都网站制作 LED网站设计方案 古蔺网站建设 重庆网站建设 成都网站建设 成都网站设计 温江网站设计 成都网站建设 成都网站建设 成都做网站建设公司 成都网站建设公司 企业网站建设公司