【转载】Spanner:Google的全球分布式数据库(Spanner: Google’s Globally-Distributed Database)

Spanner:Google的全球分布式数据库

Spanner: Google’s Globally-Distributed Database

贡献:分布式数据库领域的划时代之作,被称为 “下一代分布式数据库的标杆”,重新定义了分布式关系数据库的技术路线。

James C. Corbett、Jeffrey Dean、Michael Epstein、Andrew Fikes、Christopher Frost、JJ Furman、Sanjay Ghemawat、Andrey Gubarev、Christopher Heiser、Peter Hochschild、Wilson Hsieh、Sebastian Kanthak、Eugene Kogan、李鸿毅、Alexander Lloyd、Sergey Melnik、David Mwaura、David Nagle、Sean Quinlan、Rajesh Rao、Lindsay Rolig、Yasushi Saito、Michal Szymaniak、Christopher Taylor、Ruth Wang、Dale Woodford
Google,Inc.

摘要

Spanner是谷歌推出的一款可扩展、多版本、全球分布且同步复制的数据库。它是首个实现全球范围数据分布、同时支持外部一致性分布式事务的系统。本文阐述了Spanner的架构设计、功能特性、各项设计决策背后的考量,以及一种能够暴露时钟不确定性的新型时间API。该API及其实现对于支持外部一致性以及诸多强大特性至关重要:包括全局范围内的非阻塞历史读取、无锁只读事务,以及原子模式变更。

Continue reading 【转载】Spanner:Google的全球分布式数据库(Spanner: Google’s Globally-Distributed Database)→

【转载】弹性分布式数据集:内存集群计算的容错抽象(Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing)

弹性分布式数据集:内存集群计算的容错抽象

Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing

贡献:提出RDD,促使Spark生态取代MapReduce成为大数据计算的事实标准

作者:Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica
单位:University of California, Berkeley


摘要

我们提出了弹性分布式数据集(Resilient Distributed Datasets,简称RDD),这是一种分布式内存抽象,能够让程序员在大型集群上以容错的方式执行内存计算。RDD的提出,旨在解决两类现有计算框架处理效率低下的应用场景:迭代算法与交互式数据挖掘工具。在这两类场景中,将数据保存在内存中可以将性能提升一个数量级。为了高效实现容错,RDD提供了一种受限制的共享内存形式:它是只读数据集,只能通过对其他RDD执行批量操作来构建。但我们的研究表明,RDD的表达能力足以覆盖广泛的计算类型,包括MapReduce,以及Pregel等面向迭代任务的专用编程模型,还能支持这些模型无法覆盖的新型应用。我们在名为Spark的系统中实现了RDD,并通过多种用户应用和基准测试对其进行了评估。

Continue reading 【转载】弹性分布式数据集:内存集群计算的容错抽象(Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing)→

【转载】Kafka:面向日志处理的分布式消息系统(Kafka: A Distributed Messaging System for Log Processing)

Kafka:面向日志处理的分布式消息系统

Kafka: A Distributed Messaging System for Log Processing

贡献:提出基于日志的分布式消息队列模型,统一了日志收集与流式数据传输的架构。,如今已成为工业界消息队列的事实标准,支撑了几乎所有实时数据处理场景。

Jay Kreps Neha Narkhede Jun Rao
LinkedIn Corp.

摘要

日志处理已成为消费级互联网公司数据管道中的核心组成部分。本文介绍了Kafka——一款我们为采集与传输高容量日志数据、实现低延迟交付而开发的分布式消息系统。该系统融合了现有日志聚合系统与消息系统的设计思想,同时适用于离线与在线消息消费场景。我们在Kafka中做出了诸多非常规但具备实用性的设计选择,以实现系统的高效性与可扩展性。实验结果表明,与两款主流消息系统相比,Kafka具备更优异的性能表现。目前Kafka已在生产环境中投入使用一段时间,每日可处理数百GB的新增数据。

Continue reading 【转载】Kafka:面向日志处理的分布式消息系统(Kafka: A Distributed Messaging System for Log Processing)→

【转载】Dynamo:亚马逊高可用键值存储系统(Dynamo: Amazon’s Highly Available Key-value Store)

Dynamo:亚马逊高可用键值存储系统

Dynamo: Amazon’s Highly Available Key-value Store

贡献:NoSQL领域的开山之作,和Bigtable并列为分布式NoSQL的两大技术基石

Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall 和 Werner Vogels

Amazon.com

摘要

大规模场景下的可靠性是亚马逊(全球最大的电商平台之一)面临的最大挑战之一;哪怕是最轻微的服务中断都会造成重大的经济损失,并影响客户信任。亚马逊平台为全球众多网站提供服务,其底层基础设施由分布在全球各地数据中心的数万台服务器和网络组件构成。在这种规模下,大大小小的组件故障会持续发生,而面对这些故障时持久化状态的管理方式,决定了软件系统的可靠性与可扩展性。

本文介绍了Dynamo的设计与实现,这是一款高可用键值存储系统,亚马逊的部分核心服务使用它来提供“始终在线”的服务体验。为了达到这一可用性水平,Dynamo在特定故障场景下会牺牲一致性。它大量使用对象版本控制与应用辅助的冲突解决机制,为开发者提供了一种全新的接口模式。

分类与主题描述
D.4.2 [操作系统]:存储管理;D.4.5 [操作系统]:可靠性;D.4.2 [操作系统]:性能;

通用术语
算法,管理,度量,性能,设计,可靠性。

Continue reading 【转载】Dynamo:亚马逊高可用键值存储系统(Dynamo: Amazon’s Highly Available Key-value Store)→

