CN101493835B - 基于hash算法内存和文件系统混合排重方法 - Google Patents

基于hash算法内存和文件系统混合排重方法 Download PDF

Info

Publication number
CN101493835B
CN101493835B CN2009100281038A CN200910028103A CN101493835B CN 101493835 B CN101493835 B CN 101493835B CN 2009100281038 A CN2009100281038 A CN 2009100281038A CN 200910028103 A CN200910028103 A CN 200910028103A CN 101493835 B CN101493835 B CN 101493835B
Authority
CN
China
Prior art keywords
scheduling
information
internal memory
file
tautology
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
CN2009100281038A
Other languages
English (en)
Other versions
CN101493835A (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.)
NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Original Assignee
NANJING CITY LINKAGE SYSTEM INTEGRATION 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 NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd filed Critical NANJING CITY LINKAGE SYSTEM INTEGRATION CO Ltd
Priority to CN2009100281038A priority Critical patent/CN101493835B/zh
Publication of CN101493835A publication Critical patent/CN101493835A/zh
Application granted granted Critical
Publication of CN101493835B publication Critical patent/CN101493835B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于HASH算法内存和文件系统混合排重的实现方法,采用内存排重和文件系统排重相结合,从而达到数据存储使用空间和处理效率的双赢结果。其过程是将一定时间内的排重信息加载到内存中,采用内存排重,在此时间之外的采用文件排重。主要包括以下几个步骤:步骤1:加载排重配置信息(记录格式信息、排重类型等)到内存中。步骤2:将一定时间(可配置)内的排重信息加载到私有内存中。步骤3:内存排重:根据内存中的过滤信息进行剔重处理。步骤4:文件排重:根据文件中的历史过滤信息进行剔重处理。排重信息在内存中的存储结构,具备HASH列表和时间窗两大特征。

Description

