一种应用于分布式数据库的函数库热更新方法技术

技术编号:22944460 阅读:21 留言:0更新日期:2019-12-27 17:09
本发明专利技术涉及一种应用于分布式数据库的函数库热更新方法,包括以下步骤:将动态库存放到hadoop分布式文件系统上;将所需信息写入配置文件中;将配置文件同步到指定的zookeeper配置监听目录;当所述指定的zookeeper配置监听目录下有修改,通知各节点;所述各节点接收到zookeeper的消息后,更新配置文件,同时重新加载配置文件,完成函数库的更新。本发明专利技术实现了应用于分布式数据库的可即插即用函数库技术,无需重新编译,无需重新启动,无需对每个节点冗余更新。

A method of function library thermal update applied to distributed database

【技术实现步骤摘要】
一种应用于分布式数据库的函数库热更新方法
本专利技术涉及分布式数据库
,具体来说,涉及一种应用于分布式数据库的函数库热更新方法。
技术介绍
数据库管理系统(英语:DatabaseManagementSystem,简称DBMS)是为管理数据库而设计的电脑软件系统,具有存储、截取、安全保障、备份等基础功能。一般通过SQL语句进行增加、修改、查询数据,而为了能够获取所需的数据或结果,在查询数据的过程中,使用不同功能函数对数据进行加工处理也是必不可少的。由于经常需要增加一些新的需求功能,故在数据库管理系统的设计中,函数库的设计应当具备高可扩展性。现有函数库设计方式主要有以下两种:1、将函数直接编译成静态库.a这是最基本的实现方式,实现起来最为简单,但弊端也很明显,每次增加新函数,必须重新编译,生成可执行程序。2、将函数编译成动态库.so为了避免重新编译这一弊端,已有采用动态函数库的方式,这样新增一个功能函数时,不需要重新编译,只需重新加载配置文件(用于运行时读取函数的信息)。现有的动态函数库这种方式,仍存在一些缺点:缺点1:虽然解决了重新编译的问题,但对于分布式数据库来说,需要对各个节点进行更新配置文件、添加动态库的操作,这一操作是繁琐冗余的。缺点2:采用一次读取配置文件,即配置文件在程序运行时只会被读取一次,这样就导致每次更新配置文件后,需要重启程序,无法实现热更新。针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
<br>针对相关技术中的上述技术问题,本专利技术提出一种应用于分布式数据库的函数库热更新方法,能够避免以上两个缺点,实现应用于分布式数据库的可即插即用函数库技术,无需重新编译,无需重新启动,无需对每个节点冗余更新。为实现上述技术目的,本专利技术的技术方案是这样实现的:一种应用于分布式数据库的函数库热更新方法,其特征在于,包括以下步骤:S1、将动态库存放到hadoop分布式文件系统上;S2、将所需信息写入配置文件中;S3、将配置文件同步到指定的zookeeper配置监听目录;S4、当所述指定的zookeeper配置监听目录下有修改,通知各节点;S5、所述各节点接收到zookeeper的消息后,更新配置文件,同时重新加载配置文件,完成函数库的更新。进一步的,所述S1步骤中的动态库为在linux下使用编译指令将新增函数编译成的.so动态库。进一步的,所述.so动态库存放在hadoop分布式文件系统上的任意位置。进一步的,所述S2步骤中的所需信息包括函数的基本信息及动态库在hadoop分布式文件系统上的存放路径。进一步的,所述S3步骤具体为:将配置文件保存到zookeeper的任一目录节点下,分布数据库的所有节点都对该目录节点进行监听。进一步的,所述S4步骤具体为:当配置文件被更改时,zookeeper会通知分布数据库的各节点。进一步的,所述S5步骤具体为:分布数据库的各节点接收zookeeper的消息后,获取最新的配置文件内容,同时重新加载配置文件中的函数信息,完成函数库的更新。进一步的,还包括S6步骤:当函数调用时,从hadoop分布式文件系统上动态加载并调用。进一步的,所述S6步骤具体为:当调用函数时,根据已加载的函数信息和.so动态库存放路径,从hadoop分布式文件系统上读取,然后动态加载函数库并调用相应函数。本专利技术的有益效果:函数库支持多节点共享的基础上,在新增函数功能时,分布式数据库的所有节点不需要重新编译、重新启动,实时进行更新、应用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例所述的一种应用于分布式数据库的函数库热更新方法的流程图。图2是根据本专利技术实施例所述的设计概念图。图3是根据本专利技术实施例所述的配置更新图。其中,hdfs为hadoop分布式文件系统的缩写。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,根据本专利技术实施例所述的一种应用于分布式数据库的函数库热更新方法,包括以下步骤:S1、函数实现编译成动态库;S2:将动态库存放到hdfs;S3:修改配置文件;S4:将配置文件同步到指定的zookeeper配置监听目录;S5:当指定的zookeeper配置监听目录下有修改,通知各节点;S6:各节点接收到zookeeper的消息后,更新配置文件,同时重新加载配置文件;S7:函数调用时,从hdfs上动态加载并调用。在本优选实施例中,上述方法具体过程如下:连接zookeeper:zk=newzookeeper(ip:port,time_out,监听事件处理watcher)。S1:在linux下,使用编译指令将新增函数编译成.so动态库。S2:将该.so动态库存放到hdfs上的指定位置(随意):存放hadoopfs-put/{本地文件路径}/{目标文件路径}。S3:将函数的基本信息及在hdfs上的存放路径写入配置文件中。S4:将配置文件保存到zookeeper的某一目录节点(随意)下:创建目录zk.create(目录路径”/conf”,,初始数据”data0”)、修改配置zk.setData(目录路径”/conf”,待写入数据”data1”)。分布数据库的所有节点都对该目录节点进行监听:监听配置zk.exist(目录路径”/conf”,是否监控true)。S5:当配置文件被更改时,zookeeper会通知分布数据库的各节点。S6:分布数据库的各节点接收zookeeper的消息后,获取最新的配置文件内容,同时重新加载配置文件中的函数信息。在监听事件处理watcher中添加:获取数据zk.getData(目录路径“/conf”,是否监控false,null)。S7:当调用函数时,根据已加载的函数信息和.so动态库存放路径,从hdfs上读取,然后动态加载函数库并调用相应函数。为了方便理解本专利技术的上述技术方案,以下通过具体设计思路与原理上对本专利技术的上述技术方案进行详细说明。在具体设计时,为弥补现有技术的不足,本专利技术提供一种应用于分布式数据库的函数库热更新方法,分布式数据库主要使用hdfs(Hadoop分布式文件系统)提供文件管理,使用zookeeper(一个分布式应用程序协调服务)提供配置管理、集群管理、分布式锁、本文档来自技高网...

