粉丝928获赞5277

咱们今天来聊点硬核的 postgrace, 这个数据库世界里的常青树,很多人都在用,但你有没有想过它到底为什么这么稳? 今天咱们就把它一层一层的剥开,看看它最核心的架构设计。咱们要聊的不只是它能做什么,而是它内部那些堪称魔法的机制是如何保证了它的高性能和高可能性的。 ok, 这是咱们今天的探索路线。首先,我们会从所有多用户数据库都绕不开的一个坎开始并发问题。 然后呢,我们会一起深入到他的机房,看看他的核心引擎和那些关键进程。之后就是重头戏了,我们会想起拆解 posgr 的 两大法宝, m v c c 和 w a l。 最后我们再来看看是什么让他不单单是个数据库,更成了一个功能强大的开发平台。好,咱们就从最头疼的一个问题开始。 你想想看啊,一个热门的电商网站,同一秒钟里可能有成千上万人在下单,查库存、改购物车,那系统要怎么保证你查到的库存是准的?他下的单不会跟别人的搞混,而且整个数据库还不会因为这么大的访问量而喷阅或者数据错乱, 这就是所有数据库系统必须解决的最根本的并发症。那么处理并发症基本上就两条路,你看左边这个是比较传统的方法。枷锁什么意思呢?就是一个人在写数据的时候,其他人想读就得等着,反过来有人在读,其他人想写也得排队。 这虽然能保证数据不出错,但结果就是系统里到处都是红灯,大家都在排队,性能自然就上不去了,这就是所谓的锁竞争。而 post grass 走了一条更聪明的路,也就是右边这个 m v c c 多版本并发控制,它的核心思想简直是天才, 读和写各走各的路,互不干扰。每个操作港道的都是数据库在某个时间点的一个快照,这样大家就不用再排队了,我们后面会详细看它是怎么做到的。 想要彻底搞明白 m v c c, 咱们得先退一步,从更高的视角看看整个 post grace 引擎是怎么搭建起来的。它的基础就是一个经典的客户端赋服务器模型。 这个模型其实很简单,你的应用程序就是客户端,当他需要读写数据的时候,就会发送一个请求给一个叫 postgress 的 主服务进程。 你可以把这个主进程想象成一个总指挥,他负责聆听所有请求,管理着磁盘上所有的数据文件,并且协调内部的一切工作。 但他可不是一个人在战斗,这个总指挥非常聪明,他知道怎么把活分出去。他有一支专业的后台小分队, 你看有专门负责把内存里修改过的数据写回硬盘的后台写入进程,这样主进程就不用自己去等慢吞吞的硬盘操作了。还有负责打藏点点的检查点进程,确保出问题了能恢复 那个 w a l。 写如进城是保证数据不丢的关键,我们待会细说。最后这个自动清理启动器就是 m v c c 能正常工作的保洁员,每一个进城都各司其职,整个系统才能跑得又快又稳。 好了,重头戏来了,咱们来聊聊 post grass 的 第一个黑科技, m v c 系。 要理解他最好的方式就是把他想象成一台时间机器。当你的一个事物开始时,他就拿到了一张那个瞬间的完整的数据库照片,也就是快照。接下来,不管别人怎么修改数据,在你的这个事物结束之前,你看到的永远都是这张照片里的内容, 就好像时间静止了一样。这句话是从官方文档里摘出来的,它完美地总结了 m v c c 的 最大好处,读取永远不会阻塞写入,写入也永远不会阻塞读取。 这简直就是并发控制领域的终极理想。这意味着什么呢?这意味着你可以一边跑一个需要好几个小时的复杂数据分析查询,一边还能同时处理成千上万个高频的 online 交易请求,两者之间互不打扰。这在性能上觉得是一个巨大的费略。 那这个所谓的快照和多版本到底是怎么实现的呢?它的原理其实非常巧妙, 当你更新一行数据的时候, pos graph 并不会直接在老数据上修改,而是会另外创建一个这行数据的新版本。 同时,它会把老版本的数据留着,并给它打上一个失效时间的标记。这样一来,在那个失效时间之前,开始的事物看到的就还是老版本的数据,而之后开始的新事物看到的自然就是新版本的数据了。 通过这种方式,数据库里就同时存在了多个版本的数据,满足了不同时间点上事物的需求。 我们来跟着一个 update 命令走一遍。第一步,你的程序发了一个更新请求。第二步, progress 找到了那行老数据,但注意它没有删掉它,而是把它标记成过时了。 第三步,它创建了一个全新的行,包含了你更新后的数据,这样老的事物还能继续读老的数据,新的事物就能读到新的数据了。 那这些过时的老数据怎么办呢?总不能一直留着吧?这就轮到我们前面提到的那个保洁员 vacuum 进程出场了,它会定期检查确认哪些老版本的数据已经不可能再被任何事物看到了,然后就把它们彻底清理掉,把空间回收回来。 好的 m v c c 解决了高病发的性能问题,但数据的安全呢?万一服务器突然断电了,我刚提交的数据会不会丢?为了解决这个问题, posgrace 拿出了它的第二个法宝, 预写式日记,也就是 wall, 你 可以把它理解成是数据库的一个永不损坏的黑箱子。 他的核心思想是一条铁律,任何对数据的修改都必须先记录在日记里,然后才能去真正的修改词盘上的数据文件。也就是说,先写日记,再写数据。而且写日记这个动作是把操作记录顺序的追加到文件末尾, 这比在数据文件里找到对应位置再去修改的随机写入要快的多得多。所以 postgress 遵循的原则就是先快速地把要做什么记下来,然后再找个合适的时间慢慢地去做,这正是它能够保证数据绝对不丢的基石。 这张图把整个儿提交流程拆解的特别清楚,你看第一步,你的修改操作先在内存里完成了。第二步,也是最关键的一步,一条描述我要做什么修改的日历记录被写入到了此盘上的 w a l 文件里。 只有当操作系统确认这条日历已经安全落盘了,第三步才会发生。数据库告诉你的应用程序。 ok, 你 的提交成功了, 这个时候你的数据就已经绝对安全了。至于第四步,也就是真正把数据写到主数据文件里,那可能是几秒甚至几分钟之后的事了。就算在第三步和第四步之间数据库坑背了也完全没关系。 启冲之后, posgrace 只要把 w a l 网址拿出来重放一遍,所有提交成功的数据就都恢复了,一个都不会少。 那数据库是怎么知道日制处理到哪儿了呢?它用了一个叫日制序列号,也就是 lsn 的 东西来跟踪, 你可以把它简单地理解成一个不断变大的页码,每条新的日制记录都会让这个页码增加。通过这个 lsn 数据库就能精确地知道空会恢复应该从哪里开始,或者在数据同步的时候要把哪些日制传给备用服务器。 ok, 到现在我们已经知道了, postrest 非常可靠,并发性能也很强。但真正让它在开发者圈子里封神的是它的另一个特性,极高的可扩大性。 它已经远远不只是一个存数据的地方了,你甚至可以在数据本身之上去构建你的应用。这种开放的设计理念可不是后来才加上的,而是从它诞生之初就刻在 dna 里了。 它的前身还是一个大学研究项目的时候,设计目标就不是做一个封闭的系统,而是要做一个允许研究人员和用户自己动手去扩展和定制的平台。 可以说它天生就是为了被魔改而生的。这种设计带来了什么好处呢?你看,你可以自己创建数据类型,比如创建一个专门存地理坐标的类型或者化学分子式。 你还可以在数据库里直接用 python、 pearl 这样的语言写复杂的业务逻辑,而不仅仅是 sql。 更厉害的是,通过外部数据包装器,你可以让 postgress 去连接另一个 my sql 数据库,甚至是一个网页 a p i, 然后像查询本地表一样去查询它们。 你还可以根据自己的数据特点创建全新的锁引类型,比如专门用来锁引地理空间数据的 gist 锁引。这些功能都让 postgress 的 能力边界大大拓展了。 所以你看,当一个数据库不仅能存你的数据,还能理解你的自定义数据,能运行你的业务逻辑,甚至还能去调用外部的服务时,它就已经不再是一个被动的仓库了,它变成了你的应用平台里一个非常活跃、非常核心的组成部分。 这就给我们留下了一个非常有意思的问题,去思考当数据库的能力可以无限扩展时,数据库和应用程序之间的边界到底在哪里?

