虽然公司首席云架构师AdrianCockcroft可能已经悄悄的跳槽了,但Netflix仍需要通过增强或改善现有的Amazon云服务来支撑他们的业务。 这一次,它的开源S3mper库已经经过优化和测试,这样可以确保在AWS巨大的S3存储服务里有更好的数据存储一致性。S3mper遵循Apache License 2.0。 通常,在NetflixTech Blog上,尽管我们讨论的Amazon服务非常棒,但它需要变得更好来满足Netflix的需求。Netflix高级软件工程师DanielWeeks在他的博客上例举了S3的“99.999999999%的耐久性、99.99%的可用性、有效地无限存储、版本控制(数据恢复)、无处不在的访问”来说明它巨大的优势。 因为Netflix将S3作为所有数据仓库“真实的来源”,数据一致性是很重要的。它希望确保使用最新数据,但是因为S3存储太多数据——截止到去年四月已经有2万亿对象——其中大部分是变化的,一致性是一个问题。这对Netflix来说是真实存在的,但是对这些对S3用户(对数据一致性要求的不是那么严格)来说不见得是个问题。 需要更好的一致性可以采用二次索引“在S3上支持原始数据的同时编制文件元数据目录,”Weeks 写道。但他同时表示这可能有问题。他说,在小范围里,你可以通过使用“一致的、二次索引在S3上支持原始数据的同时为文件元数据编制目录”得到你需要的一致性。但随着规模增大,情况会变得越来越棘手。一般来说,只要二次索引能够处理所有的请求,它就会正常工作。不过,当你依赖两个独立系统时,数据丢失和性能冲击的风险会随之上升,他说。 这里有s3mper——它使用AWS DynamoDB作为二次索引,Weeks写道: “S3mper是一个通过使用二次索引跟踪文件元数据的实验研究法,它提供一致性的读写操作。目的是判断当一个S3列表操作返回不一致的结果时,可以提供相应的响应。我们利用Hadoop File System接口实现了S3mper,同时利用DynamoDB作为二次索引跟踪文件元数据。我们选择DynamoDB的原因不仅由于它的功能类似于S3(例如高可用性、通过复制耐久性),而且还增加了一致性操作并提升性能。” 这是高科技产品,所以需要阅读整个文章来获得所有的细节,而我接触的几个AWS商家听到S3mper都非常激动。这对于利用S3来进行大量的批处理,以及对一致性要求很苛刻的金融或医疗领域会非常有用,一位工程师这样说到。 但是ServerDensity创始人兼首席执行官David Mytton却很迷惑:“在被我们的应用服务器弄崩溃之前,我们最初利用S3部署系统到群集来创建产品。由于我们看到它反复无常,我们切换到Softlayer Object Store,这样我们就能确保我们的服务器总是得到正确的代码,”Mytton通过Email说。 理论上,S3mper将有助于确保您得到期望的目标,而无需求助于“dumb”工作区,他说。数据处理以及数据一致性课题将影响未来的应用程序。 原文链接:S3mper Fi! Netflix open sources library to make Amazon S3 even more awesome |