CN1329815C - 一种存储表更新方法 - Google Patents
一种存储表更新方法 Download PDFInfo
- Publication number
- CN1329815C CN1329815C CNB021450064A CN02145006A CN1329815C CN 1329815 C CN1329815 C CN 1329815C CN B021450064 A CNB021450064 A CN B021450064A CN 02145006 A CN02145006 A CN 02145006A CN 1329815 C CN1329815 C CN 1329815C
- Authority
- CN
- China
- Prior art keywords
- list item
- time
- list
- data
- bar number
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种更新存储表的方法,包括以下实现步骤:第一步,确定存储表的平均遍历周期和单次更新表项条数的上限值;第二步,接收一个数据,并记录该数据到达的时间;第三步,计算本次需要更新的表项条数;第四步,如果所述第三步种需要更新的表项条数大于上限值,则将需要更新表项条数设置为上限值;第五步,从上次更新的表项开始更新存储表表项。采用本发明所述的方法可以根据数据的间隔时间自动调整更新的表项的百分比,起到均衡系统负荷的作用,可以应用于需要管理大容量存储表的系统中。
Description
所属技术领域
本发明涉及一种更新存储表的方法,特别是涉及一种对大容量存储表的快速、有效的表项更新方法。
背景技术
随着Internet网络的迅速发展,网络技术的不断进步,高性能的网络设备的不断出现,用软件的方法来实现网络数据的处理,以其灵活多变,低成本高产出,低开发周期,而占据一席之地,经久不衰。面对着数据的海量性、突发性,纯软件处理方式同硬件处理相比,虽然具有很高的智能化程度,但处理速度与硬件处理确有天壤之别,需要采用高效的方法,便捷的流程才能够大大的缩小两者之间的差距。
在软件的处理过程中,大部分都具有一个共同点,那就是需要在有限的存储空间中维持着一个大容量的存储表,用以记录处理过程的中间数据(这些中间数据可以采用哈希表、链表或者数组的方式组织起来),它们往往需要周期的进行更新,删除一些无效的、过期的表项,释放其占用的系统资源,提供给其它数据使用,提升整个设备的处理能力。
由于这些数据表项动辄成千上万,甚至到十万、百万。对于这些表项,往往要周期性的进行遍历更新,此操作不可避免的要耗费处理器的一定时间,所以一个低效的流程、繁杂的方法不仅影响到其他数据流的处理速率,甚至可能造成其它数据流的中断。对于一个大容量表项,不对其更新是不可想象的,一方面,整个设备的存储空间有限,不可能容纳越来越多的表项,另一方面,不是所有的表项均有效的,每个表项均有其生存周期,超过了这个周期,只是一堆无用的数据而已。为此,需要有一种机制,不断地更新所有表项,并清除无用的表项。最常用的方法无外乎有下面几种:
●简单遍历法:系统设定一个循环定时器,周期的简单遍历所有表项,此法最容易实现,占用资源最小,但效率非常低,所以仅适用于表项非常少的情况,否则它所引起的时延将无法想象。
●多定时器法:对每一个表项设定一个定时器,定时器的时长为该表项的超时时间。当定时器事件到时,对该表项进行更新。这也只适用于表项较少的情况,因为它占用非常多的定时器资源(与表项的数目相同),及一定的定时器事件队列。但是当表项较多时,本方法缺陷就很明显,会耗用大量的定时器资源,频繁的定时器事件中断,和进程切换,加重处理器的负担。
●整合法:对于每一个表项,可能其对应的超时时间不尽相同,但可将其统一整合为不同的定时器时间段,而将相同超时单位段的表项,归成一类,共同使用一个循环定时器。每次定时器超时时,对该类的所有表项进行更新。这个方法是上两者的综合,一定程度上减少了定时器资源,提高了效率。但与上述两种方向类似,对于大容量的表项时,效率依旧不高。
●分段遍历法:整个表项只启动一个定时器,其时长设置很小,每次定时器事件到时,只更新给定数目的表项,只要保证在给定的遍历周期内,更新所有的表项即可。定时器时长和一次更新的数量依据整个表项的多少和给定的遍历周期而定。该方法占用资源也很少,且不会引起数据流处理的较大延时。缺点是当数据流量较集中时,引起的时延相对较大。
所有以上的方法中有一个共同的缺点:无论数据流量怎样,更新机制一如既往的工作着,数据流量频繁时,照样在指定的时间内要更新一定数量的表项,没有流量或者流量稀疏时仍是如此。这样导致的结果是,数据流量频繁时,仍要花费一定量的处理器时间,从而周期性的出现数据流量的处理时延增大,甚至出现停顿。
发明内容
本发明解决的技术问题就是提供了一种大容量存储表更新方法,能够针对当前系统的数据流量,智能地分配处理器时间来处理表项的更新,尽可能少地影响正常的数据流处理,充分合理地利用处理器资源。
本发明所述的大容量存储表更新方法,包括以下实现步骤:
第一步,确定存储表的平均遍历周期,设置单次更新表项条数的上限值;
第二步,接收一个数据,并记录该数据到达的时间;
第三步,计算本次数据到达的时间和上次数据到达的时间的时间间隔;将所述时间间隔除以设定的平均遍历周期得到更新表项的百分比;将所述存储表的表项总数乘以所述更新表项百分比得到本次需要更新的表项条数;
当所述第三步中需要更新的表项条数大于上限值,则将需要更新表项条数设置为上限值;
第四步,从上次更新的表项开始更新所述第更新表项条数的存储表表项,返回第二步。
设置单次更新表项条数的下限值,当更新表项条数小于下限值,则将需要更新表项条数设置为下限值。
本发明所述的大容量存储表更新方法巧妙的起到了系统负荷均衡的作用:当数据流量大时,数据到达的间隔时间短、系统处理负荷重,但由于需要更新的表项百分比相应减小,从而由更新而引起的处理器负荷也小,对整个系统的性能影响也小;数据流量小时,处理器负荷也小,数据到达间隔的时间长,遍历的百分比就大。这样就避免了集中更新所造成的处理器负荷不均衡。另一方面,实现本发明的方法最多只需要一个定时器,而且所占用的定时器等额外资源小到可以忽略不计。此外,本发明方法简单易行,占用资源很小。相比起其他方法,大大提高了更新的效率,又基本不影响系统对数据流的正常处理。
附图说明
图1是本发明所述大容量存储表更新方法的处理流程图。
具体实施方式
以下通过具体实施例结合附图详细介绍本发明所述大容量存储表更新方法。
以网络地址转换(NAT)在通讯设备上的实现为例:在实现网络地址转换的过程中,当数据报文由私有网络访问公共网络时,由于公共网络不支持私有地址,故需要对源IP地址(和端口)作一定的转换,而当收到回应报文数据时,再将其目的地址转换为原来的私有网络地址,而在此过程中必须维持所用的转换表项。该表项有一定的生存周期。而在给定的周期内,没有数据用到该表项,它就必须被清除,以释放其占用的资源提供给其他转换使用,此时便需要采用遍历更新方法。
已知上次更新时间为T1,总的需要更新的表项为M,平均的更新遍历周期为N,单次更新的条数上限值是K。
本次报文数据到达的时间为T2,计算需要更新的表项条数L,
L=(T2-T1)×(M/N)
判断需要更新的表项条数L是否大于上限值K,如果是,则将上限值K赋值给本次需要更新的表项条数I,否则将L赋值给I;
然后记录本次更新的时间T2存储到T1中,再从上次更新的表项起更新I条表项。
当数据流从无到有时,因为数据到达的间隔增大,一次更新的条数增加,但由于更新条数有一定的上限限制,使得在平均遍历周期内无法更新所有表项,使得更新机制变慢,在极端情况下(根本没有数据流),则更新机制将失效。为了解决这个问题,可以通过启动一个定时器作为辅助,定时器事件的到达仿真一个数据的到达,当数据流很少或没有时,将定时器事件到达的时间赋值给T2,以维持对表项的更新。
另外还可以设置一个下限值,当需要更新的表项条数L小于下限值时,则下限值赋值给本次需要更新的表项条数I,完成表项的及时更新。
综上所述,本发明所述大容量存储表更新方法遵循下面的原则:
1、根据每次数据到达的时间间隔来决定系统数据流的忙和闲,并以此为更新的触发机制。
2、将整个表项按照数据流的忙和闲作不平均的分摊,每次只更新一部分。
3、数据流越忙,更新的表项占全部表项的百分比越小。
4、辅助一个定时器,以便当数据流很少或没有时,维持对表项的更新。
Claims (3)
1.一种大容量存储表更新方法,其特征在于,包括以下实现步骤:
第一步,确定存储表的平均遍历周期,设置单次更新表项条数的上限值;
第二步,接收一个数据,并记录该数据到达的时间;
第三步,计算本次数据到达的时间和上次数据到达的时间的时间间隔;将所述时间间隔除以设定的平均遍历周期得到更新表项的百分比;将所述存储表的表项总数乘以所述更新表项百分比得到本次需要更新的表项条数,当所述需要更新的表项条数大于所述上限值,则将需要更新表项条数设置为所述上限值;
第四步,从上次更新的表项开始更新所述更新表项条数的存储表表项,返回第二步。
2.根据权利要求1所述的大容量存储表更新方法,其特征在于,在所述第一步之后还包括以下处理步骤:
设置一个定时器,定时器事件的到达仿真一个数据的到达,当数据流没有时,将定时器事件到达的时间赋值给本次数据到达的时间。
3.根据权利要求1或2所述的大容量存储表更新方法,其特征在于,在所述第一步中还包括:设置单次更新表项条数的下限值,并且所述第三步中还包括:当所述需要更新的表项条数小于所述下限值,则将需要更新表项条数设置为所述下限值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021450064A CN1329815C (zh) | 2002-10-31 | 2002-10-31 | 一种存储表更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021450064A CN1329815C (zh) | 2002-10-31 | 2002-10-31 | 一种存储表更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1493969A CN1493969A (zh) | 2004-05-05 |
CN1329815C true CN1329815C (zh) | 2007-08-01 |
Family
ID=34232219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021450064A Expired - Fee Related CN1329815C (zh) | 2002-10-31 | 2002-10-31 | 一种存储表更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1329815C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327396A (zh) * | 2018-12-03 | 2019-02-12 | 中国人民解放军陆军工程大学 | 路由查表电路中的哈希表缓变更新方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0155980A2 (en) * | 1983-06-22 | 1985-10-02 | CTI Partners | Digital data compression method and means |
US5243694A (en) * | 1987-02-05 | 1993-09-07 | Hewlett-Packard Company | Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system |
US5493663A (en) * | 1992-04-22 | 1996-02-20 | International Business Machines Corporation | Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses |
JPH1034472A (ja) * | 1996-04-25 | 1998-02-10 | Chiron Werke Gmbh & Co Kg | 工作機械 |
-
2002
- 2002-10-31 CN CNB021450064A patent/CN1329815C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0155980A2 (en) * | 1983-06-22 | 1985-10-02 | CTI Partners | Digital data compression method and means |
US5243694A (en) * | 1987-02-05 | 1993-09-07 | Hewlett-Packard Company | Method and apparatus for trimming B-spline descriptions of patches in a high performance three dimensional graphics system |
US5493663A (en) * | 1992-04-22 | 1996-02-20 | International Business Machines Corporation | Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses |
JPH1034472A (ja) * | 1996-04-25 | 1998-02-10 | Chiron Werke Gmbh & Co Kg | 工作機械 |
Also Published As
Publication number | Publication date |
---|---|
CN1493969A (zh) | 2004-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Harlap et al. | Proteus: agile ml elasticity through tiered reliability in dynamic resource markets | |
US11474874B2 (en) | Systems and methods for auto-scaling a big data system | |
Wu et al. | The performance analysis of Linux networking–packet receiving | |
KR20140093733A (ko) | 에너지 효율적인 분산 및 탄력적 부하 밸런싱을 위한 방법 및 장치 | |
US20240211491A1 (en) | Export data from tables into partitioned folders on an external data lake | |
US8843929B1 (en) | Scheduling in computer clusters | |
CN102299843B (zh) | 一种基于gpu和缓冲区的网络数据处理方法及系统 | |
CN110058932A (zh) | 一种用于数据流驱动计算的存储方法和存储系统 | |
CN103246612A (zh) | 一种数据缓存的方法及装置 | |
CN104767778A (zh) | 任务处理方法及装置 | |
CN102474531A (zh) | 地址服务器 | |
CN103918239A (zh) | 负载均衡方法、装置、系统及计算机可读介质 | |
CN109960586A (zh) | 一种服务器状态可感知的四层负载均衡器及均衡方法 | |
US7305387B2 (en) | Method and apparatus for managing data object size in a multi-user environment | |
JP5520369B2 (ja) | コンピュータ・システム、方法及びプログラム | |
CN1329815C (zh) | 一种存储表更新方法 | |
Breitgand et al. | On cost-aware monitoring for self-adaptive load sharing | |
Fall et al. | Routing tables: Is smaller really much better? | |
Hu et al. | Transactional mobility in distributed content-based publish/subscribe systems | |
Bornea et al. | Double index nested-loop reactive join for result rate optimization | |
JP2003318897A (ja) | 通信システム、コネクション管理サーバ装置及びプログラム | |
Lawrence | A survey of process migration mechanisms | |
Roughgarden | Resource Augmentation. | |
CN106411622A (zh) | 一种表项处理方法及装置 | |
Samih et al. | Evaluating dynamics and bottlenecks of memory collaboration in cluster systems |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070801 Termination date: 20191031 |