一种访问数据库的方法和装置制造方法及图纸

技术编号:17994503 阅读:36 留言:0更新日期:2018-05-19 11:41
本申请实施例提供了一种访问数据库的方法和装置,涉及IT领域,能够解决通过文件系统访问数据库时所导致的数据库性能下降的问题。该方案包括:网络设备获取待读写的数据块的第一地址和待读写的数据块的第二地址;网络设备根据第一地址确定待读写的数据块对应的目标哈希桶;根据第二地址遍历目标哈希桶中的表项;若网络设备确定目标哈希桶中存在与第二地址匹配的表项,网络设备根据第一地址和第二地址确定待读写的数据块在第一类SSD中对应的第一扇区的LBA;网络设备读取第一扇区的LBA中的数据。本申请实施例可以应用于网络加速和重复数据删除领域。

A method and device for accessing database

This application example provides a method and device for accessing the database, which involves the IT field, and can solve the problem of the decline in the performance of the database resulting from the access to the database through a file system. The scheme includes: the network device obtains the first address of the data block to be read and written and the second address of the data block to be read and written; the network device determines the target Hashi corresponding to the data block to be read and written according to the first address; traverses the table item in the target hash bucket according to the second address; if the network device determines the target hash bucket exists in the network device The network device determines the LBA of the first sector corresponding to the first class SSD according to the first address and the second address, and the network device reads the data in the LBA of the first sector according to the first address and the address of the second address. The application example can be applied to the fields of network acceleration and data duplication.

