一种用于分布式数据库系统的更新数据的方法及装置制造方法及图纸

技术编号:16456000 阅读:37 留言:0更新日期:2017-10-25 20:33
本发明专利技术实施例提供了一种用于分布式数据库系统的更新数据的方法及装置,所述方法包括:获取每台服务器中保存的数据表,并读取每个数据表中的每一行数据;针对所读取的每一行数据,判断自身保存的哈希表中是否存在该行数据对应的关键码;如果是,读取数据表中该行数据的第一版本号,判断第一版本号是否大于哈希表中保存的该行数据对应的第二版本号;如果是,将该行数据更新到哈希表中,并更新该行数据对应的版本信息;如果否,将该行数据写入哈希表中,并写入该行数据对应的关键码以及版本信息;将哈希表发送到主服务器,以使每台服务器根据主服务器接收的哈希表进行数据恢复。本发明专利技术实施例能够恢复分布式数据库系统中最新的数据。

Method and device for updating data used in distributed database system

The embodiment of the invention relates to a method and a device for updating data in a distributed database system is provided, the method comprises: acquiring the saved data table for each server, and read each data in each row in the data table; for each row of data read by the judge, the presence of the key data the corresponding hash table stored in itself; if it is, read the first version of the data in the data table, determine the second version first version number is greater than the corresponding data stored in a hash table; if yes, will update the row data into a hash table, version information and update the row data the corresponding; if not, the data is written in the hash table, and writes the data corresponding to the key code and version information; the hash table is sent to the master server, so that each server root Data recovery based on the hash table received by the master server. The embodiment of the invention can recover the latest data in the distributed database system.

