首页> 中国专利> 分布式缓存自动管理系统和分布式缓存自动管理方法

分布式缓存自动管理系统和分布式缓存自动管理方法

摘要

本发明提出了一种用于数据并行的并行计算的分布式缓存自动管理方案,其中,将客户端的数据集对象的生存期和对应的分布式数据集的生存期绑定起来,即,当在客户端中创建或销毁数据集对象时,在缓存服务器集群中相应地创建或销毁对应的分布式数据集。减轻了程序员的负担,降低了出现错误的可能性。而且,简化了缓存管理协议。

著录项

  • 公开/公告号CN103297485A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 日电(中国)有限公司;

    申请/专利号CN201210055893.0

  • 发明设计人 黄权;罗彦林;

    申请日2012-03-05

  • 分类号H04L29/08;

  • 代理机构中科专利商标代理有限责任公司;

  • 代理人王玮

  • 地址 100191 北京市海淀区学院路35号世宁大厦20层

  • 入库时间 2024-02-19 21:10:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    未缴年费专利权终止 IPC(主分类):H04L29/08 授权公告日:20160224 终止日期:20180305 申请日:20120305

    专利权的终止

  • 2016-02-24

    授权

    授权

  • 2013-10-16

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20120305

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本发明涉及分布式缓存自动管理,具体地,涉及一种用于数据并行 的并行计算的分布式缓存自动管理方案。

背景技术

随着互联网的飞速发展,互联网数据也取得了爆炸式增长。对这些 数据的分析、处理和挖掘,对于互联网服务商和相关领域的传统行业都 有着巨大的意义。然而,由于这些数据规模巨大,如何有效地处理这些 数据成为一个巨大的挑战。

为了处理巨大的网页数据,已开发了被命名为“MAP-REDUCE”的并 行计算平台。MAP-REDUCE平台可以高效地处理数据并行的并行计算业 务。在MAP-REDUCE系统得到广泛应用,并取得巨大成功之后,一个参考 了MAP-REDUCE设计的开源项目HADOOP计算平台发布,也迅速在业界取 得了巨大成功,被用于很多大型互联网企业的很多关键业务。然而, HADOOP计算平台在处理迭代式任务时不够高效。这类迭代式业务通常由 多个MAP-REDUCE任务串联实现,后继MAP-REDUCE任务依赖前一 MAP-REDUCE任务的运算结果,这些中间结果通过分布式文件系统进行传 递。这种串联方式需要重复读写分布式文件系统,从而导致性能的巨大 损失。

为了解决这个问题,开发了一种新的计算平台——“SPARK”。SPARK 平台提出了被称作“弹性分布式数据集”的概念。图1是用于说明分布 式数据集的示意图。如图1所示,一个完整的数据集被切分成多块,然 后存储在缓存服务器集群上。客户端通过分布式数据集的处理器 (handler)来访问对应的数据。SPARK平台利用分布式数据集来对大规 模数据进行操作,并通过缓存中间结果,来避免重复读写分布式文件系 统,从而大幅度提高性能。实验数据表明,SPARK平台处理大规模数据 的性能可达HADOOP的20倍。

在SPARK平台中,分布式数据集即分布式缓存。在SPARK计算平台 的客户端中,有一个数据集(Dataset)对象和一个分布式数据集对应。 程序员通过操作Dataset对象来操作分布式数据集。程序员需要自己管 理分布式数据集,比如,对数据进行缓存或丢弃缓存。这也就意味着 Dataset对象和它对应的分布式数据集的生存期并不一致。这一方面给 程序员带来了额外负担,一方面也容易造成潜在的程序缺陷。

此外,这种相对复杂的缓存管理方式,给缓存管理协议也带来了一 定的复杂性。

发明内容

