PG电子官方网站|柚子直播平台|从DTCC2013到2024——11年数据库之旅
source: PG电子直营站 Time: 2025-07-06
pg电子模拟器试玩◈◈。pg电子网址◈◈!口袋游戏◈◈,PG电子平台pg电子游戏◈◈,PG电子直营站APP下载◈◈。两年后◈◈,DTCC2020◈◈,在21世纪20年代第一个年份柚子直播平台◈◈,我也终于把我一直做的事◈◈,明确的讲了出来◈◈:
只是在被四川电子科技大学◈◈、四川省政协委员周涛老师批评后◈◈,我不再刻意的突出“Oracle逆向“◈◈。
其实这一年我的技术路线已经全面转向PG◈◈,但MySQL也搞了那么多年◈◈,出于习惯◈◈,在研究某个特性的时候◈◈,我会简单看看MySQL中是怎么实现的◈◈。
下一年的主题◈◈,标题中将不再有MySQL◈◈,MySQL也会逐渐淡出我的研究范围◈◈。 DTCC 2021年◈◈,我的主题是◈◈:
这两年DTCC中◈◈,我详细比较了逻辑读◈◈、事务ID和SCN并发机制◈◈、Oracle存算分离机制◈◈、页裂◈◈。当然少了让大家再看看Oracle的“源码“◈◈:
这是kcscur3()函数◈◈,作用是得到SCN◈◈。SCN对于Oracle可太重要了◈◈,这个函数绝对是极高频函数◈◈。在高并发系统◈◈,它的竞争将十分激烈◈◈。
学习Oracle是用怎样的同步机制◈◈,处理高并发导致的高竞争◈◈。再结合PG源码柚子直播平台PG电子官方网站◈◈,会有不一样的发现柚子直播平台◈◈。
就像我最近讲NUMA系列的◈◈:《NUMA的逆行人生◈◈:一文讲清什么是NUMA》第一◈◈、三◈◈、三弹◈◈,第三弹◈◈:NUMA的逆行人生◈◈:一文讲清什么是NUMA(第三弹)◈◈,就是写个程序上手去测◈◈。
想搞清楚页裂◈◈,我强烈建议你找到我的PPT◈◈,用systemtap◈◈,动手模拟页裂◈◈,看看数据库是啥反应◈◈。
从2020年始◈◈,我又开始了一个新的方向柚子直播平台柚子直播平台◈◈。最近这几年间◈◈,我以PG 12内核为目标◈◈,做了不少尝试◈◈,增加Commit IDPG电子官方网站◈◈、修改StartupXLOG()增加块级恢复◈◈,等等◈◈,但我觉得我写的内核代码◈◈,好像还差点意思◈◈。
我看有个知乎网友总结的◈◈:“当算法上无法再突破时◈◈,你会发现大师们开始注重代码是否对齐◈◈,是否整洁◈◈,……”就像有一本书的名字◈◈:《代码整洁之道》◈◈。
但对数据库来说◈◈,算法上并没有那么多革命式的创新了(尤其OLTP方向PG电子官方网站◈◈,OLAP方向还有创新)◈◈,没有新赛道可以让我们弯道超车◈◈,我想写出更好内核代码◈◈,难道只能对对齐◈◈、用空格不用Tab(或用Tab不用空格)◈◈、写好注释◈◈、……(《代码整洁之道》◈◈,这本书我没看过◈◈,我并不是否定这本书的思想内涵◈◈,只是借用个名字◈◈。拍砖还请轻一点)我不是大师◈◈,大师们只要对对齐就好了◈◈,我不行◈◈,我还有前进的可能◈◈。
程序◈◈,代码◈◈,是在什么上面运行的◈◈。CPU吗◈◈,这谁不知道PG电子官方网站◈◈。或许◈◈,在数据库之外◈◈,我还应该向CPU◈◈、处理器方向卷◈◈。
说实话◈◈,这Coding水平◈◈,连我这个职高毕业生都有点看不下去◈◈,莫非这是外包到印度后代码?但这样的“垃圾”代码遍布内核各种函数◈◈,这就绝不可能是外包写的了◈◈,总不成Oracle把整个数据库的开发◈◈,都外包到印度了吧◈◈。
DTCC2020中◈◈,我重点讲述过的SCN获取函数◈◈,kcscur3()◈◈,短短几十条指令◈◈,就有两段这样的代码◈◈:
这个kcscur3()◈◈,每个SQL在执行前◈◈,都要调用至少一次◈◈,获得SCN◈◈,这函数够核心的了吧◈◈。
Oracle那么巨大的代码量PG电子官方网站◈◈,遇到屎山中的一粒屎◈◈,不也正常吗◈◈。但◈◈,这样的“垃圾”代码出现的频率太高◈◈:
经过多方了解◈◈,在stackoverflow一篇讲SUN SPARC处理器的文章中◈◈,终于找到一些端倪◈◈。
原来◈◈,因为SPARC CPU的微架构特性◈◈,加入这些垃圾代码◈◈,相当于一种延迟槽◈◈,可以减少访存预测失败◈◈、分枝预测失败的影响◈◈,提高整体效率◈◈。
说实话PG电子官方网站◈◈,我没看懂这几行“垃圾代码”到底是怎么个提高整体效率◈◈,什么延迟槽◈◈、预测失败等等◈◈,超出了我的认知范围◈◈。
但有一点我看出来了◈◈,Oracle内核并没有外包给印度去做◈◈,一定是自己做◈◈,而且◈◈,团队中有能人◈◈,他们对CPU一定是有相当程度的了解PG电子官方网站◈◈,才能写出这样的◈◈、莫明其妙的“垃圾代码”◈◈,以提升整体效率◈◈。
X64 CPU的内部机制和SUN SPARC不一样◈◈,这样的“垃圾代码”不单毫无意义◈◈,还会拖慢性能◈◈。
所在◈◈,在Solaris上◈◈,这还真是屎山中的一料屎◈◈。你要对Oracle的屎山感兴趣◈◈,可以到Solaris下看一眼柚子直播平台◈◈。
虽然Oracle团队中有能人◈◈,但是◈◈,估计能人的数量也不多啊◈◈,才会出现Solaris上的垃圾代码◈◈。