首页
 

科技新闻

时时彩和值表 > 科技新闻 > Facebook开源节约又一次用fbscribe改革

Facebook开源节约又一次用fbscribe改革

点击:22时间:2018-06-19

在今天发表的博客文章中,Facebook宣布将发布另一个版本的节约工具集——一个软件库和代码生成工具的集合,这些工具可以用来自动生成分布式应用程序的客户端和服务器代码。

「我们并没有让这一点发生突破性的改变,」Facebook基础设施工程师、前Tumblr工程副总裁布雷克·马西尼在接受Ars采访时说。“它仍然可以与传统的节约应用程序交互。但是Apache scribe中的c++和这个有很大的不同——我们基本上用c++做了一大堆工作来提高可扩展性,这对我们很重要,因为我们很多流行的服务都是用scribe构建的。“

目前尚不清楚这些更改将如何或甚至纳入现有的Apache Foundation scribe项目,该项目是从2007年根据Apache许可证开放源代码的Facebook创建的。新版本fbscribe增加了许多新功能,旨在处理更大、更复杂的服务集合,一个新的c++代码生成器,以及旨在创建在负载较重时内存占用较少、硬件需求较少的服务的组件。

节约需要大量的工作来为分布式应用程序创建远程过程调用( RPC )接口——驱动Facebooks平台和其他主要Web应用程序的组件之间的网络通信,以及许多移动应用程序的后端。除了c++,它还可以用多种语言生成代码,包括Java、Ruby、Perl、Python、PHP和C 9284,让开发人员能够专注于实际的处理和演示代码。scribe使用简单的接口定义文件格式来描述服务发送和接收的数据结构,并使用该描述将一组库组合在一起作为生成的代码。

saffile原本是为简单的RPC服务设计的,它只能处理有序的操作,“原始版本遭受了前端阻塞,”Matheny说。“你会按照发送的顺序收到请求。“因为有些请求比其他请求耗时更长,所以基于节约的应用程序在等待处理更长请求的同时,性能会受到很大影响。“所以我们增加了对乱序操作的支持,所以你会得到第一个准备好的。“

为了使异步请求处理更好地工作,Facebook工程师必须提高生成的c++代码的内存处理能力。scrifts原始c++生成的代码一遍又一遍地为每个请求重用相同的内存空间,这使得它无法无序地处理请求。因此,Facebook工程团队从名为IOBuf的开源愚蠢库推出了一个库,该库为每个请求请求新的缓冲区,并进行了一些优化,以减少它造成的性能冲击。

添加的另一个关键功能是名为THeader的新报头协议,它允许将新功能添加到服务中,而不破坏与现有节约服务的兼容性。“在Tumblr,我们有自己的版本,”Matheny说。“它可以用于指定有关请求的元数据信息,进行分布式跟踪,并显示资源的过载程度。那么我们是在公开寻找它,并把一个版本放在那里,人们可以用它作为参考实现,或者我们可以和Apache一起集成到节约中去。“

关闭