本发明提出了一种用于数据并行的并行计算的分布式缓存自动管 理方案,其中,将客户端的数据集对象的生存期和对应的分布式数据集 的生存期绑定起来,即,当在客户端中创建或销毁数据集对象时,在缓 存服务器集群中相应地创建或销毁对应的分布式数据集。减轻了程序员 的负担,降低了出现错误的可能性。而且,简化了缓存管理协议。

根据本发明的第一方案,提出了一种分布式缓存自动管理系统,包 括:客户端,用于在本地创建或销毁数据集对象,并触发相应的对于存 储在缓存服务器集群上的分布式数据集的创建或销毁请求;主控端,用 于根据来自客户端的分布式数据集创建或销毁请求,对缓存在缓存服务 器集群上的分布式数据集的数据分片进行管理;以及缓存服务器,用于 根据来自主控端的请求,保存数据分片到缓存器中,或从缓存器中丢弃 数据分片。所述客户端可以包括:客户端开发库,用作提供给应用程序 员的开发库;以及数据集接口,用作访问所述客户端开发库的接口。所 述客户端开发库可以包括:数据集模块,用于创建、销毁和访问数据集 对象;数据集监控器,用于监控数据集对象的创建和销毁,并触发相应 的对于存储在缓存服务器集群上的分布式数据集的创建和销毁请求。

所述主控端可以包括:缓存跟踪器,用于记录分布式数据集中的数 据分片在缓存服务器集群中的具体存放位置,即缓存服务器的标识信息; 以及调度器,用于在创建分布式数据集时,选择相应的缓存服务器集群 来存放数据分片,其中,根据数据集大小和当前缓存服务器的使用情况 来对数据集进行分片。

所述缓存服务器可以包括:缓存器,用于存放数据分片;以及处理 器,用于根据来自主控端的请求,保存数据分片到缓存器中,或从缓存 器中丢弃数据分片。

根据本发明的第二方案,提出了一种分布式缓存自动管理方法,包 括以下步骤:客户端在本地创建或销毁数据集对象,并触发相应的对于 存储在缓存服务器集群上的分布式数据集的创建或销毁请求;主控端根 据来自客户端的分布式数据集创建或销毁请求,对缓存在缓存服务器集 群上的分布式数据集的数据分片进行管理;以及缓存服务器根据来自主 控端的请求,保存数据分片到缓存器中,或从缓存器中丢弃数据分片。 在所述客户端创建或销毁数据集对象时,通过数据集接口,调用客户端 开发库中的数据集模块,创建或销毁数据集对象;创建或销毁数据集对 象的事件触发客户端开发库中的数据集监控器,数据集监控器调用协议 模块,利用与分布式数据集对应的数据编码数据集创建消息或数据集销 毁消息;将数据集创建消息或数据集销毁消息发送给主控端;以及从主 控端接收成功确认消息。

在所述主控端接收到数据集创建消息时,解码来自所述客户端的数 据集创建消息,获得数据集数据;根据调度器的决策,对数据集数据进 行切分,得到数据分片,选择用于缓存数据分片的缓存服务器集群;根 据每一数据分片,编码一条分片创建消息,将分片创建消息发送给缓存 服务器集群中对应的缓存服务器;从缓存服务器接收成功确认消息;利 用缓存跟踪器,记录各个数据分片的位置,即相应缓存服务器的标识信 息;以及向客户端返回成功确认消息。

在所述缓存服务器接收到分片创建消息时,解码来自所述主控端的 分片创建消息,获得数据分片;通过处理器,把数据放入缓存器中;以 及向所述主控端返回成功确认消息。

在所述主控端接收到数据集销毁消息时,解码来自所述客户端的数 据集销毁消息,获得将要销毁的数据集的标识信息;利用缓存跟踪器, 获得用于缓存所述数据集的各个数据分片的缓存服务器集群中的各个缓 存服务器的标识信息;根据每一数据分片,编码一条分片销毁消息,将 分片销毁消息发送给缓存服务器集群中对应的缓存服务器;从缓存服务 器接收成功确认消息;利用缓存跟踪器,清除所述数据集的各个数据分 片的记录;以及向客户端返回成功确认消息。

