2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Percolator:大数据集增量更新系统

  • 2010-10-24
  • 本文字数:1728 字

    阅读完需:约 6 分钟

随着需要收集和处理的数据规模以惊人的速率增长,曾经只有 Google 级别的系统才会遇到的可伸缩性需求变得更普遍,并常常需要专门的解决方案。Daniel Peng 和 Frank Dabek最近发表了一篇论文,介绍 Google 索引系统 Percolator 的技术细节。Percolator 目前运行在数千台服务器上,存储了数十 PB 的数据,并且每天要处理数十亿次的更新。

在抓取网页的同时进行索引更新,意味着在新文档不断加入时,需要对已有的总文档库进行持续地更新。这是通过小规模、独立的变换实现海量数据转换任务的一个典型范例。现有的技术基础平台恰恰不能胜任这样的任务:传统 DBMS 无法满足存储量和吞吐率的需求,而 MapReduce 和其它批处理系统无法逐个处理小规模更新,因为它们必须依赖于创建大量的批处理任务才能获得高效率。

Daniel 和 Frank 解释说,尽管索引的过程是一项批处理任务,可以通过一系列的 MapReduce 操作来表现。但每次重新爬完一些页面后要更新索引的时候,由于新增文档和已有文档之间存在链接引用的关系,只对增量部分运行 MapReduce 操作是远远不够的,实际上必须基于整个文档库进行 MacReduce 操作。事实上在 Percolator 出现之前,索引就是以上述的方式更新的。这样带来的主要问题就是由于要对整个文档库重新处理而产生的延迟。

解决此问题的关键是优化增量数据的处理方式。Percolator 的一个关键设计理念是:提供对库中文档的随机访问,以实现对单个文档的处理,从而避免了像 MapReduce 那样对文档全集进行处理。Percolator 通过“快照隔离”实现了遵从 ACID 的跨行及跨表事务,从而满足多线程在多台服务器上对文档库进行转换操作的需求。Percolator 还提供了“观察者(observer)”机制,在用户指定的列发生更新之后,这些观察者会被系统触发,以帮助开发者追踪计算过程所处的状态。

论文作者补充到:

Percolator 是专门针对处理增量更新而设计,但不是用于取代大多现有的数据处理解决方案。那些不能被拆分为单个微小更新的计算任务(比如对一个文件排序)仍然最好由 MapReduce 承担。

Percolator 更适合于在高一致性及在数据量和 CPU 等方面有很高需求的计算任务。对于 Google 来说,它的主要用途是将网页实时地添加到 Web 索引中。运用 Percolator,Google 可以在抓取网页文档的同时来对文档进行处理,从而将平均延迟降低为原来的百分之一,平均文档寿命(document age)降低 50%。

Percolator 建立于分布式存储系统 BigTable 之上。集群里的每台服务器上运行着三个可执行文件:worker, BigTable tablet 服务器 Google File System chunkserver 服务器

所有观察者都被关联到 Percolator worker 上,后者会对 BigTable 进行扫描,一旦发现更新过的列就会在 worker 进程中以函数调用的方式触发(“notification”)相应的观察者。观察者通过向 BigTable tablet 服务器发送读、写 RPC 请求来运行事务,继而触发后者向 GFS chunkserver 服务器发送读、写 RPC 请求。

Percolator 没有提供用于事务管理的中心服务器,也没有全局锁侦测器。因为 Percolator 不需要像运行 OLTP 任务的传统 DBMS 一样,对低延迟有很高要求,所以它采取了一种延迟的方式来清理锁,也因此在事务提交时造成了数十秒的延迟。

这种方法增加了事务冲突时的延迟,但保证了系统可以扩展到几千台服务器的规模……尽管增量数据处理在没有强事务的情况下也能进行,但事务使得开发者更容易地去分析系统的状态,并避免将错误引入到长时间运行的文档库中。

Percolator 的架构可以在普通廉价服务器集群上线性扩展多个数量级。在性能方面,Percolator 处于 MapReduce 和 DBMS 之间。和 DBMS 相比,在处理同样数量的数据情况下,Percolator 由于其分布式架构,资源消耗远大于 DBMS,同时它还引入了约 30 倍的额外性能开支。和 MapReduce 相比,Percolator 可以以低很多的延迟来处理数据,同时需要额外的资源来支持随机查找。Percolator 自 2010 年 4 月开始为 Google web 搜索提供索引,它利用合理的额外资源消耗,获得了更低的延迟。

