LinkedIn资深专家:我的NoSQL之路

导读:近日LinkedIn分布式数据系统团队成员Siddharth Anand在其博客上撰写题为“The State of NoSQL in 2012”文章。主要阐述了自身的NoSQL应用经历,同时表达了自己对现今企业NoSQL应用的看法,他认为代码的清晰度以及质量是至关重要的,同时必须坚持自身的设计原则。

如果你已经在互联网公司工作过3年以上的时间,你将不会对云计算和NoSQL的概念感到陌生。在2007年,Amazon公布了其Dynamo(Dynamo是亚马逊的key-value模式的存储平台,具备高可用性、高扩展性和高性能)的详细资料。并详细介绍了Dynamo是如何利用技术集合解决容错等问题,并提供一个灵活的线上购物方案。在过去几年,AWS的工程师一直在默默无闻的完善运行在自身公共云之上的Dynamo。

Siddharth Anand的NoSQL历程

2008年12月,当我还在Netflix软件基础设施团队工作时,我们得知了CAP原理(Consistency、Availability和Partition Tolerance,CAP原则要求在分布式系统只能选择一致性、可用性和分区容忍性其中的两项)。因为CAP原理我们放弃数据中心并租用云计算服务。

在2008年到2010年期间,我们的工作集中在Netflix推出的视频流业务,而CAP原理中的可用性和分区容忍性以及高可用性系统是我们的工作重点。

在2010年我帮助Netflix完成了两次迁移,其一是将Netflix的数据中心迁移到了Amazon AWS之中,其二是将Oracle数据库迁移至SimpleDB。而到了2011年又从SimpleDB迁移到Cassandra,利用Cassandra提供的路由配置,集群可以被部署在多个大洲。

来到2012年,我已经度过了我在LinkedIn的第一个月。经过这一个月时间的熟悉,我知道LinkedIn在内部建立了多种NoSQL系统。包括Voldemort(另一套基于Dynamo的系统)、Krati(单击数据存储)、Espresso(正在积极开发的数据库系统)等。LinkedIn现在正面临着类似3年前Netflix的挑战。