CN102929935B - 一种基于事务的大容量数据读写方法 - Google Patents

一种基于事务的大容量数据读写方法 Download PDF

Info

Publication number
CN102929935B
CN102929935B CN201210361971.XA CN201210361971A CN102929935B CN 102929935 B CN102929935 B CN 102929935B CN 201210361971 A CN201210361971 A CN 201210361971A CN 102929935 B CN102929935 B CN 102929935B
Authority
CN
China
Prior art keywords
data
page
index
file
record
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
Application number
CN201210361971.XA
Other languages
English (en)
Other versions
CN102929935A (zh
Inventor
吴征
武剑锋
王泊
陈晨
朱立
刘凯
刘经纬
黄寅飞
陆素源
郑刚
白硕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Stock Exchange Technology Co., Ltd.
Original Assignee
Shanghai Stock Exchange
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Stock Exchange filed Critical Shanghai Stock Exchange
Priority to CN201210361971.XA priority Critical patent/CN102929935B/zh
Publication of CN102929935A publication Critical patent/CN102929935A/zh
Application granted granted Critical
Publication of CN102929935B publication Critical patent/CN102929935B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及电子信息和电子信息数据操作技术领域,具体的说是一种基于事务的大容量数据读写方法。写方法将数据记录以数据页面的组织起来进行批量处理,同时将大量的事务性写操作转换为非事务性写操作,有效减少了事务性读写的数据量,利用索引文件的事务特性,既保证了数据的完整性和事务性,又实现了海量数据的高效读写;读方法使用共享内存建立数据页面索引,通过二分法实现数据记录的快速定位。在需要对海量数据进行事务性读写的场景下,利用本发明能够达到减少IO操作,提高吞吐量,减小延时的目的。<!--1-->

Description

一种基于事务的大容量数据读写方法
[技术领域]
本发明涉及电子信息和电子信息数据操作技术领域,具体的说是一种有关基于事务的大容量数据读写方法,适用于需要实现可回滚、大批量、高效的数据读写场合。
[背景技术]
在证券行业中,证券交易所的交易系统后台是整个证券市场运行的核心。在交易时段,交易系统后台会接收大量的市场交易指令,经过处理后将结果推送回市场,在这个过程中会产生大量的数据记录,譬如接收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)重置刷新定时器,至此数据写入操作完成。
在数据页面的整个提交过程中,只有索引的写入操作是基于事务的,为满足事务性的要求,所有对数据记录的访问必须先通过索引找到对应的数据页面,禁止跳过索引直接访问数据文件,该方法即数据读方法包括以下步骤:
(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接口从数据文件中读取指定序号的数据记录。
本发明与现有技术相比,提高了证券行业计算机读写超大容量数据的速度性能,具体的说具有以下有益效用:
(1)利用数据页面将批量数据记录整合,并结合非事务性读写的数据文件和事务性读写的索引文件,将原本大量的事务性读写操作转换为非事务性读写操作,有效地减少了事务性读写的数据量,将海量数据的读写操作从事务中剥离出来,便于用户选择高性能的IO接口,提高了读写访问性能;
(2)通过数据缓冲、批量提交技术降低了磁盘IO操作的频率,提高吞吐量、减小延时;
(3)充分利用索引文件的事务特性,保证了数据的完整性和事务性,由于索引文件容量小且数据文件的高效性,实现了海量数据的高效读写,满足业务需求;
(4)通过内存索引技术可实现数据记录的快速定位,提高了数据的访问效率。
[附图说明]
图1为本发明事务性读写模块(MEMORYLOGFILE)示意图;
图2为本发明在单机上实现大容量数据读写系统示意图;
图3为本发明二次页面提交后事务性读写模块(MEMORYLOGFILE)状态图;
图4为本发明事务性读写模块(MEMORYLOGFILE)数据写方法实现流程图;
图5为本发明二次提交成功后事务性读写模块(MEMORYLOGFILE)状态图;
图6为本发明非定长记录的数据页面缓冲区设计(方法一);
图7为本发明非定长记录的数据页面缓冲区设计(方法二);
图8为将本发明的方法用在跨主机系统上实现的读写系统。
[具体实施方式]
为了使本发明的技术方案更清楚明了,下面将结合实施例及附图对本发明作进一步阐述,其中涉及的方法对本领域技术人员来说是可以实现的。
首先对本专利中涉及的基本概念作解释:
(1)事务:即恢复和并发控制的基本单位,具有原子性、一致性、隔离性、持久性,称为ACID特性;
(2)数据页面(WP:WorkingPage):即事务提交和回滚操作的最小单位,一个数据页面可包含多条数据记录,其大小可根据实际需求做配置;
(3)记录索引(IRAKEY):一个数据结构,用来保存提交后的数据页面在数据文件中的位移;
(4)日志文件(IRAAUD文件):存储记录索引,即提交的数据页面(WP)在非日志文件(AUDRPL文件)中的地址,只有在日志文件(IRAAUD文件)中登记的数据页面,才可以开放给用户读取,提供事务性的文件读写操作;
(5)非日志文件(AUDRPL文件):存储以数据页面形式保存的实际的数据记录内容,提供非事务性的文件读写操作;
(6)共享内存:即一种进程间的通讯方式,在多处理器的计算机系统中,可以被不同的中央处理器(CPU)访问的大容量内存;
(7)事务性读写模块(MEMORYLOGFILE):使用本发明提供的方法,实现的事务性文件读写模块,每个事务性读写模块实际包含非日志文件(AUDRPL文件)、日志文件(IRAAUD文件)及MEMLOG序号索引共享内存。若不做特殊说明,下文中提到的事务性读写模块(MEMORYLOGFILE)均指三部分组合成的整体。
事务性读写模块(MEMORYLOGFILE)中三部分的关系如图1所示,图1中显示在AUDRPL文件中已经顺序存放了3个页面,IRAAUD文件中顺序存放了这3个页面的位移地址,MEMLOG序号索引内存顺序存放了这3个页面的位移地址以及每个页面的起始记录序号和结束记录序号,其表达的意义为:
页面1–存放了序号1-10的10条数据记录,位移地址为0;
页面2–存放了序号11-33的23条数据记录,位移地址为512;
页面3–存放了序号34-55的23条数据记录,位移地址为2046。
其次结合几个具体实施例,对本发明中读写方法的实现作详细说明。
实施例一
将本发明的读写方法运用在单主机上,其读写系统如图2所示,由写入方、读取方及事务性读写模块(MEMORYLOGFILE)构成,在写入方内存中设有数据页面缓冲区,该数据页面缓冲区包含一个缓冲区头和一个用于存放实际数据记录的数据记录区,其中缓冲区头包括一个4字节的记录个数字段,用于存储当前页面缓冲区中的记录个数,所述的事务性读写模块(MEMORYLOGFILE)内置一个定时器,用于触发数据页面缓冲区的刷新。
在本实施例中由于限定数据记录定长为512个字节,且数据记录从写入到开放读取的最大延时不能超过5t,因此在读写系统设置时,根据要求设置数据页面(WP)的大小为1000条记录,该数据页面的长度约为512KB(4+512*1000),定时触发数据页面提交的定时间隔为4t。
此时写入方可以调用事务性读写模块(MEMORYLOGFILE)的写接口写入数据,该数据写方法如图4所示,
(1)将数据记录写入数据页面缓冲区;
(2)更新数据记录数。
(3)触发数据页面的提交,触发条件为下列条件之一即可:
(a)数据页面缓冲被填满;
(b)数据页面缓冲未被填满,但数据页面提交的最大超时时间被触发,所述的最大超时时间根据实际应用的需要调整设置,用于避免当数据页面缓冲因一直未能填满而无法提交,产生过长的延时;
(4)提交数据页面,包括以下步骤:
(a)以数据页面为单位,使用IO接口将数据页面写入数据文件即非日志文件(AUDRPL文件);
(b)当数据页面的写入操作成功后,生成一个索引,用于记录数据页面在数据文件中的首地址,所述的索引占用空间小;
(c)通过基于事务的文件IO接口,将生成的索引写入索引文件即日志文件(IRAAUD文件),完成数据页面的提交;
(5)反馈数据页面的提交结果:
(a)当基于事务的索引写入索引文件过程执行成功后,数据页面即提交成功;
(b)当基于事务的索引写入索引文件过程执行失败后,数据页面即提交失败,此时无须删除数据文件中索引对应的数据页面,因为对数据文件的读取访问是基于索引文件,当索引文件中索引不存在时,数据文件中对应的数据页面为不可见状态;
(6)更新共享内存中索引数组,当数据页面提交成功后,向共享内存中的索引数组添加数据页面对应的索引项,所述的索引项包括:数据页面在数据文件中的位移,数据页面中数据记录的起始序号和结束序号。
(7)刷新数据页面缓冲区;
(8)重置刷新定时器;
执行上述数据写入操作,写序列和相应的数据页面缓冲区的状态如表1所示:
表1:实施例1写入方写入序列及数据页面缓冲区状态
在表1中,
(1)0t时,初始状态下,写入方的数据页面缓冲区以及事务性读写模块(MEMORYLOGFILE)都是清空的;
(2)1t、2t时,写入方分别写入了300、500条数据记录,此时数据记录先被写入到数据页面缓冲区中,数据页面统计区的记录个数字段被依次更新为300、800;
(3)3t时,写入方需要写入400条数据记录,当写入方写到第200条时,此时数据记录总数已经累积达到1000条,触发了数据页面进行提交操作的条件,事务性读写模块(MEMORYLOGFILE)的写操作函数内部会执行以下提交逻辑:
(a)将数据页面缓冲中的1000条数据写入数据文件即AUDRPL文件;
(b)产生数据页面的索引记录(address=0);
(c)将索引记录写入索引文件即IRAAUD文件完成提交操作;
(d)在索引共享内存中添加索引(address,beginSeq,endSeq)=(0,1,1000);
(e)清空数据页面缓冲,更新记录个数为0;
(f)重新设置定时器,在7t(3t+4t)时触发;
提交完成后,写入方后续的200条数据记录写操作,仍将把数据记录写入到数据页面缓冲区中,记录字段被更新为200;
(4)4t、5t、6t时,写入方持续写入200、100、100条数据。数据记录写入到数据页面缓冲区中,数据页面统计区的记录个数字段被依次更新为400、500、600;
(5)7t时,写入方写入100条数据,数据页面缓冲区中记录个数达到700条。此时定时器被触发,虽然此时数据页面缓冲区没有被填满,仍然触发了页面进行提交操作的条件,MEMORYLOGFILE内部会执行以下提交逻辑:
(a)将数据页面缓冲中的700条数据写入AUDRPL文件;
(b)产生数据页面的索引记录(address=512004);
(c)将索引记录写入IRAAUD文件完成提交操作;
(d)在索引共享内存中添加索引(address,beginSeq,endSeq)=(512004,1001,1700);
(e)清空数据页面缓冲,更新记录个数为0;
(f)重新设置定时器,在11t(7t+4t)时触发;
在完成2次数据页面提交后,事务性读写模块(MEMORYLOGFILE)的状态如图3所示;
若写入方在7t时写入AUDRPL文件过程中,写入400条数据后出现IO异常,导致后续提交操作失败。此时写入方无需对刚写入AUDRPL文件的400条数据部分进行检查校验和回滚操作,因为对应位移的数据并没有提交到索引文件IRAAUD文件中。写入方可在新的文件位移处尝试再次写入。若2次数据页面提交成功后,事务性读写模块(MEMORYLOGFILE)显示如图5所示状态。
当写入方已写入10000条数据记录时,读取方开始调用事务性读写模块(MEMORYLOGFILE)的读接口访问序号为6241的记录数据,事务性读写模块(MEMORYLOGFILE)读操作的执行逻辑如下:
(1)二分法查找MEMORY序号索引共享内存,找到序号6241的索引记录所在的数据页面索引,假设找到的索引记录为(address,beginSeq,endSeq)=(3395392,6113,6498);
(2)根据公式计算得到索引记录在数据页面内的位移,
65540=4+(6241–6113)*512;
(3)根据公式计算得到索引记录在数据文件中的位移,
3460932=3395392+65540;
(4)从数据文件即AUDRPL文件的位移地址3460932字节起读取512个字节,获得序号为6241记录数据。
实施例二
本发明也可用于有记录最大长度限制的非定长记录的大容量数据高效读写,对于非定长记录的情况,一般有2种方法实现。
第一种方法,只需要对数据页面缓冲区做适当改造(如图6所示),即可实现实施例一的效果。假设数据记录的最大长度为512个字节,则对每条数据记录在数据页面缓冲区中仍分配定长512个字节,并在数据记录头部增加一个字段,用于记录每条数据记录的实际长度,其他的数据写入和读取逻辑与实施例1相同,使用这种方法的优点是逻辑简单,可利用定长记录的特点,实现数据页面内记录的快速定位,缺点是在内存和数据文件AUDRPL使用中,都存在着空间浪费的问题。
第二种方法,适合于记录长度差别很大,或对内存和文件的空间占用敏感的系统。这种情况下,同样在数据记录头部增加一个字段,用于记录每条数据记录的实际长度,但使用连续存储方式对数据记录进行保存(如图7所示),数据写入逻辑与实施例1、2相同,但读取时需要通过遍历方式实现数据页面内的记录定位,使用这种方法的优点是节省了内存和数据文件AUDRPL的占用空间,缺点是降低了读取数据记录的效率,由于遍历只在一个数据页面内进行,相比较整个数据文件的遍历,在数量级上降低了空间复杂度,仍旧属于一种高效的读取方法。
实施例三
系统采用多主机和共享存储设备实现主备架构,比较常用的模式是Master主机上的业务进程不断将业务数据落到共享存储设备上,一旦Master主机出现故障或者Master主机上的业务进程出现异常,Slave主机将用本机上的业务进程实现接管,负责从共享存储上加载业务数据文件,加载完毕后进行后续的业务处理。这种主备切换的实现,一方面要求业务数据文件是通过事务保证文件的正确性和完整性的,另一方面要求备机的接管能够在较短时间内完成,尽快恢复对外提供业务处理的功能。
将本发明的方法用在上述跨主机系统上实现大容量数据高效读写,其读写系统如图8所示,Master主机上的业务进程通过MEMORYLOGFILE模块将业务数据落到共享存储设备上,同时Slave主机上的业务进程通过MEMORYLOGFILE模块不断从业务数据文件中读取数据,重构备机上的MEMLOG序号索引内存,一旦出现Master主机宕机,业务数据文件将不再发生增长,备机上的业务进程只需要扫描全部的业务数据文件,重构完MEMLOG序号索引内存,即可将自身切换到主应用状态,恢复业务处理功能。因为Slave主机上的业务进程在发生切换前也一直执行重构索引内存的操作,因此在发生切换时,只需要很短的时间即可追上Master主机上业务进程的状态。

Claims (2)

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,所述的位移pageOffset从数据页面索引项中直接获得;
(3)获得数据记录在数据页面中的位移recOffsetInPage:
(a)如果数据记录定长,且序号连续递增,则数据记录的在数据页面中的位移通过以下公式得到:
recOffsetInPage=pageHeadSize+(recSeq–beginSeqInPage)*recLen,其中:pageHeadSize指页面头长度,recOffsetInPage指数据记录在数据页面中的位移,recSeq指数据记录的序号,beginSeqInPage指数据页面中数据记录的起始序号,recLen指数据记录长度;
(b)如果数据记录不定长或者不保证序号连续递增,则通过遍历数据页面的方式定位指定序号的数据记录的起始位置;
(4)通过数据页面的位移和数据记录在数据页面中的位移,计算得到数据记录在数据文件中的位移,计算公式如下:
recOffset=pageOffset+recOffsetInPage,
其中:recOffset指数据记录在数据文件中的位移,pageOffset指数据记录所在数据页面在数据文件中的位移,recOffsetInPage指数据记录在数据页面中的位移;
(5)根据数据记录在数据文件中的位移,通过文件IO接口从数据文件中读取指定序号的数据记录。
CN201210361971.XA 2012-09-25 2012-09-25 一种基于事务的大容量数据读写方法 Active CN102929935B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210361971.XA CN102929935B (zh) 2012-09-25 2012-09-25 一种基于事务的大容量数据读写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210361971.XA CN102929935B (zh) 2012-09-25 2012-09-25 一种基于事务的大容量数据读写方法

Publications (2)

Publication Number Publication Date
CN102929935A CN102929935A (zh) 2013-02-13
CN102929935B true CN102929935B (zh) 2016-01-13

Family

ID=47644733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210361971.XA Active CN102929935B (zh) 2012-09-25 2012-09-25 一种基于事务的大容量数据读写方法

Country Status (1)

Country Link
CN (1) CN102929935B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530319B (zh) * 2013-09-16 2017-12-15 华为技术有限公司 一种操作请求的处理方法和装置
CN106445927A (zh) * 2015-08-04 2017-02-22 北京京东金融科技控股有限公司 数据分页查询方法及装置
CN106484770B (zh) * 2016-09-09 2019-08-06 中国互联网络信息中心 一种dns增量区域数据文件的处理方法
CN110119364B (zh) * 2018-02-06 2023-04-07 北京京东尚科信息技术有限公司 一种输入/输出批量提交的方法和系统
CN111694798B (zh) * 2020-04-23 2023-04-25 武汉达梦数据库股份有限公司 一种基于日志解析的数据同步方法及数据同步系统
CN116775571B (zh) * 2023-08-23 2023-11-07 北京昆迈医疗科技有限公司 一种数据管理系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103814A1 (en) * 2000-12-12 2002-08-01 Edouard Duvillier High speed, non-log based database recovery technique
CN100416568C (zh) * 2006-09-14 2008-09-03 南京中兴软创软件有限公司 一种加速数据库查询速度的方法
CN101639848B (zh) * 2009-06-01 2011-06-01 北京四维图新科技股份有限公司 一种空间数据引擎及应用其管理空间数据的方法

Also Published As

Publication number Publication date
CN102929935A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102929935B (zh) 一种基于事务的大容量数据读写方法
CN105574104B (zh) 一种基于ObjectStore的LogStructure存储系统及其数据写入方法
CN102609360B (zh) 一种数据处理方法、装置及系统
US9996557B2 (en) Database storage system based on optical disk and method using the system
US10540102B2 (en) Physical media aware spacially coupled journaling and replay
CN103116661B (zh) 一种数据库的数据处理方法
CN102662992B (zh) 一种海量小文件的存储、访问方法及装置
CN103152395A (zh) 一种分布式文件系统的存储方法及装置
CN106066890B (zh) 一种分布式高性能数据库一体机系统
CN102024044A (zh) 分布式文件系统
CN102436420A (zh) 使用辅助存储器的低ram空间、高吞吐量的持久键值存储
US10120588B2 (en) Sliding-window multi-class striping
CN102945278A (zh) 一种数据库记录重做日志的方法和装置
CN102023809A (zh) 存储系统、从存储系统读取数据的方法及写入数据的方法
CN102541691B (zh) 面向内存数据库oltp应用的日志检查点恢复方法
CN103595797B (zh) 一种分布式存储系统中的缓存方法
CN103516549B (zh) 一种基于共享对象存储的文件系统元数据日志机制
CN103916459A (zh) 一种大数据归档存储系统
CN111309245B (zh) 一种分层存储写入方法和装置、读取方法和装置及系统
CN107391544A (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
WO2023185111A1 (zh) 一种数据文件的快速存取方法及装置
CN113821171A (zh) 一种基于哈希表与lsm树的键值存储方法
US10642508B2 (en) Method to limit impact of partial media failure of disk drive and detect/report the loss of data for objects due to partial failure of media
CN113568582A (zh) 数据管理方法、装置和存储设备
CN114138200B (zh) 一种基于RocksDB的预写日志方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170711

Address after: 200131 No. 8, Taichung North Road, Pudong New Area free trade experiment zone, Shanghai, Shanghai

Patentee after: Shanghai Stock Exchange Technology Co., Ltd.

Address before: 200120 Pudong South Road, Shanghai, No. 528, No.

Patentee before: Shanghai Stock Exchange