发布时间:2014-10-24 11:55:46
看代码,之困难在于如何剥离繁芜的细节,直接到代码的核心,即代码到底要解决什么问题,代码用的什么算法或者思想来解决的,弄懂了这个,基本摧枯拉朽了。就像上一篇源码分析Page。Page要解决的问题是多条记录在8KB的空间内存储问题,这自然包含当前8KB的空间内有多大的剩余空间;如何插入一笔记录到8KB的空间.........【阅读全文】
发布时间:2014-10-24 11:55:25
前面提到了shared buffer 本质是一个cache,缓存了常用的磁盘文件的某些个内容,了解shared buffer到磁盘文件的映射关系。既然是缓存,shared buffer的capacity终究是低于磁盘文件的capacity的,不可能将所有磁盘文件,一律缓存到shared buffer。比如我们把shared buffer设置成64M,而磁盘上的文件,随着rela.........【阅读全文】
发布时间:2014-10-24 11:54:23
在前面提到过shared_buffers是可以配置的,也给出了配置方法,但是配置多大才合理。网上资料众说纷纭,有的说总RAM的10%~15%,有的说是30~45%,有的很具体,说8G内存情况下512M是合理的。本文通过shared buffer相关的统计量和状态信息,希望可以加深对shared buffer的理解,同时给出大家一点启发,如果设定s.........【阅读全文】
发布时间:2014-10-24 11:54:14
前面几篇博客分析了shared buffer,从shared buffer到磁盘文件的映射,到shared buffer的分配和替换,再到如何测量shared buffer的性能情况,配置是否合理,基本把shared buffer大概介绍了下,这篇博客主要分析page。 page的源码落在/src/backend/storage/page,page对于PostgreSQL是个什么.........【阅读全文】
发布时间:2014-10-22 16:45:33
在shell中,可以使用export修改当前进程的环境变量。例如, export PATH=.:$PATH就可以将当前路径加入可执行文件查找路径中,这样你就不要敲“./excutable” 来执行当前路径中的excutable。而只需要键入 “excutable” 就行了。make可以执行shell命令,当然也包括export。同时,make本身.........【阅读全文】