ZFS used as block device - ZVOL
背景 前面两篇BLOG介绍了ZFS的性能提升原理和测试, ZFS的快照回滚和克隆方法. http://blog.163.com/digoal@126/blog/static/163877040201441694022110/ http://blog.163.com/digoal@126/blog/static...
背景 前面两篇BLOG介绍了ZFS的性能提升原理和测试, ZFS的快照回滚和克隆方法. http://blog.163.com/digoal@126/blog/static/163877040201441694022110/ http://blog.163.com/digoal@126/blog/static...
背景 上一篇BLOG介绍了一下ZFS的使用, 以及zfs的log和l2arc机制带来的读写性能提升. 本文将介绍一下ZFS的另一大功能, snapshot和clone. 结合PostgreSQL的PITR来使用, snapshot可以替换基础备份. 从而提高PostgreSQL恢复到过往时间点的速度(就近选择...
背景 zfs可以认为是raid和文件系统的结合体. 解决了动态条带和数据与校验位的一致性问题, 所以具有极高的可靠性和性能. https://pthree.org/2012/12/05/zfs-administration-part-ii-raidz/ 因为zfs需要接管硬盘, 所以在有RAID卡的环境中,...
背景 通过B-TREE索引扫描可能会带来了巨大的heap page scan数目,即IO的放大. 为什么呢? 请接下去看完本文揭晓答案。 IO放大的后果: 如果数据库的单个数据块(block_size)很大的话, 这种情况带来的负面影响也将被放大. 例如32k的block_size显然比8k的block_...
背景 在PostgreSQL中全表扫描时, 计算page扫描的成本因子为seq_page_cost, 例如扫描100个数据块, 那么扫描这些数据块的成本就是seq_page_cost*100; 如果使用的是索引扫描(如index scan, index only scan, bitmap index scan,...
背景 上一篇BLOG我介绍了一下PostgreSQL 9.4新增的一个功能, 支持自动更新设置了安全栅栏的简单视图. http://blog.163.com/digoal@126/blog/static/163877040201431475019925/ 在文章结尾的时候提到leakproof函数和安全栅栏条...
背景 PostgreSQL pg_current_xlog_insert_location() & pg_current_xlog_location() 是两个获取XLOG位置的函数,他们有什么不同呢? 答案是pg_current_xlog_insert_location指写入wal buffer的位置...
背景 PostgreSQL 本身不支持类似Oracle recycle bin这样的回收站机制. 但是我们可以通过事件触发器来实现同类功能,参考 《PostgreSQL 事件触发器 - 实现类似Oracle的回收站功能》 本文将介绍使用PostgreSQL 动态模块, 以及_PG_init函数来创建钩子程序...
背景 我以前写过一篇BLOG关于如何提高PostgreSQL的导入速度, 如 1. 提高写入并行度, 同时使用数据库分组提交, 设置postgresql.conf commit_delay = 10 # range 0-100000, in microseconds...
背景 首先要感谢amutu以及其他为中文检索贡献的兄弟们, 我在之前写过一些关于PG中文全文检索的文章, 比较繁琐. 《PostgreSQL 使用 nlpbamboo chinesecfg 中文分词》 使用amutu的zhparser就比较方便了, 分词的部署比以前简单很多. 具体可参看amutu 的BLOG...