CN103593148B - 一种cdf侧离线话单数据快速存取的方法及装置 - Google Patents
一种cdf侧离线话单数据快速存取的方法及装置 Download PDFInfo
- Publication number
- CN103593148B CN103593148B CN201310606050.XA CN201310606050A CN103593148B CN 103593148 B CN103593148 B CN 103593148B CN 201310606050 A CN201310606050 A CN 201310606050A CN 103593148 B CN103593148 B CN 103593148B
- Authority
- CN
- China
- Prior art keywords
- area
- write
- thread
- buffering area
- bill data
- 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.)
- Active
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种CDF侧离线话单数据快速存取的方法及装置,用以在话务量大且CDF与CGF之间链路不稳定情况下,避免由于CDF频繁存取话单而造成CDF整体***处理能力下降。该方法为:无论是将话单数据写入CDF侧的写缓冲区并进一步写入存储区域,还是将话单数据从存储区域读取至CDF侧的读缓冲区并进一步读取出发往CGF侧,均采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,写操作和读操作均设计为双缓冲机制,从而令缓冲区操作和I/O操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
Description
技术领域
本发明涉及数据读取技术,特别涉及一种CDF侧离线话单数据快速存取的方法及装置。
背景技术
演进的分组核心网(Evolved Packet Core,EPC)离线计费话单传输过程中,当计费数据功能(Charging Data Function,CDF)与计费网关功能(Charging GatewayFunction,CGF)之间链路异常时,CDF需要将计费话单临时存储在本地,当链路恢复时,再将已存储的话单读取并发送向CGF。通常,在话务量大且CDF与CGF之间链路不稳定情况下,会出现CDF频繁存取话单、存取速度变慢,从而引发CDF整体***处理能力下降,严重时会发生设备故障。
下面进行详细介绍。
目前EPC离线计费话单在CDF侧的存储方案通常分为三种:一、使用数据库存储;二、使用文件直接存储;三、使用缓冲区+文件存储。
一、使用数据库存储:当CDF需要存储或读取话单时,CDF应用通过访问数据库对外接口(一般是SQL语句)实现,每一个话单存储或读取,都需要调用一次数据库接口,具体参阅图1所示。
然而,使用数据库存储的方式会存在以下问题:部署成本高、***开销大,每次存储或读取话单,都需要调用数据库接口,如果数据库本身不做性能调优,文件输入输出操作(Input Output,I/O)操作就比较多,导致访问性能不高。而且这种简单重复的存储、读取操作,无法发挥出数据库在查询、排序、安全等方面的优势。
二、使用文件直接存储:当CDF需要存储或读取话单时,CDF应用直接调用***提供文件访问接口,每一个话单存储或读取,都需要调用一次文件写或读接口,具体参阅图2所示。
然而,使用文件直接存储的方式会存在以下问题:部署成本低、***开销也小,但是每次存储或读取话单,都需要调用***文件写或读接口,当话单数量较多时,显然会导致文件I/O操作过于频繁,从而造成***性能的瓶颈。
三、使用缓冲区+文件存储:当CDF需要存储话单时,先将话单放入写缓冲区,当写缓冲区满或到达时长门限时,将写缓冲区中的文件一次性写入存储区域;当CDF需要读取话单时,先将文件一次性读取并放入读缓冲区,然后再由CDF应用从读缓冲区中读取并发送话单,具体参阅图3所示。
然而,使用缓冲区+文件存储的方式会存在以下问题:多个话单存储只需一次写入文件,多个话单读取只需一次读入文件,这样大大减少了文件I/O频度。但是,写缓冲区写入文件的时间和把文件读入读缓冲区的时间包含在了整个存储和读取话单过程中,而文件I/O操作的速度一定是慢于话单存入写缓冲区或从读缓冲区中读取话单速度的,因此,采用这种方式,同样会因为文件I/O操作的速度慢而造成***性能的瓶颈。
发明内容
本发明实施例提供一种CDF侧离线话单数据快速存取的方法及装置,用以在话务量大且CDF与CGF之间链路不稳定情况下,避免由于CDF频繁存取话单而造成CDF整体***处理能力下降。
本发明实施例提供的具体技术方案如下:
第一方面,一种CDF侧离线话单数据存储的方法,包括:
选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;
待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域。
这样,话单数据的写入流程采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,写操作设计为双缓冲机制,令缓冲区操作和写操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
能够有效消除了线程间资源同步需要的等待时间。
结合第一方面,在第一种可能的实现方式中,待所述第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,进一步包括:
待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用所述第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,待所述第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于所述第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长,或/和,
设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,所述第一时长门限用于表征所述第一线程进行写缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
第二方面,一种CDF侧离线话单数据读取的方法,包括:
选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区;
待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用所述第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧。
这样,话单数据的读取流程采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,读操作设计为双缓冲机制,令缓冲区操作和读操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
能够有效消除了线程间资源同步需要的等待时间。
结合第二方面,在第一种可能的实现方式中,待所述第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定所述第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,进一步包括:
待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用所述第三线程将获得的话单数据写入第一写缓冲区,以及采用第四线程读取所述第二读缓冲区中存储的话单数据并发往CGF侧。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,待所述第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于所述第四线程从所述第一读缓冲区或第二读缓冲区中读空话单数据的时长;
设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,所述第二时长门限用于表征所述第三线程进行读缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
第三方面,一种CDF装置,包括:
第一控制单元,用于选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;
第二控制单元,用于待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域。
这样,话单数据的写入流程采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,写操作设计为双缓冲机制,令缓冲区操作和写操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
能够有效消除了线程间资源同步需要的等待时间。
结合第三方面,在第一种可能的实现方式中,所述第二控制单元待所述第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一控制单元进一步用于:
待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用所述第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第一控制单元待所述第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,进一步包括:
设置单元,用于设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于所述第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长,或/和,
设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,所述第一时长门限用于表征所述第一线程进行写缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
第四方面,一种CDF装置,包括:
第三控制单元,用于选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区;
第四控制单元,用于待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用所述第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧。
这样,话单数据的读取流程采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,读操作设计为双缓冲机制,令缓冲区操作和读操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
能够有效消除了线程间资源同步需要的等待时间。
结合第四方面,在第一种可能的实现方式中,所述第四控制单元待所述第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定所述第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第三控制单元进一步包括:
待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用所述第三线程将获得的话单数据写入第一写缓冲区,以及采用第四线程读取所述第二读缓冲区中存储的话单数据并发往CGF侧。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第三控制单元待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
结合第四方面的第二种可能的实现方式,在第四种可能的实现方式中,进一步包括:
配置单元,用于设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于所述第四线程从所述第一读缓冲区或第二读缓冲区中读空话单数据的时长;
设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,所述第二时长门限用于表征所述第三线程进行读缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
第五方面,一种CDF装置,包括:
处理器,用于选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;以及用于待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域。
这样,话单数据的写入流程采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,写操作设计为双缓冲机制,令缓冲区操作和写操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
能够有效消除了线程间资源同步需要的等待时间。
结合第五方面,在第一种可能的实现方式中,所述处理器待所述第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
结合第五方面或第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器进一步用于:
待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用所述第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域。
结合第五方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器待所述第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
结合第五方面的第二种可能的实现方式,在第四种可能的实现方式中,所述处理器进一步用于:
设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于所述第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长,或/和,
设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,所述第一时长门限用于表征所述第一线程进行写缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
第六方面,一种CDF装置,包括:
处理器,用于选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区,以及用于待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用所述第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧。
这样,话单数据的读取流程采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,读操作设计为双缓冲机制,令缓冲区操作和读操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
能够有效消除了线程间资源同步需要的等待时间。
结合第六方面,在第一种可能的实现方式中,所述处理器待所述第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定所述第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
结合第六方面或第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器进一步用于:
待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用所述第三线程将获得的话单数据写入第一写缓冲区,以及采用第四线程读取所述第二读缓冲区中存储的话单数据并发往CGF侧。
结合第六方面的第二种可能的实现方式,在第三种可能的实现方式中,所述处理器待所述第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
结合第六方面的第二种可能的实现方式,在第四种可能的实现方式中,所述处理器进一步用于:
设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于所述第四线程从所述第一读缓冲区或第二读缓冲区中读空话单数据的时长;
设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,所述第二时长门限用于表征所述第三线程进行读缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
附图说明
图1为现有技术下使用数据库存储话单示意图;
图2为现有技术下使用文件直接存储话单示意图;
图3为现有技术下使用缓冲区+文件存储话单示意图;
图4为本发明实施中CDF存储话单数据流程图;
图5为本发明实施例中CDF存储话单数据以及读取话单数据示意图;
图6为本发明实施例中存储话单数据线程运行时序图;
图7为本发明实施例中CDF读取话单流程图;
图8为本发明实施例中读取话单数据线程运行时序图;
图9-图11为本发明实施例中CDF结构示意图。
具体实施方式
在话务量大且CDF与CGF之间链路不稳定情况下,为了避免由于CDF频繁存取话单而造成CDF整体***处理能力下降,本发明实施例中,采用读写双缓冲区+四个线程并行处理,消除了文件I/O操作慢的性能瓶颈、并且不会因线程间资源同步产生等待时延。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图4所示,本发明实施例中,当CDF与CGF之间链路不稳定时,CDF进行话单存储的详细流程如下:
步骤400:CDF选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区。
步骤410:待第一写缓冲区的使用状态符合第一预设条件时,CDF切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据存入存储区域。
本实施例中,所谓第一写缓冲区的使用状态符合第一预设条件是指:第一写缓冲区已写满,或者,到达***预设的第一时长门限。
例如:参阅图5所示,本实施例中,假设CDF设置了线程A(又称为话单存储线程),以及线程B(又称为文件写入线程),具体的:
线程A:用于选择一个空闲的写缓冲区,如图5所示,可以选择写缓冲区1,也可以选择写缓冲区2,假设选取的是写缓冲区1,则线程A将话单数据存入该写缓冲区1中,当写缓冲区1写满或第一时长门限到达时,线程A切换至写缓冲区2,继续将话单数据写入写缓冲区2中,然后通知线程B处理切换前的写缓冲区1。
线程B:接受线程A控制,用于将已写满或第一时长门限到达的写缓冲区1中记录的话单数据写入存储区域。
当然,当写缓冲区2中的话单数据写满或再次到达第一时长门限时,线程A也可以再次切换至写缓冲区1,并通知线程B将写缓冲区2中的话单数据写入存储区域,具体流程与针对写缓冲区1的操作相似,在此不再赘述。
进一步地,参阅图6所示,可选的,为了保证整体流程的流畅性,只要设置线程B将写缓冲区(写缓冲区1或写缓冲区2)中记录的话单数据全部写入存储区域所需的时长,不大于线程A将话单数据写满写缓冲区(写缓冲区1或写缓冲区2)的时长即可,或/和,也可以设置线程B将写缓冲区(写缓冲区1或写缓冲区2)中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限即可,其中,该第一时长门限即用于表征线程A进行写缓冲区切换的时间间隔(上文中已提及);这样,可以令线程A连续运行,而不用等待线程B将话单数据写入存储区域,即进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
当然,上述实施例仅以存在两个写缓冲区为例进行介绍,实际应用中,若存在三个及以上的写缓冲区,同样可以采用线程A和线程B在各个写缓冲区之间进行写入切换,在此亦不再赘述。
参阅图7所示,本发明实施例中,当CDF与CGF之间链路恢复稳定时,CDF进行话单读取的详细流程如下:
步骤700:CDF选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区。
步骤710:待第一读缓冲区的使用状态符合第二预设条件时,CDF切换至第二读缓冲区,并采用第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据发送至CGF侧。
本实施例中,所谓第一读缓冲区的使用状态符合第二预设条件是指:第一读缓冲区已写满,或者,到达***预设的第二时长门限。
例如:仍参阅图5所示,本实施例中,假设CDF设置了线程C(又称为文件读取线程),以及线程D(又称为话单读取线程),具体的:
线程C:用于选择一个空闲的读缓冲区,如图5所示,可以选择读缓冲区1,也可以选择读缓冲区2,假设选取的是读缓冲区1,则线程C将话单数据从存储区域中读取出,并写入读缓冲区1中,当读缓冲区1写满或第二时长门限到达时,线程C切换至读缓冲区2,继续将话单数据从存储区域中读取出,并写入读缓冲区2中,然后通知线程B处理切换前的读缓冲区1。
线程D:接受线程C控制,用于将已写满或第二时长门限到达的读缓冲区1中记录的话单数据发往CGF侧。
当然,当读缓冲区2中的话单数据写满或再次到达第二时长门限时,线程C也可以再次切换至读缓冲区1,并通知线程D将读缓冲区2中的话单数据发往CDF侧,具体流程与针对读缓冲区1的操作相似,在此不再赘述。
进一步地,参阅图8所示,可选的,为了保证整体流程的流畅性,只要设置线程C读取话单数据并写满一个读缓冲区(读缓冲区1或读缓冲区2)所需的时长,不大于线程D将一个读缓冲区(读缓冲区1或读缓冲区2)中的话单数据读空的时长即可,或/和,也可以设置线程C读取话单数据并写满一个读缓冲区(读缓冲区1或读缓冲区2)所需的时长,不大于设定的第二时长门限即可,其中,该第二时长门限用于表征线程C进行读缓冲区切换的时间间隔(上文中已提及)。这样,可以令线程D连续运行,而不用等待线程C执行文件读取操作完毕,从而进一步保证了操作的流畅性,以及进一步消除了在话单数据读取至读缓冲区时由于读操作慢而导致的***瓶颈。
当然,上述实施例仅以存在两个读缓冲区为例进行介绍,实际应用中,若存在三个及以上的读缓冲区,同样可以采用线程C和线程C在各个读缓冲区之间进行切换,在此亦不再赘述。
基于上述各实施例,参阅图9所示,本发明实施例中,在进行话单数据存储时,CDF包括第一控制单元90和第二控制单元91,其中,
第一控制单元,用于选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;
第二控制单元,用于待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域。
第二控制单元91待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
第一控制单元90进一步用于:
待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域。
第一控制单元90待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
如图9所示,CDF中进一步包括:
设置单元92,用于设置第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长,或/和,
设置第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,第一时长门限用于表征第一线程进行写缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
基于上述各实施例,参阅图10所示,本发明实施例中,在进行话单数据读取时,CDF包括第三控制单元100和第四控制单元101,其中,
第三控制单元100,用于选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区;
第四控制单元101,用于待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧。
第四控制单元101待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
第三控制单元100进一步包括:
待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用第三线程将获得的话单数据写入第一写缓冲区,以及采用第四线程读取第二读缓冲区中存储的话单数据并发往CGF侧。
第三控制单元100待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
如图10所示,CDF进一步包括:
配置单元102,用于设置第三线程从存储区域读取话单数据并写满第一读缓冲区或第二读缓冲区所需的时长,不大于第四线程从第一读缓冲区或第二读缓冲区中读空话单数据的时长;
设置第三线程从存储区域读取话单数据并写满第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,第二时长门限用于表征第三线程进行读缓冲区切换的时间间隔。
参阅图11所示,本实施例中,CDF中包含处理器110,其中,在进行话单数据写入时,
处理器110,用于选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;以及用于待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域。
处理器110待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
处理器110进一步用于:
待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域。
处理器110待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
处理器110进一步用于:
设置第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长,或/和,
设置第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,第一时长门限用于表征第一线程进行写缓冲区切换的时间间隔。
参阅图11所示,本实施例中,CDF中包含处理器110,其中,在进行话单数据写入时,
处理器110,用于选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区,以及用于待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧。
处理器110待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
处理器110进一步用于:
待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用第三线程将获得的话单数据写入第一写缓冲区,以及采用第四线程读取第二读缓冲区中存储的话单数据并发往CGF侧。
处理器待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
处理器110进一步用于:
设置第三线程从存储区域读取话单数据并写满第一读缓冲区或第二读缓冲区所需的时长,不大于第四线程从第一读缓冲区或第二读缓冲区中读空话单数据的时长;
设置第三线程从存储区域读取话单数据并写满第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,第二时长门限用于表征第三线程进行读缓冲区切换的时间间隔。
这样,能够进一步保证了操作的流畅性,以及进一步消除了在话单数据写入存储区域时由于写操作慢而导致的***瓶颈。
综上,本发明实施例中,无论是将话单数据写入CDF侧的写缓冲区并进一步写入存储区域,还是将话单数据从存储区域读取至CDF侧的读缓冲区并进一步读取出发往CGF侧,均采用双线程并行处理机制,这样可以有效消除文件I/O操作慢的性能瓶颈,进一步地,写操作和读操作均设计为双缓冲机制,从而令缓冲区操作和I/O操作可以异步并发,进而能够有效消除线程间资源同步需要的等待时间。
采用本发明实施例提供的技术方案在CDF侧进行话单数据的存储及读取,可以有效提高话单数据的存储效率及读取效率,没有明显的性能瓶颈,进一步地,整套方案部署成本低***开销小,只需要普通硬盘文件***即可支持,即使在CDF进程中采用多线程方式,不会占用过多的***资源,有效节省了***开销,避免了过多的***负荷。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种计费数据功能CDF侧离线话单数据存储的方法,其特征在于,包括:
选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;
待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域;
待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用所述第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域;
其中,设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于所述第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长;或/和,设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,所述第一时长门限用于表征所述第一线程进行写缓冲区切换的时间间隔。
2.如权利要求1所述的方法,其特征在于,待所述第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
3.如权利要求1所述的方法,其特征在于,待所述第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
4.一种计费数据功能CDF侧离线话单数据读取的方法,其特征在于,包括:
选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区;
待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用所述第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧;
待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用所述第三线程将获得的话单数据读取至第一读缓冲区,以及采用第四线程读取所述第二读缓冲区中存储的话单数据并发往CGF侧;
其中,设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于所述第四线程从所述第一读缓冲区或第二读缓冲区中读空话单数据的时长;或/和,设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,所述第二时长门限用于表征所述第三线程进行读缓冲区切换的时间间隔。
5.如权利要求4所述的方法,其特征在于,待所述第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定所述第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
6.如权利要求4所述的方法,其特征在于,待所述第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
7.一种计费数据功能CDF装置,其特征在于,包括:
第一控制单元,用于选取第一写缓冲区,并采用第一线程将获得的话单数据写入第一写缓冲区;
第二控制单元,用于待第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,并采用第一线程将获得的话单数据写入第二写缓冲区,以及采用第二线程将第一写缓冲区中存储的话单数据写入存储区域;
所述第一控制单元进一步用于:待第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,并采用所述第一线程将获得的话单数据写入第一写缓冲区,以及采用第二线程将第二写缓冲区中存储的话单数据写入存储区域;
设置单元,用于设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于所述第一线程将话单数据写满第一写缓冲区或第二写缓冲区所需的时长;或/和,设置所述第二线程将第一写缓冲区或第二写缓冲区中记录的话单数据全部写入存储区域所需的时长,不大于设定的第一时长门限,其中,所述第一时长门限用于表征所述第一线程进行写缓冲区切换的时间间隔。
8.如权利要求7所述的装置,其特征在于,所述第二控制单元待所述第一写缓冲区的使用状态符合第一预设条件时,切换至第二写缓冲区,包括:
确定第一写缓冲区写满时,切换至第二写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第二写缓冲区。
9.如权利要求7所述的装置,其特征在于,所述第一控制单元待所述第二写缓冲区的使用状态符合第一预设条件时,切换至第一写缓冲区,包括:
确定第二写缓冲区写满时,切换至第一写缓冲区,或者,
确定到达设定的第一时长门限时,切换至第一写缓冲区。
10.一种计费数据功能CDF装置,其特征在于,包括:
第三控制单元,用于选取第一读缓冲区,并采用第三线程将存储区域中的话单数据读取至第一读缓冲区;
第四控制单元,用于待第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,并采用所述第三线程将存储区域中的话单数据读取至第二读缓冲区,以及采用第四线程读取第一读缓冲区中存储的话单数据并发送至计费网关功能CGF侧;
所述第三控制单元进一步用于:待第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,并采用所述第三线程将获得的话单数据读取至第一读缓冲区,以及采用第四线程读取所述第二读缓冲区中存储的话单数据并发往CGF侧;
配置单元,用于设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于所述第四线程从所述第一读缓冲区或第二读缓冲区中读空话单数据的时长;或/和,设置所述第三线程从存储区域读取话单数据并写满所述第一读缓冲区或第二读缓冲区所需的时长,不大于预设的第二时长门限,其中,所述第二时长门限用于表征所述第三线程进行读缓冲区切换的时间间隔。
11.如权利要求10所述的装置,其特征在于,所述第四控制单元待所述第一读缓冲区的使用状态符合第二预设条件时,切换至第二读缓冲区,包括:
确定所述第一读缓冲区写满时,切换至第二读缓冲区,或者,
确定到达预设的第二时长门限时,切换至第二读缓冲区。
12.如权利要求10所述的装置,其特征在于,所述第三控制单元待所述第二读缓冲区的使用状态符合第二预设条件时,切换至第一读缓冲区,包括:
确定第二读缓冲区写满时,切换至第一读缓冲区,或者,
确定到达设定的第二时长门限时,切换至第一读缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310606050.XA CN103593148B (zh) | 2013-11-08 | 2013-11-08 | 一种cdf侧离线话单数据快速存取的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310606050.XA CN103593148B (zh) | 2013-11-08 | 2013-11-08 | 一种cdf侧离线话单数据快速存取的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593148A CN103593148A (zh) | 2014-02-19 |
CN103593148B true CN103593148B (zh) | 2017-10-27 |
Family
ID=50083319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310606050.XA Active CN103593148B (zh) | 2013-11-08 | 2013-11-08 | 一种cdf侧离线话单数据快速存取的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593148B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764710B (zh) * | 2016-01-30 | 2023-08-11 | 北京忆恒创源科技股份有限公司 | 低延迟高iops的数据访问方法与存储*** |
CN111343404B (zh) * | 2020-02-19 | 2022-05-24 | 精微视达医疗科技(三亚)有限公司 | 成像数据处理方法及装置 |
CN113641306A (zh) * | 2021-07-28 | 2021-11-12 | 通号城市轨道交通技术有限公司 | 车载ato与车载atp的数据交互方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09274542A (ja) * | 1996-04-05 | 1997-10-21 | Nec Corp | ディスクアレイ装置 |
CN1355920A (zh) * | 1999-06-16 | 2002-06-26 | 索尼计算机娱乐公司 | 带有双缓冲的数据传输设备、数据传输***及数据传输方法 |
CN1682202A (zh) * | 2003-02-27 | 2005-10-12 | 富士通株式会社 | 数据传送装置 |
CN1794142A (zh) * | 2005-12-26 | 2006-06-28 | 威盛电子股份有限公司 | 数据缓冲***及数据缓冲装置的读取方法 |
WO2013056420A1 (zh) * | 2011-10-18 | 2013-04-25 | 中联重科股份有限公司 | 搅拌站以及用于该搅拌站的数据存储方法、服务器、*** |
CN103119548A (zh) * | 2010-09-23 | 2013-05-22 | 马维尔以色列(M.I.S.L.)有限公司 | 低等待时间先进先出(fifo)缓存 |
-
2013
- 2013-11-08 CN CN201310606050.XA patent/CN103593148B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09274542A (ja) * | 1996-04-05 | 1997-10-21 | Nec Corp | ディスクアレイ装置 |
CN1355920A (zh) * | 1999-06-16 | 2002-06-26 | 索尼计算机娱乐公司 | 带有双缓冲的数据传输设备、数据传输***及数据传输方法 |
CN1682202A (zh) * | 2003-02-27 | 2005-10-12 | 富士通株式会社 | 数据传送装置 |
CN1794142A (zh) * | 2005-12-26 | 2006-06-28 | 威盛电子股份有限公司 | 数据缓冲***及数据缓冲装置的读取方法 |
CN103119548A (zh) * | 2010-09-23 | 2013-05-22 | 马维尔以色列(M.I.S.L.)有限公司 | 低等待时间先进先出(fifo)缓存 |
WO2013056420A1 (zh) * | 2011-10-18 | 2013-04-25 | 中联重科股份有限公司 | 搅拌站以及用于该搅拌站的数据存储方法、服务器、*** |
Also Published As
Publication number | Publication date |
---|---|
CN103593148A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9690705B1 (en) | Systems and methods for processing data sets according to an instructed order | |
CN107391526A (zh) | 一种基于区块链的数据处理方法及设备 | |
US9529622B1 (en) | Systems and methods for automatic generation of task-splitting code | |
CN103229136B (zh) | 磁盘阵列刷盘方法及磁盘阵列刷盘装置 | |
CN103593148B (zh) | 一种cdf侧离线话单数据快速存取的方法及装置 | |
JP5613799B2 (ja) | 直列入力データを取り込む装置および方法 | |
US9690713B1 (en) | Systems and methods for effectively interacting with a flash memory | |
US9594688B1 (en) | Systems and methods for executing actions using cached data | |
CN103279309A (zh) | 基于fpga的ddr控制装置及方法 | |
CN105930178B (zh) | 一种可配置的参数动态装载方法及*** | |
CN108733585B (zh) | 缓存***及相关方法 | |
EP1760580A1 (en) | Processing operation information transfer control system and method | |
KR102166185B1 (ko) | 파이프라인 실행 가속을 위한 데이터 처리 장치 및 그 방법 | |
CN110309138A (zh) | 数据合并方法、基于fpga的合并器及数据库*** | |
CN107291559A (zh) | 一种控制cpu线程和gpu线程同步的方法及装置 | |
CN101807162A (zh) | 降低嵌入式软件***模块耦合度的方法和嵌入式软件*** | |
CN105739911B (zh) | 存储数据的分配方法、装置以及存储*** | |
CN107357529A (zh) | 一种存储集群在线升级方法及*** | |
CN101324863B (zh) | 一种同步静态存储器的控制装置及方法 | |
CN104714779B (zh) | 指令处理方法及装置 | |
CN107025064B (zh) | 一种低延迟高iops的数据访问方法 | |
JP2006099579A (ja) | 情報処理装置及び情報処理方法 | |
CN106708779A (zh) | 一种服务器及其处理数据的方法 | |
CN105653621A (zh) | 不间断业务***及其数据导出方法、流数据服务模块 | |
CN101866634B (zh) | 显示码流的显示***和控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |