个人中心
个人中心
添加客服WX
客服
添加客服WX
添加客服WX
关注微信公众号
公众号
关注微信公众号
关注微信公众号
升级会员
升级会员
返回顶部
终稿节能环保物联网及智慧云服务平台应用示范工程项目建议书23页word格式
终稿节能环保物联网及智慧云服务平台应用示范工程项目建议书23页word格式.doc
下载文档 下载文档
施工专题
上传人:地** 编号:1202690 2024-09-20 23页 1.01MB
1、节能环保物联网及智慧云服务平台应用示范工程项目XXXX书一、 总体构想根据调研,目前南京市环保局已经拥有包括“阳光政务系统”、“12369 投诉系统”、“排污申报收费系统”、“污染应急指挥控制系统”、“机动车排气监测系统”、“污染源在线监测系统”、“环境空气质量监测系统”、“危险固体废弃物管理系统”、“核与辐射管理系统”在内的多套业务系统,可进行业务审批、意见收集、任务指派、排污申报与收费等各项业务功能。存在的问题主要是这些系统各自为政,数据无法有效共享与集成,导致同类数据在不同系统中存在冗余和不一致问题,同时这些系统间缺乏统一的数据管理模式,导致数据保存不规范、不完整。采用云计算、物联网和信2、息网格技术,对在用的业务系统进行分析,确定那些信息需要从原系统中抽取出来进行集成,然后建立一个基于云存储的、可扩展,具有统一规范数据格式的中心数据库,将各业务系统核心数据抽取到中心数据库进行数据集成;利用云计算平台的强大处理能力进行数据的处理和挖掘;最后,在中心数据库上开发建立包括企业信息全寿命管理(即从企业登记开始到企业注销的全程信息管理)、数据精确分析、处置决策、趋势分析等在内的应用,并为其它系统预留数据调用接口,最终形成一个涵盖在用系统数据,支持全局信息管理分析与应用的“智慧节能环保”全套解决方案的物联网云计算平台及应用系统。该系统的建立将具有很强的应用示范性和前瞻性。通过“节能环保物联3、网及智慧云服务平台应用示范工程”项目的实施,提炼物联网及云计算平台的应用标准,在江苏省乃至全国具有广泛的示范和推广意义。以下为“节能环保物联网及智慧云服务平台应用示范工程”项目的总体技术架构框图。异构终端虚拟平台:异构终端虚拟平台由感知层设备和控制层设备构成。通过物联网传感器、射频、红外、智能仪表等设备采集环境数据,通过泛在承载网络输入至信息融合处理平台。物联网控制层是由节能环保服务平台系统根据智能处理层的处理结果下发终端设备的继电器控制开关控制指令,实现照明、空调、电梯、用水等的节能减排控制。数据资源集成平台:从南京市环保局现有的环境监测系统对数据进行封装、抽取、同步、筛选、索引、压缩等集成4、处理后,输入信息智能处理融合平台,为业务应用系统的智能数据处理提供完整的数据支撑。泛在网络承载平台:利用江苏有线的泛在承载网络技术和基础设施,为物联网的终端平台或数据资源集成平台与云计算智能处理平台之间提供总线式高效网络信息传输。数据处理融合平台:数据处理融合平台由云存储、云处理、云数据管理子平台构成。对环境监测或建筑群等应用数据提供统计、智能分析、挖掘、融合、备份、可视化等处理服务,作为节能环保物联网进行智能计算的中枢大脑。节能环保服务平台:节能环保服务平台作为总体架构的最上层,为用户提供建筑群节能智慧监控服务、水环境智慧监控服务、土壤环境智慧监控服务、固体废物智慧监控服务、噪声环境智慧监控5、服务、核与辐射智慧监控服务、大气环境智慧监控服务、水资源循环利用智慧监控服务等。用户:“节能环保物联网及智慧云服务平台”可广泛应用于政府、企业、家庭等各行业各类用户。具有很强的通用性和示范性,可以在全省乃至全国范围内推广应用。1.1云存储平台技术及系统方案随着互联网、物联网技术和应用的高速发展,信息应用系统的数据规模也在急剧扩大,当今计量存储容量单位通常已是使用EBytes(1EB=1024PB)来计量,文件数量更是以亿为单位,传统的数据中心的高成本、数据分散存储模式已经不能满足海量数据规模的快速扩张要求。对海量数据的高可靠、高性能、低成本的安全存储和处理已成为各行业信息化建设与发展的最基本的6、必要需求。云创存储拥有的具有自主知识产权的cStor云存储技术产品。经过不断的积累与更新,是一款软件与硬件相结合的高科技系统产品。与国际上知名的云存储技术相比,具有极高性价比、超低功耗、高可靠、通用、安全等优势,可广泛应用于有大量数据存储需求的场合(如安防、广电、电信、互联网、物联网、银行等领域)。1.1.1 cStor系统特性cStor系统实现了海量数据的云存储解决方案。系统提供了高吞吐量,大容量,高可靠性的7*24小时的不间断存储服务,拥有如下重要先进特性。超低功耗:软硬件一体化设计,单个主板功耗已降至几瓦的数量级,处于国内外先进水平;无限容量:提供海量数据存储,容量无上限,根据存储数据需7、求,灵活增减存储节点;灵活部署:系统可动态伸缩,根据业务需要增加和减少存储节点,支持用户空间配额管理;高性能:元数据内存访问,带宽饱和利用实现了快速访问和高吞吐量的优越性能;高可靠性:高可靠的冗余备份机制,提供7*24小时不间断无故障存储服务;通用性:系统支持POSIX接口规范,与应用系统无缝集成,无需另行开发。对于应用系统和操作本地文件系统完全一样;高安全:数据集中存储在云计算数据中心,数据安全统一控制,可针对用户进行访问控制,可结合云查杀等防病毒软件确保不同安全级别数据的安全;易维护:提供直观的系统状态监控和配置管理子系统,实时监控系统状态并进行异常告警。1.1.2 cStor系统框架块数8、据存储节点:将文件按照固定大小进行分块,默认是64MB,每一块称为一个Chunk(数据块),每个Chunk都有一个对应的索引号(Index),数据块存储在块数据存储节点上,根据可靠性需求的不同,可设置备份块的数目,以实现在不同块数据存储节点上的冗余备份存储。元数据管理节点:元数据管理节点对文件名称、文件属性、数据块信息等元数据进行存储和管理。云空间管理节点:由一个元数据管理节点及多个块数据存储节点构成了一个云存储空间,简称云空间。通过云空间管理节点将多个云空间虚拟为一个无限大的云数据存储空间,该节点提供针对用户端的云空间管理和分配。用户挂载客户端:通过用户挂载客户端实现将云空间映射到本地文件系9、统的目录,兼容POSIX接口,挂载后就和操作本地的文件系统一样。配置与监控中心:提供针对各存储节点的管理配置与状态监控告警功能。1.1.3 cStor系统关键技术低功耗技术:采用自主研发的低功耗主板,其功率已降至几瓦的数量级,处理国内外业界先进水平。元数据分布式存储技术:考虑热点数据的分布信息,通过将海量的元数据有效地分散存储在多个元数据服务器上来降低存储负载。采用分级聚集机制来存储数据,来保证查询结果的有效性和准确性。分析元数据多维属性信息的语义特征,将相关文件组织在相同或相近的组内,多个组构成语义 R-tree结构, 可实现多维数据的复合查询。相关查询、添加/删除和更新操作可以在有限的小区10、域内完成,降低操作的执行代价。低成本高可靠性技术:针对数据存储节点主要是数据的读写访问的特性,而没有其它计算,因此设计的低功耗数据存储节点,一个主板最大能够支持16块硬盘;从而实现硬件成本和能耗的大大降低。针对数据块可设定备份因子数目,在不同的数据存储节点上的备份,从而实现数据的高顽存;可针对不同目录,不同级别的数据进行不同的备份因子设置,如对可靠性级别较高的数据可将相应的备份因子设置高一些,从而达到最大的可靠性要求。高速并发访问技术:采用并发写入和读出分布式数据块,确保网络带宽饱和利用,确保读写访问速率。可提供不同用户级别的带宽服务质量保证QoS,以确保高优先级应用的数据读写速率;高速IO技11、术:目前针对传统的硬盘,在万兆网卡的条件下,单用户的吞吐率理论上达到1GB/s,通过针对SSD(Solid State Disk)固态硬盘读写IO驱动优化技术,从而实现访问存储空间时达到更高的存储读写吞吐率。与目前的传统硬盘相较,具有低耗电、无噪音、产生热量低、耐震、稳定性高、耐低温等优点,缺点是目前价格稍高。传统典型的硬盘驱动器只能在5到55范围内工作。而大多数固态硬盘可在-1070工作,一些工业级的固态硬盘还可在-4085,甚至更大的温度范围下工作。数据安全控制技术:访问控制:支持用户级别的数据访问认证, 存储空间级别认证和目录级认证,确保数据的安全访问控制;数据完整性:通过上述高可靠性技12、术确保数据完整、可靠;加密安全:数据实现块级别加密存储, 同时可自由结合安全加密软件、云查杀病毒软件等对数据进行最大的安全保护。1.1.4 cStor系统设计策略元数据存储设计策略:l 为提供高速的客户端响应,元数据存储于元数据管理节点(Master)服务器的内存中,并于本机进行持久化备份;l 元数据管理节点为主备双机方式,提供高可靠不间断元数据管理服务,单机故障时可实现无缝快速切换;l 考虑大容量数据存储时文件数量多,元数据容量大的问题,系统将元数据进行分布式存储,采用多个元数据管理节点进行元数据管理;l 支持灵活的空间挂载,可根据业务划分灵活地将不同业务数据挂载到不同的分布式元数据管理节点13、和数据存储节点;数据节点存储策略:l 文件数据在大于一定空间的情况被划分为多个数据块(chunk),数据块被分布存储到不同的数据节点服务器(DataNode)。l 每个块可被设置为备份一定的份数,块信息被元数据管理节点管理,数据备份时由数据节点进行串行复制到其它数据节点DataNode进行备份;高可靠性策略:l 元数据管理节点Master为主从备份的双机高可靠实现方式;l 主从备份切换为几乎零延迟的高速切换方式,对数据操作访问可做到无影响;l 数据块在多个数据节点上进行冗余备份;客户端访问策略:l 挂载客户端通过云空间管理节点获取云空间;l 挂载客户端与相应的云空间元数据节点Master建立通14、信连接和元数据操作,获得数据块节点存储信息;l 挂载客户端与相应的数据节点DataNode进行数据读写;数据节点DataNode根据合适的备份策略向相应的其它数据节点发送块数据进行备份,参考下图:1.1.5性能和容量支撑元数据节点内存配置:根据计算和测试,2.56亿文件元数据需要的内存约为80G,1600万条的元数据,Master元数据存储需要内存空间约为5G空间,可根据该参考值进行Master元数据节点个数的增减配置。系统支撑容量:系统存储节点可灵活伸缩,容量无上限,可根据业务需要增减数据节点或Master元数据节点。100 PB = 100 * 1024 * 1024 * 1024 MB假15、定每个文件的大小为25M的小文件, 则文件数约为40亿,元数据需要的内存约为1280G,若每个Master提供内存为32G,则配置40个Master元数据节点对应的云空间即可满足100PBytes的存储需求。假定每个文件的大小为250M的较大文件, 则文件数约为4 亿,元数据需要的内存约为128G,若每个Master提供内存为32G,则配置4个Master元数据节点对应的云空间即可满足100PBytes的存储需求。参见下表:容量需求文件大小文件数所需总内存Master机器内存Master集群数100PBytes25M40亿1280G32G40100PBytes250M4亿128G32G4对于单16、个Master元数据节点对应的云空间而言,文件越大支撑的容量越大。系统吞吐速率:经测试,单用户单客户端在千兆网卡条件下写入速率可达到100MB/秒;理论上,单用户单客户端在万兆网卡条件下写入速率可达到1GB/秒。1.2云数据管理平台技术及系统方案CData是云创存储开发的基于cStor和Chubby的分布式存储系统。互联网应用的很多数据,包括Web索引、卫星图像数据等在内的海量结构化和半结构化数据,都可以存储在CData中。从实现上看,CData并没有什么全新的技术,但是如何选择合适的技术并将这些技术高效、巧妙地结合在一起恰恰是最大的难点。CData在很多方面和数据库类似,但它并不是真正意义上17、的数据库。下面对CData的数据模型、系统架构、实现以及它使用的一些数据库技术进行全面的介绍。1.2.1 cData设计动机与目标云创存储设计CData的动机主要有如下三个方面。(1)需要存储的数据种类繁多。物联网或互联网应用需要处理的数据类型非常多。(2)海量的服务请求。云创存储运行着目前世界上最繁忙的系统,它每时每刻处理的客户服务请求数量是普通的系统根本无法承受的。(3)商用数据库无法满足云创存储的需求。一方面现有商用数据库的设计着眼点在于其通用性,根本无法满足云创存储的苛刻服务要求,而且在数量庞大的服务器上根本无法成功部署普通的商用数据库。另一方面对于底层系统的完全掌控会给后期的系统维护18、升级带来极大的便利。CData开发团队调查了多种数据的存储需求后,确定CData设计应达到如下几个基本目标。(1)广泛的适用性。CData是为了满足一系列应用系统多种数据的存储需求而并非特定产品的存储要求。(2)很强的可扩展性。根据需要随时可以加入或撤销服务器。(3)高可用性。对于客户来说,有时候即使短暂的服务中断也是不能忍受的。CData设计的重要目标之一就是确保几乎所有的情况下系统都可用。(4)简单性。底层系统的简单性既可以减少系统出错的概率,也为上层应用的开发带来便利。在目标确定之后,云创存储希望巧妙地结合各种数据库技术,扬长避短。最终实现的系统也确实达到了原定的目标。下面详细讲解CD19、ata。1.2.2 cData数据模型CData是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引。CData对存储在其中的数据不做任何解析,一律看做字符串,具体数据结构的实现需要用户自行处理。CData的存储逻辑可以表示为:(row:string, column:string, time:int64)stringCData数据的存储格式如图2-12所示8。图2-1 CData数据模型1行CData的行关键字可以是任意的字符串,但是大小不能够超过64KB。CData和传统的关系型数据库有很大不20、同,它不支持一般意义上的事务,但能保证对于行的读写操作具有原子性(Atomic)。表中数据都是根据行关键字进行排序的,排序使用的是词典序。图2-1是CData数据模型的一个典型实例,其中n.www就是一个行关键字。不直接存储网页地址而将其倒排是CData的一个巧妙设计。这样做至少会带来以下两个好处。(1)同一地址域的网页会被存储在表中的连续位置,有利于用户查找和分析。(2)倒排便于数据压缩,可以大幅提高压缩率。由于规模问题,单个的大表不利于数据的处理,因此CData将一个表分成了很多子表(Tablet),每个子表包含多个行。子表是CData中数据划分和负载均衡的基本单位。有关子表的内容在1.221、.5节详细讲解。2列CData并不是简单地存储所有的列关键字,而是将其组织成所谓的列族(Column Family),每个族中的数据都属于同一个类型,并且同族的数据会被压缩在一起保存。引入了列族的概念之后,列关键字就采用下述的语法规则来定义:族名:限定词(family:qualifier)族名必须有意义,限定词则可以任意选定。在图2-1中,内容(Contents)、锚点(Anchor,就是HTML中的链接)都是不同的族。而和my.look.ca则是锚点族中不同的限定词。通过这种方式组织的数据结构清晰明了,含义也很清楚。族同时也是CData中访问控制(Access Control)的基本单元,也22、就是说访问权限的设置是在族这一级别上进行的。3时间戳云创存储的很多服务比如网页检索和用户的个性化设置等都需要保存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。图2-1中内容列的t3、t5和t6表明其中保存了在t3、t5和t6这三个时间获取的网页。CData中的时间戳是64位整型数,具体的赋值方式可以采取系统默认的方式,也可以用户自行定义。为了简化不同版本的数据管理,CData目前提供了两种设置:一种是保留最近的N个不同版本,图2-1中数据模型采取的就是这种方法,它保存最新的三个版本数据。另一种就是保留限定时间内的所有不同版本,比如可以保存最近10天的所有不同版本数据。失效的版本将会由23、CData的垃圾回收机制自动处理。1.2.3 cData系统架构CData是在云创存储的另外三个云计算组件基础之上构建的,其基本架构如图2-2所示。图中WorkQueue是一个分布式的任务调度器,它主要被用来处理分布式系统队列分组和任务调度,关于其实现云创存储并没有公开。在前面已经讲过,cStor9是云创存储的分布式文件系统,在CData中cStor主要用来存储子表数据以及一些日志文件。CData还需要一个锁服务的支持,CData选用了云创存储自己开发的分布式锁服务Chubby。在CData中Chubby主要有以下几个作用。(1)选取并保证同一时间内只有一个主服务器(Master Server24、)。(2)获取子表的位置信息。(3)保存CData的模式信息及访问控制列表。图2-2 CData基本架构另外在CData的实际执行过程中,云创存储的MapReduce和Sawzall也被用来改善其性能,不过需要注意的是这两个组件并不是实现CData所必需的。CData主要由三个部分组成:客户端程序库(Client Library)、一个主服务器(Master Server)和多个子表服务器(Tablet Server),这三个部分在图2-2中都有相应的表示。从图2-2可以看出,客户访问CData服务时,首先要利用其库函数执行Open()操作来打开一个锁(实际上就是获取了文件目录),锁打开以后客25、户端就可以和子表服务器进行通信了。和许多具有单个主节点的分布式系统一样,客户端主要与子表服务器通信,几乎不和主服务器进行通信,这使得主服务器的负载大大降低。主服务主要进行一些元数据的操作以及子表服务器之间的负载调度问题,实际的数据是存储在子表服务器上的。1.2.4 cData主服务器主服务器的主要作用如图2-3所示。图2-3 主服务器的主要作用当一个新的子表产生时,主服务器通过一个加载命令将其分配给一个空间足够的子表服务器。创建新表、表合并以及较大子表的分裂都会产生一个或多个新子表。对于前面两种,主服务器会自动检测到,因为这两个操作是由主服务器发起的,而较大子表的分裂是由子服务发起并完成的,所26、以主服务器并不能自动检测到,因此在分割完成之后子服务器需要向主服务发出一个通知。由于系统设计之初就要求能达到良好的扩展性,所以主服务器必须对子表服务器的状态进行监控,以便及时检测到服务器的加入或撤销。CData中主服务器对子表服务器的监控是通过Chubby完成的,子表服务器在初始化时都会从Chubby中得到一个独占锁。通过这种方式所有的子表服务器基本信息被保存在Chubby中一个称为服务器目录(Server Directory)的特殊目录之中。主服务器通过检测这个目录可以随时获取最新的子表服务器信息,包括目前活跃的子表服务器,以及每个子表服务器上现已分配的子表。对于每个具体的子表服务器,主服务27、器会定期向其询问独占锁的状态。如果子表服务器的锁丢失或没有回应,则此时可能有两种情况,要么是Chubby出现了问题(虽然这种概率很小,但的确存在,云创存储自己也做过相关测试),要么是子表服务器自身出现了问题。对此主服务器首先自己尝试获取这个独占锁,如果失败说明Chubby服务出现问题,需等待Chubby服务的恢复。如果成功则说明Chubby服务良好而子表服务器本身出现了问题。这种情况下主服务器会中止这个子表服务器并将其上的子表全部移至其他子表服务器。当在状态监测时发现某个子表服务器上负载过重时,主服务器会自动对其进行负载均衡操作。基于系统出现故障是一种常态的设计理念(云创存储几乎所有的产品都是28、基于这个设计理念),每个主服务器被设定了一个会话时间的限制。当某个主服务器到时退出后,管理系统就会指定一个新的主服务器,这个主服务器的启动需要经历以下四个步骤8。(1)从Chubby中获取一个独占锁,确保同一时间只有一个主服务器。(2)扫描服务器目录,发现目前活跃的子表服务器。(3)与所有的活跃子表服务器取得联系以便了解所有子表的分配情况。(4)通过扫描元数据表(Metadata Table),发现未分配的子表并将其分配到合适的子表服务器。如果元数据表未分配,则首先需要将根子表(Root Tablet)加入未分配的子表中。由于根子表保存了其他所有元数据子表的信息,确保了扫描能够发现所有未分配的29、 子表。在成功完成以上四个步骤后主服务器就可以正常运行了。1.2.5 cData子表服务器CData中实际的数据都是以子表的形式保存在子表服务器上的,客户一般也只和子表服务器进行通信,所以子表以及子表服务器是我们重点讲解的概念。子表服务器上的操作主要涉及子表的定位、分配以及子表数据的最终存储问题。其中子表分配在前面已经有了详细介绍,这里略过不讲。在讲解其他问题之前我们首先介绍一下SSTable的概念以及子表的基本结构。1SSTable及子表基本结构SSTable是云创存储为CData设计的内部数据存储格式。所有的SSTable文件都存储在cStor上,用户可以通过键来查询相应的值,图2-4是S30、STable格式的基本示意图。图2-4 SSTable结构SSTable中的数据被划分成一个个的块(Block),每个块的大小是可以设置的,一般来说设置为64KB。在SSTable的结尾有一个索引(Index),这个索引保存了SSTable中块的位置信息,在SSTable打开时这个索引会被加载进内存,这样用户在查找某个块时首先在内存中查找块的位置信息,然后在硬盘上直接找到这个块,这种查找方法速度非常快。由于每个SSTable一般都不是很大,用户还可以选择将其整体加载进内存,这样查找起来会更快。从概念上讲子表是表中一系列行的集合,它在系统中的实际组成如图2-5所示。每个子表都是由多个SSTabl31、e以及日志(Log)文件构成。有一点需要注意,那就是不同子表的SSTable可以共享,也就是说某些SSTable会参与多个子表的构成,而由子表构成的表则不存在子表重叠的现象。CData中的日志文件是一种共享日志,也就是说系统并不是对子表服务器上每个子表都单独地建立一个日志文件,每个子表服务器上仅保存一个日志文件,某个子表日志只是这个共享日志的一个片段。这样会节省大量的空间,但在恢复时却有一定的难度,因为不同的子表可能会被分配到不同的子表服务器上,一般情况下每个子表服务器都需要读取整个共享日志来获取其对应的子表日志。云创存储为了避免这种情况出现,对日志做了一些改进。CData规定将日志的内容按照32、键值进行排序,这样不同的子表服务器都可以连续读取日志文件了。一般来说每个子表的大小在100MB到200MB之间。每个子表服务器上保存的子表数量可以从几十到上千不等,通常情况下是100个左右。图2-5 子表实际组成2子表地址子表地址的查询是经常碰到的操作。在CData系统的内部采用的是一种类似B+树的三层查询体系。子表地址结构如图2-6所示。所有的子表地址都被记录在元数据表中,元数据表也是由一个个的元数据子表(Metadata tablet)组成的。根子表是元数据表中一个比较特殊的子表,它既是元数据表的第一条记录,也包含了其他元数据子表的地址,同时Chubby中的一个文件也存储了这个根子表的信息33、。这样在查询时,首先从Chubby中提取这个根子表的地址,进而读取所需的元数据子表的位置,最后就可以从元数据子表中找到待查询的子表。除了这些子表的元数据之外,元数据表中还保存了其他一些有利于调试和分析的信息,比如事件日志等。图2-6 子表地址结构为了减少访问开销,提高客户访问效率,CData使用了缓存(Cache)和预取(Prefetch)技术,这两种技术手段在体系结构设计中是很常用的。子表的地址信息被缓存在客户端,客户在寻址时直接根据缓存信息进行查找。一旦出现缓存为空或缓存信息过时的情况,客户端就需要按照图2-6所示方式进行网络的来回通信(Network Round-trips)进行寻址,在34、缓存为空的情况下需要三个网络来回通信。如果缓存的信息是过时的,则需要六个网络来回通信。其中三个用来确定信息是过时的,另外三个获取新的地址。预取则是在每次访问元数据表时不仅仅读取所需的子表元数据,而是读取多个子表的元数据,这样下次需要时就不用再次访问元数据表。3子表数据存储及读/写操作在数据的存储方面CData做出了一个非常重要的选择,那就是将数据存储划分成两块。较新的数据存储在内存中一个称为内存表(Memtable)的有序缓冲里,较早的数据则以SSTable格式保存在cStor中。这种技术在数据库中不是很常用,但云创存储还是做出了这种选择,实际运行的效果也证明云创存储的选择虽然大胆却是正确的。35、从图2-7中可以看出读和写操作有很大的差异性。做写操作(Write Op)时,首先查询Chubby中保存的访问控制列表确定用户具有相应的写权限,通过认证之后写入的数据首先被保存在提交日志(Commit Log)中。提交日志中以重做记录(Redo Record)的形式保存着最近的一系列数据更改,这些重做记录在子表进行恢复时可以向系统提供已完成的更改信息。数据成功提交之后就被写入内存表中。在做读操作(Read Op)时,首先还是要通过认证,之后读操作就要结合内存表和SSTable文件来进行,因为内存表和SSTable中都保存了数据。图2-7 CData数据存储及读/写操作在数据存储中还有一个重要问36、题,就是数据压缩的问题。内存表的空间毕竟是很有限的,当其容量达到一个阈值时,旧的内存表就会被停止使用并压缩成SSTable格式的文件。在CData中有三种形式的数据压缩,分别是次压缩(Minor Compaction)、合并压缩(Merging Compaction)和主压缩(Major Compaction)。三者之间的关系如图2-8所示。每一次旧的内存表停止使用时都会进行一个次压缩操作,这会产生一个SSTable。但如果系统中只有这种压缩的话,SSTable的数量就会无限制地增加下去。由于读操作要使用SSTable,数量过多的SSTable显然会影响读的速度。而在CData中,读操作实际上37、比写操作更重要,因此CData会定期地执行一次合并压缩的操作,将一些已有的SSTable和现有的内存表一并进行一次压缩。主压缩其实是合并压缩的一种,只不过它将所有的SSTable一次性压缩成一个大的SSTable文件。主压缩也是定期执行的,执行一次主压缩之后可以保证将所有的被压缩数据彻底删除,如此一来,既回收了空间又能保证敏感数据的安全性(因为这些敏感数据被彻底删除了)。图2-8 三种形式压缩之间的关系1.2.6 cData性能优化上述各种操作已经可以实现CData的所有功能了,但是这些基本的功能很多时候并不是很符合用户的使用习惯,或者执行的效率较低。有些功能CData自身已经进行了优化,包括38、使用缓存、共享式的提交日志以及利用系统的不变性。除此之外,CData还允许用户个人在基本操作基础上对系统进行一些优化。这一部分主要向读者介绍用户可以使用的几个重要优化措施。实际上这些技术手段都是一些已有的数据库方法,只不过云创存储将它具体地应用于CData之中了。1局部性群组(Locality groups)CData允许用户将原本并不存储在一起的数据以列族为单位,根据需要组织在一个单独的SSTable中,以构成一个局部性群组。这实际上就是数据库中垂直分区技术的一个应用。结合图2-2的实例来看,在被CData保存的网页列关键字中,有的用户可能只对网页内容感兴趣,那么它可以通过设置局部性群组只看39、内容这一列。有的则会对诸如网页语言、网站排名等可以用于分析的信息比较感兴趣,他也可以将这些列设置到一个群组中。局部性群组如图2-9所示。通过设置局部性群组用户可以只看自己感兴趣的内容,对某个用户来说的大量无用信息无需读取。对于一些较小的且会被经常读取的局部性群组,用户可以将其SSTable文件直接加载进内存,这可以明显地改善读取效率。2压缩压缩可以有效地节省空间,CData中的压缩被应用于很多场合。首先压缩可以被用在构成局部性群组的SSTable中,可以选择是否对个人的局部性群组的SSTable进行压缩。CData中这种压缩是对每个局部性群组独立进行的,虽然这样会浪费一些空间,但是在需要读时解40、压速度非常快。通常情况下,用户可以采用两步压缩的方式8:第一步利用Bentley & McIlroy方式(BMDiff)在大的扫描窗口将常见的长串进行压缩;第二步采取Zippy技术进行快速压缩,它在一个16KB大小的扫描窗口内寻找重复数据,这个过程非常快。压缩技术还可以提高子表的恢复速度,当某个子表服务器停止使用后,需要将上面所有的子表移至另一个子表服务器来恢复服务。在转移之前要进行两次压缩,第一次压缩减少了提交日志中的未压缩状态,从而减少了恢复时间。在文件正式转移之前还要进行一次压缩,这次压缩主要是将第一次压缩后遗留的未压缩空间进行压缩。完成这两步之后压缩的文件就会被转移至另一个子表服务器。41、图2-9 局部性群组3布隆过滤器(Bloom Filter)CData向用户提供了一种称为布隆过滤器的数学工具。布隆过滤器是巴顿布隆在1970年提出的,实际上它是一个很长的二进制向量和一系列随机映射函数,在读操作中确定子表的位置时非常有用。布隆过滤器的速度快,省空间。而且它有一个最大的好处是它绝不会将一个存在的子表判定为不存在。不过布隆过滤器也有一个缺点,那就是在某些情况下它会将不存在的子表判断为存在。不过这种情况出现的概率非常小,跟它带来的巨大好处相比这个缺点是可以忍受的。从实际运行来看,CData完全可以满足这些不同需求的应用,而这一切都得益于其优良的构架以及恰当的技术选择。与此同时云创存储还在不断地对CData进行一系列的改进,通过技术改良和新特性的加入提高系统运行效率及稳定性。
会员尊享权益 会员尊享权益 会员尊享权益
500万份文档
500万份文档 免费下载
10万资源包
10万资源包 一键下载
4万份资料
4万份资料 打包下载
24小时客服
24小时客服 会员专属
开通 VIP
升级会员
  • 周热门排行

  • 月热门排行

  • 季热门排行

  1. 2025商场地产夏日啤酒龙虾音乐嘉年华(吃货的夏天主题)活动策划方案-47页.pptx
  2. 2022城区自来水提质改造智慧水务建设项目设计方案(199页).pdf
  3. 陕西化学工业公司招聘管理与职业发展管理手册30页.doc
  4. 动火作业安全告知卡(1页).docx
  5. 高处作业安全告知卡(1页).docx
  6. 道路改造工程围墙宣传栏改造各类雕塑等土建施工方案53页.doc
  7. 广场工程建设项目施工招标评标报告表格(24页).pdf
  8. 原油码头消防工程维保方案(39页).docx
  9. 2020柏向堂房地产公司材料标准化手册3.0(143页).pdf
  10. 2021柏向堂房地产公司材料标准化手册4.0(108页).pdf
  11. 深圳装饰公司施工图纸会审及设计交底管理制度【13页】.doc
  12. 住宅小区工程施工方案【234页】.docx
  13. 鄂尔多斯空港物流园区总体规划方案(2017-2030)环境影响评价报告书(23页).doc
  14. 规划兰园西路道路工程环境方案环境影响评价报告书(89页).pdf
  15. 屋面圆弧形穹顶结构高支模施工方案(40米)(47页).doc
  16. 埋石混凝土挡土墙施工方案(23页).doc
  17. 结构加固专项施工方案(28页).doc
  18. 土方开挖及地下室施工方案(21页).doc
  19. 家园工程项目雨季及防台防汛施工方案(29页).doc
  20. 重庆市五小水利工程建设规划报告(64页).doc
  21. 超高纯氦气厂建设项目办公楼、变电站、水泵房及消防水池、门卫、厂房、仓库、配套工程施工组织设计方案(140页).doc
  22. 邛崃市牟礼镇初级中学校学生宿舍建设工程施工组织设计方案(259页).doc
  1. 房地产交易环节契税减征申报表(首套填写)(2页).doc
  2. 2025商场地产夏日啤酒龙虾音乐嘉年华(吃货的夏天主题)活动策划方案-47页.pptx
  3. 2024大楼室内精装修工程专业分包投标文件(393页).docx
  4. 苏州水秀天地商业项目购物中心100%室内设计方案(158页).pptx
  5. 2022城区自来水提质改造智慧水务建设项目设计方案(199页).pdf
  6. 小区人员配置档案建立保洁绿化物业管理服务投标方案(593页).docx
  7. 室内移动式操作平台工程施工方案(19页).doc
  8. 地铁6号线区间盾构下穿管线专项施工方案(30页).doc
  9. 矿山治理工程施工组织设计方案(240页).docx
  10. 老旧小区改造工程施工方案及技术措施(364页).doc
  11. 2020柏向堂房地产公司材料标准化手册3.0(143页).pdf
  12. 2021柏向堂房地产公司材料标准化手册4.0(108页).pdf
  13. 川主寺城镇风貌整治景观规划设计方案(60页).pdf
  14. 新疆风电十三间房二期工程49.5mw风电项目可行性研究报告(附表)(239页).pdf
  15. 土建、装饰、维修改造等零星工程施工组织设计方案(187页).doc
  16. 四川凉山攀西灵山国际度假区小镇活力中心商业业态规划方案建议书(33页).pdf
  17. 埋石混凝土挡土墙施工方案(23页).doc
  18. 地下停车场环氧地坪漆施工方案(45页).doc
  19. 深圳装饰公司施工图纸会审及设计交底管理制度【13页】.doc
  20. 住宅定价策略及价格表制定培训课件.ppt
  21. 西安名京九合院商业项目招商手册(28页).pdf
  22. 2010-2030年湖北咸宁市城市总体规划(32页).doc
  1. 建筑工程夜间施工专项施工方案(18页).doc
  2. 赣州无动力亲子乐园景观设计方案(111页).pdf
  3. 2016泰安乡村旅游规划建设示范案例(165页).pdf
  4. 房地产交易环节契税减征申报表(首套填写)(2页).doc
  5. 龙山县里耶文化生态景区里耶古城片区旅游修建性详细规划2015奇创.pdf
  6. 连云港市土地利用总体规划2006-2020年调整方案文本图集(78页).pdf
  7. 850亩项目塑钢门窗工程施工组织设计方案(34页).doc
  8. 老旧小区改造工程施工方案及技术措施(364页).doc
  9. 城市更新项目地价公式测算表.xlsx
  10. 房地产项目规划前期投资收益测算模板带公式.xls
  11. 存储器基地项目及配套设施建筑工程临时用水施工方案(40页).docx
  12. 铁路客运枢纽项目站前框构中桥工程路基注浆加固专项施工方案(19页).doc
  13. 室内移动式操作平台工程施工方案(19页).doc
  14. 装配式结构工业厂房基础、主体结构、门窗及装饰工程施工方案(83页).doc
  15. 地铁6号线区间盾构下穿管线专项施工方案(30页).doc
  16. 施工工程安全教育培训技术交底(13页).doc
  17. 老旧小区改造施工方案及技术措施(365页).doc
  18. 新建贵广铁路线下工程沉降变形观测及评估监理实施细则(126页).doc
  19. 消防火灾应急疏散演练预案(12页).doc
  20. 矿山治理工程施工组织设计方案(240页).docx
  21. 崖城站悬臂式挡墙施工方案(92页).doc
  22. 北京科技园公寓建设项目整体报告方案.ppt