数据库系统及管理数据库数据的方法技术方案

技术编号:2844333 阅读:204 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种管理数据库数据的方法,该方法包括存储表项的方法:将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断键值经过哈希函数转换后是否冲突;将经过规定次数哈希函数转换后,冲突的表项键值存储于TCAM,表项内容存储于与TCAM关联的第一RAM;将在规定次数内,有一次进行哈希函数转换后不冲突的表项及其哈希值存储于第二RAM。本发明专利技术还公开了一种数据库系统,其特征在于,包括:存储单元、TCAM、第一RAM及第二RAM;所述第一RAM与所述TCAM相关联;将经哈希转换后不冲突的表项存储于第二RAM内,将冲突的表项存储于TCAM及第一RAM内。通过应用本发明专利技术,可以使系统在成本和功耗都较低的情况下高速度的运行。

【技术实现步骤摘要】

本专利技术涉及数据处理
,尤其涉及一种。
技术介绍
随着网络的飞速发展,处于网络中的很多设备要求支持的表项项数和长度也越来越大,因此各种表项占用的存储空间也变得越来越大。现在应用比较普遍的表项存储方法包括利用三值内容地址存储器(TernaryContent Address Memory,TCAM)存储和利用哈希(HASH)函数存储两种。全匹配(Full Match,FM)表是一种最常见的表项类型,介质访问控制(Media Access Control,MAC)表又是FM表中比较典型的,下文将以存储MAC表为例来说明利用TCAM存储和利用哈希函数存储两种不同的存储方法。1、利用TCAM存储的方法TCAM是一种高速的三进制的专用于查表的硬件芯片,把MAC表的键(KEY)值及掩码(MASK)存储于TCAM中,把MAC表项的内容存入与该TCAM相关的静态随机存储器(Static Random Access Memory,SRAM)中,具体存储状况参见图1,存储于TCAM中的KEY值与存储于SRAM中的MAC表项的内容一一对应,在进行查表时由于TCAM的高速查表特性,通过查找KEY值很快就可以得到存储于SRAM中唯一对应的表项内容,操作简便快速。但是TCAM相比于其他的存储介质要贵的多,功耗也非常大,如果需要存储的表项内容很少,使用少量小容量TCAM不会带来很明显的影响,在存储大容量的MAC表时,使用TCAM就会带来成本的显著上升,存储数据用的数据库系统及整体网络系统的功耗都会明显上升,而在现在的网络中要求支持的表项项数和长度都在往越来越大的方向飞速发展。2、利用哈希函数存储的方法哈希函数也被称作散列函数,其特点就在于,可以将任意长度的字符串转换成固定长度的数值或者索引值。以MAC表为例,在存储MAC表项时,将很长且可能包含任意字符的KEY值转换成单纯由数字组成的固定长度的哈希值,比如4位的数值,因为只包含单纯的数字就表示每一位最多只有10种可能,且长度也要短的多,因此查找一个4位数的数值速度会比查找很长且可能包含任意字符的KEY值快得多,利用此哈希值查找数据比起直接利用KEY值查找数据速度也会快很多,在这种情况下使用普通随机存取存储器存储表项,比如动态随机存储器(Dynamic Random Access Memory,DRAM)、SRAM查找时的速度和上文所述利用TCAM存储表项的查找速度基本相似,而DRAM、SRAM等普通存储介质比起TCAM是非常廉价的,功耗也低的多,相应即使存储的表项很大,利用哈希函数存储的方法成本也会比较低,系统功耗也会下降。但是由于哈希函数本身的特性,决定了会出现多个不同KEY值转换出的哈希值相同的情况,这种情况被称为冲突,在进行查找时,出现冲突的多个KEY值将指向同一个哈希值,这个时候通常采用链表法来解决冲突问题。链表法就是为出现冲突的哈希值建立一个链表,将所有经过哈希后获得相同哈希值的KEY值放在同一个链表里,进行查找时,首先通过哈希值找到链表,然后再在链表中查找和哈希前KEY值相等的KEY值,以获得相应的表项内容。这样随着出现冲突的次数增加,链表也会越来越长,查找的速度也会越来越慢,存储表项用的数据库管理工作会变得越来越复杂,整个系统的性能都会受到影响。
技术实现思路
本专利技术要解决的技术问题是提供一种。为解决上述技术问题,本专利技术提供了一种管理数据库数据的方法,该方法包括存储表项的方法将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断键值经过哈希函数转换后是否冲突;将经过规定次数哈希函数转换后,仍然冲突的表项键值存储于三值内容地址存储器,表项内容存储于与三值内容地址存储器关联的第一随机存储器;将在规定次数内,有一次进行哈希函数转换后不冲突的表项及其哈希值存储于第二随机存储器。其中,所述规定次数为至少两次,所述方法包括将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断每次键值经过哈希函数转换后是否冲突,进行哈希函数转换的次数是否达到规定次数;若冲突,且进行哈希函数转换的次数未达到规定次数,则继续将待存储表项的键值进行下一次哈希函数转换;若冲突,且进行哈希函数转换的次数已经达到规定次数,则将表项键值存储于三值内容地址存储器,表项内容存储于与三值内容地址存储器关联的第一随机存储器;若不冲突,则将表项及其哈希值存储于第二随机存储器。其中,所述方法还包括查找表项的方法将待查找表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;通过所述哈希值判断第二随机存储器上是否存在待查找表项;若存在,则获得待查找表项,查找成功;若不存在,则在三值内容地址存储器上寻找待查找表项的键值,寻找到键值后,访问与三值内容地址存储器关联的第一随机存储器获得表项内容,查找成功。其中,所述规定次数为至少两次,所述方法包括将待查找表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;每次进行哈希函数转换后,通过所述哈希值判断第二随机存储器上是否存在待查找表项,进行哈希函数转换的次数是否达到规定次数;若存在,则获得待查找表项,查找成功;若不存在,且进行哈希函数转换的次数未达到规定次数,则继续将待查找表项的键值进行下一次哈希函数转换;若不存在,且进行哈希函数转换的次数已经达到规定次数,则在三值内容地址存储器上寻找待查找表项的键值,寻找到键值后,访问与三值内容地址存储器关联的第一随机存储器获得表项内容,查找成功。其中,所述规定次数为一次。其中,所述通过所述哈希值判断第二随机存储器上是否存在待查找表项为判断第二随机存储器上是否存在与所述哈希值相同的哈希值;若不存在,则第二随机存储器上不存在待查找表项;若存在,则判断此第二随机存储器上的哈希值下存储的键值是否和待查找表项的键值相等;若不相等,则第二随机存储器上不存在待查找表项;若相等,则第二随机存储器上存在待查找表项,此第二随机存储器上的哈希值下存储的表项即为待查找表项。其中,所述方法还包括删除表项的方法通过所述查找表项的方法根据待删除表项的键值,查找到待删除表项,删除待删除表项。其中,所述方法还包括老化表项的方法定义包含表项老化标识位的老化表,定义刷新周期;表项被调用时标记对应老化标识位;每个刷新周期刷新一次老化表,通过老化标识位,使用所述删除表项的方法将一个周期内没有被调用过的表项删除。其中,所述老化标识位初始值为“0”或“1”。其中,所述第一随机存储器为静态随机存储器。其中,所述第二随机存储器为动态随机存储器。本专利技术还提供了一种数据库系统,包括存储单元、三值内容地址存储器、第一随机存储器及第二随机存储器;所述第一随机存储器与所述三值内容地址存储器相关联;所述存储单元用于将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断键值经过哈希函数转换后是否冲突;将经过规定次数哈希函数转换后,仍然冲突的表项键值存储于所述三值内容地址存储器,表项内容存储于所述第一随机存储器;将在规定次数内,有一次进行哈希函数转换后不冲突的表项及其哈希值存储于所述第二随机存储器。其中,所述存储单元用于将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;并判断每次键值经过哈希函数转换后是否冲突,进行哈希函数转换的次数是否达本文档来自技高网
...