【技术保护点】
1.一种应用于分布式数据库的函数库热更新方法,其特征在于,包括以下步骤:/nS1、将动态库存放到hadoop分布式文件系统上;/nS2、将所需信息写入配置文件中;/nS3、将配置文件同步到指定的zookeeper配置监听目录;/nS4、当所述指定的zookeeper配置监听目录下有修改,通知各节点;/nS5、所述各节点接收到zookeeper的消息后,更新配置文件,同时重新加载配置文件,完成函数库的更新。/n

【技术特征摘要】
1.一种应用于分布式数据库的函数库热更新方法,其特征在于,包括以下步骤:
S1、将动态库存放到hadoop分布式文件系统上;
S2、将所需信息写入配置文件中;
S3、将配置文件同步到指定的zookeeper配置监听目录;
S4、当所述指定的zookeeper配置监听目录下有修改,通知各节点;
S5、所述各节点接收到zookeeper的消息后,更新配置文件,同时重新加载配置文件,完成函数库的更新。


2.根据权利要求1所述的一种应用于分布式数据库的函数库热更新方法,其特征在于,所述S1步骤中的动态库为在linux下使用编译指令将新增函数编译成的.so动态库。


3.根据权利要求2所述的一种应用于分布式数据库的函数库热更新方法,其特征在于,所述.so动态库存放在hadoop分布式文件系统上的任意位置。


4.根据权利要求3所述的一种应用于分布式数据库的函数库热更新方法,其特征在于,所述S2步骤中的所需信息包括函数的基本信息及动态库在hadoop分布式文件系统上的存放路径。


5.根据权利要求4所述的一种应...

【专利技术属性】
技术研发人员:杨力周伟周群年
申请(专利权)人:北京东方国信科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1