多嵌入式数据库缓冲区大小协调优化方法及系统技术方案

技术编号:39035246 阅读:7 留言:0更新日期:2023-10-10 11:48
多嵌入式数据库缓冲区大小协调优化方法及系统,涉及数据库技术领域,针对现有技术中对嵌入式数据库优化时,往往是逐个进行优化,这一过程在同一个系统中重复执行多次,不但浪费时间且使每一个数据库的缓存大幅增长,导致其他程序运行时,由于内存不足,使得其他程序无法运行的问题,本申请针对嵌入式数据库轻量级的特点,对所有的嵌入式数据库进行统一的优化而不是每个数据库分别优化,提升了优化效率,避免了逐个优化导致的时间浪费。并且本申请通过缩小子函数,将缓冲区按排序恢复到默认大小,以此帮助系统渡过内存使用的高峰期,进而解决了数据库的缓存大幅增长,导致其他程序运行时,由于内存不足,使得其他程序无法运行的问题。的问题。的问题。

【技术实现步骤摘要】
多嵌入式数据库缓冲区大小协调优化方法及系统


[0001]本专利技术涉及数据库
,具体为多嵌入式数据库缓冲区大小协调优化方法及系统。

技术介绍

[0002]针对数据库的运行的优化算法从数据库诞生开始就已经被广泛研究。但是,针对嵌入式数据库的优化算法的研究仍然称不上充分。由于嵌入式数据库本身存在的诸多限制,针对其优化的方式主要是对查询和读写进行优化,例如基数估计优化、查询计划树优化等,这些技术是延续自关系型数据库,将嵌入式数据库假定为小型的关系型数据库。另一方面,有一些研究旨在将机器学习技术融入到嵌入式数据库中以对数据库进行优化,如利用深度学习算法对嵌入式数据库的多种配置进行自动调节使其达到最佳的配置状态。嵌入式数据库的特点提高了对其优化的难度。
[0003]现有的嵌入式数据库如SQLite、H2等数据库往往很少存在针对其性能的优化。这是由于嵌入式数据库存在多种特性所决定的。轻量级的,与服务器端的数据库如MySQL不同,嵌入式数据库的目的不在于其性能高低,而是针对程序、系统服务等使它们便捷地存储数据。它嵌入到程序中并发挥弱于常规数据库的作用。这就要求嵌入式数据库的大小要足够轻量、不冗余。但是这同样也限制了对其进行优化。另一方面,为了实现其轻量级的特点,嵌入式数据库去除了一部分功能,如它们的并发性能通常很差、不支持多个用户操作等。
[0004]正如上文所示,嵌入式数据库嵌入到程序中,在同一个设备中可能运行着多种程序或者系统服务,每个程序或者服务都有自己的数据库,这就意味着同一个设备上同时运行着多个嵌入式数据库。另一方面,嵌入式数据库不可能占据整个设备的所有运算资源,它们必须与其他的程序协作运行,这就不同于服务器端的数据库可以独占整个设备的所有资源。因此,在对嵌入式数据库进行优化时,同样不可能假设使用设备的全部资源,只能在有限的资源中尽可能地优化。
[0005]而现有方法对嵌入式数据库优化时,往往是逐个进行优化,这一过程在同一个系统中重复执行多次,不但浪费时间且使每一个数据库的缓存大幅增长,导致其他程序运行时,由于内存不足,使得其他程序无法运行。

技术实现思路

