CN101515866B - 硬件数据更新方法和设备 - Google Patents

硬件数据更新方法和设备 Download PDF

Info

Publication number
CN101515866B
CN101515866B CN2009101318241A CN200910131824A CN101515866B CN 101515866 B CN101515866 B CN 101515866B CN 2009101318241 A CN2009101318241 A CN 2009101318241A CN 200910131824 A CN200910131824 A CN 200910131824A CN 101515866 B CN101515866 B CN 101515866B
Authority
CN
China
Prior art keywords
hardware
data
formation
cost
nodal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009101318241A
Other languages
English (en)
Other versions
CN101515866A (zh
Inventor
董伟峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2009101318241A priority Critical patent/CN101515866B/zh
Publication of CN101515866A publication Critical patent/CN101515866A/zh
Application granted granted Critical
Publication of CN101515866B publication Critical patent/CN101515866B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种硬件数据更新设备和方法,用于更新硬件中存储的数据。该设备包括:接收模块,接收至少一个请求操作并将至少一个请求操作定义为批量操作;以及维护模块,对于批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新硬件中存储的数据。每个硬件操作集包括至少两个硬件操作。至少两个硬件操作集对硬件的操作结果是等价的。该设备能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬件的更新速度。

Description

硬件数据更新方法和设备
技术领域
本发明涉及硬件数据更新方法和设备,更具体地,涉及基于代价的硬件数据更新方法和设备。
背景技术
很多应用涉及硬件数据的更新。例如,在数据通信领域中,路由表在路由器中指导路由转发,通俗一点就是“问路”。路由器存储的就是“去哪怎么走”的信息,即目的地址和路径。一个数据包进入路由器后,包头里面携带了它的“目的地址”,通过目的地址,查找到路径,然后完成转发。目前网络上的计算机越来越多,所以路由表的规模是越来越大,电信运营商要求达到100万以上的路由表表项。另外随着网络应用的丰富,网络带宽要求也飞速增长,对路由查找的性能要求也越来越高。
路由查找表是一种路由表,就是将路由信息压缩整理成一定格式的表,完成转发过程中的高速查找(一般是30Mpps以上)。路由查找表将会以一种“方便快速查找”的格式或者方式存在于路由查找硬件中。
随着路由表表项数量的不断增加,目前主流已经达到百万数量级别,相应的对于路由表表项更新(包括添加和删除)速率的要求也不断增长,以达到快速更新路由,减少业务中断时间的目的。
路由器算法查找系统一般由一套维护软件和一套硬件组成。软件通过计算,产生一个或者多个算法查找结构中的节点,在硬件中通过“最小”访问硬件,完成快速的转发查找。在一条表项添加过程中,根据算法方案的不同,需要更新一次或者多次硬件数据,随后的表项添加,也同样需要更新一次或者多次硬件数据并且随着表项数量的增长,更新量变大的几率也会增长。
路由更新速率逐渐成为各种算法容量不断扩大的一个技术瓶颈,目前没有比较好的解决办法,一般是在算法本身做出一些优化来达到提速的目的。
现有的技术方案是逐条添加表项,同时完成硬件数据的更新。图5示出了现有表项操作过程的示意图。对于一个表项操作,算法查找维护软件产生相应的一系列硬件操作,然后按照这些硬件操作,逐条将数据更新到硬件。发明人在研究过程中发现,由于对于每一个表项操作,现有技术方案独立进行处理,因此对于批量接收的表项操作请求,会引起大量重复、冗余和无效的硬件操作。因此现有技术的缺点是不能利用路由器软件批量表项下发的信息,造成硬件更新操作的浪费。而且,大量表项刷新过程中,刷新时间长。
因此,存在对于优化的硬件数据更新方案的需求。
发明内容
因此,本发明实施例的一个目的是基于代价来更新硬件的数据。
本发明实施例的另一目的是提高硬件数据的更新速度。
本发明实施例的另一目的是使得硬件数据的更新不会影响路由查找,即没有中间的“错误状态”。
本发明实施例的另一目的是提高路由查找算法中固定二叉树的更新速率。
为了实现上述以及其他目的,本发明实施例提供了一种硬件数据更新设备,用于更新硬件中存储的数据。该设备包括:接收模块,接收至少一个请求操作并将至少一个请求操作定义为批量操作;以及维护模块,对于批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新硬件中存储的数据。每个硬件操作集包括至少两个硬件操作。各个硬件操作集对硬件的操作结果是等价的。
为了实现上述以及其他目的,本发明实施例还提供了一种硬件数据更新方法,用于更新硬件中存储的数据。该方法包括:接收至少一个请求操作并将所述至少一个请求操作定义为批量操作;对于批量操作中的每个请求操作产生至少两个硬件操作集;估计每个硬件操作集的代价;以及基于所估计的代价更新所述硬件中存储的数据。每个硬件操作集包括至少两个硬件操作。各个硬件操作集对硬件的操作结果是等价的。
为了实现上述以及其他目的,本发明实施例还提供了一种系统,包括用于存储数据的硬件。该系统还包括硬件数据更新设备,用于更新硬件中存储的数据。该硬件数据更新设备包括:接收模块,接收至少一个请求操作并将至少一个请求操作定义为批量操作;以及维护模块,对于批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新硬件中存储的数据。每个硬件操作集包括至少两个硬件操作。各个硬件操作集对硬件的操作结果是等价的。
通过本发明的实施例,给批量操作导致硬件多次无效更新情况提供了一种减少硬件操作代价的方案,并可以给分层二叉树的路由查找方案提供一种快速刷新表项的方法和设备。
附图说明
根据结合附图的以下描述,将更充分地理解本发明的其他优点、特征和细节。
图1是示出根据本发明实施例的硬件数据更新设备的框图。
图2是示出根据本发明实施例的硬件数据更新方法的流程图。
图3是示出分层二叉树的示意图。
图4是示出根据本发明实施例在分层二叉树中使用硬件代价策略的表项操作的示意图。
图5示出了现有表项操作过程的示意图。
具体实施方式
下面参照附图描述本发明的实施例。应注意,在附图中,相同的附图标记始终表示相同或相似的元素。
应当理解,在此描述的本发明的各个实施例仅仅是为了更好地解释本发明的原理和概念,而不是要限制本发明。在阅读这样的描述之后,本领域技术人员很容易构造其他修改或替换,这样的修改或替换应被理解为落入本发明的范围中。
图1是示出根据本发明实施例的硬件数据更新设备100的框图。硬件数据更新设备100用于更新硬件200中存储的数据。该硬件数据更新设备100包括接收模块105和维护模块110。
接收模块105可以从硬件数据更新设备100外部接收针对硬件200的请求操作,例如请求更新硬件200中数据的操作。接收模块105可一次性或分多次接收多个请求操作(requested operation)。例如,接收模块105可包括与外部通信的数据接口等,以便接收外部设备的请求操作。各个请求操作有可能会相互影响到硬件更新结果。接收模块105将接收到的(一个或多个)请求操作定义为批量操作1050。批量操作1050可以有一个明确的长度。批量操作1050中的请求操作可以在整个操作过程中一次完成,也可以根据需要在某个请求操作后即更新硬件,然后再继续执行。一般来说,该批量操作1050中的一个请求操作将造成一个或者多个硬件操作(包括但不限于对硬件200中存储的数据的添加、删除、替换、搬移等)。如果批量操作中只有一个请求操作,则要求这个请求操作能够产生不同的硬件操作集(“硬件操作集”在下文中描述)。
维护模块110依次针对批量操作1050中的每个请求操作,产生相应的一个或多个硬件操作。一般来说,一个请求操作可对应于不同的一系列硬件操作(称为“硬件操作集”)。维护模块110可根据预先定义的方案,产生两个或更多个硬件操作集1101、...、110i等。产生的每个硬件操作集1101、...、110i中的硬件操作和其他硬件操作集中的硬件操作可以是相同种类(添加、删除、替换、搬移等)的,也可以是完全不同的。每个硬件操作集完成硬件操作后,其导致的结果是一致和等价的。
维护模块110可以估计所产生的每个硬件操作集的代价。每一种硬件操作(添加、删除、替换、搬移等)所需的硬件代价可能是不同的。因而,可对每一种硬件操作赋予相应的权值,由此估计硬件操作集的代价。
维护模块110可以在产生硬件操作集的过程中并行地估计代价,也可以在产生整个硬件操作集之后再估计代价。
维护模块110还可以根据所估计的代价,更新硬件200中存储的数据。维护模块110可选择具有最小代价的硬件操作集作为优选操作集,并按照该优选操作集中的硬件操作来更新硬件200中的数据。
对于操作的硬件对象,一般来说其访问速度是比较慢的,而维护模块和代价模块的速度相比要快得多。通过上述基于代价的硬件数据更新设备100,能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬件的更新速度。
图2是示出根据本发明实施例的硬件数据更新方法1000的流程图。硬件数据更新方法1000可以由图1所示的硬件数据更新设备100来执行,也可以由具有处理能力的其他设备来执行。
在S1005,接收针对硬件200(见图1)的请求操作。可一次性或分多次接收多个请求操作。各个请求操作有可能会相互影响到硬件更新结果。将接收到的(一个或多个)请求操作定义为批量操作1050(见图1)。批量操作1050中的请求操作可以在整个操作过程中一次完成,也可以根据需要在某个请求操作后即更新硬件,然后再继续执行。一般来说,该批量操作中的一个请求操作将造成一个或者多个硬件操作(包括但不限于对硬件200中存储的数据的添加、删除、替换、搬移等)。如果批量操作中只有一个请求操作,则要求这个请求操作能够产生不同的硬件操作集。
在S1010,依次针对批量操作1050中的每个请求操作,产生相应的一个或多个硬件操作。一般来说,一个请求操作可对应于不同的硬件操作集。可根据预先定义的方案,产生两个或更多个硬件操作集1101、...、110i等(见图1)。产生的每个硬件操作集1101、...、110i中的硬件操作和其他硬件操作集中的硬件操作可以是相同种类(添加、删除、替换、搬移等)的,也可以是完全不同的。每个硬件操作集完成硬件操作后,其导致的结果是一致和等价的。
在S1015,估计在S1010中产生的每个硬件操作集的代价。每一种硬件操作(添加、删除、替换、搬移等)所需的硬件代价可能是不同的。因而,可对每一种硬件操作赋予相应的权值,由此估计硬件操作集的代价。
S1015可以与S1010并行执行,即在产生硬件操作集的过程中并行地估计代价,也可以在S1010之后执行,即,在产生整个硬件操作集之后再估计代价。
在S1020,根据在S1015中估计出的代价,更新硬件200中存储的数据。可选择代价最小的硬件操作集作为优选操作集,并按照该优选操作集中的硬件操作来更新硬件200中的数据。
对于操作的硬件对象,一般来说其访问速度是比较慢的,而维护模块和代价模块的速度相比要快得多。通过上述基于代价的硬件数据更新方法1000,能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬件的更新速度。
路由查找硬件就是针对高速查找的一种硬件,可以是某种算法实现的方案,也可以是某种硬件电路实现的查找方案(例如TCAM)。算法查找方案具有容量大,功耗小,成本低的优点。路由表的更新是算法查找方案中的一个主要问题,更新速度反映了路由器在发生网络故障时的反应能力,即需要快速更新大量路由信息,完成“正确”的转发。
下面以路由查找硬件的数据更新操作(路由查找表表项操作)为例,更详细地说明根据本发明实施例的硬件数据更新方法。
路由查找硬件的数据更新操作可以在分层固定二叉树中实现。图3是示出分层二叉树的示意图。分层二叉树是一种查找方案,其特点是大树节点和小树节点通过指针完成物理上的分离,但逻辑上仍然是一棵有序的二叉树。小树是一棵固定大小的有序二叉树。每个请求操作会产生相应的对大树节点或小树节点的一个或多个硬件操作(称为“节点操作”)。
分层二叉树和节点的内容在软件和硬件中都存储,它们的内容如果是直接同步,会造成中间的“错误状态”,在路由器上就表现为“丢包”等,所以需要定义多组不造成中间“错误状态”的操作集,用来完成硬件的同步,也就是说,同步过程“不中断服务”,不需要中断同步过程中外部的查找请求(不是操作请求)。
大树节点和小树节点主要体现出分层的概念:
1.大树节点和小树节点一一对应;
2.大树节点作为对小树节点的资源分配单位;
3.一组大树节点和一组小树节点组成一个有序的二叉树;
4.一组大树节点和对应的一组小树节点构成一个查找表。
根据本发明的实施例,可定义两种硬件更新方式:
a)节点操作更新:按照对于节点(大树节点和小树节点)的节点操作来更新硬件;以及
b)一次更新:按照“一次更新操作”一次性更新一个小树的所有节点,即将小树节点一次更新到硬件的一棵新小树中,然后修改大树节点指针。
换句话说,硬件操作可包括节点操作和一次更新操作。
图4是示出根据本发明实施例在分层二叉树中使用硬件代价策略的表项操作的示意图。该实施例可用于更新路由查找硬件200’中存储的数据。具体地,路由查找硬件200’中存储了分层二叉树的节点数据。
接收模块105’接收来自外部的表项操作1、...、n,作为请求操作,并建立表项批量操作1050’。
路由查找维护模块110’建立和维护硬件操作集(队列)。例如,建立一个或者几个大小为小树大小的队列(以下称为“节点操作队列”),用来缓存单个小树在硬件的操作。同时另外建立一个队列(以下称为“小树更新队列”),缓存“一次更新”操作。
针对某一请求操作,以节点添加为例,在一个节点加入后,可能造成多个节点的搬移,所有对节点的操作缓存在“节点操作队列”中。节点操作队列只属于对一棵小树的操作。节点操作队列数量可以是有限的几个。如果节点操作队列用完,则需要将缓存的硬件操作更新到硬件中。在完成更新之后,再继续缓存后面的操作。
路由查找维护模块110’可估计和比较节点操作队列的硬件操作代价和小树的一次更新操作的代价。将节点操作队列的代价定义为它所包括的节点操作的代价。一颗小树的“一次更新操作”的代价可以是一个固定值,例如对应于一颗小树的节点数。该维护模块110’在一次批量刷新过程中,将维护“硬件操作”队列,选择代价最小的队列作为该节点添加请求操作的硬件操作队列,并且将执行该硬件操作队列中的硬件操作,以便更新硬件200’中的数据。
换句话说,在节点添加过程中,如果发现一棵小树中节点操作次数(代价)超过整棵小树更新的代价,则应选择一次更新方式,以小树更新队列作为优选的硬件操作队列。这时将节点操作队列释放,记录该小树到小树更新队列中。在此情况下,路由查找维护模块110’在小树更新队列中写入“一次更新”操作。否则,应选择节点操作更新方式,以节点操作队列作为优选的硬件操作队列。
这样,对于批量操作1050’,所得到的最小代价的硬件操作集将仅仅包括优选的硬件操作队列。路由查找维护模块110’按照该最小代价的硬件操作集中的硬件操作来更新硬件200’中的数据。
应注意,对于批量操作中大树节点发生变化的情况,如果有两棵及以上大树节点发生变化,将会影响路由查找过程,可能中断用户的正常使用。所以一旦发生大树节点发生变化(更新)时,需要及时更新硬件。换句话说,如果发生大树节点被修改的情况,则马上根据已有计算结果,更新硬件数据,然后再处理后面的其他表项操作。
另外,如果更新涉及的小树数量超过节点操作队列的数量,即节点操作队列已用完,则同样需要先将已有数据同步到硬件后再继续处理后面的其他表项操作。
由于上述最小代价的硬件操作集的确定过程是软件层面上的,比硬件操作速度要快得多,因而能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬件的更新速度。
图5是示出了根据本发明一个实施例的在分层二叉树中使用硬件代价策略的表项操作方法2000的流程的图。
方法2000在S2001判断批量操作中是否缓存有操作(表项操作)。如果有,则方法2000前进到S2005,从批量操作队列中取出一个表项操作。
然后在S2010,完成节点的更新,在此过程中将产生相应的一系列硬件操作。
随后,在S2015,判断小树是否已经拥有节点操作队列。如果该小树被操作过,将有节点操作队列,或者已经进入小树更新队列。如果在S2015判断小树没有节点操作队列,则方法2000前进到S2020,判断小树是否在小树更新队列。
在S2020,如果判断为在小树更新队列,则该小树的操作不需要记录,方法前进到S2040(下文将描述)。如果判断为不在小树更新队列,则方法2000前进到S2025,判断是否还有可用的节点操作队列。
在S2025,如果还有可用的节点操作队列,则方法2000前进到S2045(下文将描述)。如果没有节点操作队列可用,则方法2000前进到S2030,需要先将目前队列中的硬件操作更新到硬件,然后再给本次硬件操作申请队列。
随后,在S2035,将本次硬件操作入节点操作队列。然后在S2040,判断大树节点是否受到影响。如果大树节点受到影响,则方法2000需要前进到S2045和S2050,及时将目前缓存在节点操作队列和小树更新队列中的硬件操作刷新到硬件中,以免后续刷新影响硬件查找。具体地,首先在S2045,将小树中的节点操作更新到硬件,然后才在S2050,更新整棵小树到硬件。在更新整棵小树时,需要先申请一个空闲的小树,更新数据到硬件后,修改相应大树的指针,然后释放原来的小树。
完成刷新之后,方法2000前进到S2055,判断是否要结束整个方法。如果要结束,则方法2000完成并终止。如果不要结束,则返回S2001继续循环,处理下一个表项操作。如果在S2040,判断为大树节点不受影响,则方法2000也返回S2001继续循环,处理下一个表项操作。
返回S2015,当判断小树拥有节点操作队列时,说明小树已经被操作过。在此情况下,方法2000前进到S2060,比较硬件代价,根据代价决定硬件更新策略。具体地,在S2060,判断节点操作代价是否超过小树更新代价。如果超过(S2060的“是”),说明应选择小树更新操作(上文描述的“一次更新”操作),则方法2000前进到S2065,释放节点操作队列,以供其他小树使用。这是因为对于需要整棵更新的小树来说,操作入队列是没有意义的。然后在S2070,清空节点操作队列。将节点操作队列清空可以防止后面的误操作。随后,在S2075,入小树更新队列,即,记录要更新的小树。在小树后续会被销毁的情况下,也可在S2075处感知到这一情况,以免做无效或者错误更新。
随后,方法2000前进到S2040。S2040以及后续已经在上文中进行了详细描述,在此不再赘述。
返回S2060,如果判断结果为“是”,即节点操作代价不超过小树更新代价,则应选择节点操作更新方式。因此,方法2000前进到S2035,将硬件操作入节点操作队列。S2035以及后续步骤已经在上文中进行了详细描述,在此不再赘述。
返回S2001,如果判断结果为“否”,即没有待处理的表项操作,或者说已经将缓存的所有表项操作处理完,则方法2000前进到S2045和S2050,将目前缓存在节点操作队列和小树更新队列中的硬件操作刷新到硬件中。S2045、S2050以及后续步骤已经在上文中进行了详细描述,在此不再赘述。
上面以分层二叉树为例说明了路由查找硬件表项更新的方法。但本领域技术人员很清楚,上述例子只是为了更好地解释本发明的原理,而不构成对本发明范围的限制。例如,本发明实施例也可应用于其他种类的硬件数据的更新。硬件数据的存储方式不限于分层二叉树,其他数据存储结构也可采用本发明实施例的原理。在任何数据同步到硬件中时,定义一个批量更新硬件操作的开始和结束点,在此过程中,如果后面的更新硬件操作可能会影响前面的更新结果,导致前面的更新“无效”,就可以使用该设备来完成优化减少硬件更新操作。
另外,本发明实施例中描述了用于更新整颗小树的“一次更新操作”作为节点操作的替代方法。但本领域技术人员明白,“一次更新操作”不对本发明的范围构成限制,也可以采用其他的同步更新方法。例如可以进行“局部”更新,效率会提高一些,但是代价计算会相对复杂。这样的局部更新操作也在本发明的范围内。
因此,通过本发明的实施例,给批量操作导致硬件多次无效更新情况提供了一种减少硬件操作的方案,并可以给分层二叉树的路由查找方案提供一种快速刷新表项的方法和设备。
尽管已示出和描述了本发明的一些实施例,但本领域技术人员应理解,在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,这样的修改应落入本发明的范围内。