在所述缓存服务器接收到分片销毁消息时,解码来自所述主控端的 分片销毁消息,获得将要销毁的数据分片的标识信息;通过处理器,从 缓存器中删除所述数据分片;以及向主控端返回成功确认消息。

根据本发明,将客户端的Dataset对象的生存期和对应的分布式数 据集的生存期绑定起来,即,当在客户端中创建或销毁Dataset对象时, 在缓存服务器(Cache Server)集群中相应地创建或销毁对应的分布式 数据集。这样,程序员只需要考虑Dataset对象的生存期管理。或者, 利用一些高级的编程语言特性,程序员可以将Dataset对象的生存期交 由编译系统管理。这样,可以进一步减轻程序员的负担和出现错误的可 能性。随之而来的另外一个优势在于缓存管理协议的简化。

本发明的这种机制保证了Dataset对象和对应分布式数据集的生存 期的一致性,从而让程序员能够通过简单的方式操作分布式缓存,降低 了程序员编写稳定高效的分布式程序的难度。

此外,缓存管理协议的简化也让平台本身的实现变得相对简单。

附图说明

通过下面结合附图说明本发明的优选实施例,将使本发明的上述及 其它目的、特征和优点更加清楚,其中:

图1是用于说明分布式数据集的示意图;

图2是用于说明根据本发明的分布式缓存自动管理系统200的示意 图;

图3和图4是用于说明根据本发明的分布式缓存自动管理方法的操 作顺序图;以及

图5~图7是用于说明本发明的具体实施实例的示意图。

在本发明的所有附图中,相同或相似的结构和步骤均以相同或相似 的附图标记标识。

具体实施方式

下面参照附图对本发明的优选实施例进行详细说明,在描述过程中 省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解 造成混淆。

图2是用于说明根据本发明的分布式缓存自动管理系统200的示意 图。

如图2所示,分布式缓存自动管理系统200包含三部分:客户端 (Client)210、主控端(Master)220和缓存服务器集群(Cache Servers) 230(为了简化描述,图2中仅示出了两个缓存服务器2301和2302,但 本发明并不局限于缓存服务器的具体数目,可以根据需要布置任意数目 的缓存服务器2301~230N)。客户端210上运行程序是由应用程序员编写。 客户端210通过创建和操作一个或者多个数据集(Dataset)对象,来操 作一个或者多个分布式数据集。实际的数据被分发到多个缓存服务器 230(例如,2301和2302)上缓存起来。主控端220负责对大数据进行切 分,选择合适的缓存服务器集群230(例如,2301和2302)来缓存数据, 并对这些缓存服务器(例如,2301和2302)上的缓存数据进行跟踪管理。 缓存服务器(例如,2301和2302)只负责接收主控端220的指令,对数 据进行缓存或者丢弃。

如图2所示,客户端210、主控端(Master)220和缓存服务器230 上的通讯模块2110、2210和2310负责系统各部分之间的网络通讯。客 户端210、主控端(Master)220和缓存服务器230上的协议模块2120、 2220和2320负责对通讯的数据内容进行编码/解码。

客户端210还包括:客户端开发库2130,作为提供给应用程序员的 开发库;数据集接口2140,作为对客户端开发库2130的编程接口。客 户端开发库2130包括:数据集模块2131,负责Dataset对象的创建、 销毁、和数据集访问操作;数据集监控器2132,负责监控Dataset对象 的创建和销毁,并触发相应的对于分布式数据集的创建和销毁请求。

主控端220还包括:缓存跟踪器2230,主要用于记录分布式数据集 中的数据分片在缓存服务器集群230中的具体存放位置;调度器2240, 用于在创建分布式数据集时,选择合适的缓存服务器集群230来存放数 据分片。在主控端220收到客户端210请求创建一个分布式数据集时, 调度器2240根据数据集大小和当前缓存服务器集群230中各缓存服务器 (例如,2301和2302)的使用情况来对数据集进行分片,以实现数据分 片的调度。例如,当需要创建一个由100,000个日志文件组成的数据集, 当前有N=100个可用的性能相同的缓存服务器时,该数据集会被分成100 份,每份由1,000个日志文件组成,每份由一个缓存服务器保存。

