《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 基于内存映射文件的高性能库存缓存系统
基于内存映射文件的高性能库存缓存系统
2020年电子技术应用第7期
黄向平1,2,彭明田1,2,杨永凯1,2
1.中国民航信息网络股份有限公司,北京101318;2.民航旅客服务智能化应用技术重点实验室,北京101318
摘要: 传统余票库存查询系统以内存数据库或嵌入式数据库作为缓存系统,在高并发与密集计算环境中,读取性能很难满足需求。设计一种高性能库存缓存系统,利用内存映射文件技术,消除进程间通信消耗,减少数据拷贝,避免读写操作互锁,从而大幅提高缓存读取性能。实验表明,该方法在并发读取效率上提升了两个数量级以上。
中图分类号: TP311.132
文献标识码: A
DOI:10.16157/j.issn.0258-7998.191043
中文引用格式: 黄向平,彭明田,杨永凯. 基于内存映射文件的高性能库存缓存系统[J].电子技术应用,2020,46(7):113-117,126.
英文引用格式: Huang Xiangping,Peng Mingtian,Yang Yongkai. High performance inventory caching system based on memory mapping files[J]. Application of Electronic Technique,2020,46(7):113-117,126.
High performance inventory caching system based on memory mapping files
Huang Xiangping1,2,Peng Mingtian1,2,Yang Yongkai1,2
1.TravelSky Technology Limited,Beijing 101318,China; 2.Key Laboratory of Intelligent Passenger Service of Civil Aviation,Beijing 101318,China
Abstract: Traditional balance inventory query system uses memory database or embedded database as cache system. In high concurrent and intensive computing environment, the reading performance is difficult to meet the demand. A high-performance inventory caching system is designed, which uses memory mapping file technology to eliminate communication consumption between processes, reduce data copy and avoid interlocking between read and write operations, thus greatly improving the cache reading performance. Experiments show that this method improves the concurrent reading efficiency by more than two orders of magnitude.
Key words : inventory query;memory database;embedded database;memory mapping files;high performance caching system

0 引言

    近年来,移动互联网[1]应用急剧扩大,作为一种典型的移动互联网电子商务应用,票务查询系统[2]向用户随时随地提供余票库存信息,帮助移动用户做交通住宿规划、影院演出门票预定等操作。12306铁路票务系统[3]是一个典型的高并发应用,余票查询高峰值超过了百亿次/天。如此高的负载与高并发量会使应用服务访问拥堵,容易出现查询结果不稳定等异常现象。航空票务搜索[4]也同样面临相似的问题,中转点选择丰富,可搭配的航班多,单次搜索需要成千上万次的航班座位库存信息查询。能够及时准确地获取尽量多航班座位库存数据,是搜索出经济快捷的航班集合的关键所在。

    在此类实时响应度要求比较高且性能要求比较高的查询系统中,key-value结构的NoSQL数据库[5]作为缓存系统[6]得到了广发的应用。典型的NoSQL数据库有内存数据库memcached/redis[7]嵌入式数据库Berkeley DB[8]。在进一步性能分析之后发现,这些数据访问方式仍存在性能瓶颈,并发访问量大时依然会出现排队延迟的现象。鉴于此,本文提出了一种基于内存映射文件[9]的高性能库存缓存系统,主要从三方面进行改进:(1)通过内存映射文件,缓存系统与应用进程同处一个进程空间,避免进程间通信,从而提高数据读取效率;(2)缓存结果以指针方式返回,节省了内存拷贝,从而减少内存和CPU资源消耗;(3)数据读写过程采用无锁设计,多进程或多线程无需争抢排队访问,从而提高访问并发效率。




本文详细内容请下载:http://www.chinaaet.com/resource/share/2000002915




作者信息:

黄向平1,2,彭明田1,2,杨永凯1,2

(1.中国民航信息网络股份有限公司,北京101318;2.民航旅客服务智能化应用技术重点实验室,北京101318)

此内容为AET网站原创,未经授权禁止转载。