基于HASH算法内存和文件系统混合排重方法
一、技术领域
本发明涉及电信行业的计费系统中的排重处理领域,特别涉及一种基于HASH算法内存和文件系统混合的排重技术。
二、背景技术
随着电信行业业务量的急剧增加,排重这一部分作为整个计费系统流程的一个重要组成部分,其性能的高低势必会影响整个计费系统的性能。如何才能最大限度的提高排重模块的性能已经是迫不及待要解决的问题。排重的目的是剔除文件内重单(重复的记录);本申请人提出过CN200610038375基于过滤片的话单内存排重方法和CN200610085767基于内存的海量话单快速交叉排重方法,但排重效率仍有提高的必要。
在以前的计费系统中排重模块这一部分采用的是数据库内排重,排重信息存放在数据库中,文件内的排重是将排重信息存储到缓存中,先进行缓存排重,剔除文件内重单,然后将排重信息插入数据库中的临时表,判断是不是重单,插入成功,则表示不是重单,否则表示是重单。最后把临时表中的数据插入到排重信息表中。由于对数据库频繁的操作,效率上必然会受到数据库性能的影响。
三、发明内容
本发明目的:提出“基于HASH算法内存和文件系统混合排重方法”做为排重模块的核心实现方法。解决以前排重模块效率较低的问题。解决数据库资源效率大、对数据库系统依赖性强的问题;解决处理效率低下问题;增强排重功能;提高通用性。
本发明的技术方案是:基于HASH算法内存和文件系统混合排重的实现方法,其特征是采用内存排重和文件系统排重相结合,从而达到数据存储使用空间和处理效率的双赢结果;其过程是将一定时间内的排重信息加载到内存中,采用内存排重,在此时间之外的采用文件排重;需要排重的记录绝大部分是准实时的,为了提高排重效率,在较大的程度采用内存方式排重;故先将最近一段时间内的过滤的记录(信息)在内存中的存储,同时为了提高内存排重的效率,存储方式采用哈希链表和时间窗表的结构来存储在内存中的过滤信息;
存储结构中:设有各个Hash桶列表:按照过滤信息Fid排序的列表和按照时间窗排序的列表均对应于各节点;在内存创建了两个索引:基于排重信息的HASH索引和时间窗索引;
内存中HASH索引结构提供以下功能接口,方便对内存数据的访问和操作:
1)提供插入排重信息;2)提供根据哈希值删除对应的节点;3)提供根据LIST节点删除有对应节点;4)提供根据哈希节点删除对应节点;5)提供删除指定时间前的节点;6)提供删除指定时间前的指定节点;7)提供按时间顺序来删除指定数目的节点;8)提供根据字段信息查找对应节点;
还有一部分记录是延迟或回收的,排重记录(信息)在文件中的存储,为了提高文件排重的效率,存储方式采用三部分结构:文件头(固定大小)、索引部分(有序的指向对应的数据节点的偏移量)、排重信息数据;
文件头信息包括:文件状态信息(未满、已满)、文件大小、最大记录数、有效记录数、索引位置信息等。
索引部分:记录的数据采用记录排重信息在文件中的偏移位置方式记录,并按照所标识的排重信息从小到大的顺序存放;包括以下几个步骤:
步骤1:加载排重配置信息(记录格式信息、排重类型等)到内存中;
步骤2:将一定时间(时间窗,可配置)内的排重信息加载到内存中;
步骤3:内存排重:根据内存中的过滤信息进行剔重处理;
步骤4:文件排重:根据文件中的历史过滤信息进行剔重处理;
排重信息数据在文件中是以队列方式存放的,按照存储时间先后顺序存放。
文件中排重信息管理模块提供以下功能接口,方便对文件中数据的访问和操作:
功能1提供查询指定位置的节点数据。
功能2提供判断指定的排重信息是否重单。
功能3提供插入一条排重信息。
本发明为解决对数据库的依赖和资源消耗问题,采用脱离数据库系统环的库外排重方式。解决数据库和文件系统处理效率低下的问题,采用内存和文件方式向结合的排重方式。
但由于内存资源相对于海量的记录数据而言是非常有限的,为了仅可能的提高处理效率。采用将一定时间窗内的排重信息保留在内存中,提高内存排重命中率,从而提高排重效率。另外,由于内存中保留的是一定时间窗内的,所以内存资源的需求量也是可控的。
在提供内存排重命中率的同时,也需要提高文件排重的效率(毕竟有一定比例的记录是采用文件方式排重的)。利用“图2”所示的存储方式,在文件采用二分法算法来提供排重效率。
通过在新的排重系统中增加交叉排重功能来完善。而交叉排重的功能在“基于数据库”排重系统中正是难以高效实现的。
通过将业务的特殊性参数化(比如话单格式、时间窗大小等),从而提高系统的通用性。
将一定时间内的排重信息从文件中加载到内存中,采用哈希(HASH)链表的结构来存储排重信息。对于要进行排重的记录先在内存中排重,看是否属于内存重单,然后再在文件中查询看是不是属于重单。
本发明有益效果:本发明解决了电信行业计费系统“基于物理数据库”排重模块在排重效率和功能上的缺陷:交叉排重功能缺失、处理效率低下、数据库资源消耗大、对数据库系统依赖性强等。提出一个能够提供排重功能齐全、提高通用性通用统一,且在处理效率、资源消耗等方面能够得到显著提高的新的排重方法。
1.排重功能:增加了交叉排重、不排重等排重方式。解决了电信业务不同交换机间系统时间不一致,难以排重的问题。
2.排重效率:处理效率比“基于数据库”排重,提高了一倍。基于数据库的性能通常只有1000条/秒左右,但基于HASH算法内存和文件系统混合的排重效率可高达2500条/秒以上。
3.内存使用情况:一般一个进程的占用情况可控制在200M内。而采用全内存方式,一个进程至少需要6G以上(40天的过滤信息)。
4.资源消耗:完全取消了数据库资源的消耗,而对文件系统的消耗也不大。基于数据库方式的排重,系统忙时将导致数据库资源十分忙碌,导致同一数据库上的其他工作难以正常进行。
四、附图说明
图1为排重信息在内存中的存储方式。
图2为排重信息在文件中的存储结构。
图3为排重系统模型图。
图4为配置结构图。
图5为实现类图。
五、具体实施方式
下面结合附图和实施例对本发明进一步说明。基于内存和文件系统的排重作为计费系统中的一个独立模块,其标准的软件模型如图3所示
具体实施步骤为:
●配置信息
步骤1配置信息,根据各个业务的排重业务需求,配置排重类型(完全排重、交叉排重、不排重)和过滤信息获取方式。
步骤2规划并创建文件目录,用于存放过滤信息的文件。
步骤3根据业务的实时程度和内存大小,设置内存保存的时间窗参数。
●实施过程中,排重系统的配置参数均采用XML格式保存在文件中。按照功能模块分为以下三种配置信息(如图3所示)
配置结构实例(如图4所示)
该配置信息定义各种业务的排重信息提取方式、排重方式、时间窗大小(典型的时间窗可能选择在一小时至二小时)等信息。
●实现类图(如图5所示)
■过滤信息管理类
FilterInfoMgr类负责提供排重信息操作的所有接口。
MemFilterInfoMgr类为内存中排重信息的管理类,实现内存中排重信息的操作接口。
BusiFidInfoMgr类提供一个业务对应的排重信息管理接口。
HashList类定义一个业务的排重信息在内存中的存放方式,并提供操作接口。
FileFilterInfoMgr类负责对文件中排重信息的管理。
HisFileInfoMgr类封装了对排重信息文件的一些基本操作。

