自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 优化Postgres-x2 GTM

      Postgres-x2是一个基于pgsql、面向OTLP的分布式数据库,采用了shared-nothing的架构,目标是针对OLTP\OLAP应用能做到可扩展的系统。源码在github上:https://github.com/postgres-x2/postgres-x2 。     最近在针对 Postgres-x2做压力测试。测试是在一台DEll R510上进行的,该服务器...

2015-12-22 18:31:50 310 1

原创 一个简单PGSQL调优的例子

         这几天,在写一个关于PGSQL性能的测试报告。        今天找了台顶配的R720做测试。R720配置如下:E5-2650 v2两颗,128G内存,磁盘为两块SATA盘做RAID0 拼出来的一个T的磁盘。        之前同事在上面测试mysql的QPS大概是20W多,具体不详。        本着简单试试的想法,源码编译安装了pgsql,pgsql的配置如...

2015-10-28 16:50:59 319

原创 说说pg中的检查点(checkpoint)之二

       前面讲了如何从外部来观察checkpoint,但是,实际上checkpoint内部是如何运行的呢?这里就有必要讲讲来龙去脉了。       目前,PG中有一个单独的checkpoint的进程。一般来说,在正常的启动过程中,这个进程是postmaster进程生成的,实际上是一个信号的处理函数heaper()生成的,具体的调用关系如下: main()->postma...

2015-10-22 22:13:37 457

说说pg中的检查点(checkpoint)之一

       最近一直在使用pgbench对pg进行压测,在压测的过程中,发现checkpoint的发生会对数据库的性能产生极大的影响.       想看到最近有没有发生checkpoint,有两种比较简单的方式:        一个是不停的刷新pg_stat_bgwriter这个视图,这个视图中两个字段checkpoints_timed和checkpoints_req直接反映了PG已经...

2015-10-13 23:18:20 559

使用pg_stat_statement监控pgsql遇到的问题

       pg_stat_statements是PG中监控数据库活动的重要插件,通过它可以获得SQL的统计信息,例如该SQL被调用了多少次,返回了多少记录,在读写数据上花了多少时间,这个对于监控数据库很有帮助。默认情况下,这个插件可以统计5000个SQL,如果不够可以调整pg_stat_statements.max这个GUC。       一般情况下,可以通过源码安装该插件:   ...

2015-09-23 14:40:43 213

原创 ppg_fdw:如何使用pgsql构建mpp数据仓库(六)

[size=large]对order by 和limit的处理[/size] 对于某些SQL来说,最后需要处理的operator就是order by以及limit。例如下面这个SQL: [code="SQL"] select l_returnflag, l_linestatus, sum(l_quantity) as sum_...

2014-12-03 16:39:43 248

原创 ppg_fdw:如何使用pgsql构建mpp数据仓库(五)

[size=large]子查询的处理[/size] 说实话,本人在没看PG之前,一直看mysql的文档里面讲子查询,什么From、drived子查询啥的,一直晕乎乎的。但是在看了PG代码之后,终于感觉略微明白了点。 具体说来,SQL里面,出现在rtable里面的子查询才可以称为是subquery,而出现在过滤条件(例如expression)中的被称为sublink。...

2014-12-03 16:38:04 182

原创 ppg_fdw:如何使用pgsql构建mpp数据仓库(四)

[size=large]Join的处理[/size] Join的处理在数据库中占有相当重要的地位。一般来说,在查询优化阶段,PGSQL会首先调用reduce_outer_joins函数来尽量消灭外连接:例如将全外连接转成左、右外连接(或者反左右连接)甚至是内连接,将左右外连接转化成内连接;接着PG会使用动态规划算法来选择一条cost最小的path来确定执行join的先后顺序。 ...

2014-12-03 16:28:07 174

原创 ppg_fdw:如何使用pgsql构建mpp数据仓库(三)

在简单描述了ppg_fdw的架构和工作流程之后,下面将会结合TPCH的实例来描述设计思想。 前面已经提到TPCH是一个工业界认可的标准测试集合(包括数据和SQL的模板),主要用来测试OLAP系统的性能。用户可以用TPCH来生成测试的数据和SQL实例。TPCH的DW模型是一个典型的星座模型,其中lineitem和orders表示fact表,其余的6张表:customer nation ...

2014-12-03 16:25:54 234

原创 ppg_fdw:如何使用pgsql构建mpp数据仓库(二)

(前面由于个人事情较多,所以暂停了博客,现在继续)。 由于PG本身就是个庞大的基础软件,ppg_fdw调用了大量的PG内部的接口,因此很难一行行代码来介绍(上周一个QA同事让我给他讲解代码,被善意的拒绝了。主要是觉得这个完全不可行,因为本身代码比较凌乱,使用了PG的hook机制,目前关于这方面资料比较少,如果没有这方面的基础,很难理解)。因此,在这里,将简单的介绍整体的架构,并且通...

2014-12-03 16:23:22 538

原创 ppg_fdw:如何使用pgsql构建mpp数据仓库

在前面的博文介绍了PG的hook和数据仓库的join算法之后,现在终于要推出干货了:ppg_fdw。(大家可以从githup:https://github.com/scarbrofair/ppg_fdw上下载代码和相关的简要说明文档)。 总的说来,ppg_fdw基于pgsql的hook和foreign data wrapper机制,力图使用透明的方式,使用PG构建一个mpp的数据...

2014-11-10 17:05:20 513

原创 pgsql中的hook

为了支持用户对数据库的扩展,目前的PGSQL提供了很多hook来满足用户的需求。 一般说来,数据库提供了多种扩展机制,例如大家最常见的PLSQL,用户使用SQL来开发存储过程,为了更高的效率和更大的灵活性,也可以使用C语言来开发。为了支持用户更深入的扩展数据库,开源的数据库提供了更加灵活的方式。 说到对数据库的扩展,就不可避免要谈到数据库内部的运行机制,因为数据库的扩展是和内...

2014-10-08 16:59:45 291

原创 数据仓库的模型和join算法

数据仓库中经典模型主要有两种:一种是雪花模型,另外一种就是星座模型。简单的来说,雪花模型中是一个事实表,和若干个维度表,事实表通过外键和维度表关联。星座模型中存在着不止一个事实表,引用若干维度表,事实表直接也相互关联,目前数据仓库领域公认的TPCH测试集所使用的数据就是一个星座模型。从某种意义上说星座模型是对雪花模型的一种优化,因为在雪花模型中,唯一的事实表很可能需要只做到了第三范式,如果进...

2014-09-24 16:28:51 348

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除