2作者: rescrv6 个月前
大家好,我是 Robert Escriva。我于 2017 年在康奈尔大学计算机科学系获得了博士学位。三年前,我经历了一次精神病发作,它彻底颠覆了我的世界。 从那时起,我一直在将我在研究生院学到的一项技能——即调试分布式和复杂系统——应用于我自己的思维。 我所发现的都写在了一本 [书 (pdf)](<a href="https://rescrv.net/engineering-schizophrenia.pdf" rel="nofollow">https://rescrv.net/engineering-schizophrenia.pdf</a>) 里,这本书讲述了工程学、我特有的精神分裂症妄想,以及像我一样曾经受苦的人如何找到一条走出迷雾,到达彼岸的道路。 这并不是一本治愈回忆录;它是一本指南,也是对所有从未停下来问过“如果我的大脑开始失灵会发生什么?”的人的警示。 我写作是因为我发现的不是一个终点,而是一个过程。对我来说,对像我这样的人来说,这是一个持续进行的过程。我也相信,使用我们应用于基于机器的系统的相同技术,可以将其自动化。 我正在寻找其他认识到人类思维重要性的人,来参与关于这个话题的讨论。 祝大家黑客精神愉快, Robert
1作者: samebaker226 个月前
只需粘贴产品链接,回答几个关于您需求和偏好的个性化问题,我们的 AI 就会分析您的回答,提供冷静、理性的推荐。 您可以粘贴来自任何电商网站(包括亚马逊、eBay、百思买和大多数在线零售商)的产品链接。我们的 AI 会分析产品,生成定制问题。
4作者: simonebrunozzi6 个月前
1作者: yousef066 个月前
大多数共识库(Raft、Paxos)将状态机视为一个纯粹的黑盒。这没问题,直到你的状态机需要真正做一些事情,比如给信用卡收费、触发 Webhook 或发送电子邮件。 如果领导者在副作用发生后但在提交之前崩溃,你就会得到重复的结果。这是我尝试从基本原理解决这个问题的方法:构建 chr2,使崩溃安全的副作用成为一等公民。 机制: 复制发件箱:副作用作为“待处理”存储在复制状态中。只有领导者在围栏令牌下执行它们。 持久围栏:清单使用原子 tmp+fsync+rename 持久保存最高的视图。这确保了“僵尸”领导者无法唤醒并重复执行过时的效果。 确定性上下文:应用程序代码从日志中接收确定性 RNG 种子和 block_time,确保在重放期间 1:1 的状态转换。 严格的 WAL:条目经过 CRC 校验并进行哈希链。它的设计是在日志中间损坏时选择停止,而不是猜测。 权衡:副作用是有意为之的至少一次;“恰好一次”需要稳定的效果 ID 以进行接收端去重。这是一个 CP 系统,安全优先于可用性。 仓库:[https://github.com/abokhalill/chr2](https://github.com/abokhalill/chr2) 如果你曾经经历过领导者在半途死亡时“恰好一次”崩溃,你就会确切地知道我为什么构建这个。