【技术保护点】
一种管理数据库数据的方法,其特征在于,该方法包括存储表项的方法:将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断键值经过哈希函数转换后是否冲突;将经过规定次数哈希函数转换后,仍然冲突的表项键值存储于三值内 容地址存储器,表项内容存储于与三值内容地址存储器关联的第一随机存储器;将在规定次数内,有一次进行哈希函数转换后不冲突的表项及其哈希值存储于第二随机存储器。

【技术特征摘要】
1.一种管理数据库数据的方法,其特征在于,该方法包括存储表项的方法将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断键值经过哈希函数转换后是否冲突;将经过规定次数哈希函数转换后,仍然冲突的表项键值存储于三值内容地址存储器,表项内容存储于与三值内容地址存储器关联的第一随机存储器;将在规定次数内,有一次进行哈希函数转换后不冲突的表项及其哈希值存储于第二随机存储器。2.如权利要求1所述的管理数据库数据的方法,其特征在于,所述规定次数为至少两次,所述方法包括将待存储表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;判断每次键值经过哈希函数转换后是否冲突,进行哈希函数转换的次数是否达到规定次数;若冲突,且进行哈希函数转换的次数未达到规定次数,则继续将待存储表项的键值进行下一次哈希函数转换;若冲突,且进行哈希函数转换的次数已经达到规定次数,则将表项键值存储于三值内容地址存储器,表项内容存储于与三值内容地址存储器关联的第一随机存储器;若不冲突,则将表项及其哈希值存储于第二随机存储器。3.如权利要求1所述的管理数据库数据的方法,其特征在于,所述方法还包括查找表项的方法将待查找表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;通过所述哈希值判断第二随机存储器上是否存在待查找表项;若存在,则获得待查找表项,查找成功;若不存在,则在三值内容地址存储器上寻找待查找表项的键值,寻找到键值后,访问与三值内容地址存储器关联的第一随机存储器获得表项内容,查找成功。4.如权利要求3所述的管理数据库数据的方法,其特征在于,所述规定次数为至少两次,所述方法包括将待查找表项的键值进行规定次数内的哈希函数转换,获得对应哈希值;每次进行哈希函数转换后,通过所述哈希值判断第二随机存储器上是否存在待查找表项,进行哈希函数转换的次数是否达到规定次数;若存在,则获得待查找表项,查找成功;若不存在,且进行哈希函数转换的次数未达到规定次数,则继续将待查找表项的键值进行下一次哈希函数转换;若不存在,且进行哈希函数转换的次数已经达到规定次数,则在三值内容地址存储器上寻找待查找表项的键值,寻找到键值后,访问与三值内容地址存储器关联的第一随机存储器获得表项内容,查找成功。5.如权利要求1或3所述的管理数据库数据的方法,其特征在于,所述规定次数为一次。6.如权利要求3或4所述的管理数据库数据的方法,其特征在于,所述通过所述哈希值判断第二随机存储器上是否存在待查找表项为判断第二随机存储器上是否存在与所述哈希值相同的哈希值;若不存在,则第二随机存储器上不存在待查找表项;若存在,则判断此第二随机存储器上的哈希值下存储的键值是否和待查找表项的键值相等;若不相等,则第二随机存储器上不存在待查找表项;若相等,则第二随机存储器上存在待查找表项,此第二随机存储器上的哈希值下存储的表项即为待查找表项。7.如权利要求3所述的管理数据库数据的方法,其特征在于,所述方法还包括删除表项的方法通过所述查找表项的方法根据待删除表项的键值,查找到待删除表项,删除待删除表项。8.如权利要求7所述的管理数据库数据的方法,其特征在于,所述方法还包括老化表项的方法定义包含表项老化标识位的老化表,定义刷新周期;表项被调用时标记对应老化标识位;每个刷新周期刷新一次老化表,通过老化标识位,使用所述删除表项的方法将一个周期内没有被调用过的表项删除。...

【专利技术属性】
技术研发人员:吕超群
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1