CRDTs:实现强最终一致性的利器

2025-09-09
CRDTs:实现强最终一致性的利器

CRDTs(冲突免费复制数据类型)是一种能够在多个节点之间复制、独立编辑并最终合并的数据结构。文章深入探讨了CRDTs如何实现强最终一致性(SEC),这是一种比传统最终一致性更强大的模型。SEC保证了即使在多个节点独立更新的情况下,数据也能自动且确定性地解决冲突,从而实现低延迟、高容错和离线功能。作者认为,CRDTs是构建强最终一致性系统的基石,其应用前景远不止协同编辑和多人待办事项列表,而是扩展到分布式数据库等领域。

阅读更多

依赖地狱:重新思考软件依赖的成本

2025-07-18
依赖地狱:重新思考软件依赖的成本

本文批判性地审视了软件依赖的弊端。作者认为,依赖并非免费的午餐,它会带来学习成本、维护成本、安全风险和部署复杂性等问题。文章以TigerBeetle数据库为例,强调了“零依赖”策略的优势。作者提出了一个评估依赖的框架,包含普遍性、稳定性、深度、人体工程学和密封性五个方面,并以POSIX系统调用、ECMA-48终端控制码和Web平台为例,说明如何运用该框架评估依赖的优劣。最终,文章呼吁开发者批判性地思考依赖的成本与收益,谨慎选择依赖项。

阅读更多
开发

io_uring:文件想成为演员?

2025-01-04
io_uring:文件想成为演员?

高性能Linux应用领域正在发生变革,io_uring改变了我们与操作系统的交互方式。它基于两个队列:提交队列(发送操作)和完成队列(读取结果)。结合事件循环,无需等待系统调用完成即可返回控制权,只需将操作放入队列。这与Actor模型惊人地相似:Actor模型中,对象通过发送消息进行并发计算,这与io_uring发送操作到文件描述符再异步接收响应的过程非常类似。这暗示着操作系统正朝着异步、自主运行的方向发展,传统系统调用方式或许已成为一种过时的抽象。

阅读更多
开发