OIL将存储空间抽象化,并与分布式缓存系统VCache配合,降低了Facebook视频延迟的同时,并减少了存储与计算开销。感谢赵化强、李东明完成本文技术审校。
文 / Roberto J Peon, Rishit Shroff
译 / John
技术审校 / 赵化强、李东明
原文 : https://code.fb.com/video-engineering/oil-vcache/
除了通过DAG配置I/O外,OIL还对熟悉的read()API进行了优化。对于大多数系统,当所请求的数据超出当前文件结尾的字节时将产生越界错误。但是OIL的read()调用会阻塞,直到读取到至少一个字节或发生超时 - 即使请求的字节超出最大写入偏移量,也就是能够读取还未写入的字节。(由于不再需要对新数据进行轮询,因此其含义非常深刻。读取文件中的一系列偏移量本质上等价于订阅该范围的偏移量。)通过去掉低效的轮询方案,我们现在可以创建高效的通信系统。
虽然这种功能很强大,但经过一些实际的部署,我们意识到需要另一项调整。为了确保在已经写入完成的文件上的I / O不会产生出乎意料的延迟,OIL允许文件成为永久保持不变状态,这意味着文件的比特值永远不会改变(尽管存储的位置可能仍会改变)。它还确保OIL可以“read()”读取超过文件结尾时,立即返回越界错误。
交错启动允许应用程序在延迟时间和总系统工作时间之间进行权衡。
本文分享自 LiveVideoStack 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!