专栏名称: 聊聊架构
聊聊架构
目录
相关文章推荐
美团技术团队  ·  可信实验白皮书系列04:随机轮转实验 ·  4 天前  
美团技术团队  ·  可信实验白皮书系列03:随机对照实验 ·  4 天前  
架构师之路  ·  爸爸!除了你,沈括,沈万三... ... ·  5 天前  
51好读  ›  专栏  ›  聊聊架构

Facebook使用机器学习手段来自动优化其系统性能

聊聊架构  · 公众号  · 架构  · 2018-07-15 18:54

正文

请到「今天看啥」查看全文


从概念上讲,这种方法类似于声明式编程。SQL 就是这种编程范式的一个很好的例子:工程师只需要指定要计算的内容,然后引擎会找出最佳查询并执行它,而不需要指定如何进行复杂的计算。

在系统中使用声明式编程的挑战在于,要确保能够正确且完整地指定目标。与之前提到的自调整缓存策略一样,如果针对应不应该缓存某项内容的反馈不够准确或不够完整,系统就会很快学会提供不正确的缓存决策,这反而会降低性能。在使用 Spiral 时,精确定义自我调整所需的结果是最困难的部分。不过,我们也发现,经过几次迭代后,工程师往往能够聚焦在清晰而正确的定义上。

Spiral:易于集成和实时预测

为了让 Facebook 的系统工程师能够跟上不断变化的步伐,Facebook 波斯顿办公室的工程师们开发了 Spiral,一个只有很少依赖的小型嵌入式 C++ 库。Spiral 使用机器学习技术为资源受限的实时服务创建基于数据驱动的反应式方案。与手工编码相比,这个系统可以更快地开发和维护这些服务。

要集成 Spiral,需要在代码中添加两个调用:一个用于预测,一个用于反馈。预测调用是用于做出决策的智能输出,例如“该项是否应该被放进高速缓存?”预测调用为快速的本地计算,并且会在每个决策上执行。

反馈调用用于在某些情况下提供反馈,例如“此项在缓存中已过期但从未被命中,因此我们可能不应该缓存这样的项。”







请到「今天看啥」查看全文