The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO ConferencesYouTube ↗
延伸阅读 1
字幕解读
Sasa Juric 将 Erlang/Elixir 的 BEAM 运行时视为系统能力的基础:轻量进程通过消息协作,彼此隔离故障与延迟;抢占式调度、运行时观测和进程取消让系统能在局部出错时继续服务并在线排障。后半展示集群分布与单一技术栈的优势,同时承认分布式 BEAM 仍有严重机械问题,且技术统一不应成为目标本身。
英文字幕轨道 · 引文按字幕原文展示,可点时间戳回看片段。
内容要点
- BEAM 进程是独立顺序执行单元,使用消息传递协作;隔离使单个任务崩溃或长时间运行不必拖垮其他用户。
- 抢占调度兼顾整体进展而非单一任务的最高效率;远程 shell、进程信息与追踪可用于在线定位和终止失控进程。
- 同一运行时支持节点集群和较统一的开发运维流程,但作者明确指出分布式 BEAM 仍有严重问题,统一技术栈也不是目的。
视频章节 6
- BEAM 进程与消息传递
- 隔离故障与延迟
- 在线观测与排查失控进程
- 节点集群与分布式服务
- 技术统一的收益与代价
- 快速起步与长期扩展
具体观点与证据 3
BEAM通过进程隔离让局部计算崩溃时其他工作继续,并可由关联进程接收退出消息。
隔离不免除修复错误;无限循环不断累积仍可能耗尽资源。
when a process crashes everything else progresses right so most of the system still works频繁抢占把CPU公平分给并发活动,以牺牲单个活动的最高效率换取整体持续响应。
针对服务型并发工作负载,不宣称单任务吞吐量最高。
it promotes the progress of the system as a whole at the expense of the maximum efficiency of any single activity在满足需求时,用统一语言与运行时承载系统可减少成员必须学习的异构技术,降低协作门槛。
演讲者的项目经验;内建方案并不具备所有独立产品的功能与性能。
the teamwork in general is improved because the technical bar is significantly lower补充字幕原文 2
把活动放入不同进程可以隔离其失败;讲者以局部计算崩溃而其他服务继续运行作演示。
separating failures by separating things into different processes作者认为在同一 BEAM 技术体系内完成更多工作可降低团队成员进入和协作的技术门槛。
the technical bar is significantly lower解读边界
演讲以一个演示系统说明 BEAM 的进程、调度、观测及集群能力,并非对所有负载的性能比较;作者承认分布式 BEAM 在运行时和高层库仍有严重问题。字幕为文本依据,未核听音频。