【技术实现步骤摘要】
一种访问数据库的方法和装置
本申请涉及信息技术(InformationTechnology,IT)领域,尤其涉及一种访问数据库的方法和装置。
技术介绍
随着互联网技术的发展,服务器和网络设备之间交互的数据量越来越大,交互数据的次数也越来越频繁,从而产生了大容量的数据库。现有的大容量的数据库通常以文件系统存储数据,文件系统可以通过数据库文件管理存储设备(例如,固态硬盘(SolidStateDrives,SSD))上存储的数据。当某个应用的线程需要对SSD上的数据进行读写操作时,可以通过相应的数据库文件获取所需的数据。但是,当应用的线程通过数据库文件获取所需的数据时,需要将该数据库文件锁定,导致其他线程无法访问该数据库文件,即无法进行多核并发,导致数据库的性能下降。
技术实现思路
本申请的实施例提供一种访问数据库的方法和装置,能够解决通过文件系统访问数据库时所导致的数据库性能下降的问题。为达到上述目的,本申请的实施例采用如下技术方案:第一方面,本申请实施例提供一种访问数据库的方法,数据库包括计算机内存储器部分和SSD部分,计算机内存储器部分包括至少一个哈希桶,SSD部分包括第一类SSD,第一类SSD中的每个SSD包括至少一个扇区;该方法包括:网络设备获取待读写的数据块的第一地址和待读写的数据块的第二地址,第一地址用于指示待读写的数据块对应的目标哈希桶,第二地址用于匹配目标哈希桶中的表项;网络设备根据第一地址确定待读写的数据块对应的目标哈希桶;根据第二地址遍历目标哈希桶中的表项;若网络设备确定目标哈希桶中存在与第二地址匹配的表项,网络设备根据第一地址和第二地址确定待读写的数据块在第一类SSD中对应的第一扇区的逻辑区块地址(LogicalBlockAddress,LBA);网络设备读取第一扇区的LBA中的数据。第二方面,本申请实施例提供一种网络设备,应用于访问数据库的场景中,数据库包括计算机内存储器部分和固态硬盘SSD部分,计算机内存储器部分包括至少一个哈希桶,SSD部分包括第一类SSD,第一类SSD中的每个SSD包括至少一个扇区;该网络设备包括:获取单元,用于获取待读写的数据块的第一地址和待读写的数据块的第二地址,第一地址用于指示待读写的数据块对应的目标哈希桶,第二地址用于匹配目标哈希桶中的表项;处理单元,用于根据第一地址确定待读写的数据块对应的目标哈希桶;处理单元,还用于根据第二地址遍历目标哈希桶中的表项;处理单元,还用于若确定目标哈希桶中存在与第二地址匹配的表项,根据第一地址和第二地址确定待读写的数据块在第一类SSD中对应的第一扇区的LBA;处理单元,还用于读取第一扇区的LBA中的数据。相比现有技术,以数据库文件索引SSD中的数据,当应用的线程通过数据库文件获取所需的数据时,需要将该数据库文件锁定,导致其他线程无法访问该数据库文件,无法进行多核并发,导致数据库的性能下降。本申请实施例可以将数据库的计算机内存储器部分作为数据库的SSD部分的索引,即可以通过计算机内存储器部分包括的哈希桶对SSD部分进行寻址,例如,根据待读写数据块的第一地址和第二地址获取待读写数据块在第一类SSD中对应的第一扇区的逻辑区块地址LBA。其中,第一地址用于指示待读写的数据块对应的目标哈希桶,第二地址用于匹配目标哈希桶中的表项。而后,网络设备可以读取第一扇区的LBA中的数据。本申请实施例提供的访问数据库的方法可以实现多核并发,当然,本申请实施例不限于此,从而能够解决通过文件系统访问数据库时所导致的数据库性能下降的问题。附图说明图1为本申请实施例提供的一种数据库的结构示意图;图2为本申请实施例提供的一种访问数据库的方法流程示意图;图3为本申请实施例提供的一种网络设备的结构示意图。具体实施方式下面结合附图对本申请实施例提供的访问数据库的方法和装置进行详细描述。为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:数据块:可以是一组或几组按顺序连续排列在一起的记录,是SSD与输入设备或输出设备之间进行传输的数据单位。扇区:可以是SSD上的地址存储单位。每个扇区可以包括512字节,每个扇区可以对应一个LBA。LBA可以包括首地址和偏移地址。首地址是在SSD中的扇区分组后,每组扇区的公共地址,偏移地址是每组扇区中某一扇区的地址相对于首地址的偏移量。信息摘要算法5(MessageDigestAlgorithm5,MD5):是计算机广泛使用的杂凑算法(又可以译为摘要算法或哈希算法)之一。任意长度的数据块根据MD5算法得出的MD5值的长度都是固定的。MD5值类似身份标识(Identity,ID),用来指示数据块的唯一性,也就是说,不同的数据根据MD5算法算出的MD5值是不同的。MD5值共计16字节。哈希桶(Bucket):可以用于解决数据存储地址发生冲突的问题。为了避免将不同的数据块映射到同一个扇区的LBA上,可以建立多个哈希桶。哈希桶可以包括预设数量的表项(Entry),能够处理预设次数的冲突。例如但不限于,每个哈希桶中可以包括16个或32个表项。本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于限定特定顺序。例如,第一扇区和第二扇区仅仅是为了区分不同的扇区,并不对其先后顺序进行限定。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系;在公式中,字符“/”,表示前后关联对象是一种“相除”的关系。需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。本申请实施例的架构如图1所示,数据库包括计算机内存储器部分和SSD部分,SSD部分可以用于存储数据块,计算机内存储器部分可以包括至少一个哈希桶,哈希桶可以用于索引SSD部分的索引存储的数据块,也就是说,可以通过哈希桶对SSD部分进行寻址。需要说明的是,本申请中的SSD可以为其他的存储介质,例如高速存储介质,本申请不做限定。本申请实施例可以应用于网络加速和重复数据删除领域,但本申请不限于此。本申请实施例提供一种访问数据库的方法,以基于SSD的数据库为例进行说明,如图2所示,包括:201、网络设备确定数据库的结构。数据库的结构可以包括计算机内存储器部分和SSD部分。其中,计算机内存储器部分包括至少一个哈希桶,SSD部分可以包括第一类SSD,第一类SSD可以包括多个SSD,其中每个SSD可以包括至少一个扇区。网络设备确定第一类SSD的过程可以包括:网络设备根据需求设定数据库的容量和数据块的大小,并根据数据库的容量和数据块的大小确定第一类SSD包括的SSD的个数,以及每个SSD包括的扇区的个数。其中,需求可以包括用户需求或网络需求,本申请不做限定。其中,数据库的容量即数据库包括的全部数据块的大小,例如但不限于为128G,256G,512G或1T等。数据块的大小例如但不限于为200字节,300字节或40本文档来自技高网...
一种访问数据库的方法和装置