Claims (2)

1.基于HASH算法内存和文件系统混合排重的实现方法,其特征是采用内存排重和文件系统排重相结合,从而达到数据存储使用空间和处理效率的双赢结果;其过程是将一定时间内的排重信息加载到内存中,采用内存排重,在此时间之外的采用文件排重;需要排重的记录绝大部分是准实时的,为了提高排重效率,在较大的程度采用内存方式排重;故先将最近一段时间内的过滤的记录在内存中存储,同时为了提高内存排重的效率,采用哈希链表和时间窗表的结构来存储在内存中的过滤信息,包括以下步骤:
步骤1:加载排重配置记录格式信息、排重类型信息到内存中;
步骤2:将可配置时间窗内的排重信息加载到内存中;
步骤3:内存排重:根据内存中的过滤信息进行剔重处理;
内存排重中,在内存存储结构中设有各个Hash桶列表,按照过滤信息Fid排序的列表和按照时间窗排序的列表均对应于各节点;在内存中创建了两个索引:即基于排重信息的HASH索引和时间窗索引;内存中HASH索引结构提供以下功能接口,方便对内存数据的访问和操作:
1)提供插入排重信息;2)提供根据哈希值删除对应的节点;3)提供根据LIST节点删除有对应节点;4)提供根据哈希节点删除对应节点;5)提供删除指定时间前的节点;6)提供删除指定时间前的指定节点;7)提供按时间顺序来删除指定数目的节点;8)提供根据字段信息查找对应节点;
还有一部分记录是延迟或回收的,排重的记录在文件中存储;
为了提高文件排重的效率,存储方式采用三部分结构:固定大小文件头、有序的指向对应的数据节点的偏移量的索引部分和排重信息数据;
文件头信息包括:文件状态信息、文件大小、最大记录数、有效记录数、索引位置信息;索引部分:记录的数据采用记录排重信息在文件中的偏移位置方式记录,并按照所标识的排重信息从小到大的顺序存放;
步骤4:文件排重:根据文件中的历史过滤信息进行剔重处理。
2.根据权利要求1所述的基于HASH算法内存和文件系统混合排重的实现方法,其特征是排重信息数据在文件中是以队列方式存放的,按照存储时间先后顺序存放;
文件中排重信息管理模块提供以下查询指定位置的节点数据、判断指定的排重信息是否重单和插入一条排重信息的功能接口,方便对文件中数据的访问和操作。
CN2009100281038A 2009-01-09 2009-01-09 基于hash算法内存和文件系统混合排重方法 Expired - Fee Related CN101493835B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100281038A CN101493835B (zh) 2009-01-09 2009-01-09 基于hash算法内存和文件系统混合排重方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100281038A CN101493835B (zh) 2009-01-09 2009-01-09 基于hash算法内存和文件系统混合排重方法