如果想在 linux 环境下快速体验 p g 数据库的功能,往往会遇到一些小麻烦。 一、使用各个 linux 发行版本中自带的 p g 软件包,通常版本比较旧,无法体验最新功能。二、安装 p g 官方的最新软件包,不同的 linux 发行版本的安装方法都不一样,整个过程稍显麻烦。 三、红帽 linux 的 e l 八下编辑好的 p g 软件包只能在 e l 八下运行,无法直接拷贝到 e l 七下使用,也不能拷贝到 debm 或 open 下使用。 四、最后最重要的一点是,当 linux 大 版本升级之后,主机上的 p g 数据库通常会出现锁影损坏的情况,必须重建锁影才可以正常使用,具体请见链接。 那么是否存在一套拷贝到任意 linux 机器都可以直接使用的通用软件包呢?答案是肯定的,中启陈树科技发行的 p g 绿色便携软件包就可以满足这个需求,而且此软件包是完全免费的。 中启陈树科技是一家专注数据库技术的公司,所出产品必属珍品。此 p g 绿色软件包 可以拷贝到任意 linux 下直接使用。经过测试,在红帽 linux 的 red hat 七、 red hat 八、 red hat 九以及基于红帽的三重 s blocky linux、 alma linux、 oracle linux 都可以直接运行, gabion、 obunto 等等常见的 linux 发行版也不在话下。用此绿色包搭建的数据库,实力在操作系统大版本升级之后,无需考虑锁影损坏的问题,还可以搭建跨 linux 操作系统大版本的流复制机型, 数据库的物理备份和恢复也无需考虑 linux 操作系统的版本兼容问题。 p g 十八点一已经发布,带来了诸多性能优化与功能升级,大家赶紧用我们重磅推出个绿色 p g 软件包,实际体验 p g 数据库的强大吧。 运行绿色版本的 p g 与官方的 p g 版本基本没有其他区别,除了需要设置一个环境变量, 下面我们以一个实际的例子来说明此绿色便携版本的使用方法。 注意,如果要下载 im 六四 cpu 架构的版本,需要替换 x 八六六四为二尺六四,需要 p g 十六点一一或者 p g 十七点七的版本替换下十八点一为对应的版本号。安装 p g 绿色便携版 bash 执行脚本, 并文件里面实际上是一个 tar 压缩文件,执行命令时会将其解压到 u s r 下面,这里数据库软件就安装好了。创建操作系统,用户 p g 登录用户设置下环境变量,能够快速搭建数据库。想了解详情请见链接,欢迎大家使用。

