[发明专利]一种基于事务的大容量数据读写方法有效
申请号: | 201210361971.X | 申请日: | 2012-09-25 |
公开(公告)号: | CN102929935A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 吴征;武剑锋;王泊;陈晨;朱立;刘凯;刘经纬;黄寅飞;陆素源;郑刚;白硕 | 申请(专利权)人: | 上海证券交易所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F3/06 |
代理公司: | 上海三方专利事务所 31127 | 代理人: | 吴干权 |
地址: | 200120 上*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 事务 容量 数据 读写 方法 | ||
1.一种基于事务的大容量数据读写方法,其特征在于数据写方法包括以下步骤:
(1)将批量数据记录以数据页面的形式组织起来,数据页面的大小根据实际应用的需要调整设置;
(2)在内存中开辟数据页面缓冲,当每次写入数据记录时,先将数据记录写入内存中的数据页面缓冲内;
(3)触发数据页面的提交,触发条件为下列条件之一即可:
(a)数据页面缓冲被填满;
(b)数据页面缓冲未被填满,但数据页面提交的最大超时时间被触发,所述的最大超时时间根据实际应用的需要调整设置,用于避免当数据页面缓冲因一直未能填满而无法提交,产生过长的延时;
(4)提交数据页面,包括以下步骤:
(a)以数据页面为单位,使用IO接口将数据页面写入数据文件;
(b)当数据页面的写入操作成功后,生成一个索引,用于记录数据页面在数据文件中的首地址,所述的索引占用空间小;
(c)通过基于事务的文件IO接口,将生成的索引写入索引文件,完成数据页面的提交;
(5)反馈数据页面的提交结果:
(a)当基于事务的索引写入索引文件过程执行成功后,数据页面即提交成功;
(b)当基于事务的索引写入索引文件过程执行失败后,数据页面即提交失败,此时无需删除数据文件中索引对应的数据页面,因为对数据文件的读取访问是基于索引文件,当索引文件中索引不存在时,数据文件中对应的数据页面为不可见状态;
(6)当需要对完成提交的数据页面进行回滚时,则只需要对索引文件中数据页面对应的索引执行回滚操作,无需删除数据文件中的数据页面,因为对数据文件的读取访问是基于索引文件,对索引文件执行回滚操作后,数据文件中对应的数据页面变更为不可见状态;
(7)在共享内存中创建索引数组,用于开放给其他用户访问,当数据页面提交成功后,向共享内存中的索引数组添加数据页面对应的索引项,所述的索引项包括:数据页面在数据文件中的位移,数据页面中数据记录的起始序号和结束序号。
(8)刷新数据页面缓冲区;
(9)重置刷新定时器,至此数据写入操作完成。
2.如权利要求1所述的一种基于事务的大容量数据读写方法,其特征在于在数据页面的整个提交过程中,只有索引的写入操作是基于事务的,为满足事务性的要求,所有对数据记录的访问必须先通过索引找到对应的数据页面,禁止跳过索引直接访问数据文件,该方法即数据读方法包括以下步骤:
(1)利用二分法查找共享内存中的索引数组,定位指定序号的数据记录所在的数据页面索引,所述的索引数组中的索引项顺序是按照索引提交顺序进行排列的,当利用二分法查找索引数组时,首先判断指定序号是否位于数据页面起始序号与结束序号之间,继而定位到指定序号的数据记录所在的数据页面索引,查找定位结果包括以下两种:
(a)定位数据页面索引成功,说明指定序号的数据记录所在的数据页面已经被提交,可以继续下一步操作;
(b)定位数据页面失败,说明指定序号的数据记录所在的数据页面尚未被提交,读取被拒绝;
(2)获得数据页面在数据文件中的位移(pageOffset),所述的位移值从数据页面索引项中直接获得;
(3)获得数据记录在数据页面中的位移(recOffsetInPage):
(a)如果数据记录定长,且序号连续递增,则数据记录的在数据页面中的位移可以通过以下公式得到:
recOffsetInPage = pageHeadSize + (recSeq – beginSeqInPage) * recLen,其中:pageHeadSize指页面头长度,recOffsetInPage指数据记录在数据页面中的位移,recSeq指数据记录的序号,beginSeqInPage指数据页面中数据记录的起始序号,recLen指数据记录长度;
(b)如果数据记录不定长或者不保证序号连续递增,则通过遍历数据页面的方式定位指定序号的数据记录的起始位置;
(4)通过数据页面的位移和数据记录在数据页面中的位移,计算得到数据记录在数据文件中的位移,计算公式如下:
recOffset = pageOffset + recOffsetInPage,
其中:recOffset指数据记录在数据文件中的位移,pageOffset指数据记录所在数据页面在数据文件中的位移,recOffsetInPage指数据记录在数据页面中的位移;
(5)根据数据记录在数据文件中的位移,通过文件IO接口从数据文件中读取指定序号的数据记录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海证券交易所,未经上海证券交易所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210361971.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种从啤酒花中制备黄腐酚的方法
- 下一篇:双光路比色实时采样装置
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置