Publications (2)

Publication Number Publication Date
CN101493835A CN101493835A (zh) 2009-07-29
CN101493835B true CN101493835B (zh) 2011-09-21

Family

ID=40924437

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100281038A Expired - Fee Related CN101493835B (zh) 2009-01-09 2009-01-09 基于hash算法内存和文件系统混合排重方法

Country Status (1)

Country Link
CN (1) CN101493835B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102298633B (zh) * 2011-09-08 2013-05-29 厦门市美亚柏科信息股份有限公司 一种分布式海量数据排重方法及系统
CN103037344B (zh) * 2012-12-06 2016-04-20 亚信科技(中国)有限公司 一种话单去重方法及装置
CN103336849B (zh) * 2013-07-24 2016-09-21 昆明理工大学 一种数据库检索系统中提高检索速度的方法及装置
CN104123347B (zh) * 2014-07-04 2018-01-09 北京思特奇信息技术股份有限公司 一种应用于boss系统的数据重删方法及系统
CN106126670B (zh) * 2016-06-28 2020-01-14 江苏果米文化发展有限公司 运营数据排序处理方法及装置
CN106599062A (zh) * 2016-11-18 2017-04-26 北京奇虎科技有限公司 一种SparkSQL系统中的数据处理方法和装置
CN106599326B (zh) * 2017-01-23 2020-02-04 北京思特奇信息技术股份有限公司 一种云化架构下的记录数据剔重处理方法及系统
CN107357862B (zh) * 2017-06-30 2020-03-13 中国联合网络通信集团有限公司 话单排重方法及装置

Also Published As

Publication number Publication date
CN101493835A (zh) 2009-07-29

Similar Documents

Publication Publication Date Title
CN101493835B (zh) 基于hash算法内存和文件系统混合排重方法
CN101216821B (zh) 数据采集系统的存储管理方法
CN104731799B (zh) 内存数据库管理装置
CN101447940B (zh) 访问控制列表规则的更新方法和装置
CN105930387A (zh) 一种基于数据路由、分库分表的数据操作系统及方法
CN104035925B (zh) 数据存储方法、装置和存储系统
US20130179476A1 (en) Scalable billing usage data storage
CN102930062A (zh) 一种数据库快速水平扩展的方法
CN105069134A (zh) 一种Oracle统计信息自动收集方法
CN101840430B (zh) 智能卡数据库多表操作方法及装置
CN107608860A (zh) 一种错误日志分类存储的方法、装置、设备
CN103336782B (zh) 一种关系型分布式数据库系统
CN102780574A (zh) 面向业务的局数据的配置方法、装置以及核查方法、装置
CN106598495A (zh) 一种混合存储服务质量的控制方法及控制装置
CN104298736A (zh) 数据集合连接方法、装置及数据库系统
CN103902592B (zh) 基于MapReduce实现分析函数的方法及系统
CN110535825A (zh) 一种特征网络流的数据识别方法
CN107957848A (zh) 重删处理方法及存储设备
CN102629220A (zh) 一种动态任务分配管理方法
CN102982186A (zh) 基于oracle数据库系统的range分区表的维护方法和系统
CN107609172A (zh) 一种跨系统多维度数据检索处理方法及装置
CN103258047A (zh) 一种面向药企作业成本控制数据仓库的数据组织方法
CN104484619B (zh) 一种解决客户端多逻辑通道访问pkcs#15文件冲突的方法
CN101030884B (zh) 电信网络资源oss系统中独占性资源的调度方法
CN101980190A (zh) 一种业务数据快速入库的方法和装置

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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20090729

Assignee: NANJING XINTONG TECHNOLOGY CO.,LTD.

Assignor: LINKAGE TECHNOLOGY GROUP Co.,Ltd.

Contract record no.: 2016320000023

Denomination of invention: Internal memory and file system mixing rearrangement method based on HASH algorithm

Granted publication date: 20110921

License type: Common License

Record date: 20160219

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110921

Termination date: 20220109

CF01 Termination of patent right due to non-payment of annual fee