【技术保护点】
一种访问数据库的方法,其特征在于,所述数据库包括计算机内存储器部分和固态硬盘SSD部分,所述计算机内存储器部分包括至少一个哈希桶,所述SSD部分包括第一类SSD,所述第一类SSD中的每个SSD包括至少一个扇区;所述方法包括:网络设备获取待读写的数据块的第一地址和所述待读写的数据块的第二地址,所述第一地址用于指示所述待读写的数据块对应的目标哈希桶,所述第二地址用于匹配所述目标哈希桶中的表项;所述网络设备根据所述第一地址确定所述待读写的数据块对应的目标哈希桶;根据所述第二地址遍历所述目标哈希桶中的表项;若所述网络设备确定所述目标哈希桶中存在与所述第二地址匹配的表项,所述网络设备根据所述第一地址和所述第二地址确定所述待读写的数据块在所述第一类SSD中对应的第一扇区的逻辑区块地址LBA;所述网络设备读取所述第一扇区的LBA中的数据。

【技术特征摘要】
1.一种访问数据库的方法,其特征在于,所述数据库包括计算机内存储器部分和固态硬盘SSD部分,所述计算机内存储器部分包括至少一个哈希桶,所述SSD部分包括第一类SSD,所述第一类SSD中的每个SSD包括至少一个扇区;所述方法包括:网络设备获取待读写的数据块的第一地址和所述待读写的数据块的第二地址,所述第一地址用于指示所述待读写的数据块对应的目标哈希桶,所述第二地址用于匹配所述目标哈希桶中的表项;所述网络设备根据所述第一地址确定所述待读写的数据块对应的目标哈希桶;根据所述第二地址遍历所述目标哈希桶中的表项;若所述网络设备确定所述目标哈希桶中存在与所述第二地址匹配的表项,所述网络设备根据所述第一地址和所述第二地址确定所述待读写的数据块在所述第一类SSD中对应的第一扇区的逻辑区块地址LBA;所述网络设备读取所述第一扇区的LBA中的数据。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述网络设备确定所述目标哈希桶中不存在与所述第二地址匹配的表项;所述网络设备根据所述第一地址和所述第二地址确定所述待读写数据块在所述第一类SSD中对应的第二扇区的LBA;所述网络设备将所述待读写数据块写入所述第二扇区的LBA。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:若所述网络设备确定所述目标哈希桶中不存在与所述第二地址匹配的表项,则指示更新所述目标哈希桶,将所述第二地址写入所述目标哈希桶。4.根据权利要求1或2所述的方法,其特征在于,所述第一地址包括所述待读写数据块的信息摘要算法MD5值中第一部分的比特位;所述第二地址包括所述待读写数据块的MD5值中第二部分的比特位,所述第一部分的比特位与所述第二部分的比特位不同。5.根据权利要求1或2所述的方法,其特征在于,所述SSD部分还包括第二类SSD,所述第二类SSD为冗余SSD,当所述待读写数据块对应的第一类SSD无法进行读操作和/或写操作时,所述网络设备根据所述待读写数据块的所述第一地址和所述第二地址对所述冗余SSD进行读操作和/或写操作。6.一种网络设备,其特征在于,应用于访问数据库的场景中,所述数据库包括计算机内存储器部分和固态硬盘SS...

【专利技术属性】
技术研发人员:单宝灯
申请(专利权)人:锐捷网络股份有限公司
类型:发明
国别省市:福建,35

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

1