【技术实现步骤摘要】
一种用于分布式数据库系统的更新数据的方法及装置
本专利技术涉及数据处理
,特别是涉及一种用于分布式数据库系统的更新数据的方法及装置。
技术介绍
随着计算机技术的普及,很多重要数据都是保存在电子设备中的。人们对电子设备的使用越多,对性能的要求也越高。分布式数据库系统的出现,可以有效分散数据库服务对于单台计算机设备的压力,提高了数据库服务的整体性能,也带来了更好的数据安全性保证。分布式数据库系统,通过组建多台数据库服务器,实现数据库系统的整体读写性能的提升,为高并发读写数据库应用提供了技术支撑,在大型交互式网站、银行等后台都得到了广泛的应用。既然分布式数据库系统的每台数据库服务器都保存了数据,就需要保证各数据库服务器中保存的数据的一致性。然而,在出现系统异常、异常掉电等故障的时候,可能导致各分布式服务器中数据不一致的情况。因此,需要从分布式数据库系统中恢复出最新的完整的数据。
技术实现思路
本专利技术实施例的目的在于提供一种用于分布式数据库系统的更新数据的方法及装置,以恢复分布式数据库系统中最新的数据。具体技术方案如下:第一方面,本专利技术实施例提供了一种用于分布式数据库系统的更新数据的方法,应用于分布式数据库系统中的维护有哈希表的服务器,其中所述哈希表中针对数据表中每一行数据保存有该行数据对应的关键码以及该行数据的版本信息,所述方法包括:获取所述分布式数据库系统中的每台服务器中保存的数据表,并针对获取的每个数据表,读取该数据表中的每一行数据;针对所读取的每一行数据,判断自身保存的哈希表中是否存在该行数据对应的关键码;如果是,读取所述数据表中该行数据的第一版本号,判断所述第一版本号是否大于所述哈希表中保存的该行数据对应的第二版本号;如果是,将该行数据更新到所述哈希表中,并更新该行数据对应的版本信息;如果否,将该行数据写入所述哈希表中,并写入该行数据对应的关键码以及版本信息;将所述哈希表发送到主服务器,以使所述分布式数据库系统中的每台服务器根据所述主服务器接收的哈希表进行数据恢复。进一步地,所述针对获取的每个数据表,读取该数据表中的每一行数据,包括:针对每个数据表,采用数据分片的方式,读取该数据表中的每一行数据。进一步地,所述写入该行数据对应的关键码,包括:将数据表中该行数据的主键作为哈希表中该行数据对应的关键码,写入到所述哈希表中。进一步地,所述将该行数据写入所述哈希表之后,所述方法还包括:在所述哈希表中记录该行数据的出现频次。进一步地,当判断所述第一版本号等于所述第二版本号时,所述方法还包括:将所述哈希表中该行数据的出现频次加1。进一步地,所述将所述哈希表发送到主服务器之前,所述方法还包括:针对所述哈希表中每行数据的出现频次,判断该行数据的出现频次是否小于预定阈值,如果是,删除该行数据。第二方面,本专利技术实施例提供了一种用于分布式数据库系统的更新数据的装置,应用于分布式数据库系统中的存储有哈希表的服务器,其中所述哈希表中针对数据表中每一行数据保存有该行数据对应的关键码以及该行数据的版本信息,所述装置包括:获取模块,用于获取所述分布式数据库系统中的每台服务器中保存的数据表,并针对获取的每个数据表,读取该数据表中的每一行数据;判断模块,用于针对所读取的每一行数据,判断自身保存的哈希表中是否存在该行数据对应的关键码;第一处理模块,用于当所述判断模块判断结果为是时,读取所述数据表中该行数据的第一版本号,判断所述第一版本号是否大于所述哈希表中保存的该行数据对应的第二版本号;如果是,将该行数据更新到所述哈希表中,并更新该行数据对应的版本信息;第二处理模块,用于当所述判断模块判断结果为否时,将该行数据写入所述哈希表中,并写入该行数据对应的关键码以及版本信息;发送模块,用于将所述哈希表发送到主服务器,以使所述分布式数据库系统中的每台服务器根据所述主服务器接收的哈希表进行数据恢复。进一步地,所述获取模块,具体用于针对每个数据表,采用数据分片的方式,读取该数据表中的每一行数据。进一步地,所述第二处理模块,具体用于将数据表中该行数据的主键作为哈希表中该行数据对应的关键码,写入到所述哈希表中。进一步地,所述装置还包括:记录模块,用于在所述第一处理模块或第二处理模块将该行数据写入所述哈希表之后,在所述哈希表中记录该行数据的出现频次。进一步地,所述装置还包括:执行模块,用于当所述第一处理模块判断所述第一版本号等于所述第二版本号时,将所述哈希表中该行数据的出现频次加1。进一步地,所述装置还包括:删除模块,用于在所述发送模块将所述哈希表发送到主服务器之前,针对所述哈希表中每行数据的出现频次,判断该行数据的出现频次是否小于预定阈值,如果是,删除该行数据。本专利技术实施例提供了一种用于分布式数据库系统的更新数据的方法及装置,应用于分布式数据库系统中的存储有哈希表的服务器,所述方法包括:获取所述分布式数据库系统中的每台服务器中保存的数据表,并针对获取的每个数据表,读取该数据表中的每一行数据;针对所读取的每一行数据,判断自身保存的哈希表中是否存在该行数据对应的关键码;如果是,读取所述数据表中该行数据的第一版本号,判断所述第一版本号是否大于所述哈希表中保存的该行数据对应的第二版本号;如果是,将该行数据更新到所述哈希表中,并更新该行数据对应的版本信息;如果否,将该行数据写入所述哈希表中,并写入该行数据对应的关键码以及版本信息;将所述哈希表发送到主服务器,以使所述分布式数据库系统中的每台服务器根据所述主服务器接收的哈希表进行数据恢复。本专利技术实施例中,能够根据分布式数据库系统中各服务器中的数据表构建包含该分布式数据库系统中完整的最新的数据的哈希表,并且可以将该哈希表发送到主服务器,以使分布式数据库系统中的每台服务器根据主服务器接收的哈希表进行数据恢复,因此,能够在各服务器中恢复该分布式数据库系统中最新的完整的数据。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种用于分布式数据库系统的更新数据的方法的流程图;图2为本专利技术实施例提供的一种用于分布式数据库系统的更新数据的方法的另一流程图;图3为本专利技术实施例提供的一种用于分布式数据库系统的更新数据的装置的结构示意图;图4为本专利技术实施例提供的一种用于分布式数据库系统的更新数据的装置的另一结构示意图。具体实施方式为了恢复分布式数据库系统中最新的数据,本专利技术实施例提供了一种用于分布式数据库系统的更新数据的方法及装置。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术。为了恢复分布式数据库系统中最新的数据,本专利技术实施例提供了一种用于分布式本文档来自技高网...
一种用于分布式数据库系统的更新数据的方法及装置

