【技术实现步骤摘要】
基于内存和轻量级数据库的配置文件同步系统及方法
本专利技术涉及数据存储
,具体涉及一种基于内存和轻量级数据库的配置文件同步系统及方法。
技术介绍
在基于本地存储的集群管理中,对集群所有节点的管控,一般通过单个节点进行中心化的统一管理,集群的配置数据集中存储于管理节点上,这种方式下管理节点的意外失效会导致整个集群管理失效。在基于分布式存储的集群管理中,配置文件可以存储至分布式系统内,但对于未初始化的分布式存储系统而言,配置文件将无法在集群内存储或共享,再者,基于分布式系统进行配置文件存储,存储后端量级过重、配置复杂,对于即将加入集群的新节点,必须预先安装完整的分布式存储系统,且经过分布式存储系统的访问授权后,才能加入集群,这显著延长了节点的加入时间,增加了节点的加入难度。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何解决基于本地存储中心化管理出现的单节点故障,降低基于分布式存储进行配置同步所带来的节点加入难度。(二)技术方案为了解决上述技术问题,本专利 ...
【技术保护点】
1.一种基于内存和轻量级数据库的配置文件同步系统,其特征在于,该系统布置在每个集群节点上,包含内存数据库、后端数据库和管理模块;其中,所述内存数据库作为前端数据临时存储位置,用于提供应用程序的数据响应;后端数据库用于提供持久化数据存储能力;管理模块用于提供数据读写功能、节点通信功能,以实现对后端数据库的读取和写入,以及在内存数据库中形成一份完整的数据拷贝,以及保证集群目录数据状态的一致。/n
【技术特征摘要】
1.一种基于内存和轻量级数据库的配置文件同步系统,其特征在于,该系统布置在每个集群节点上,包含内存数据库、后端数据库和管理模块;其中,所述内存数据库作为前端数据临时存储位置,用于提供应用程序的数据响应;后端数据库用于提供持久化数据存储能力;管理模块用于提供数据读写功能、节点通信功能,以实现对后端数据库的读取和写入,以及在内存数据库中形成一份完整的数据拷贝,以及保证集群目录数据状态的一致。
2.如权利要求1所述的系统,其特征在于,后端数据库以一个文件作为数据库,使用数据表作为文件的逻辑存储体,数据表中的每一行作为一个文件或目录记录,且包含如下字段:id字段表示数据项的ID,使用ID标识的数据具有唯一性,该字段作为主键具有自增属性;inode字段表示文件的inode号,对于每个文件或目录,管理模块都会为其分配一个inode号,用于标识文件或目录;name字段表示文件或者文件夹的名称,由应用程序指定、管理模块写入;type字段表示文件类型,该值的取值为0,1或2,取值为0时,表示该文件或目录的数据结构刚初始化,未存储数据,取值为1时,表示该项记录的内容为目录,取值为2时,表示该项记录的内容为文件;parent字段表示该项记录的父目录,parent的值存储父目录的inode号,若该项记录位于根目录,则parent字段值为0;ctime字段表示该项记录下文件或目录的创建时间;mtime字段表示该项记录下文件或目录的修改时间;version字段用于表示该项记录下文件或目录的最新版本号,用于区分当前数据是否为最新数据;data字段表示该项记录下的数据实体,若该项记录为文件,则存储文件内容,若该项记录为目录,则字段存储内容为空;
后端数据库中,默认包含一个集群全局版本号文件,该集群全局版本号文件作为第一个条目存储至后端数据库中,该集群全局版本号文件的version字段用于标识集群当前的版本号,每过固定的时间间隔,或者集群目录有数据的写入、修改操作,该文件的version字段值加1。
3.如权利要求2所述的系统,其特征在于,管理模块对后端数据库读取后,在内存数据库中形成的数据拷贝的结构中,文件和目录组织为树状结构,在树状结构的根目录处,即文件系统的挂载位置,可存储文件或目录;子目录内可存储该目录的子目录或文件;在根目录数据结构内,包含一个全局哈希映射表,该全局哈希映射表存储后端数据库的所有文件或目录的哈希映射,该哈希映射表能检索当前后端数据库内是否包含当前检索的项目,以确定是继续查找和定位该检索项还是立即返回上层调用;除根目录外的所有子目录内都包含一个局部哈希映射表,该局部哈希映射表保存当前目录下所有子目录和文件的哈希映射,每次创建或删除条目后,哈希映射同步修改。
4.如权利要求3所述的系统,其特征在于,集群内节点的角色有主节点和从节点之分,主节点是由集群选举产生的状态一致性控制节点,从节点为一般功能性节点;管理模块实现集群内主、从节点间的通信时,在主、从节点的数据写入流程中,当主节点发起数据写请求后,请求消息自主节点发往各从节点,从节点接收到主节点的消息后,发起数据写入操作,写完后返回,从而使从节点与主节点的数据状态保持一致;当从节点发起数据写请求后,数据不会马上写入集群目录,而是产生一个请求消息发往主节点,主节点收到该消息后,将消息发往除数据写入节点外的其他各从节点,同时发送确认消息给当前从节点,此时该当前从节点执行数据写入操作,待主节点写请求返回后,该当前从节点完成数据写操作,从而使各从节点与主节点数据状态保持一致。
5.一种利用权利要求1至4中任一项所述系统实现的基于内存和轻量级数据库的配置文件同步方法,其特征在于,包括以下步骤:
步骤1、集群状态初始化
集群刚建立时,管理模块检查本节点的后端数据库,若当前节点存在后端数据库,则读取后端数据库中的记录至内存数据库;若当前节点上没有后端数据库,则创建新的后端数据库;
在节点没有后端数据库的情况下,管理模块自动创建新的后端数据库,并打开后端数据库,往后端数据库中写入集群全局版本号文件,该文件的inode字段设置为0,parent字段设置为0;
在节点存在后端数据库的情况下,后端数据库中存储的目录或文件通过数据表内的各字段信息重组为内存数据库中的树状存储结构;管理模块按顺序从后端数据库逐行读取记录,并在根目录结构中创建全局哈希映射表;
步骤2、在集群状态初始化后执行如下步骤:
数据写入:
节点向集群目录写入数据时,先检测当前节点的运行模式,若节点处于单节点模式,则直接写入;若处于集群模式,则进一步检测集群状态,若集群处于正常工作状态,则正常写入,若集群处于异常工作状态,则只能读取,禁止写入;
向正常工作状态下的集群目录写入数据的流程如下:
(1)若写入数据为目录,则生成目录数据结构,在全局哈希映射表中添加目录信息、在该目录的父目录局部哈希映射表中添加目录信息,填充目录的parent信息、inode信息、name信息、ctime信息、mtime信息、version信息,...
【专利技术属性】
技术研发人员:殷双飞,刘彬彬,马连志,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。