[0006]本专利技术的目的是:针对现有技术中对嵌入式数据库优化时,往往是逐个进行优化,这一过程在同一个系统中重复执行多次,不但浪费时间且使每一个数据库的缓存大幅增长,导致其他程序运行时,由于内存不足,使得其他程序无法运行的问题,提出多嵌入式数据库缓冲区大小协调优化方法及系统。
[0007]本专利技术为了解决上述技术问题采取的技术方案是:
[0008]多嵌入式数据库缓冲区大小协调优化方法,包括以下步骤:
[0009]步骤一:连接嵌入式数据库,并在已连接的嵌入式数据库中监听嵌入式数据库发
送的事务状态信号,所述事务状态包括活跃的嵌入式数据库和不活跃的嵌入式数据库,活跃的嵌入式数据库信号指存在读或写事务正在进行的嵌入式数据库、读或写事务尚未完成的嵌入式数据库,不活跃的嵌入式数据库信号指当前无事务正在进行的嵌入式数据库;
[0010]步骤二:在收集到所有的嵌入式数据库发送的事务状态信号后,根据事务状态,将活跃的嵌入式数据库输入到增大子函数中,将不活跃的嵌入式数据库输入到缩小子函数中,并执行步骤五,所述增大子函数和缩小子函数分别用于嵌入式数据库的缓冲区增大和缓冲区缩小;
[0011]在增大子函数中,首先判断当前内存使用率是否大于等于60%,若是,则停止对活跃的嵌入式数据库的缓冲区增大,并将活跃的嵌入式数据库输入到缩小子函数中,并执行步骤五,否则,继续进行活跃嵌入式数据库的缓冲区增大操作;
[0012]若继续进行增大操作,则首先计算出当前内存使用率与60%之间的差值,并根据实际内存大小,结合差值,得到允许使用的最大的增大缓冲区的内存大小,在允许范围内,根据嵌入式数据库输入到增大子函数的顺序,针对每一个嵌入式数据库执行如下步骤:
[0013]逐渐增加嵌入式数据库缓冲区中内存的大小,并记录嵌入式数据库运行过程中的吞吐率,若吞吐率随着缓冲区中内存大小单调增大,则此时缓冲区大小为局部最佳记录,之后继续增加缓冲区中内存的大小,并更新局部最佳记录,若吞吐率不随缓冲区中内存大小单调增大,则此时缓冲区大小为全局最佳记录;
[0014]若存在全局最佳记录,则选取全局最佳记录对应的缓冲区的内存大小作为最终缓冲区大小,若不存在全局最佳记录,则选取最新的局部最佳记录对应的缓冲区的内存大小作为最终缓冲区大小;
[0015]步骤三:将所有嵌入式数据库对应的最终缓冲区大小加上当前内存使用值后,进而得到内存的使用率,然后判断内存使用率是否超过了60%,若未超过60%,则应用所有的嵌入式数据库最终缓冲区大小,若超过了60%,则将步骤二中得到的嵌入式数据库的最终缓冲区大小,以内存大小为条件进行排序,之后根据排序,由大到小将嵌入式数据库的最终缓冲区大小依次进行恢复,直至内存使用率不超过60%,此时,应用未恢复的嵌入式数据库最终缓冲区大小;
[0016]步骤四;设置间隔时间,并在每次到达间隔时间时,将所有嵌入式数据库输入到缩小子函数中,并执行步骤五;
[0017]步骤五:在缩小子函数中,将输入的嵌入式数据库,按缓冲区大小由大到小进行排序,并根据排序由大到小,按顺序将嵌入式数据库的缓冲区恢复到默认大小,每次恢复后,再次判断内存使用率大小,当内存使用率大小回到60%以下后,停止缓冲区的恢复,当所有嵌入式数据库的缓冲区均恢复到默认大小时,系统的内存使用率仍然未能回到60%以下,则结束缩小子函数。
[0018]进一步的,所述步骤一的具体步骤为:
[0019]判断当前是否连接嵌入式数据库,若当前未连接嵌入式数据库,则对所有的嵌入式数据库发送消息进行连接,若嵌入式数据库同意连接,则与其进行连接,并在后续通过心跳机制保持嵌入式数据库的连接;
[0020]若当前已连接嵌入式数据库,则对未连接的嵌入式数据库重新发送消息进行连接,若嵌入式数据库同意连接,则与其进行连接,并在后续通过心跳机制保持嵌入式数据库
的连接。
[0021]进一步的,当缓冲区大小为全局最佳记录时,采用ε

