会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
非我在
我来问道无余说 云在青天水在瓶
博客园
首页
新随笔
联系
订阅
管理
1
2
3
4
5
···
7
下一页
2018年10月11日
Postgres中的SpinLock锁
摘要: 我们知道,在数据库中为了并发控制,少不了要使用各种各样的锁(lock)。PostgreSQL中也不例外。 在PostgreSQL中有三种级别的锁,他们的关系如下: 那么按照顺序,我们先来讨论下PostgreSQL的最底层的SpinLock。 作为PostgreSQL的最底层的锁,SpinLock比较
阅读全文
posted @ 2018-10-11 20:44 非我在
阅读(1611)
评论(1)
推荐(1)
2018年10月8日
浅析Postgres中的并发控制(Concurrency Control)与事务特性(下)
摘要: "上文" 我们讨论了PostgreSQL的MVCC相关的基础知识以及实现机制。关于PostgreSQL中的MVCC,我们只讲了元组可见性的问题,还剩下两个问题没讲。一个是"Lost Update"问题,另一个是PostgreSQL中的序列化快照隔离机制(SSI,Serializable Snapsh
阅读全文
posted @ 2018-10-08 16:39 非我在
阅读(4379)
评论(0)
推荐(2)
2018年9月4日
浅析Postgres中的并发控制(Concurrency Control)与事务特性(上)
摘要: PostgreSQL为开发者提供了一组丰富的工具来管理对数据的并发访问。在内部,数据一致性通过使用一种多版本模型(多版本并发控制,MVCC)来维护。这就意味着每个 SQL 语句看到的都只是一小段时间之前的数据快照(一个数据库版本),而不管底层数据的当前状态。这样可以保护语句不会看到可能由其他在相同数
阅读全文
posted @ 2018-09-04 16:59 非我在
阅读(3133)
评论(1)
推荐(4)
2018年6月5日
聊聊Postgres中的IPC之SI Message Queue
摘要: 在 PostgreSQL中,每一个进程都有属于自己的共享缓存(shared cache)。例如,同一个系统表在不同的进程中都有对应的Cache来缓存它的元组(对于RelCache来说缓存的是一个RelationData结构)。同一个系统表的元组可能同时被多个进程的Cache所缓存,当其中某个Cach
阅读全文
posted @ 2018-06-05 15:31 非我在
阅读(2457)
评论(3)
推荐(0)
2018年4月23日
从一个bug谈谈psqlodbc游标的一点认识
摘要: 本文源于最近修正的一个关于psqlodbc的bug,该bug在近期的psqlodbc的git上也有人提交了修正。 关于该bug的修正代码可以看这里: "https://git.postgresql.org/gitweb/?p=psqlodbc.git;a=commit;h=85f6fade3" 说道
阅读全文
posted @ 2018-04-23 22:04 非我在
阅读(849)
评论(0)
推荐(0)
Postgres中postmaster代码解析(中)
摘要: 今天我们对postmaster的以下细节进行讨论: 2.与前端的交互 2.1backend的启动和client的连接请求的认证 关于backend的启动,其函数调用栈如下: typedef struct bkend { pid_t pid; / process id of backend / lon
阅读全文
posted @ 2018-04-23 08:06 非我在
阅读(3133)
评论(1)
推荐(1)
2018年4月9日
Postgres中postmaster代码解析(上)
摘要: 之前我的一些文章都是在说Postgres的一些查询相关的代码。但是对于Postgres服务端是如何启动,后台进程是如何加载,服务端在哪里以及如何监听客户端的连接都没有一个清晰的逻辑。那么今天我来说说Postgres中的 postmaster 模块的代码,试着解答这些问题。 在正式讨论之前,我先说一下
阅读全文
posted @ 2018-04-09 09:08 非我在
阅读(3020)
评论(1)
推荐(0)
2018年3月23日
git 命令摘录
摘要: 回滚 n 个 commit (增加了revert commit) git revert n commit_id 回滚到指定的commit_id(不增加commit,回滚的commit_id被删除) git reset hard commit_id 回到commit_id处,在这里可以修改在这个com
阅读全文
posted @ 2018-03-23 21:23 非我在
阅读(336)
评论(0)
推荐(0)
2018年2月8日
跟我一起读postgresql源码(十六)——Executor(查询执行模块之——control节点(下))
摘要: 5.ModifyTable节点 先看一个ModifyTable节点的例子: 你可能疑惑为啥上面的查询计划里面没有"ModifyTable"这样的字眼,下面是explain.c文件中的一段: 由此我们可以看到,对于ModifyTable节点,explain会判断是增删改中的哪一种从而作出判断。所以当在
阅读全文
posted @ 2018-02-08 16:42 非我在
阅读(1837)
评论(0)
推荐(1)
2018年2月5日
跟我一起读postgresql源码(十五)——Executor(查询执行模块之——control节点(上))
摘要: 控制节点 控制节点用于完成一些特殊的流程执行方式。由于PostgreSQL为査询语句生成二叉树状的査询计划,其中大部分节点的执行过程需要两个以内的输入和一个输出。但有一些特殊的功能为了优化的需要,会含有特殊的执行方式和输人需求(例如对于update、INSERT和DELETE,在普通的SELECT基
阅读全文
posted @ 2018-02-05 16:40 非我在
阅读(1378)
评论(1)
推荐(2)
1
2
3
4
5
···
7
下一页
公告