三分钟教会你用 ai 搭建一个网站,零基础小白也可以上手。以前做一个项目开发流程式,搭服务器,写后端接口,做登录,注册数据库文件权限。现在 superbase 把这些全帮你做好了, 你只需要写前端,直接连 superbase 就 能用。接下来带大家手把手实操下,这里我们选中 github 的 登录,登录上来后可以看到组织列表,这里我们点击新建组织,填写组织名称,选中类型 personal 来选择免费的就行。最后点击创建组织就行。 接着我们输入下项目名称, book 依旧带大家搞一个图书管理系统吧,这里生成下数据库的密码,记得复制保存下来。然后区域选择离我们比较近的新加坡。总结下就是先创建组织,再创建项目,创建完成后就会进入这个页面,全部都是英文, 不要慌,我们就需要两个地址,就可以找到最下面的项目,设置右边的 project url, 接着选择这个 a p i case, 复制右边的 a p i t。 到这里我们基本的工作就准备完成。接着打开 ai 编程工具,这里我们选择扣的,这是内置在 id e a 里面的插件,直接插件市场就可以搜索, 直接发送给他。我要开发一个图书管理系统,前端采用 vivo 三加 vivo a 加 v i t, 后端采用 super bass, 然后把我们申请的参数发送给他, 它这里会列出任务计划,不用我们后端数据库接口这些。这里具体的生成过程我们快静下,经过大概一分钟左右,项目生成完成。接着我们复制这个 coco 脚本到 superbase, 手动执行下这个 coco 脚本, 点击这个 run 就 可以了,等待执行成功, 执行成功后就会看到表 book, 接着我们刷新网站,可以看到数据已查询出来,我们来测试下功能,看是否正常点击详情,接着测试下编辑的功能,点击保存修改,修改成后我们回到 suprise, 看看是否修改成功, 这里我们刷新下数据,也是正常修改的,最后看看删除功能, 也是没有什么问题的。好了,本期的歪不抠定时战分享就到这里,感谢各位的观看,记得点个关注,下期我们分享如何部署上线。

