PostgreSQL 源码解读(155)- 后台进程#7(walsender#3)
本节继续介绍PostgreSQL的后台进程walsender,重点介绍的是调用栈中的函数WalSndLoop->WaitLatchOrSocket->WaitEventSetWait->WaitEventSetWaitBlock.
C语言中结构体struct的对齐问题
struct,相互关联的元素的集合,每个元素都有自己的内存空间;每个元素在内存中的存放是有先后顺序的,就是定义时候的顺序;一个struct所占的总的内存大小,并不是各个元素所占空间之和,而是存在字节对齐的问题.struct中的每个元素相对于结构体的首地址的偏移量能被该元素的size整除(某些编译器,如果该元素的size > 4,则偏移量能被4整除即可).测试代码: [xdb@localho
梦想、理想与妄想
“人如果没有梦想,跟条咸鱼有什么区别?”星爷一句话道出了梦想之于人的意义。那,如果问,你的梦想是什么?这个问题,恐怕一千个人有一千种答案。某粉的梦想可能是得到偶像的亲笔签名照,某程序员的梦想或者是成为业界大牛,某农民的梦想很朴素,是风调雨顺年年是个丰收年。梦想因人而异,但总的来说,梦想可以认为是达成某个目标,期望做成某件事情,得到某项东西。 梦想如果可以通过努力可以实现,那么可以成为个人的理
谦逊
谦逊是什么?本人不才,不敢妄下结论,只能举出谦逊的其中一种表现,那就是以开放的心态,真正的接受别人的意见甚至是批评。首先是开放的心态。人都有防御机制,没有人喜欢犯错误的感觉,因此在面对他人的意见、批评时,人的本能反应通常是抗拒,心里想着的不是倾听别人的陈述,而是如何应对意见甚至直接是回怼别人。因此,要想对抗这种抗拒情绪,需要具备开放的心态,不管未来面对的是什么,要保持开放拥抱,而不是拒之门外。
PostgreSQL 源码解读(154)- 后台进程#6(walsender#2)
本节继续介绍PostgreSQL的后台进程walsender,重点介绍的是调用栈中的exec_replication_command和StartReplication函数.
PostgreSQL 源码解读(153)- 后台进程#5(walsender#1)
本节简单介绍了PostgreSQL的后台进程walsender,该进程实质上是streaming replication环境中master节点上普通的backend进程,在standby节点启动时,standby节点向master发送连接请求,master节点的postmaster进程接收到请求后,启动该进程与standby节点的walreceiver进程建立通讯连接,用于传输WAL Record.
PostgreSQL 源码解读(152)- PG Tools#4(ReceiveXlogStream)
本节简单介绍了PostgreSQL的备份工具pg_basebackup源码中实际执行备份逻辑的BaseBackup中对WAL数据进行备份的实现函数StartLogStreamer->LogStreamerMain及其主要的实现函数ReceiveXlogStream.
PostgreSQL 源码解读(151)- PG Tools#3(StartLogStreamer)
本节简单介绍了PostgreSQL的备份工具pg_basebackup源码中实际执行备份逻辑的BaseBackup中对WAL数据进行备份的实现函数StartLogStreamer.
PostgreSQL 源码解读(150)- PG Tools#2(BaseBackup函数)
本节简单介绍了PostgreSQL的备份工具pg_basebackup源码中实际执行备份逻辑的函数BaseBackup.
PostgreSQL 源码解读(149)- PG Tools#1(pg_basebackup主函数)
本节简单介绍了PostgreSQL的备份工具pg_basebackup源码中的主函数.
PostgreSQL DBA(31) - Backup&Recovery#4(搭建流复制)
PostgreSQL通过流复制Streaming Replication可轻松实现高可用HA环境的搭建.本节简单介绍了搭建流复制环境的基本步骤.
PostgreSQL DBA(30) - Backup&Recovery#3(数据文件损坏恢复)
在数据文件损坏,数据库无法正常启动的时候,Oracle可通过数据库备份+归档日志+在线日志实现数据库的完整恢复,与之类似,PostgreSQL也可以通过数据库备份+归档WAL日志+在线WAL日志进行完整恢复.
PostgreSQL DBA(29) - Backup&Recovery#2(日期格式导致的错误)
由于日期格式的不同,PostgreSQL在执行恢复读取recovery.conf的时候会出现问题.
PostgreSQL DBA(28) - Backup&Recovery#1(基本操作)
PostgreSQL的Backup和Recovery操作相对比较简单,通过简单的几个命令和配置即可实现备份和恢复. 下面通过例子简单说明PG备份和恢复的基本操作.
PostgreSQL 源码解读(148)- Storage Manager#4(mdread函数)
本节简单介绍了PostgreSQL存储管理的mdread函数,mdread是magnetic disk存储管理中负责读取的函数.
PostgreSQL 源码解读(147)- Storage Manager#3(fsm_search函数)
本节简单介绍了PostgreSQL在执行插入过程中与存储相关的函数RecordAndGetPageWithFreeSpace->fsm_search,该函数搜索FSM,找到有足够空闲空间(min_cat)的堆page.
PostgreSQL 源码解读(146)- Storage Manager#2(fsm_search_avail函数)
本节简单介绍了PostgreSQL在执行插入过程中与存储相关的函数RecordAndGetPageWithFreeSpace->fsm_set_and_search,该函数设置给定的FSM page的相应值,并返回合适的slot。
PostgreSQL 源码解读(145)- Storage Manager#1(RecordAndGetPageWithFreeSpace)
本节简单介绍了PostgreSQL在执行插入过程中与存储相关的函数RecordAndGetPageWithFreeSpace,该函数由RelationGetBufferForTuple函数调用,返回满足条件的block。
《红楼梦》中的宗教信仰
读《红楼梦》是一件轻松惬意的事情。虽然看到第N回还是没记住其中的人物关系,需要找人物关系图才能理清楚他们之间的亲戚关系,虽然其中诸如奶奶、二奶奶、太太、姨娘等称谓常让人有些迷糊,但这丝毫不影响这部大部头小说的阅读体验。《红楼梦》描写人物很出彩,这部分打算读第二、三遍的时候再逐个说说,这里先从大背景来简单介绍一下《红楼梦》中的社会环境,重点是宗教信仰。在《红楼梦》中,很粗略的划分社会环境中的宗教信仰
提意见的正确"姿势"
耶鲁“世界学人”项目有一份培训指南,训练怎样向别人提意见,以及怎样接受别人提意见。从信息论上来说,提意见者是信息的的发送方,这一方暂且称为发送意见,听意见者是信息的接收方,暂且称为接收意见。下面我们来看看这份指南的概要内容:发送意见1.提意见要事先得到对方同意。不想听,就不要主动提。2.意见集中在对方此前言行给你造成的感受,尽量讲自己,别讲对方。3.要及时,越快越好。当时不说,以后最好就别说了。4