维普资讯 http://www.cqvip.com 第24卷第12期 计算机应用研究 Vo1.24 No.12 2007年l2月 Application Research of Computers Dec.2007 基于结构化P2P的分布式数据流 系统的查询处理模型 刘云生,赵海谊 (华中科技大学计算机科学与技术学院,武汉430074) 摘要:分析了基于结构化覆盖网的分布式查询处理模型,支持大量数据流的分布式存储,连续查询间、查询内 的并行处理操作,能够在很大程度上消除资源约束问题(主要是内存),提高了查询性能、服务质量,并且该查询 模型具有很好的扩展性。 关键词:分布式数据流管理系统;结构化覆盖网;分布式散列表;滑动窗17" 中图分类号:TP311.13 文献标志码:A 文章编号:1001—3695(2007)I2—0074—03 Distributed data stream query processing model based on structured overlay network LIU Yun—sheng,ZHAO Hai—yi (College of Computer Science&Technolog),Huazhong University of Science&Technology.Wuhan 430074,China) Abstract:The distributed data stream query processing model supported distributed storing of data streams,inter—operator parallelism query processing,intra—operator parallelism query processing,and rided the computing resource restriction,espe— cially the memory limitation.So it can improve the performance of query processing,quality of service,and of good scalability as we/1. Key words:distributed data stream management system;structured overlay network;distributed hash table(DHT);sliding Window 近年来,数据流查询处理是数据库研究领域的一个热点 方向。数据流的特征可概括为无限性、瞬时性 流速不定性、 1 集中式数据流查询处理及分布式散列表、Chord 语义不定性(数据模式随时可能改变)等。针对数据流的以 路由协议的相关说明 上特征,不考虑将数据流存储在传统的关系数据库中,数据 1.1 数据流查询处理相关的概念定义以及假设说明 流上的查询是近似查询、连续查询(continuous query)。日前, 数据流管理系统中所采用的近似查询的方法主要有以下几 集中式数据流查询处理的体系结构由两部分构成,即查询 种:随机抽样(random sampling)、数据写生(sketching)、直方 计划生成子系统(FRONT end)以及查询执行子系统(BACK)。 图(histograms)、小波变换(wavelets)、窗口(windows)等。如 其中两部分与关系数据库系统相比均有较大的区别。查询执 何保证查询的服务质量成为上述各种近似查询方法必须考 行子系统如图1所示。 虑的问题。数据流上的查询处理给人们提出了一个很大的 窗L1状态SWSYN I 难题——对处理器、内存等系统资源非常苛刻的需求。到目 前已经出现了许多数据流的原型系统:单节点(单CPU)上的 数据流管理系统,如Stanford大学的Stream【。系统、布朗大学 /,—、、/—' n 的Aurora 系统等;有分布式数据流处理系统,如MIT的 。 Medusa 项目,Brandeis、Brown、MIT的合作项目Borealis 。 连续查询(含有大量即席查询) 等。这些项目在数据流处理的查询语言、近似查询算法、保 图1 集中式数据流系统的查询计划执行子系统 证服务质量的策略,以及系统的负载均衡等方面做了大量的 定义1 数据流S:{(s,t)i。其中:s是满足数据流模式 工作,但同时也揭示出在分布式数据流处理系统中更多值得 的记录; 是时间戳}。数据流是一个无穷有序元组序列。 研究的问题。本文将对基于structured overlay network的分布 说明1 数据流模式(stream schema)与关系数据库中的 式数据流系统的近似、自适应查询处理进行研究,给出查询 关系模式意义相同。其中时间戳(时标)不属于数据流模式的 处理模型。 一部分。时间戳是系统定义的逻辑时间,而不是物理时间。数 收稿13期:2006.07.26;修返日期:2006.10.20 作者简介:刘云生,男,博导,主要研究方向为操作系统、数据库;赵海谊,男,硕士研究生,主要研究方向为数据库、分布式数据流处理系统 (ehouhy2003@yahoo.eOITI.cn)、 维普资讯 http://www.cqvip.com 第12期 刘云生,等:基于结构化P2P的分布式数据流系统的查询处理模型 ・75・ 据流查询处理计划主要由三部分构成,即操作符(即算子)、操 作符的状态(如join以及聚集操作符中MAX、MIN、AVG、SUM、 种Chord路由协议。其中使用finger tables算法构造路由表。 1)数据流分片存储一假定时问长度为r的数据流元组为 COUNT)和队列(在操作符问传递记录的数据结构,即内存中 的物化,流水线方式)。 说明2 数据流是无穷有序元组序列。从系统视图来看, 数据库系统是用户查询驱动模式(pul1);而数据流系统是数据 驱动模式(push)。数据流到达后,系统必须进行大量的查询处 理。这些处理是系统预先定义的,也可以是用户的即席查询 分片,系统起始时刻为 ,准备存储m片分片数据流,则 5[ , + ],5[ + , +2 ],…,5[ +打, +(i+1) ], 5[ +(m一1)r, +m r](0≤i<m,i为整数)为( +mr)时刻 数据分片。在基于滑动窗口的数据流近似查询中,( +mr)之 后任何时刻系统中将只有一个数据流分片的记录发生更新,即 最早进入系统的数据流分片(5[ , +r])被当前进入系统数 (Ad hoc queries)。窗口是将无穷元组转换为有限元组的多种 据流更改。考虑到服务质量,可以调整r的取值(即数据分片 操作符中的一种。窗口类型有多种(滑动窗口等),根据窗口 内容可以分为基于时间的滑动窗口、基于内容的滑动窗口等。 1.2分布式散列表以及路由协议Chord的相关介绍 分布式散列表(DHT)同hash table意义相同,即键一值映 射,只是扩展到了分布式环境下。 DHT这种数据结构决定了数据存放不是随意的。每一个 数据对象(数值)的存放位置(节点)是由这个数据的键决定 的,键必须是惟一的。每个DHT系统均支持一个简单的接口、 给定键、路由消息给键所在的节点。其中消息包括put(key, object)以及get(key)、remove(key)等。 Chord算法是由MIT提出的一种DHT系统中用于资源放 置以及查找的路由协议,将key映射到一维的结构环上。 Hash的算法有很多种,如consistent hashing、finger tables等。 其中finger tables路由算法更优,每个节点需要O(1gn)大小的 存储空间保存拓扑信息。查询时通过递归以类似于二分查找 的速度接近目的节点,最终查找成功,查找节点所需的时问复 杂度为O(1gn)。 在基于structured overlay network中,对象定位模型的基本 结构为:对于每个节点和对象均具有全局惟一的id;对象oid与 节点nid之间是多对一的;对于每一个对象oid必定映射到惟一 的节点nid。对于每一个对象,在某节点存放该对象时,建立对 象索引,包括对象oid、存储对象的节点位置等信息,并将该对象 索引存放到映射后的惟一节点nid上。当其他节点需要定位该 对象时,通过路由算法到达存放有对象索引的节点nid,然后由 对象索引得到存储对象的节点位置,从而能够访问到对象。 2 分布式数据流系统的查询处理模型 图2给出了结构化P2P网络中每一个节点上基本的数据 流查询处理体系结构。 图2单节点数据流查询处理的软件体系结构 除了查询处理器(query processor)与上述单节点下查询处 理器的操作相同(最终生成物理查询计划,由算子、分布式下 不同节点上操作符问传递元组的队列、保存有状态操作符的大 纲组成一个网状图),每个P2P节点数据存储层中的分片数据 流及其维护的目录(catalog)信息,对于分布式数据流系统支持 大量的、连续的查询起非常重要的作用。 数据存储层中数据模式为:假定数据流处理系统由Ⅳ个 节点组成结构化P2P网络,采用了DHT系统多种实现中的一 的大小)。每个数据分片有惟一的名称5(i)。根据Chord中 的hash函数可知:streamKey=SHA一1(5(i)),Nodeid=SHA一1 (node IP address)。然后将streamKey映射到Nodeid,构造 n— ger tables,查询通过put(streamKey,valUe),get(streamKey)就可 以得到一个指定的分片数据流 (i)的数据。通过这种机制, 在系统中维护一个较长时间的数据流。如果考虑将数据流记 录保存很长的时间,可以采用相同方式,数据流存储在文件系 统,不再是内存缓冲区中。 2)维护系统catalog目录信息的机制 系统catalog中存放 当前系统中所有关于数据流模式、数据流、系统中正在运行的 查询处理等信息。但是在分布式流处理环境中,catalog信息是 分布式地存放在各个节点上面。每个节点维护部分catalog信 息。节点之间路由消息维护catalog信息的一致性、完整性。 目录catalog分片采用合适的命名规则,每个分片通过hash函 数生成惟一的key,映射到Nodeid,构造finger tables,最终实现 catalog目录信息的分布式存储。通过put(key,value)、get (key)、remove(key)等路由消息来维护目录信息的一致性、完 整性。 下面通过一组数据流上面的查询实例来说明在结构化 P2P中,上述的数据存储层以及可扩展的通信层(DHT layer) 是如何支持分布式连续查询的。其中支持两类查询,即查询内 并行(不同节点node上的算子之间可以路由数据、传输保存算 子状态的大纲)和查询问并行(不同的查询并行执行。这是目 前数据流处理系统中普遍采用的查询类型)。 Relation:CurPrice(stock,price)股票价格 Relation:Stock(stock,company)一个公司的股票 Queryl:Select stoek.Avg(price) From Stream(CurPrice)[Range 1 Day] Group By stock一天内各种股票的平均价格 Query2:Select Max(price),company From Stream(CnrPrice)[Range 2 hours],Stream(Stock) Where Stream(CurPfice).stock=Stream(Stock).stock a)查询问并行处理方式如下: keyl=SHA一1(nodelP query1) key2=SHA一1(nodeIP query2) 构造finger tables put(key1,查询1的内容一一字符串序列) put(key2,查询2的内容一一字符串序列) 通过这种散列,将系统当前的所有查询映射到节点空间, 然后由该节点上的查询处理器完成到达的查询。 b)查询内并行处理方式。在系统的范围内,由操作符、输 入均输出记录队列、维持操作符状态的大纲信息构成网状结 构。 C)命名发现机制。参与查询处理的节点有全局惟一命名 participant(如IP地址等)。当在一个节点上面定义一个新的 维普资讯 http://www.cqvip.com ・76・ 计算机应用研究 第24卷 流模式、数据流、操作符,这些实体均隶属于其命名空间。该实 体可以采用下面的命名方式:(participant,entity—name)。为了 了解系统中数据流模式的定义、系统中的数据流、数据流的到 达(存放)位置、系统中哪一部分查询执行,就要考虑在catalog 中存放必要的数据。其中catalog信息是通过在DHT下分布式 存储的,前面已经分析了catalog信息的存储问题。 子在分布式节点的迁移等提供了很好的支持。对系统catalog 目录信息的分布式存放维护,从而消除¨r单节点查询处理引擎 在资源(CPU、内存)上的约束。本文没有考虑分布式查询模型 在网络带宽资源方面的问题,这将是以后要完善的地方。基于 结构化覆盖网的分布式数据流查询模型提高了系统性能、查询 服务质量,并且基于Chord实现,具有很好的扩展性。 参考文献: l 1]BRIAN B.SHIVNATH B,JENNIFER W.Models and issues in data stream systems[C]//Prc ̄:of the 21 st ACM Symposium on Principles of Database Systems,2002. 系统中对每一个数据流、每一个查询、查询中的算子、算子 大纲、节点问输出队列均有惟一的命名。查询处理器位于 DHT之上。同查询相关的数据粒度限定为数据流、输入数据 源(记录集)、节点间传输数据队列、算子大纲,而不是针对单 个记录而言。对于这些粒度的数据可以通过在DHT中通过 put(namespace,object)、get(namespace)、muhicast(namespace) 2]BALAKRISHNAN H,BALAZINSKA M,CARNEY D,et a1. Retrospective on Aurora[J J.VLDB Journal,2004,13(4):370 383 消息得到。 对于操作符(算子)在节点间迁移的情况,可以提供远程 l 3]ABADI D.CARNEY D,STONEBRAKER M,et a1.Aurora:a Be 算子定义接口。当节点4上查询执行的下一步join操作要求 节点B的查询执行器完成时,节点B接收到远程调用清求,初 model alld architecture thr data stlTeam management[J].VLDB Jour- hal,2003,12(2):120—139. [41 ZDONIK S,STONEBRAKER M,CItERNIACK M,et a1.The Aurora and Medusa Projects【J j.IEEE Data Engineering Bulletin,2003, 26(1):3—10. 始化join算子,将节点4上发出调用请求算子的状态信息(大 纲,synopsis)作为参数传递给B,然后就町以在节点B L进行 join算子运算。查询内并行就是有若于这样的节点问的算子 迁移,使一个查询计划得以在多节点的算子之间并行执行。 对于基于滑动窗口的数据流处理的join操作,如果有两个 数据流,查询处理基于时间的窗口,进行join操作的两个数据 流时间范围较长,那么要求在一个节点上维护操作符的状态信 息将会变得非常困难,join算子状态信息存储要求的内存空间 可能非常大,则会进行操作符分割操作。在该节点的近邻节点 [5 j CHERNIACK M,BALAKRISHNAN tt,BALAZINSKA M,et a1. Scalable distirbuted stream processing[C]//Proc of the 1 st Biennial Conference on Innovative Data Systems Research.Asilomar,Califor— nia:[s.fl f,2003. [6 ABADI D J,AHMAD Y,BALAZINSKA M,et a1.The design ofthe Borealis stream processing engine f C]//Proc of the 2nd Biennila Con— ference Oh Innovative Data Systems Research(CIDR’05).Asilomar: 上同时进行join操作,最终将各个节点上的状态信息进行合并 操作即可。 [s.n.1,2005. [7]TA FBUl N,ZDONIK S.Dealing with overload in distributed stream processing systems[C j//Proc of IEEE International Workshop on Networking Meets Databases(NetDB’06).Atlanta:[s.n.],2006. 算子迁移、算子合并、算子分割等操作在基于DHT的系统 上实现具有良好的扩展性。DHT层为数据流处理系统在荷载 大的情况下进行负载脱落、查询计划间并行、查询计划内并行 }8]Distirbuted hash tables links[EB/OL].http://www.etse.urv.es/一 epairot/dhls htm1. 提供了可以随意扩展的基础平台。 [9]DABEK F.sTOICA I,BALAKRISHNAN H,et a1.Building peer—to— peer systems with Chord,a distirbuted lookup service[C]//Proc of the 8th Workshop on ttot Topics in Operating Systems(HotOS—VIII). 2o¨1. 3结束语 本文给出了基于structured overlay network的分布式数据 f 10 J STOICAL 1,MORRIS R,BALAKRISHNAN H,et a1.Chord:a sca- lable peer—to peer lookup service for internet applications[C]//Proc of ACM SIGCOMM.New York:ACM Press,2001:149-160. 流查询处理模型,考虑了对于到达系统的大量数据流的分片存 放策略;同时在查询处理中对查询内的并行、查询问的并行、算 (上接第73页) 30th VLDB Conference.Toronto:Eprint arXiv,2004:228 239. [8]CHUNG W.An extension of XQuery for moving objects over GML [C]//Pro(:of International Conforence on Information Technology: Coding and Computing.L孙Vegas:IEEE Computer Sueiety,2004: 142.147. [3]FEGARAS L.The j。y of SAX[C]//Pro(;of the l st International Workshop on XQuery Implementation,Experience,and Perspecti ̄’es. Paris:Maison de al Chimie.2004:6l一66. [9]Writing extension functions in Java,Saxon documentation[EB/OL]. [2006].http://www.sagonica.corn/documentatiort/extensibility/ funotions.htm1. [4]LI Xiao—gang,AGRAWAL G.Eficifent evaluation of XQuery over streaming data[C]//Proe ofthe 31 st VLDB Conference.Trondheim, Norway.[s.n.],2005:265-276. [5 J BOSE S,FEGARAS L.Data stream management for historical XMI [10]RUSSELL G.TypEx:a type based approach to XML steam querrying [C]//Proc of International Workshop on the Web and Databases (WebDB).UK:ACM SIGMOD,2003:55 60. data[C]//Proe of SIGMOD.New York:ACM Press.2004:239.250. [6]GUAN Ji—hong.GQL:extending XQuery to query GML documents [J].Geospatial Information Science,2006,9(2):ll8.126. [11]於荔,鲍培明,张书亮.GML空间数据的对象化存储研究[J].南 京师范大学学报:工程技术版,2006:6(1):67.71. [7]杨颖,韩忠明,杨磊.数据流的核心技术与应用发展研究综述 [J].计算机应用研究,2005,22(11):4-7. [12]兰小机,闾国年,刘德儿,等.基于XQuery的GML查询语言研究 [J].测绘科学,2005,30(6):99 102.