给大家介绍 klikos 的 一篇技术博课,这篇技术博课里面给我们介绍了现在这个数据中台里面经常用的这样的一个存储的一个技术架构,它一般是用 postgraduate, postgraduate 是 开元界目前是超过 myico 使用最多的这样的一个关系性数据库,那么 这个数据库上次我也看到像 open ai 他 们也是用的 open ai 将全球将近有十亿用户,它也是用 postgraduate 来实现的,它是用主从的这种方式去实现了它这个十亿用户高并发的这样一个能力。那么这篇 klikos 的 这篇技术博课是给我们介绍了 postgraduate 关系型数据库跟 cos 分 析型数据库,这个两个到底怎么结合起来构建我们这样的一个企业的一个数据的中台。好,我们一起来看一下。首先他给我们介绍了一下这一部分,就是 posgrid 里面他用了一个叫 nvme 的 这样的一个协议,用了 nvme 这个协议之后, posgrid 的 它的这个负债从原来的两秒到三秒的这样的一个延迟,这个是百分之九十九的延迟,下降会非常快,那么这个我们给大家介绍一下, 我们首先给大家介绍一下 nvme 是 一个什么东西, nvme 的是一个,它是一个 pcr 一 的一个跟 ssd 之间的一个协议,虽然它都是通过固态硬盘来实现的,那么固态硬盘有两种协议,一种就基于沙塔,基于标准的磁盘的接口,它的吞吐量大概是在六百 兆每秒钟。但是如果你用 nvme, 它直接是通过 pci 的 这个插槽或者 m 点二的这个插槽来实现,那么它的性能要高达一个数量级,要七千五百兆每秒,所以它数量级就很大,所以你可以看到它的延时 从几百毫秒下降到几十毫秒,几十微秒,它是有这样的一个能力的,所以它的 o p s 它也有一个数量级的这样一个提升。好,这个是给大家简单介绍一下,所以 facebook 这篇文章给我们介绍了就是 postgraduate, 如果你要做一些高负荷的应用,你可以用这个 nvme 的 这种 package 的 这种 storage ssd 的 这种硬盘,那这样它这个性能可以成倍的提升。有这种解决方案之后的有些时候还是不够,因为有些时候我们在 postgraduate 里面需要做一些 分析,这种复杂的 sql 的 分析,它这个里面讲了它用 post sql 直接跟 click house 整合,能够实现一百倍速度提升的这样一个分析啊。因为 post sql 它的优势是在于关系型数据库,它主要是做一些事务类型 创 traditional 啊,就 a c i d 的 这样的一个事务型的这种关系型数据库,它的性能是比较好的。但是如果我们要做 o l a p 的 这种 在线的这种分析系统的时候的话呢,还是要借助于这个 click house 这篇技术。伯克利就给我们介绍了他用了一个 pg click house 的 这样的一个扩展的一个功能,能在 post greico 的 这个 db 里面,在不改变这个 sql 的 前提下,直接能够变成 类似于 klikos database 的 这样一个访问。那么言下之意就是说我们在 postgraduate 里面用原来的这个 sql, 你 不用去管它,它也能够直接做一些 join, 或者做一些聚合的这样的一些分析,那速度能够提升一百倍, 这个还是非常厉害。这张图就给我们介绍了一下这样的一个结构,首先它也是要 posgrid 的 database, 它要创建,那么它要在这个数据库里面要建一些表,把这些表要能通过这样的一个插件推送到 clickpopline 的 cdc 的 这样一个工具。当然目前这个工具它只能支持 clickc 的 云端的这样的一个 database, 那 么我一般我们会用之前跟大家经经常介绍的叫 clickc 的 云端的这样一个数据库, 把 postcode code 里面的这个表直接推送到 click house 里面去。我们可以通过 postcode 的 统一的这样一个接口,一个 c code 直接既能够做一些 type section 的 这样的一个事务的操作,也能做一些分析的操作,分析操作它自动会通过这个 pg click 的 这样一个扩展,直接访问到 click house 的 这个 database 里面去,这样它很多的这样的 o l a p 的 这样一个 分析,它就能比在 p g c 口里面要快一百倍,它等于是这样。好,这篇文章就是这样。这个解决方式我们企业级里面非常有价值的,因为它可以在 用相同的这样的一个资源, cpu 或者内存的这个资源,你性能要快一百倍,那你这样你可以少用算力,或者是说你在相同算力下,你等待的延迟会更少,它等于有这样的一个 解决方案,那么这个解决方案它也是开源的,可以免费商用的,对于我们企业来讲是一个非常好的去构建数据中台的这样一个数据存储的一个底座,那么它既可以满足我们事务型的这种像订单这样的用户数据这样的一些操作,同时它也能够实现我们 ai 非常需要做这种分析,构建这样的一个 特征的这些 c 口的复杂的查询它也能够满足。好吧,好,今天我们这样一篇技术博课就给大家就介绍到这,如果大家有兴趣的也可以在 pgcoco pgclickhouse 的 这样一个项目,其实目前在 gitlab 上面也是开源的星星树不是很多,但是这个项目我觉得应该是大家也是可以重点去关注的,好吧,好,今天我们这样这样一个技术博课就给大家介绍到这。


