知识卡片
把一切都持久化反而是实现任务可迁移的关键
内容
游戏服务器行业常识是”一切放内存才低延迟,持久化是异端”,但Darkstar反其道而行:存活超过一个任务的数据必须写入数据服务,内存不留重要状态。换来两个能力:任务不依赖本地内存就能被随意挪到别的机器执行,负载均衡因此可行;数据统一经数据服务仲裁,系统才能检测并发冲突,放心让任务多核并行。
参考来源
- 位置:《架构之美》第3章《伸缩性架构设计》3.4.1节《并行与延迟》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0123.xhtml)
- 结论依据:原文明确"Darkstar架构拒绝在服务器的主内存中存放任何重要的信息。所有生存周期超过一次具体任务的数据都需要持久在'数据服务'中……这让基础设施能够检测到并发问题……同时让服务器能够利用多核架构。它也是实现整体伸缩性的关键组件"。
- 原始内容:Darkstar架构拒绝在服务器的主内存中存放任何重要的信息。所有生存周期超过一次具体任务的数据都需要持久在"数据服务"中,这是实现Darkstar基础设施功能的核心……它也是实现整体伸缩性的关键组件。