缓存服务器230还包括:处理器(handler)2330,用于根据来自 主控端220的请求,来保存数据分片到缓存器2340中,或从缓存器2340 中丢弃数据分片。缓存器2340是用来存放数据分片的容器。

图3和图4是用于说明根据本发明的分布式缓存自动管理方法的操 作顺序图。图3示出了分布式数据集创建过程;以及图4示出了分布式 数据集销毁过程。在本发明中,当在客户端210中创建或销毁Dataset 对象时,在缓存服务器集群230(例如,2301和2302)中相应地创建或 销毁对应的分布式数据集,从而实现了客户端的Dataset对象的生存期 和对应的分布式数据集的生存期的绑定。

如图3所示,在分布式数据集创建过程中,首先,客户端210通过 数据集接口2140调用数据集模块2131创建一个Dataset对象(步骤 S3110)。这个创建Dataset对象的事件触发数据集监控器2132,数据集 监控器2132调用协议模块2120,利用Dataset对应的数据编码一条 dataset_create消息(步骤S3120),并通过通讯模块2110发送给主控 端220(步骤S3130)。

主控端220从自己的通讯模块2210收到来自客户端210的 dataset_create消息,利用协议模块2220解码该dataset_create消息 (步骤S3210)。接着,主控端220根据调度器2240的决策对该数据进 行切分,并选择合适的缓存服务器集群(步骤S3220)。然后,主控端220 根据切分后的数据分片,通过协议模块2220编码若干条slice_create 消息(步骤S3230),并通过通讯模块2210将slice_create消息发送给 对应的缓存服务器230(步骤S3240)。

缓存服务器230从自己的通讯模块2310收到slice_create消息后, 利用协议模块2320对slice_create消息进行解码(步骤S3310)。然后, 缓存服务器230取出实际的数据内容,并通过处理器2330把数据放入缓 存器2340(步骤S3320)。之后,缓存服务器230通过协议模块2320编 码一条success消息(步骤S3330),并通过通讯模块2310将success 消息发送给主控端220(步骤S3340)。

主控端220从通讯模块2210收到success消息,通过协议模块2220 解码(步骤S3250)。缓存跟踪器2230记录该数据分片缓存的位置,也 就是缓存服务器ID(步骤S3260)。之后,主控端220通过协议模块2220 编码一条success消息(步骤S3270),并通过通讯模块2210将success 消息发送给客户端210(步骤S3280)。

客户端210从通讯模块2110收到success消息,通过协议模块2120 解码(步骤S3150)。分布式数据集创建过程完成。

如图4所示,在分布式数据集销毁过程中,客户端210通过数据集 接口2140调用数据集模块2131销毁一个Dataset对象(步骤S4110)。 这个创建Dataset对象的事件触发数据集监控器2132,数据集监控器 2132调用协议模块2120,编码一条dataset_destroy消息(步骤S4120), 并通过通讯模块2110发送给主控端220(步骤S4130)。

主控端220从自己的通讯模块2210收到来自客户端210的 dataset_destroy消息,利用协议模块2220解码该dataset_destroy消 息(步骤S4210)。然后,缓存跟踪器2230获得对应的缓存服务器ID(步 骤S4220),利用协议模块2220编码若干条drop_slice消息(步骤 S4230),然后,通过通讯模块2210将drop_slice消息发给对应的缓存 服务器230(步骤S4240)。

