读写分离的低功耗海量数据全文检索系统框架的制作方法

文档序号:12121409阅读:354来源:国知局
本发明属于数据处理领域,具体涉及一种读写分离的低功耗海量数据全文检索系统框架。
背景技术
:随着互联网技术的飞速发展,网络数据量使用的日益增加。从海量数据文件,如文本,图片、音频、多媒体文件等多种格式文本中获取用户想要的信息已经成为当今的热点课题。全文检索技术作为当前网络时代的主流技术之一,为海量结构化数据及非结构化数据提供了高效,准确,快捷的存储和访问的解决方案。传统的全文检索系统框架都是部署在传统的x86服务器上。然而随着网络上部署的服务器数量不断增长,电消耗成本的比重也逐年增加。惊人的服务器用电量,让更多的企业在满足性能要求的前提下,更倾向于采用比传统服务器省电的低功耗服务器。因此,从节约成本,降低能源消耗的角度,使用低功耗服务器定制解决方案设计全文检索系统框架已经成为当前大数据海量检索技术的重点及创新点。技术实现要素:发明目的:本发明的目的是解决传统服务器的海量数据全文检索系统造成的庞大耗电量,从节省成本,降低能源消耗的角度出发,引入低功耗ARM架构服务器。技术方案:读写分离的低功耗海量数据全文检索系统框架,读写分离的低功耗海量数据全文检索系统框架,其特征在于,包括可写端和只读端,所述可写端部署至少一个管理节点Master和至少一个数据服务节点Slave,所述只读端部署至少一个数据服务节点;所述可写端的数据服务节点和只读端的数据服务节点都与元数据库关联,所述元数据库保存所有的数据分片的元数据信息;所述可写端的数据服务节点在写数据过程中将数据写入可写端;所述只读端的数据服务节点将要读取的数据发送给客户端;所述管理节点管理元数据库和数据服务节点;所述只读端部署在ARM架构服务器。所述管理节点与数据服务节点通过protocolbuffer消息交互方式通信。Protocolbuffer消息交互是一种二进制的格式,可以用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。所述管理节点定时启动数据迁移,将可写端的数据迁移到只读端。所述管理节点进行查询时,在可写端和只读端上同时查询结果,并将结果集汇总返回给客户端。有益效果:与传统的大数据全文检索系统框架相比,本发明采用了低功耗ARM服务器作为只读端,规避了ARM服务器的写性能不如X86服务器写性能的缺点,又从整体上发挥了ARM服务器的低功耗性,利用传统服务器与低功耗ARM架构服务器混搭的读写分离的方式实现全文检索系统的框架,提供一种高效,稳定,准确,读写分离的低功耗海量数据全文检索系统。附图说明图1是本发明公开的读写分离的低功耗海量数据全文检索系统的整体框架;图2是实施例提供的海量数据全文检索系统写过程消息流程图;图3是实施例提供的海量数据全文检索系统读过程消息流程图。具体实施方式下面结合附图和具体实施方式,进一步阐明本发明。ARM架构服务器与传统的X86服务器的区别在于,ARM服务器具有低功耗的性能,但是写性能略逊于传统的X86服务器。为了引入低功耗ARM架构服务器,又不影响全文检索系统的整体性能,采用读写分离方法。即将传统的X86服务器作为可写端,低功耗ARM架构服务器作为只读端。本实施例中将可写端部署在X86服务器上,只读端部署在ARM服务器上,即管理节点Master部署在X86服务器上,一部分数据服务节点Slave部署在X86服务器上,一部分Slave部署在ARM服务器上,管理节点Master负责管理所有的数据服务节点Slave和元数据库,其中负责管理元数据库的部分为元数据管理模块。可以部署一个主管理节点,也可以部署多个主从关系的管理节点。作为可写端,X86服务器上的数据服务节点主要负责对数据的写入,至少部署一个。ARM服务器作为只读端,部署的数据服务节点主要负责读取数据。所有的数据服务节点都关联到元数据库,元数据库保存可写端与只读端所有数据分片的元数据信息。管理节点与数据服务节点通过protocolbuffer消息交互方式通信。读写分离的低功耗海量数据全文检索系统的整体框架如图1所示。101为可写端上的存储引擎,102为可写端上全文检索系统关联的元数据库。103为只读端上的存储引擎,104为只读端上全文检索系统关联的元数据库,本实施例采用MySQL数据库服务。启动管理节点读取元数据表中元数据信息并启动消息服务,准备接收来自数据服务节点Slave上报的磁盘信息。全文检索系统写数据时,通过数据导入工具ETL(ETL,即Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取extract、转换transform、加载load至目的端的过程),全文检索系统将存入的数据转换为索引文件,并以数据分片的形式存入可写端的存储引擎。索引文件也就是存放数据的数据分片,一般数据分片都至少有一个副本,并按照时间分区。为方便管理数据分片,相同的数据分片有其唯一标识shardID。由元数据管理模块管理数据分片的元数据信息,包括数据分片的shardID,存放的磁盘diskuuid,磁盘的路径path,分片是否可写writable,分片的状态status,分区时间datetime,分片大小size等等。元数据库保存着可写端和只读端所有的数据分片的元数据信息。写数据过程只在可写端上进行,详细的写数据消息流程如图2所示,201为数据服务节点Slave,202为客户端,203为管理节点Master。当客户端发送写入数据消息给数据服务节点Slave,数据服务节点Slave有没写满的分片,那么将数据直接写入到内存并将数据压紧存入可写端的磁盘。否则客户端节点发送消息给管理节点Master,管理节点Master根据元数据信息找到分片对应的数据服务节点Slave,并发送消息给该节点。数据服务节点Slave数据写入完成后会通知客户端和管理节点Master。由管理节点Master更新元数据表。全文检索系统会定时启动数据迁移任务,由Master遍历可写端的数据分片将写满状态的数据分片放入到待迁移的任务队列中,根据同一数据分片的副本不放在同一机器的原则,轮询可迁移的只读端Slave节点,采用scp或ftp传输方式(传输方式可配置)将数据分片由源可写端Slave节点迁移到目的只读端Slave节点上。数据分片的正常状态为NORMAL,迁移过程中的分片状态为MOVING。数据分片迁移到目的只读端后,会进行CRC校验。若校验成功,会将原来的可写端的数据分片及元数据信息删除,并更新元数据库中的数据分片所在机器、磁盘等元数据状态信息。若校验失败,由目的只读端Slave节点通知管理节点Master迁移失败,将数据分片状态修改为NORMAL,并重新放入到待迁移队列,等待下一次定时任务重新迁移。在数据读取的时候,客户端在可写端直接从内存中读取NORMAL和MOVING状态的分片,在只读端只查询NORMAL的分片。数据在没有写满的时候不会迁移,没有写满的分片会在隔天的时候启动天切换迁移机制将没有写满状态的数据分片改为写满状态并统一迁移。因此数据迁移不会影响数据的读写,数据迁移完成后会更新元数据库。通过元数据信息定位数据分片的位置,大小以及状态信息等,以便于准确灵活地迁移和管理数据分片。数据读取的具体消息流程图如图3所示,301为数据服务节点Slave,302为客户端,303为管理节点Master。当客户端发送读取数据的命令给管理节点Master,管理节点Master同时通过可写端和只读端上的元数据库中的元数据信息找到数据对应的数据服务节点Slave,即在可写端和只读端上同时查询,并发送给客户端,客户端节点发送数据读取命令消息给对应的数据服务节点Salve,Slave节点将有关数据的结果集汇总发送给客户端。本实施例中采用Xapian搜索引擎为客户端提供搜索服务。本实施例通过元数据管理模块为管理节点Master提供数据分片的元数据信息,将数据分片从可写端迁移到只读端,利用此读写分离的方式读写数据,将传统服务器与低功耗ARM架构服务器混搭应用到海量数据全文检索系统实现对海量结构化及非结构化数据高效,稳定,快捷的存储和访问。将低功耗ARM架构服务器作为只读端,规避了ARM架构服务器的写性能缺点,发扬了ARM架构服务器的低成本、低功耗的优点,在满足性能的前提下,实现整个全文检索系统的低功耗性。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1