二月十八日傍晚,全球热点追踪第一条热点,美国向飞部署先进导弹系统为增强在南海的威慑力,美国已向菲律宾部署了先进的导弹防御系统。此举亦在提升美菲同盟的联合作战能力,应对中国在南海日渐活跃的军事和海洋执法行动,维护所谓航行自由。 第二条热点,俄罗斯威胁打击影子舰队二零二六年二月十七日,俄罗斯总统助理帕特鲁社夫警告,若西方继续扣押起影子舰队邮轮,俄海军将采取行动突破封锁。他称,西方的扣押行为是海盗行径,意在瘫痪俄对外贸易。若和平手段无效,海军将负责消除威胁。 第三条热点,美国在中东增兵威慑伊朗为应对地区紧张局势,美国近期向伊朗周边部署了大批先进战机。 据公开信息,美军已派遣包括 f 十五、 e、 f 三五在内的超过五十架各型战斗机及多艘航母驱逐舰,强化在中东的军事存在,以备不时之需。 第四条热点,印法升华防务与战略关系印度与法国近期举行高层对话,双方同意升华防务和战略伙伴关系。两国在军事采购、技术合作及印度洋太平洋地区的安全事务上达成广泛共识,只在加强双边战略合作,以应对区域挑战。

你看瑞银最新这份年报了吗?全球人形机器人供应链这两年动作是真快,我还没来得及看具体数据,你给我说说,他们预测二零二五年的出货量是多少? 他们算出来是一万八千六百台,比之前自己预测的一万五千台还高出不少,跟二零二四年的两千两百台比,差不多涨了快七倍了。 这涨的也太猛了,是不是?主要都是咱们中国公司贡献的?错了,二零二五年,中国厂商几乎包圆了全球出货量,外国公司好像都忙着内部训练机器人,不太愿意公布具体出货数字。 那这些机器人主要都用到哪去了?前五的供应商里,八成出货量都集中在三个领域,商业用占了百分之三十六,科研院所百分之二十九,还有数据中心百分之十四。不过说起来商业场景具体是指什么, 可能是商场迎宾、物流配送这些吧,毕竟人形机器人在这些场景里,人机交互会更自然一点。 有可能。另外投融资数据也挺夸张的,二零二五年,全球人形机器人私人企业融资涨到了五十二亿美元,同比涨了百分之两百二十五,还是中美两国最猛,分别占了百分之五十四和百分之三十九。看来大家都在押注这个赛道,那二零二六年他们怎么预测的? 基础预测是三万台,不过就算出货量到了这个数,能自主完成简单任务的机器人还是少数。现在机器人智能和客户需求之间还有不小的差距,除了娱乐和训练场景,其他地方很难普及。那什么时候能有突破啊? 瑞银觉得二零二七到二零二八年可能有机会。如果工业场景的人形机器人能有重大进展的话,现在不少头部厂商都在扩产能了。特斯拉计划二零二六年底开始量产 optimus, 目标是一百万台的生产线。 一百万台,这产能规划也太激进了吧,国内厂商有什么动作吗?波比 tech 今年就准备投产一万台产能。波士顿动力的 atlus 机器人,计划二零二八年达到三万台产能。除了整机厂商,供应链这边也在加速布局。 外国供应商不是之前动作比较慢吗?之前确实是中国零部件厂商先动起来的。现在看到特斯拉、波士顿动力这些客户的量产计划,外国供应商也开始发力了。比如德国的舍福乐,打算利用自己的工程能力,覆盖差不多一半的人形机器人零部件,包括执行器和机械子系统。 那波士顿动力背靠现代汽车,是不是也能拿到不少供应链资源?对,他们可能会和现代摩比斯合作开发执行器,毕竟现代集团在汽车供应链上的资源还是很丰富的。 瑞银觉得未来全球人形机器人硬件供应链大概率会集中在制造业强国,就是德国、日本、韩国和中国这几个国家。 那股市表现怎么样?之前炒了一波机器人概念,现在分化明显吗?二零二五年,中国机器人指数跑赢了机械指数。不少外国零部件供应商的股价从去年十二月开始涨了不少,主要是因为美国客户的供应链消息。不过瑞银觉得未来股价可能会分化,尤其是中国厂商之间 风化的关键是什么?核心还是技术能不能商业化落地。二零二六年是关键年份,特斯拉、奥特曼、 v 三的发布和量产,还有客户反馈都很重要,那些排名靠后的厂商如果拿不到订单,或者没有技术突破,可能会面临资金困难。 那投资建议呢?应该往哪方面布局?瑞银还是更看好上游企业,尤其是那些主业扎实、人形机器人业务壁垒高、客户基础好的公司。国内他们推荐的是拓普集团绿的斜坡、会川技术和地平线机器人,分别是做执行器、减速器和 ai 芯片的, 这些公司确实都是各自领域的龙头。看来人形机器人赛道还是得看核心零部件的技术实力。 没错,现在整个行业都在等技术突破,尤其是人工智能这一块,如果机器人智能能跟上,那市场爆发可能会比预想的更快。不过短期来看,供应链布局还是先一步的,毕竟得先能造出来才能谈应用。 也是,现在大家都在抢跑,就看谁能把技术和量产结合的更好了。是啊,二零二五年算是供应链加速的一年,接下来几年应该就是技术落地和市场验证的阶段,咱们可以持续关注一下,看看这个赛道能不能真的起来。那肯定得关注,毕竟这可是未来科技的重要方向之一。