Postgres扩展:构建自定义内存表访问方法

2025-08-08

本文讲述了作者如何构建一个自定义的PostgreSQL表访问方法,实现一个简单的内存存储引擎。作者从构建一个debug版本的PostgreSQL开始,逐步实现了表访问方法API的各个函数,最终实现了创建表、插入数据和查询数据的完整功能。过程中作者遇到了许多挑战,例如调试和理解PostgreSQL内部机制,并通过日志记录和逐步调试解决了这些问题。这是一个极佳的PostgreSQL扩展开发案例,为其他开发者提供了宝贵的经验和参考。

阅读更多
开发 扩展开发

博客作者通过收费咨询为教育慈善募款6000美元

2025-06-30

一位博主从2017年开始持续创作,却苦于难以与志同道合者建立联系。去年11月,他尝试以每次100美元的价格提供咨询服务,并将款项捐赠给教育非营利组织。此举出乎意料地成功,不仅为他带来了近6000美元的捐款,也让他结识了众多来自世界各地的有趣人士,从风险投资家到学生,涉及数据库趋势、程序员发展、开发者营销等多个领域。虽然这种方式存在一些问题,例如难以兼顾所有寻求帮助的人,但他认为这是一个简单易行、持续有效的慈善募款模式,并希望继续坚持下去。

阅读更多

别等被要求,主动创造机会:一位程序员的职业晋升秘诀

2025-04-23

一位程序员分享了他从开发者到联合创始人再回到开发者的职业历程。他发现,职业头衔并非限制,而是最低期望值。他建议,职业发展应聚焦于自身能力、公司需求和个人兴趣的交集。与其等待晋升,不如主动承担未完成的任务,展现主观能动性。即使不被现有公司赏识,这些经验也能为未来求职加分。作者以自身为例,列举了主动创建公司通讯、撰写内部文档等事例,证明主动创造机会的重要性。

阅读更多
开发 主动性

使用一个巧妙技巧构建无服务器 ACID 数据库(原子 PutIfAbsent)

2024-09-30

本文介绍了如何使用 Go 语言实现一个类似于 Delta Lake 的无服务器 ACID 数据库。该数据库利用原子性的 PutIfAbsent 操作来实现并发控制和快照隔离。文章详细讲解了数据库的基本原理、文件存储要求、事务处理流程以及数据写入和读取操作的实现细节。最后,作者通过测试用例演示了并发写入和读取操作的行为,并展望了未来可以扩展的功能。

阅读更多
未分类 Delta Lake

系统编程聚会的复兴

2024-07-07

本文回顾了近年来技术聚会从产品推销到高质量系统编程分享的转变。作者以纽约系统编程聚会为例,讲述了创办过程中的挑战,如寻找场地和演讲嘉宾,以及如何保持高质量内容。作者还介绍了全球范围内其他系统编程聚会的兴起,并为有兴趣组织类似聚会的人提供了一些建议。

阅读更多
未分类 技术聚会

预写日志并非实现数据库持久性的唯一途径

2024-07-01

文章探讨了数据库持久性的概念,以及预写日志(WAL)在其 中的作用。文章指出,虽然WAL是大多数数据库设计中实现持久性的关键,但并非唯一途径。数据库可以通过在响应客户端请求之前将长期数据结构持久化写入磁盘来实现持久性,尽管这种方式效率低下。文章还介绍了其他实现持久性的方法,如fsync、group commit和数据校验等,并讨论了WAL在逻辑复制等方面的应用。

阅读更多

困惑是灵感之源

2024-06-18

本文认为,困惑是学习和创作的灵感来源。我们不应该害怕困惑,而应该积极地探究困惑背后的原因。作者鼓励读者将自己遇到的困惑以及思考过程记录下来,并分享给他人,这将有助于加深理解和促进共同进步。

阅读更多
未分类

八年科技聚会组织经验谈

2024-06-03

本文作者回顾了自己八年来组织各种科技聚会的经验,包括线下和线上,从最初在费城和纽约组织小型软件开发聚会,到后来创建线上Discord社区和举办虚拟技术分享会。作者总结了组织聚会过程中的挑战和收获,并分享了一些实用技巧,例如如何低调地发起活动、设定明确的参与标准以及寻找赞助等。作者认为,组织聚会需要付出努力,但也是拓展人脉、学习新知的好方法。

阅读更多

我是如何运营软件读书会的

2024-05-30

本文作者分享了他是如何运营软件读书会的经验。作者采用线上形式,使用谷歌邮件组作为讨论平台,并招募志愿者担任每章节的讨论引导者,以降低组织者的工作量并提升讨论的多样性。作者建议引导者分享个人见解而非进行章节总结,并强调了设定友好、鼓励的讨论氛围的重要性。此外,作者还分享了选择书籍、管理讨论节奏、以及利用电子邮件进行高效沟通等方面的经验。

阅读更多