greedy模式继续进行探索。
[0022]进一步的,所述在差值范围内,逐渐增加内存大小中,每次增加的内存大小为20MB。
[0023]进一步的,所述间隔时间为10分钟。
[0024]多嵌入式数据库缓冲区大小协调优化系统,包括嵌入式数据库连接模块、缓冲区调整模块、增大子函数模块、缓冲区恢复模块以及缩小子函数模块;
[0025]所述嵌入式数据库连接模块用于连接嵌入式数据库,并在已连接的嵌入式数据库中监听嵌入式数据库发送的事务状态信号,所述事务状态包括活跃的嵌入式数据库和不活跃的嵌入式数据库,活跃的嵌入式数据库信号指存在读或写事务正在进行的嵌入式数据库、读或写事务尚未完成的嵌入式数据库,不活跃的嵌入式数据库信号指当前无事务正在进行的嵌入式数据库;
[0026]所述缓冲区调整模本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.多嵌入式数据库缓冲区大小协调优化方法,其特征在于包括以下步骤:步骤一:连接嵌入式数据库,并在已连接的嵌入式数据库中监听嵌入式数据库发送的事务状态信号,所述事务状态包括活跃的嵌入式数据库和不活跃的嵌入式数据库,活跃的嵌入式数据库信号指存在读或写事务正在进行的嵌入式数据库、读或写事务尚未完成的嵌入式数据库,不活跃的嵌入式数据库信号指当前无事务正在进行的嵌入式数据库;步骤二:在收集到所有的嵌入式数据库发送的事务状态信号后,根据事务状态,将活跃的嵌入式数据库输入到增大子函数中,将不活跃的嵌入式数据库输入到缩小子函数中,并执行步骤五,所述增大子函数和缩小子函数分别用于嵌入式数据库的缓冲区增大和缓冲区缩小;在增大子函数中,首先判断当前内存使用率是否大于等于60%,若是,则停止对活跃的嵌入式数据库的缓冲区增大,并将活跃的嵌入式数据库输入到缩小子函数中,并执行步骤五,否则,继续进行活跃嵌入式数据库的缓冲区增大操作;若继续进行增大操作,则首先计算出当前内存使用率与60%之间的差值,并根据实际内存大小,结合差值,得到允许使用的最大的增大缓冲区的内存大小,在允许范围内,根据嵌入式数据库输入到增大子函数的顺序,针对每一个嵌入式数据库执行如下步骤:逐渐增加嵌入式数据库缓冲区中内存的大小,并记录嵌入式数据库运行过程中的吞吐率,若吞吐率随着缓冲区中内存大小单调增大,则此时缓冲区大小为局部最佳记录,之后继续增加缓冲区中内存的大小,并更新局部最佳记录,若吞吐率不随缓冲区中内存大小单调增大,则此时缓冲区大小为全局最佳记录;若存在全局最佳记录,则选取全局最佳记录对应的缓冲区的内存大小作为最终缓冲区大小,若不存在全局最佳记录,则选取最新的局部最佳记录对应的缓冲区的内存大小作为最终缓冲区大小;步骤三:将所有嵌入式数据库对应的最终缓冲区大小加上当前内存使用值后,进而得到内存的使用率,然后判断内存使用率是否超过了60%,若未超过60%,则应用所有的嵌入式数据库最终缓冲区大小,若超过了60%,则将步骤二中得到的嵌入式数据库的最终缓冲区大小,以内存大小为条件进行排序,之后根据排序,由大到小将嵌入式数据库的最终缓冲区大小依次进行恢复,直至内存使用率不超过60%,此时,应用未恢复的嵌入式数据库最终缓冲区大小;步骤四;设置间隔时间,并在每次到达间隔时间时,将所有嵌入式数据库输入到缩小子函数中,并执行步骤五;步骤五:在缩小子函数中,将输入的嵌入式数据库,按缓冲区大小由大到小进行排序,并根据排序由大到小,按顺序将嵌入式数据库的缓冲区恢复到默认大小,每次恢复后,再次判断内存使用率大小,当内存使用率大小回到60%以下后,停止缓冲区的恢复,当所有嵌入式数据库的缓冲区均恢复到默认大小时,系统的内存使用率仍然未能回到60%以下,则结束缩小子函数。2.根据权利要求1所述的多嵌入式数据库缓冲区大小协调优化方法,其特征在于所述步骤一的具体步骤为:判断当前是否连接嵌入式数据库,若当前未连接嵌入式数据库,则对所有的嵌入式数据库发送消息进行连接,若嵌入式数据库同意连接,则与其进行连接,并在后续通过心跳机
制保持嵌入式数据库的连接;若当前已连接嵌入式数据库,则对未连接的嵌入式数据库重新发送消息进行连接,若嵌入式数据库同意连接,则与其进行连接,并在后续通过心跳机制保持嵌入式数据库的连接。3.根据权利要求1所述的多嵌入式数据库缓冲区大小协调优化方法,其特征在于当缓冲区大小为全局最佳记录时,采用ε

greedy模式继续进行探索。4.根据权利要求1所述的多嵌入式数据库缓冲区大小协调优化方法,其特征在于所述在差值范围内,逐渐增加内存大小中,每次增加的内存大小为20MB。5.根据权利要求1所述的多嵌入式数据库缓冲区大小协调优化方法,其特征在于所述间隔时间为10分钟。6.多嵌入式数据库缓冲区大小协调优化系统,其特征在于包括嵌入式数据库连接模块、缓...

【专利技术属性】
技术研发人员:张昊然王宏志丁小欧杨东华左德承
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

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

1