论文部分内容阅读
为了缓解交通压力,目前我国各大城市轨道交通建设正在以惊人的速度迅猛发展中。 城市轨道交通路网的建设过程中会涉及到不同的投资方、建设方和运营方,而且,随着路网规模的不断扩大,线路交叉而形成的跨越不同运营线路的乘车情况也会随之出现。因此,需要清分系统把运营过程中涉及到的所有票务收益合理、及时、准确地划拨给相关运营商。 在轨道交通清分系统中,如何对清分过程中的海量交易数据进行有效处理是一个难题,其关键的问题是I/O负载问题。在传统的处理方式中,采用了集中处理方式,实时保存清分结果数据,极大地增加了系统的I/O负载和处理所需时间。随着每日票务数据量不断上升,而系统的承载能力有限,若不采取有效的解决方案,结果将是灾难性的。为此,本文提出了内存优化的处理方式,其技术思路是通过内存暂存原始交易数据和清分结果数据,并在内存中保存所有数据的统计信息,从而减少系统的I/O负载,加快处理速度。 为了实现内存优化处理,本文设计并实现了一种内存桶模型。该模型为每一家参与清分的运营公司在内存中开辟一个内存桶,把每一笔原始交易数据的清分结果数据先存放到对应公司的内存桶中,在达到指定数量之后一次性写入数据表。模型中采用多个子进程实现各个功能模块,使用UNIX/Linux操作系统进程间通信的共享内存和信号量机制协调各个子进程对内存桶的访问,使用Oracle Pro~*C/C++在程序中实现嵌入式SQL,完成对数据库的操作。 采用内存优化以后,由于部分清分结果数据在内存中,而另一部分数据已写入数据库。一旦系统崩溃,将会发生数据不一致的现象,因此需要采用一定的恢复策略对系统进行恢复,否则内存优化处理方式无法实际应用。 由于目前清分系统中使用的灾难恢复策略尚不能很好地满足需求,本文提出了一种快速恢复策略,实现了数据的快速自动恢复。使用快速恢复策略能有效地减少恢复的工作量,从而缩短了系统恢复所需要的时间。 本文通过实验,对内存桶模型的实际性能与传统方式作了比较。结果表明:该模型能有效地减少I/O操作,并大大地缩短了清分所需的时间。文中还通过实验,研究了内存桶的容量参数和定时存储超时时间参数的设置对模型性能的影响,并给出了实验中获得的较佳参数值,分析了参数选择的原则,供实际参考。