[译] Cache warming: Agility for a stateful service (一)

栏目: 后端 · 发布时间: 7年前

内容简介:图 OWLIE by Mickael Lelièvreby Deva Jayaraman, Shashi Madappa, Sridhar Enugula, and Ioannis Papapanagiotou

[译] Cache warming: Agility for a stateful service (一)

图 OWLIE by Mickael Lelièvre

by Deva Jayaraman, Shashi Madappa, Sridhar Enugula, and Ioannis Papapanagiotou

译: 麦芽面包

原文:

https://medium.com/netflix-techblog/cache-warming-agility-for-a-stateful-service-2d3b1da82642

EVCache现在是Netflix平台的一个基础部分(我们叫它一层),保存了PG级的数据。我们的缓存层服务了包括登录,个性化,搜索,回放等许多场景。它是由千记的节点和百记的集群组成,由于我们的用户增长所以它需要经常常规性地进行扩容。为了满足我们对缓存的需求,我们最近讨论了应用数据缓存的进化:从RAM到SSD。

缓存的存储能力可以通过横向或纵向扩展(一些情况是从RAM到SSD)。许多服务每天进行千亿级别的查询,我们缓存基础设施的网络能力。当我们由于存储或网络的原因需要对缓存进行扩展时,我们的方式是提供一个新的空缓存,双写到老缓存和新缓存中,然后让数据在老集群中的TTL到期时失效。这个方法工作的很好。但当每次扩容时,我们都需要在TTL区间关注老缓存和新缓存集群。这个方式对于有些集群中存在不过期的item或一些会变化的item会有问题。并且在节点上自然地预热数据会导致在缓存替换时出现一些数据丢失。

[译] Cache warming: Agility for a stateful service (一)

图1. 新部署的EVCache数据路径

为了解决以上提到的问题,我们引入了EVCache缓存预热设施,它具备以下能力:

复制预热:一种从一个已存在的节点尽可能快的将数据复制到新节点并且不影响客户端使用已存在的节点的机制。

实例预热:一种将当前节点替换或停止后能使用非当前节点的数据来进行启动的机制。

Cache Warmer

设计缓存预热系统的目标是:

  • 减少当前EVCache客户端的网络影响

  • 最小化当前EVCache节点的内存和磁盘使用。

  • 减少预热时间

  • 对于何时(高峰/低峰)进行预热没有限制。

之前的方法

我们试验了几种设计方式来达到这些需求。

Piggybacking on Replication

Netflix的云部署模型是 主-主,所以我们需要保证在AWS的三个region中同步所有EVCache集群。我们需要建一个使用自定义Kafka的基于多region的复制系统。在我们最初的迭代中,我们考虑可以使用Kafka的队列消息来对新节点进行预热。但是,一个问题是这个方式需要我们在TTL过期前(可能几周)存储所有的key,这样成本较高。我们也遇到了key的重复复制问题,尤其是过期的那种。

微信公众号「麦芽面包」, id darkjune_think

开发者 / 科幻爱好者 / 硬核主机玩家 / 业余翻译家 / 书虫

交流 Email: zhukunrong@yeah.net


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

网页美工传奇

网页美工传奇

姜伟 / 机械工业出版社 / 2004-5 / 27.0

本书作为一本专门针对网页美工的书籍,在阐述网页设计理念的基础上,以生动的实例引导读者深入地掌握网页的美工技术,使读者在短时间内就可以迅速地提高自己的美工能力。全书共分为11章,分别介绍色彩知识、设计创意、网页规划、广告、背景、按钮、图形处理、文字效果、动画制作、CSS和JavaScript应用等内容。本书主要面向具有一定Flash和Photoshop基础的读者,对于专业的网页设计人员来说,更是一本......一起来看看 《网页美工传奇》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具