【转载】面向松耦合分布式系统的Chubby锁服务(The Chubby Lock Service for Loosely-Coupled Distributed Systems)

面向松耦合分布式系统的Chubby锁服务

The Chubby Lock Service for Loosely-Coupled Distributed Systems

贡献:分布式协调服务的开山之作,催生了ZooKeeper,成为所有分布式系统的标准协调组件

Mike Burrows,Google Inc.

摘要

本文介绍了Chubby锁服务的实践经验,该服务旨在为松耦合分布式系统提供粗粒度锁能力,以及高可靠(但低容量)的存储功能。Chubby提供的接口与带有咨询锁的分布式文件系统非常相似,但设计的侧重点在于可用性与可靠性,而非高性能。该服务的多个实例已投入使用超过一年,其中部分实例可同时承载数万个客户端。本文阐述了Chubby的初始设计与预期用途,将其与实际使用情况进行对比,并解释了为适配这些差异而对设计做出的调整。

Continue reading 【转载】面向松耦合分布式系统的Chubby锁服务(The Chubby Lock Service for Loosely-Coupled Distributed Systems)→

【转载】Bigtable:一种面向结构化数据的分布式存储系统(Bigtable: A Distributed Storage System for Structured Data)


Bigtable:一种面向结构化数据的分布式存储系统

Bigtable: A Distributed Storage System for Structured Data

贡献:大数据三大论文,开启了大数据时代

作者:Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber

摘要

Bigtable是一种用于管理结构化数据的分布式存储系统,其设计目标是扩展至超大规模:跨越数千台商用服务器,存储PB级别的数据。Google内部有诸多项目都使用Bigtable存储数据,包括网页索引、Google Earth以及Google Finance等。这些应用对Bigtable的需求差异极大,无论是数据规模(从URL、网页到卫星影像)还是延迟要求(从后端批量处理到实时数据服务)皆是如此。尽管需求千差万别,Bigtable仍成功为所有这些Google产品提供了灵活、高性能的解决方案。本文将介绍Bigtable提供的简洁数据模型(该模型赋予客户端对数据布局与格式的动态控制权),并阐述Bigtable的设计与实现细节。

Continue reading 【转载】Bigtable:一种面向结构化数据的分布式存储系统(Bigtable: A Distributed Storage System for Structured Data)→

【转载】MapReduce:大型集群上的简化数据处理(MapReduce: Simplified Data Processing on Large Clusters)

MapReduce:大规模集群上的简化数据处理

MapReduce: Simplified Data Processing on Large Clusters

贡献:大数据三大论文,开启了大数据时代

Jeffrey Dean, Sanjay Ghemawat
Google, Inc.


分类与主题描述

D.4.1 [操作系统]:进程管理——并发;分布式系统

通用术语

性能、设计、可靠性、算法

关键词

MapReduce、分布式处理、大规模集群


摘要

MapReduce是一种编程模型,也是一种用于处理和生成大规模数据集的相关实现。用户指定一个map函数来处理键值对,生成一组中间键值对,再指定一个reduce函数来合并所有关联到同一个中间键的中间值。

许多现实世界中的任务都可以用这个模型来表达,本文将展示这一点。

用这种函数式风格编写的程序可以自动在大规模商用机器集群上并行执行。运行时系统负责处理输入数据的分区、在一组机器上调度程序执行、处理机器故障,以及管理所需的机器间通信。这使得没有并行和分布式系统经验的程序员也能轻松利用大型分布式系统的资源。

我们的MapReduce实现运行在由数百台机器组成的大型集群上,具有高度的可扩展性:一个典型的MapReduce计算会在数千台机器上处理数TB的数据。程序员发现这个系统易于使用:目前已经实现了数百个MapReduce程序,每天在Google的集群上运行的MapReduce作业超过一千个。

Continue reading 【转载】MapReduce:大型集群上的简化数据处理(MapReduce: Simplified Data Processing on Large Clusters)→

【转载】谷歌文件系统(The Google File System)

谷歌文件系统

The Google File System

贡献:大数据三大论文,开启了大数据时代

Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung
Google, Inc.


摘要

我们设计并实现了谷歌文件系统(Google File System, GFS)——这是一个面向大规模分布式数据密集型应用的可扩展分布式文件系统。它能够在廉价的商用硬件上运行,同时提供容错能力,并向大量客户端提供高聚合性能。

尽管与此前的分布式文件系统有着诸多相同目标,但我们的设计源于对应用负载和技术环境的观察(包括当前现状与未来预期),这些观察反映出我们与一些早期文件系统假设存在显著分歧。这促使我们重新审视传统选择,并探索截然不同的设计切入点。

该文件系统已成功满足了我们的存储需求。它作为存储平台在谷歌内部被广泛部署,用于生成和处理各项服务所使用的数据,以及需要大规模数据集的研发工作。截至目前,最大的集群在超过一千台机器的数千块磁盘上提供了数百TB的存储容量,并被数百个客户端并发访问。

在本文中,我们介绍了为支持分布式应用而设计的文件系统接口扩展,讨论了设计中的诸多方面,并给出了微观基准测试与实际应用场景下的性能测量结果。

分类与主题描述
D [4]: 3-分布式文件系统

通用术语
设计、可靠性、性能、测量

关键词
容错、可扩展性、数据存储、集群存储

*邮箱:{sanjay, hgobioff, shuntak}@google.com

未经许可,不得以营利或商业优势为目的制作或分发本文的数字或纸质副本;副本需标注本声明及首页完整引用信息。如需其他形式的复制、再发布、在服务器上发布或向列表重新分发,需要事先获得特定许可和/或支付费用。

Continue reading 【转载】谷歌文件系统(The Google File System)→