netflix oss_Netflix OSS:用Hollow改变游戏

netflix oss

Netflix的Drew Koszewnik在宣布Hollow的博客文章中写道,软件工程师经常遇到必须分发不适合“大数据”标签的数据集的问题。 解决这些问题的一些最常见方法是将数据保留在集中的位置并进行序列化,然后将其分发给保留本地副本的使用者。

每条路径都有其自身的挑战,这就是工程师经常选择混合方法的原因-“将经常访问的数据缓存在本地,并远程获取'长尾'数据”。 这种方法也不是没有挑战:当簿记数据结构和对象通常保持足够长的时间以至于无法被提升并且对GC行为产生负面影响时,就会消耗大量的缓存堆占用空间。

Netflix的工程师意识到,混合方法通常会带来错误的节省,并得出结论,最终使取代Zeno的 Hollow成为现实。

如果您可以 以一种 非常有效的 方式 缓存 所有内容 ,那么您通常可以更改游戏 - 并使用更少的堆和CPU来将整个数据集存储在内存中,而不是只保留其中一部分

需要空心

Netflix Hollow是一个Java库和综合工具集,用于利用小型到中型的内存中数据集,这些数据集从单个生产者分发给许多消费者以进行只读访问。 它是在服务器忙于以最大容量或接近最大容量服务于请求的基础上构建的,其目的是解决内存数据集的扩展挑战。

Hollow专注于 整个 只读数据集 保留 在消费者的内存中; 它避免了从部分缓存更新和逐出数据的后果。 此外,就内存解决方案而言 ,它在适当的数据集大小方面 扩大了规模

敏捷性与稳定性

Hollow旨在提高团队在处理与数据相关的任务时的敏捷性。 尽管它的优点之一是能够自动生成   基于特定数据模型的自定义API,从而使消费者能够凭借IDE代码完成的优势直观地与数据进行交互,“真正的优势来自不断使用Hollow。” 根据Koszewnik所说,“一旦您的数据为空心数据,它就有更大的潜力。”

就稳定性而言,Hollow不受环境问题的影响,例如网络中断,磁盘故障或集中式数据存储中的嘈杂邻居。 Netflix工程师使用它来表示关键数据集,这些数据集是在满足最大容量或接近最大容量的忙碌客户需求的服务器上实现Netflix体验所必需的。

好处

空心数据集是独立的,这意味着不需要用例特定的代码来附带序列化的Blob,以便框架可以使用它。 另外,Hollow在设计时考虑了向后兼容性 ,因此可以减少部署频率。 它带有大量的预制工具 ,并且使用库提供的基本构建块来创建自己的工具非常简单。

“如果特定记录看起来有问题,您可以通过对历史记录工具的简单查询来准确指出更改的内容和发生的时间。 如果发生灾难,并且不小心发布了错误的数据集,则可以 将数据集 回滚 到错误发生之前,从而停止生产问题。 由于状态之间的转换速度很快,因此该操作可以在几秒钟内对整个舰队生效。”

尽管Hollow有很多好处,但请记住,它不适用于所有大小的数据集。 如果数据足够大,则将整个数据集保存在内存中是不可行的。

该代码可在GitHub上获得

翻译自: https://jaxenter.com/netflix-oss-change-game-hollow-130945.html

netflix oss

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值