摘要: PGXC是一个基于PostgreSql 构建的分布式数据库,通过Sharding的方式将数据分布在不同的数据库实例中。 PG-XC的系统架构包含:Global Transaction Manager (GTM)、Coordinater(简称CN)、Datanode(简称DN) 其中GTM 为两阶段事 阅读全文
posted @ 2017-05-25 23:04 大嘴呱呱 阅读(3236) 评论(0) 推荐(0) 编辑
摘要: 数据管理技术是随着存储介质的发展而逐渐发展的技术,其实早在电子计算机发明之前就有数据自动处理的技术了。1890年,美籍德裔统计学家Herman Hollerich将穿孔卡片的想法运用于美国人口普查的数据制表,并创办了一家公司(后来渐渐成为IBM),将穿孔卡片用于制表机。 图1:穿孔纸带 在进入电子计 阅读全文
posted @ 2016-08-21 22:46 大嘴呱呱 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 名字的由来Paxos(Greek: Παξοί,pronouncedPaksi in English)又名Paxi是希腊西南部一个风景如画的小岛。关于取名的原因Lamport这样解释道:I thought, and still think, that Paxos is an important algorithm. Inspired by my success at popularizing the consensus problem by describing it with Byzantine generals, I decided to cast the algorithm in ter 阅读全文
posted @ 2014-02-09 16:19 大嘴呱呱 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 前言 CAP定理是在分布式环境下对于现实情况的一种认识,关系数据库的ACID也是CAP定理的一种特殊情况,有了这个理论后,分布式系统架构设计师可以放开了手脚,根据系统的应用场景进行调整,以在一致性、可用性、系统扩展性方面取得平衡。定理的历史 该定理最初是由Brewer在2000年PODC大会上演讲时阐述的,在当时只是一个猜想,他认为Consistency,Availablity,Partition Tolerance这三个核心需求在分布式系统中不可能同时被满足。Brewer并没有给出证明,猜想是基他在UC Berkley的理论工作以及主持Inktomi期间的观察,以及在如何构建高伸缩性系统.. 阅读全文
posted @ 2013-12-08 14:36 大嘴呱呱 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 最近测试中,我们的系统在多线程高并发访问的情况下,内存开始逐渐增长,到一定值以后,即使所有的连接线程都退出,常驻内存也不释放,经过仔细的检查分析,内置的内存资源池都正确释放,而且在连接活跃时,常驻内存在到达一定值后也会保持一个平稳水平,可以排除是我们系统代码的问题,这里可以通过一个简单的程序抛开无关的部分再现系统的内存占用问题。#include#include#include#include#include#include#include #define THREAD_NUM 5void* thread_malloc(void*);int main(int argc, char** arg.. 阅读全文
posted @ 2013-11-25 22:31 大嘴呱呱 阅读(1663) 评论(0) 推荐(0) 编辑
摘要: MySQL的源代码目录与PG相比更加的扁平化,从根目录到文件大多数都是3、4级,而且文件名也极尽简化,这种简练对于开发还是有一定的好处的,最起码文件的访问路径不会太长,从这里MySQL的实用主义哲学可见一斑;不好的地方就是核心代码、工具、接口、测试代码都在同级目录下展开,有代码洁癖的可能不一定喜欢。mysql-5.58├─BUILD :在各个平台上的编译脚本├─client :客户端工具├─cmake :cmak编译脚本├─cmd-line-utils :readline等工具├─dbug :调试用的宏定义├─Docs ... 阅读全文
posted @ 2013-09-25 22:06 大嘴呱呱 阅读(412) 评论(0) 推荐(0) 编辑
摘要: PG的源代码可以从官方网站上下载得到,解压后得到下面几个目录:src : 系统代码configure:编译脚本代码,PG使用的是autoconfig方式编译doc:帮助文档代码,用sgml代码编写contrib:目录中包含了一些不属于核心系统的外围工具和一些实验性质的开发尝试。下面展开src进行进一步的分析:└─src ├─backend :系统内核代码 │ ├─acces :数据存取层代码,包括堆、各种索引、事务管理 │ ├─bootstrap :数据库bootstrap模式的代码,该模式主要用来初始化模板数据库 │ ├─catalog :系统表 │... 阅读全文
posted @ 2013-09-15 22:38 大嘴呱呱 阅读(731) 评论(1) 推荐(0) 编辑
摘要: 数据库是个很复杂的系统,涉及到算法、数据结构、编译原理、体系结构、网络通信等几乎涵盖计算机科学主要方面的东西,想要全搞懂了着实不易,但要真好好地把某个开源数据库内核实现研究一番,却又大有裨益。要提起开源数据库不能不提MySQL,可以说互联网的兴起都是受到这个开源产品的促进,随着MySQL被Oracle收购,PostgreSQL这个稍显学院派的数据库逐渐被人们重视起来,越来越多的人投入到PostgreSQL内核开发中来。 PostgreSQL与MySQL是两种经典的极端:MySQL偏重江湖实用性,PG散发着严谨的学院气息;MySQL的SQL引擎和存储引擎分离的,PG的SQL引擎与存储引擎的... 阅读全文
posted @ 2013-09-11 22:07 大嘴呱呱 阅读(513) 评论(0) 推荐(0) 编辑