【技术保护点】
一种用于分布式数据库系统的更新数据的方法,其特征在于,应用于分布式数据库系统中的维护有哈希表的服务器,其中所述哈希表中针对数据表中每一行数据保存有该行数据对应的关键码以及该行数据的版本信息,所述方法包括:获取所述分布式数据库系统中的每台服务器中保存的数据表,并针对获取的每个数据表,读取该数据表中的每一行数据;针对所读取的每一行数据,判断自身保存的哈希表中是否存在该行数据对应的关键码;如果是,读取所述数据表中该行数据的第一版本号,判断所述第一版本号是否大于所述哈希表中保存的该行数据对应的第二版本号;如果是,将该行数据更新到所述哈希表中,并更新该行数据对应的版本信息;如果否,将该行数据写入所述哈希表中,并写入该行数据对应的关键码以及版本信息;将所述哈希表发送到主服务器,以使所述分布式数据库系统中的每台服务器根据所述主服务器接收的哈希表进行数据恢复。

【技术特征摘要】
1.一种用于分布式数据库系统的更新数据的方法,其特征在于,应用于分布式数据库系统中的维护有哈希表的服务器,其中所述哈希表中针对数据表中每一行数据保存有该行数据对应的关键码以及该行数据的版本信息,所述方法包括:获取所述分布式数据库系统中的每台服务器中保存的数据表,并针对获取的每个数据表,读取该数据表中的每一行数据;针对所读取的每一行数据,判断自身保存的哈希表中是否存在该行数据对应的关键码;如果是,读取所述数据表中该行数据的第一版本号,判断所述第一版本号是否大于所述哈希表中保存的该行数据对应的第二版本号;如果是,将该行数据更新到所述哈希表中,并更新该行数据对应的版本信息;如果否,将该行数据写入所述哈希表中,并写入该行数据对应的关键码以及版本信息;将所述哈希表发送到主服务器,以使所述分布式数据库系统中的每台服务器根据所述主服务器接收的哈希表进行数据恢复。2.根据权利要求1所述的方法,其特征在于,所述针对获取的每个数据表,读取该数据表中的每一行数据,包括:针对每个数据表,采用数据分片的方式,读取该数据表中的每一行数据。3.根据权利要求1所述的方法,其特征在于,所述写入该行数据对应的关键码,包括:将数据表中该行数据的主键作为哈希表中该行数据对应的关键码,写入到所述哈希表中。4.根据权利要求1-3任一所述的方法,其特征在于,所述将该行数据写入所述哈希表之后,所述方法还包括:在所述哈希表中记录该行数据的出现频次。5.根据权利要求4所述的方法,其特征在于,当判断所述第一版本号等于所述第二版本号时,所述方法还包括:将所述哈希表中该行数据的出现频次加1。6.根据权利要求5所述的方法,其特征在于,所述将所述哈希表发送到主服务器之前,所述方法还包括:针对所述哈希表中每行数据的出现频次,判断该行数据的出现频次是否小于预定阈值,如果是,删除该行数据。7.一种用于分布式数据库系统的更新数据的装置,其特征在于,应用于分布式数据库系统中的存...

【专利技术属性】
技术研发人员:黄华东王伟林起芊
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江,33

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

1