不知道读者们是否看见或者预见了对处理海量数据集的快速增长的需求了没有?前不久 Phil Wehlan 问了同样的问题,希望大家给他提供反馈。

查看英文原文: Percolator: a System for Incrementally Processing Updates to a Large Data Set

2010-10-24 20:009819

评论

发布
暂无评论
发现更多内容

3 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训

大数据培训:RDD、DataFrame的区别

@零度

大数据 spark

MVCC 时光机:在 TiDB 的时空自由穿梭丨渡渡鸟复兴会赛队访谈

PingCAP

iuap 助力鹏鹞环保打造智慧水务大数据运营管理平台

用友BIP

用友 用友iuap

黄东旭: 关于基础软件产品价值的思考

PingCAP

“东数西算”超级工程上马,利好云计算但暗藏汹涌

行云管家

云计算 混合云 多云 东数西算

Java 中线程池的 7 种创建方式!

王磊

Java 面试

uni-app技术分享| uni-app常见问题(二)

anyRTC开发者

uni-app 音视频 WebRTC 移动开发 视频通话

基于小熊派开发板设计的云端绿化管理系统

DS小龙哥

IoT 3月月更

【51单片机】介绍

謓泽

单片机 3月月更 51

3月技术专题月火热开启!快来一睹为快!

用友BIP

用友 用友iuap

ModStartCMS 模块化建站系统 Laravel 9.0 版 v3.3.0

ModStart开源

分布式数据库排序及优化

vivo互联网技术

分布式数据库

如何在windows下成功的编译和安装python组件hyperscan

华为云开发者联盟

正则表达式 windows hyperscan python组件 正则表达式引擎

千万级学生管理系统的考试试卷存储方案

Geek_8d5fe5

「架构实战营」

安全大讲堂 | 2022产业趋势洞察:网络安全的下一个十年

腾讯安全云鼎实验室

网络安全 未来发展

财富管理2.0时代,券商数字营销突围之路

Speedoooo

数字化转型 解决方案 营销数字化 数字化业务战略 数字营销

Apache SeaTunnel & Kyuubi 联合 Meetup | 见证中国大数据崛起!

Apache SeaTunnel

大数据 开源 大数据平台 apache 社区 Apache SeaTunnel

几种如何判断环境是否连上网方法!推荐最后一种

华为云开发者联盟

网络 nodejs ipv4 上网 网络接口

ScrollView 和 RelativeLayout两个布局技巧

逆锋起笔

android xml 3月月更 android布局

列存Delta表是个什么东东

华为云开发者联盟

存储 GaussDB(DWS) 列存表 delta表

Java培训高并发之线程的6种状态

@零度

线程 JAVA开发 状态

方舟开发框架容器类API的介绍与使用

HarmonyOS开发者

方舟 HarmonyOS 开发框架

一图了解龙蜥社区 2 月运营大事件

OpenAnolis小助手

Linux 开源 操作系统 运营

功效护肤理念增强,透明质酸继续引领护肤热点

易观分析

护肤 医美 透明质酸

web前端培训:React 核心调度功能的实现

@零度

前端开发 React

技术平台&应用开发专题月 | 一文搞懂全链路监控系统(上)

用友BIP

用友 用友iuap

FinClip 黑客马拉松正式开赛,码力集结,等你来战!

Speedoooo

小程序生态 hackathon APP开发 黑客马拉松 黑客松

CNCF Serverless工作流社区携手华为云FunctionGraph,开拓Serverless编排新时代

华为云开发者联盟

json Serverless 华为云 FunctionGraph CNCF Serverless Workflow

前端实现word、excel、pdf、ppt、mp4、图片、文本等文件的预览

CRMEB

测性能,拿周边|OceanBase 3.1.2版本邀你来玩

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

Percolator:大数据集增量更新系统_Google_Jean-Jacques Dubray_InfoQ精选文章