首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Postgres 源码学习 1—Postgres 源码编译和 debug

我使用了 Ubuntu 20.04 版本的镜像作为演示: img 使用镜像启动容器: docker run -itd --name --privileged 安装依赖 安装 Postgres 编译所需的依赖(这里是摘取了 Greenplum 的安装依赖,可能包含了一些没必要安装的,但肯定是涵盖了 Postgres 需要的依赖,所以全部安装上也没啥问题...的源代码,并进入到 postgres 代码目录中。...如果是拉取最新版本的代码,可以从 Github 上获取: git clone https://github.com/postgres/postgres.git 如果想要获取对应版本的源代码,则可以从...Postgres 官网中下载: 地址:https://www.postgresql.org/ftp/source/ Postgres 有非常多的编译选项,详情可以参考官方文档:https://www.postgresql.org

9010

Postgres 源码学习 2—Postgres 的 VFD 机制

操作系统中的文件 数据库的本质其实就是用来存储数据的,所以免不了和文件系统、存储进行交互,万丈高楼平地起,存储一般是一个数据库的最底层,Postgres 在存储的文件管理方面也有很多的设计与抽象。...在操作系统层面,提供了一些文件操作相关的系统调用(fopen、fclose、fsync 等),我们作为上层使用者,可以直接通过 C 语言库进行调用即可(Postgres 使用 C 语言编写)。...Postgres 的 VFD 作用 Postgres 数据库在运行的过程当中,可能会打开非常多的文件,比如数据表对应的文件,元数据表文件,以及一些在 SQL 运行时打开的临时文件,例如排序、哈希表所需的文件...VFD 的基本工作方式 Postgres 主要通过一个进程私有的数组来维护 VFD,名为 VfdCache。...通过这种方式,Postgres 可以打开远超过系统和进程限制的文件数量,是一个非常精妙的设计。

7510

renovate: 处理 Postgres 模式迁移

然而 atlas 对 Postgres 的支持并不太好,生成的 migration plan 很多时候都是破坏性的(比如 drop table 再 crate table),这根本无法在生产环境使用。...y Successfully applied migration to postgres://user@localhost:5432/hello....在过去的 4 天里,我几乎就是解决完一个细节,再解决下一个,前前后后一共发布了近 20 个平平无奇的小版本。...这些小版本无非就是支持一下 default constraint 或者解决 varchar(256)[] 解析的问题,但就是这样一个个琐碎的功能,共同构筑了目前 Renovate 还算不错的用户体验。...在 hackathon 开始时,Renovate 会何去何从我非常没底,但快速为一个很傻很天真的版本构建最基本的用户界面,并将其展示给别人时(我录了个屏发公司 hackathon 的 slack channel

66720

优化Postgres-x2 GTM

Postgres-x2是一个基于pgsql、面向OTLP的分布式数据库,采用了shared-nothing的架构,目标是针对OLTP\OLAP应用能做到可扩展的系统。...源码在github上:https://github.com/postgres-x2/postgres-x2 最近在针对 Postgres-x2做压力测试。...测试的版本是直接从github上拉下来的,直接编译安装。...可以看到优化之后的GTM响应时间基本维持在O(log(N)),从而使得TPS在连接数增大时,TPS没有像当前版本下降得这么剧烈(678个连接时,TPS是当前版本的几乎5倍),datanode的数据目录所在磁盘利用利用率机会基本维持在...当然,这个优化并非是完美的,因为在执行简单事务并且连接数不多的情况下,TPS和原有的版本几乎相同。

1.4K60
领券