Claims (21)

1.一种硬件数据更新设备,用于更新硬件中存储的数据,其特征在于,包括:
接收模块,接收至少一个请求操作并将所述至少一个请求操作定义为批量操作;以及
维护模块,对于所述批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新所述硬件中存储的数据,
其中每个硬件操作集包括至少两个硬件操作,并且所述至少两个硬件操作集对所述硬件的操作结果是等价的。
2.如权利要求1所述的硬件数据更新设备,其特征在于,所述维护模块基于所估计的代价更新所述硬件中存储的数据包括:所述维护模块在所估计的代价中选择最小代价,并按照对应于该最小代价的硬件操作集中的硬件操作来更新所述硬件中存储的数据。
3.如权利要求1所述的硬件数据更新设备,其特征在于,所述维护模块根据硬件操作的种类而对该硬件操作赋予权值,以估计硬件操作集的代价。
4.如权利要求1所述的硬件数据更新设备,其特征在于,所述数据被存储为分层二叉树的节点,其中所述分层二叉树包括大树节点和小树节点。
5.如权利要求4所述的硬件数据更新设备,其特征在于,所述硬件操作包括节点操作和一次更新操作,其中所述节点操作是按照所述请求操作而产生的对分层二叉树的节点的操作,所述一次更新操作是一次性更新一个小树的所有节点的操作。
6.如权利要求5所述的硬件数据更新设备,其特征在于,所述硬件操作集包括节点操作队列和小树更新队列,其中所述节点操作队列缓存单个小树的所述节点操作,所述小树更新队列缓存所述一次更新操作。
7.如权利要求6所述的硬件数据更新设备,其特征在于,
所述估计每个硬件操作集的代价包括:针对特定请求操作,所述维护模块估计所述节点操作队列和所述一次更新操作的代价,
所述基于所估计的代价更新所述硬件中存储的数据包括:如果所述节点操作队列的代价不超过所述一次更新操作的代价,则所述维护模块确定所述节点操作队列作为所述特定请求操作的硬件操作队列,如果所述节点操作队列的代价超过所述一次更新操作的代价,则所述维护模块确定所述小树更新队列作为所述特定请求操作的硬件操作队列,并且按照所确定的硬件操作队列来更新所述硬件中存储的数据。
8.如权利要求6所述的硬件数据更新设备,其特征在于,如果所述节点操作队列用完,则所述维护模块按照目前的节点操作队列和小树更新队列中的硬件操作而更新所述硬件中存储的数据。
9.如权利要求6所述的硬件数据更新设备,其特征在于,如果更新所述大树节点,则所述维护模块按照目前的节点操作队列和小树更新队列中的硬件操作而更新所述硬件中存储的数据。
10.如权利要求6所述的硬件数据更新设备,其特征在于,所述小树的一次更新操作包括:申请新小树;将小树节点一次更新到所述新小树中;以及修改大树节点指针。
11.一种硬件数据更新方法,用于更新硬件中存储的数据,其特征在于,包括:
接收至少一个请求操作并将所述至少一个请求操作定义为批量操作;
对于所述批量操作中的每个请求操作产生至少两个硬件操作集;
估计每个硬件操作集的代价;以及
基于所估计的代价更新所述硬件中存储的数据,
其中每个硬件操作集包括至少两个硬件操作,并且所述至少两个硬件操作集对所述硬件的操作结果是等价的。
12.如权利要求11所述的硬件数据更新方法,其特征在于,所述基于所估计的代价更新所述硬件中存储的数据包括:在所估计的代价中选择最小代价,并按照对应于该最小代价的硬件操作集中的硬件操作来更新所述硬件中存储的数据。
13.如权利要求11所述的硬件数据更新方法,其特征在于,所述估计每个硬件操作集的代价包括:根据硬件操作的种类而对该硬件操作赋予权值,以估计硬件操作集的代价。
14.如权利要求11所述的硬件数据更新方法,其特征在于,所述数据被存储为分层二叉树的节点,其中所述分层二叉树包括大树节点和小树节点。
15.如权利要求14所述的硬件数据更新方法,其特征在于,所述硬件操作包括节点操作和一次更新操作,其中所述节点操作是按照所述请求操作而产生的对分层二叉树的节点的操作,所述一次更新操作是一次性更新一个小树的所有节点的操作。
16.如权利要求15所述的硬件数据更新方法,其特征在于,所述硬件操作集包括节点操作队列和小树更新队列,其中所述节点操作队列缓存单个小树的所述节点操作,所述小树更新队列缓存所述一次更新操作。
17.如权利要求16所述的硬件数据更新方法,其特征在于,
所述估计每个硬件操作集的代价包括:针对特定请求操作,估计节点操作队列和所述一次更新操作的代价,以及
所述基于所估计的代价更新所述硬件中存储的数据包括:如果所述节点操作队列的代价不超过所述一次更新操作的代价,则确定所述节点操作队列作为所述特定请求操作的硬件操作队列,如果所述节点操作队列的代价超过所述一次更新操作的代价,则确定所述小树更新队列作为所述特定请求操作的硬件操作队列,并且按照所确定的硬件操作队列来更新所述硬件中存储的数据。
18.如权利要求16所述的硬件数据更新方法,其特征在于,所述更新所述硬件中存储的数据包括:如果所述节点操作队列用完,则按照目前的节点操作队列和小树更新队列中的硬件操作而更新所述硬件中存储的数据。
19.如权利要求16所述的硬件数据更新方法,其特征在于,所述更新所述硬件中存储的数据包括:如果更新所述大树节点,则按照目前的节点操作队列和小树更新队列中的硬件操作而更新所述硬件中存储的数据。
20.如权利要求16所述的硬件数据更新方法,其特征在于,所述小树的一次更新操作包括:
申请新小树;
将小树节点一次更新到所述新小树中;以及
修改大树节点指针。
21.一种用于更新硬件数据的系统,包括用于存储数据的硬件,其特征在于,所述系统还包括硬件数据更新设备,用于更新所述硬件中存储的数据,所述硬件数据更新设备包括:
接收模块,接收至少一个请求操作并将所述至少一个请求操作定义为批量操作;以及
维护模块,对于批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新所述硬件中存储的数据,
其中每个硬件操作集包括至少两个硬件操作,并且所述至少两个硬件操作集对所述硬件的操作结果是等价的。
CN2009101318241A 2009-04-08 2009-04-08 硬件数据更新方法和设备 Expired - Fee Related CN101515866B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101318241A CN101515866B (zh) 2009-04-08 2009-04-08 硬件数据更新方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101318241A CN101515866B (zh) 2009-04-08 2009-04-08 硬件数据更新方法和设备

