- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Egg非结构化数据库软件_设计说明书
产品概述
产品介绍
Egg是一个高性能、可扩展、并支持分布式存贮的非结构化数据库,同时也具备了部分非关系型数据库具备的结构化查询功能。该类型的数据库被广泛应用有哪些信誉好的足球投注网站引擎、海量信息检索系统、音频视频管理系统等领域,成为这些领域中必不可少的一个组成部分。Egg是一个完全由C编写的,成熟的软件,并且是埃帕Cooling有哪些信誉好的足球投注网站引擎软件、Cooling云桌面平台软件、Cooling云输入法的重要组成部分,已经运用到了互联网、信息检索、数据挖掘、虚拟化等多个领域中。Commodity Hardware)建立分布式存贮的互联网公司;Amazon则在云计算平台中,采用了Yahoo与apache合作开发的分布式文件系统Hadoop;Facebook则为业界贡献了Cassandra,这一分布式的非关系型数据库。
高可用与可扩展性的要求
关系型数据库具备一定的高可用性与可扩展性,但这是建立在企业级可预测数据的前提之下的。而对互联网应用来说,没有任何人能预测下一年新增的网页数量、云计算平台的使用人数以及社区将拥有的用户数。唯一可以肯定的就是,所有这些数据都会以一个相当快的速度增长。当一种存贮方式,无法满足面对应用的增长而动态扩展,将对互联网业务的发展,产生严重的负面影响。此外,互联网应用要求所有系统都要能够全天侯提供服务,即便系统升级、增加设备、出现故障。而传统关系型数据库的扩展、维护都需要停止数据库实例,而无法实现实时维护,这也导致了传统的存贮方式,无法满足目前互联网发展的需求。
高并发访问的要求
有哪些信誉好的足球投注网站引擎、云计算、WEB 2.0每天都要面对大量的用户访问。2010年,Google与Facebook的访问量,占据了全美访问量的14%。在如此大的并发下,存贮或数据库的负载将非常之高,将达到每秒上万次读写请求。在如此大的读写压力之下,既便使用了Raid之类的技术,硬盘IO也已经无法承受,或是在有限的时间内完成读写操作。
非结构数据存贮的要求
关系型数据库从设计准则上来看,是对具备明确结构信息的数据进行管理。但目前、无论是在互联网应用,或是企业应用中,非结构化数据(网页、Office文档、文本、PDF、甚至音视频)都占据了总信息量的85%以上。这些数据虽然能用关系型数据库进行存贮,但却无法进行有效的检索。因为为些数据种类繁多,且都无法用结构化的方案(Schema)来描述。
在以上四个要求前,关系型数据库显得无能为力,但这并不是说关系型数据库就是一个失败的产品。只能说,关系型数据库不适合不断扩展的海量数据应用。关系型数据库本身具备强大的
事务完整性控制
实时读写能力
结构化查询能力
但是这些功能,在很多应用中并非必要、或者说可以通过其它的方式代替。对于事务完整性,很多互联网应用都是强调用户交互性,操作往往很简单,或者说在设计之初,就尽可能的避免会造成复杂事务的设计。而实时读写、有哪些信誉好的足球投注网站引擎虽然不断抓取数据,但供用户访问的索引,往往一天才更新一次,但这样的频度对用户来说已经足够。结构化查询能力,最典型的特点是能够支持多表的关联操作,但实际上在设计超大规模系统的时候,即便使用关系型数据库,设计师也知道单表的设计虽然在结构上不优美,但确能提供最高的效率。
目前开始流行的非结构化、非关系型数据库的发展方向,就在于解决前4个需求,同时弱化并非主要的关系型数据的3个特点。
产品方案
总体架构
Egg从结构上可以分布两层,上层为数据存贮层,下层为分布式文件系统。
数据存贮层
Egg存储主要分为三层,分别是Cache缓存层,Mapping映射层以及文件存储层。
Cache缓存层
Cache缓存层,是一个基于HashTable访问存储层。每一块缓存数据都由一个关键字符串key标识,并可通过此关键字符串key访问到相对应的缓存数据。它主要有两个特点:
一、在索引过程中,可以减少系统I/O写频次,单元数据也便于集中存储入文件中;此外,对于多进程写数据,可以统一录入,减少文件锁频繁操作;为了避免过多使用系统内存,Cache缓存层可设置内存占用的上限。
二、在反向索引过程中,可以减少系统I/O读频次。SearchCache中有个叫缓存命中的机制,提高检索效率,减缓系统I/O压力。
Mapping映射层
Mapping映射层,是一个基于文件映射的存储层,与磁盘中的文件形成一对一的联系。这一层中包含了:索引区(Index.Map)、文章区(Doc.Map)、字段区(Field.Map)、位信息区(Pos.Map)、ID区(Id.Map),它们分别对应着五个文件。文件映射采取的是块读写,并对文件区域进行“格式化”划分,便于快速映射定位以及校验非法操作。
分词器接口
Egg对外提供分词器的统一接口,无论是空格分词器、英文分词器,还是中文分词器,甚至更复杂的分词器,都可以为Egg挂载调用。为了更为有
文档评论(0)