个人微薄: weibo.com/manuscola
发布时间:2013-06-16 22:18:47
看代码,之困难在于如何剥离繁芜的细节,直接到代码的核心,即代码到底要解决什么问题,代码用的什么算法或者思想来解决的,弄懂了这个,基本摧枯拉朽了。就像上一篇源码分析Page。Page要解决的问题是多条记录在8KB的空间内存储问题,这自然包含当前8KB的空间内有多大的剩余空间;如何插入一笔记录到8KB的空间.........【阅读全文】
发布时间:2013-06-15 16:44:24
前面几篇博客分析了shared buffer,从shared buffer到磁盘文件的映射,到shared buffer的分配和替换,再到如何测量shared buffer的性能情况,配置是否合理,基本把shared buffer大概介绍了下,这篇博客主要分析page。 page的源码落在/src/backend/storage/page,page对于PostgreSQL是个什么.........【阅读全文】
发布时间:2013-06-12 15:22:17
在前面提到过shared_buffers是可以配置的,也给出了配置方法,但是配置多大才合理。网上资料众说纷纭,有的说总RAM的10%~15%,有的说是30~45%,有的很具体,说8G内存情况下512M是合理的。本文通过shared buffer相关的统计量和状态信息,希望可以加深对shared buffer的理解,同时给出大家一点启发,如果设定s.........【阅读全文】
发布时间:2013-06-10 13:41:09
前面提到了shared buffer 本质是一个cache,缓存了常用的磁盘文件的某些个内容,了解shared buffer到磁盘文件的映射关系。既然是缓存,shared buffer的capacity终究是低于磁盘文件的capacity的,不可能将所有磁盘文件,一律缓存到shared buffer。比如我们把shared buffer设置成64M,而磁盘上的文件,随着rela.........【阅读全文】
发布时间:2013-06-10 00:12:04
我们知道,PostgreSQL数据库中的信息,最终是要写入持久设备的。那么PostgreSQL是怎么将信息组织存储在磁盘上的呢? Bruce Momjian有一个slide 《Insider PostgreSQL shared memory》,里面的图片非常直观的描述了,shared buffer,page ,磁盘文件之间的关系,请看下图。 接下来几篇博客,从不同层面讲述Pos.........【阅读全文】