[发明专利]一种基于事务的大容量数据读写方法有效
申请号: | 201210361971.X | 申请日: | 2012-09-25 |
公开(公告)号: | CN102929935A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 吴征;武剑锋;王泊;陈晨;朱立;刘凯;刘经纬;黄寅飞;陆素源;郑刚;白硕 | 申请(专利权)人: | 上海证券交易所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F3/06 |
代理公司: | 上海三方专利事务所 31127 | 代理人: | 吴干权 |
地址: | 200120 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 事务 容量 数据 读写 方法 | ||
[技术领域]
本发明涉及电子信息和电子信息数据操作技术领域,具体的说是一种有关基于事务的大容量数据读写方法,适用于需要实现可回滚、大批量、高效的数据读写场合。
[背景技术]
在证券行业中,证券交易所的交易系统后台是整个证券市场运行的核心。在交易时段,交易系统后台会接收大量的市场交易指令,经过处理后将结果推送回市场,在这个过程中会产生大量的数据记录,譬如接收1个订单,会产生1条订单确认记录;撮合一个成交,会产生2条成交确认记录(1条买记录和1条卖记录),这些不同种类的数据记录动辄是千万数量级的。
同时由于交易系统后台需要具备高可靠性和高效性,这就需要交易系统后台一方面将交易过程中产生的数据记录实时放入存储介质,并允许执行事务性的提交操作,保证数据记录的正确性和完整性,确保在系统发生故障时不会丢失信息,备用系统能够通过加载存储介质上的数据记录恢复系统状态,完成接管;另一方面又需要能满足数据记录的高效写入及访问操作,以便于对市场指令进行快速处理、及时响应,避免市场指令大量堆积在交易系统后台,造成“堵单”的状况。
由于事务性的IO读写操作需要在IO底层解决冲突检测、状态留痕、一致性验证等问题,因此相比非事务性的IO读写操作会有更大的系统开销,且随着数据量的增大,两者之间性能上的差距会越来越大。因此采用传统的方法,将每条数据记录写入数据文件作为一个事务提交,那么在数据量大、实时性要求高的情况下,频繁的IO操作很容易触及操作系统的瓶颈,导致数据文件的吞吐量无法随写操作的频率增长而线性增长。
如果采用将数据记录打包后批量提交的方法,虽然可以减少IO操作,但是由于数据量大,一旦出现事务回滚,文件系统压力就会非常大;而且对于数据量很大的文件,在需要执行指定序号的数据记录的读取访问时,如果没有索引机制,则需要耗费大量的IO操作对整个数据文件进行遍历,性能效率会很差。
[发明内容]
本发明的目的在于解决上述技术问题,提供一种利用批量处理、索引提交、内存索引等手段,既保证文件读写的事务性,同时又保证提供高性能的高效读写方法。
为实现上述目的,设计一种基于事务的大容量数据读写方法,其特征在于数据写方法包括以下步骤:
(1)将批量数据记录以数据页面的形式组织起来,数据页面的大小根据实际应用的需要调整设置;
(2)在内存中开辟数据页面缓冲,当每次写入数据记录时,先将数据记录写入内存中的数据页面缓冲内;
(3)触发数据页面的提交,触发条件为下列条件之一即可:
(a)数据页面缓冲被填满;
(b)数据页面缓冲未被填满,但数据页面提交的最大超时时间被触发,所述的最大超时时间根据实际应用的需要调整设置,用于避免当数据页面缓冲因一直未能填满而无法提交,产生过长的延时;
(4)提交数据页面,包括以下步骤:
(a)以数据页面为单位,使用IO接口将数据页面写入数据文件;
(b)当数据页面的写入操作成功后,生成一个索引,用于记录数据页面在数据文件中的首地址,所述的索引占用空间小;
(c)通过基于事务的文件IO接口,将生成的索引写入索引文件,完成数据页面的提交;
(5)反馈数据页面的提交结果:
(a)当基于事务的索引写入索引文件过程执行成功后,数据页面即提交成功;
(b)当基于事务的索引写入索引文件过程执行失败后,数据页面即提交失败,此时无须删除数据文件中索引对应的数据页面,因为对数据文件的读取访问是基于索引文件,当索引文件中索引不存在时,数据文件中对应的数据页面为不可见状态;
(6)当需要对完成提交的数据页面进行回滚时,则只需要对索引文件中数据页面对应的索引执行回滚操作,无需删除数据文件中的数据页面,因为对数据文件的读取访问是基于索引文件,对索引文件执行回滚操作后,数据文件中对应的数据页面变更为不可见状态;
(7)在共享内存中创建索引数组,用于开放给其他用户访问,当数据页面提交成功后,向共享内存中的索引数组添加数据页面对应的索引项,所述的索引项包括:数据页面在数据文件中的位移,数据页面中数据记录的起始序号和结束序号。
(8)刷新数据页面缓冲区;
(9)重置刷新定时器,至此数据写入操作完成。
在数据页面的整个提交过程中,只有索引的写入操作是基于事务的,为满足事务性的要求,所有对数据记录的访问必须先通过索引找到对应的数据页面,禁止跳过索引直接访问数据文件,该方法即数据读方法包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海证券交易所,未经上海证券交易所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210361971.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种从啤酒花中制备黄腐酚的方法
- 下一篇:双光路比色实时采样装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置