缓存服务器230从自己的通讯模块2310收到drop_slice消息后, 通过协议模块2320解码该drop_slice消息(步骤S4310),然后,通过 处理器2330删除缓存器2340中的对应缓存(步骤S4320)。之后,缓存 服务器通过协议模块2320编码一条success消息(步骤S4330),并通 过通讯模块2310将success消息发送给主控端220(步骤S4340)。

主控端220从通讯模块2210收到success消息,使用协议模块2220 解码该success消息(步骤S4250)。然后,缓存跟踪器2230清除对应 的记录(步骤S4260)。之后,主控端220通过协议模块2220编码一条 success消息(步骤S4270),并通过通讯模块2210将success消息发 送给客户端210(步骤S4280)。

客户端210从通讯模块2110收到success消息,通过协议模块2120 解码(步骤S4150)。分布式数据集销毁过程完成。

[具体实施实例]

下面,以本发明的日志分析应用为例,详细描述Dataset对象和分 布式数据集的生存期的一致性。经常需要从日志数据中提取出错误日志 和警告日志进行分析。下面的例子,展示了在处理这些日志的过程中, 客户端210和缓存服务器集群230的存储情况。

图5所示为客户端210创建原始日志数据集后的情况。原始日志的 Dataset对象存在于客户端210中,原始日志的数据分片存放于缓存服 务器集群230中。原始日志的Dataset对象和原始日志的数据分片是根 据本发明的分布式数据集创建过程(例如,图3)创建的。

图6所示为从原始日志数据集中分析得到错误日志后的情况。通过 日志分析,从原始日志中提取出错误日志,因为错误日志是原始日志的 一部分,因而,同样地,错误日志的Dataset对象存在于客户端210中, 而错误日志的数据分片存放于缓存服务器集群230中。此外,独立于原 始日志,错误日志的Dataset对象和错误日志的数据分片同样是根据本 发明的分布式数据集创建过程(例如,图3)创建的。

图7所示为客户端210销毁了错误日志的Dataset对象后的情况。 因为客户端210基于日志分析,已销毁了错误日志的Dataset对象,缓 存服务器集群230中对应的错误日志分片也被缓存服务器集群230丢弃。 错误日志的Dataset对象和错误日志的数据分片是根据本发明的分布式 数据集销毁过程(例如,图4)销毁的。

这里所公开的本发明实施例的其他设置包括执行在先概述并随后 详述的方法实施例的步骤和操作的软件程序。更具体地,计算机程序产 品是如下的一种实施例:具有计算机可读介质,计算机可读介质上编码 有计算机程序逻辑,当在计算设备上执行时,计算机程序逻辑提供相关 的操作,从而提供上述分布式缓存自动管理方案。当在计算系统的至少 一个处理器上执行时,计算机程序逻辑使得处理器执行本发明实施例所 述的操作(方法)。本发明的这种设置典型地提供为设置或编码在例如光 介质(例如CD-ROM)、软盘或硬盘等的计算机可读介质上的软件、代码 和/或其他数据结构、或者诸如一个或多个ROM或RAM或PROM芯片上的 固件或微代码的其他介质、或专用集成电路(ASIC)、或一个或多个模块 中的可下载的软件图像、共享数据库等。软件或固件或这种配置可安装 在计算设备上,以使得计算设备中的一个或多个处理器执行本发明实施 例所述的技术。结合诸如一组数据通信设备或其他实体中的计算设备进 行操作的软件过程也可以提供根据本发明的节点和主机。根据本发明的 节点和主机也可以分布在多个数据通信设备上的多个软件过程、或者在 一组小型专用计算机上运行的所有软件过程、或者单个计算机上运行的 所有软件过程之间。

应该理解,严格地讲,本发明的实施例可以实现为数据处理设备上 的软件程序、软件和硬件、或者单独的软件和/或单独的电路。

至此已经结合优选实施例对本发明进行了描述。应该理解,本领域 技术人员在不脱离本发明的精神和范围的情况下,可以进行各种其它的 改变、替换和添加。因此,本发明的范围不局限于上述特定实施例,而 应由所附权利要求所限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号