Publications (2)

Publication Number Publication Date
CN101515866A CN101515866A (zh) 2009-08-26
CN101515866B true CN101515866B (zh) 2011-09-14

Family

ID=41040171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101318241A Expired - Fee Related CN101515866B (zh) 2009-04-08 2009-04-08 硬件数据更新方法和设备

Country Status (1)

Country Link
CN (1) CN101515866B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868621B (zh) * 2012-08-31 2016-06-08 武汉烽火网络有限责任公司 一种利用异步方式实现大容量路由快速写硬件的方法
CN102882746B (zh) * 2012-10-11 2015-04-22 盛科网络(苏州)有限公司 Openflow交换机系统中流表添加速率的测试方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1952897A (zh) * 2005-10-18 2007-04-25 中国科学院计算技术研究所 一种基于数据流分析的访存合并优化方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1952897A (zh) * 2005-10-18 2007-04-25 中国科学院计算技术研究所 一种基于数据流分析的访存合并优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特表2003-518690A 2003.06.10

Also Published As

Publication number Publication date
CN101515866A (zh) 2009-08-26

Similar Documents

Publication Publication Date Title
US8924687B1 (en) Scalable hash tables
CN100465947C (zh) 用于产生和使用改进的树形位图数据结构的方法和装置
EP1551141B1 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
CN111966284B (zh) 一种OpenFlow大规模流表弹性节能与高效查找系统及方法
CN110399535B (zh) 一种数据查询方法、装置及设备
CN100550847C (zh) 一种解决Hash冲突的方法及装置
US9871727B2 (en) Routing lookup method and device and method for constructing B-tree structure
US8229916B2 (en) Method for massively parallel multi-core text indexing
CN110162528A (zh) 海量大数据检索方法及系统
CN100578469C (zh) 存储、查询方法及存储控制器和查询系统
CN105956183A (zh) 一种分布式数据库中海量小文件的多级优化存储方法及系统
JPH1051471A (ja) 仮想メッセージ転送経路上への転送スケジューリングの効率を高めるために、転送サービスレートが近い仮想メッセージ転送経路同士をまとめるメカニズムを有するデジタルネットワーク
CN101231619A (zh) 一种基于非连续页的动态内存管理方法
US8086641B1 (en) Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
CN103139300A (zh) 一种基于重复数据删除的虚拟机镜像管理的优化方法
CN109379230B (zh) 一种基于广度优先搜索的服务功能链部署方法
CN109710668B (zh) 一种多源异构数据访问中间件构建方法
CN111722918A (zh) 业务标识码生成方法、装置、存储介质及电子设备
CN103236989A (zh) 一种内容分发网络中的缓存控制方法、设备及系统
CN101236564A (zh) 一种海量数据高性能读取显示方法
US7987205B1 (en) Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations
CN101515866B (zh) 硬件数据更新方法和设备
CN112559459B (zh) 一种基于云计算的自适应存储分层系统及方法
CN101783814A (zh) 海量存储系统的元数据存储方法
US20220075766A1 (en) Cuckoo hashing including accessing hash tables using affinity table

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110914

Termination date: 20120408