CN102214247A - 一种支持并发的文件事务方法 - Google Patents
一种支持并发的文件事务方法 Download PDFInfo
- Publication number
- CN102214247A CN102214247A CN2011102050069A CN201110205006A CN102214247A CN 102214247 A CN102214247 A CN 102214247A CN 2011102050069 A CN2011102050069 A CN 2011102050069A CN 201110205006 A CN201110205006 A CN 201110205006A CN 102214247 A CN102214247 A CN 102214247A
- Authority
- CN
- China
- Prior art keywords
- file
- concurrent
- original
- temporary
- correct
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种支持并发的文件事务方法,该方法的实现步骤如下:文件加载,从文件路径上获取文件并将文件反序列化为对象,将对象保存在内存中;文件操作、保存,对文件的操作都是基于对对象的操作,文件对象是支持并发操作的,文件保存是将内存中的对象重新写入文件中。本发明的有益效果是解决了应用使用数据库带来的难以跨平台、安装复杂、高昂的购买费用等问题,解决多线程读写操作的安全,解决了文件操作中的多人并发操作时的文件冲突问题,使文件操作易于标准化,易于规范化,可以更好的并行操作;提高了文件的安全性,可以有效防止有人恶意篡改数据。
Description
技术领域
本发明涉及一种文件事务方法,尤其涉及一种支持并发的文件事务方法。
背景技术
传统技术中,对于文件的读写都是基于操作系统中的文件系统实现的,数据以文件为单位存储,且由操作系统统一管理,文件的逻辑结构和物理结构脱钩,程序和数据分离,是数据和程序有了一定的独立性,用户的程序和数据可以分别存放,各个应用程序可以共享一组数据,可以实现以文件为单位的数据共享。但由于数据的组织仍然是面向程序,所以基于操作系统的文件的读写有种种限制,如不能进行并发操作、无法远程操作文件等。当某个应用面临终端分布广、需要并发操作、对数据共享有很高要求时,可能就需要选用数据库来完成,数据库能够统一管理和共享数据,数据冗余很少,程序和数据有很高的独立性,数据库对数据进行统一管理和控制,提供了数据的安全性、完整性以及并发控制。但是可能由于各种历史条件的限制,各个部门或者地区根据自身的信息需求和特定的应用可能选择了各自的软硬件环境,所以应用面临的数据库版本各异,开发出来的应用无法直接复制到另一个平台中使用,同时使用数据库还面临着高昂的购买费用、复杂的安装等问题。
发明内容
本发明的目的就是为了解决上述问题,提供一种支持并发的文件事务方法,它提高了文件的安全性,并可以在多个平台上使用且不需要安装。
为了实现上述目的,本发明采用如下技术方案:
一种支持并发的文件事务方法,该方法的实现步骤如下:
步骤1:初始化数据库系统服务器,并判断原文件是否存在,如存在则转入步骤3,如不存在则转入步骤2;
步骤2:判断原文件的备份文件是否存在,如存在,则转入步骤3,如备份文件不存在则抛出异常;
步骤3:反序列化原文件或备份文件为对象;
步骤4:判断对象的消息鉴别码Mac是否正确,如果正确则跳至步骤5,如错误则抛出异常;
步骤5:将对象保存在内存中;
步骤6:对文件进行并发操作并进行保存。
所述的步骤6中:对文件进行并发操作的实现步骤如下:
1)深拷贝备份文件对象到临时文件对象中;
2)判断临时对象的Mac是否正确,如果正确则跳至步骤3),如果错误则判断原文件是否存在,如原文件存在则拷贝给备份文件,如原文件不存在则抛出异常;
3)用户对临时对象进行写操作;
4)从磁盘重新读取原文件到临时对象中;
5)判断临时对象的Mac是否正确,如果正确,转向步骤6),如果错误则抛出异常;
6)将临时对象写入备份文件中;
7)完成文件的并发操作。
所述反序列化是将字节序列恢复为对象的过程。
所述步骤3)中对文件进行写操作时,每次执行完文件写操作后调用操作系统的刷新文件缓存方法强制刷新缓存文件内容到磁盘上,保证每次写文件都能及时写到磁盘上。
本发明的有益效果:
1、一种支持并发的文件事务系统可以使用java语言进行开发,开发完成后因为java语言跨平台的特性使得支持并发的文件事务系统也可以在多个平台使用,一种支持并发的文件事务系统安装方便只需进行拷贝安装即可,无需进行复杂的配置,故解决了应用使用数据库带来的难以跨平台、安装复杂、高昂的购买费用等问题,采用该方法的应用具有很好的复制性,可以在多个平台上使用,并且不需要安装。
2、修改原先文件事务设计上存在的死锁问题,将所有的对文件的访问统一到一个对象来操作,解决多线程读写操作的安全,解决了文件操作中的多人并发操作时的文件冲突问题,使文件操作易于标准化,易于规范化,可以更好的并行操作。
3、提高了文件的安全性,方法中所有操作都以拷贝的文件对象来执行,可以有效确保数据版本安全,并且在每次打开、保存对象的时候都对其Mac值进行验证,可以有效防止有人恶意篡改数据。
附图说明
图1为支持并发的文件事务方法流程图;
图2为文件加载步骤图;
图3为文件操作步骤图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
如图1所示,为支持并发的文件事务方法流程图,该方法的实现步骤如下:
A. 文件加载,从文件路径上获取文件并将文件反序列化为对象,将对象保存在内存中;
B. 文件操作、保存,对文件的操作都是基于对对象的操作,文件对象是支持并发操作的,文件保存是将内存中的对象重新写入文件中。
如图2所示为文件加载流程图,加载步骤如下:
A1. 首先将获取的相对路径转为绝对路径;
A2. 判断文件是否存在,如文件存在则跳至A3,如文件不存在则判断备份文件是否存在,如备份文件存在,则将备份文件反序列化为对象并跳至步骤A4;
A3. 反序列化文件为对象;
A4. 判断对象的Mac是否正确,如果正确则跳至步骤A5,如错误则判断备份文件是否存在,如备份文件存在,则将备份文件反序列化为对象,判断备份文件对象的Mac是否正确,如果正确则跳至步骤A5,如果错误则抛出异常;
A5. 将反序列化后的对象返回。
如图3所示,文件操作包含以下步骤:
B1. 深拷贝备份文件对象到临时文件对象中,每次事务写操作前先从要写的文件对象深拷贝出一个临时文件对象,后面的所有写操作均以此拷贝的文件对象来执行,防止计算Mac值后其他线程对此文件对象进行修改;
B2. 判断临时对象Mac是否正确,如果正确则跳至步骤B3,如果错误则判断原文件是否存在,并将原文件拷贝给备份文件;
B3. 用户对对象进行操作,因为对象的特性可以允许多个用户对同一对象操作,创建Mac码,并将经过操作后的对象写入原文件,在进行文件写操作时,每次执行完文件写操作后调用操作系统的刷新文件缓存方法强制刷新缓存文件内容到磁盘上,保证每次写文件都能及时写到磁盘上;
B4. 从磁盘重新读取原文件到临时对象中;
B5. 判断临时对象的Mac是否正确,如果正确,转向步骤B6,如果错误则抛出异常;
B6. 将临时对象写入备份文件中。
在本发明中,Mac指的是消息鉴别码(Message Authentication Code),消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的数据块,即MAC,并将其加入到消息中,然后传输;接收方利用与发送方共享的密钥进行鉴别认证等。
实施例1:
在线考试系统中,考生的答卷一般以文件的形式储存在服务器上,考生答题时对服务器上的答题文件进行在线访问,答完一个题目后即进行写操作。但在使用在线考试系统中存在一个特殊需求,即在考试过程中如监考老师发现某个学生作弊需要将其作弊信息写入到其答题文件中,这就涉及到了文件的并发访问问题,以往会使用数据库来解决这个问题,数据库可以很好的对并发访问进行控制分配。但如果这个考试是大范围性的,因为各地的服务器操作系统各异就会造成无法对数据库进行统一安装,即使能够统一数据库版本也存在着安装复杂、费用较高的问题,使用本发明则可以很好地解决这种轻量级的文件并发访问问题。利用本发明所开发的系统不需要进行安装,只需要将其跟考试系统一块部署在服务器上即可,例如AnswerFile、AnswerFile.bak为服务器上考生的两个答题文件,其中AnswerFile为原文件,AnswerFile.bak为备份文件,在系统初始化时会首先判断AnswerFile文件是否存在,如果AnswerFile文件存在就将其反序列化为对象,如果AnswerFile文件不存在就将AnswerFile.bak反序列化为对象,反序列化后会判断对象的Mac值是不是正确,如果原文件AnswerFile对象的Mac值不正确就将备份AnswerFile.bak文件反序列化为对象并判断其Mac值。
当用户需要进行答题即对AnswerFile文件进行操作时,可以对AnswerFile对象进行操作,因为对象的一些特性使其可以供多人并发操作,此时如果监考老师需要对AnswerFile文件进行操作如加入些作弊信息等时也可以对AnswerFile对象进行操作,操作时系统首先会深拷贝备份文件对象到临时文件对象AnswerFile.bak.temp中,然后判断临时对象的AnswerFile.bak.temp的Mac是否正确,如果不正确就将原文件AnswerFile拷贝给备份文件AnswerFile.bak,如果临时对象Mac正确用户就可以对对象进行操作了,首先系统会创建一个Mac码,并将经过操作后的对象写入原文件中。当原文件写完后还需要将原文件创建个备份,首先需要将原文件读成对象再检验Mac值是否正确,最后将临时对象也写入到AnswerFile.bak文件中。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (4)
1.一种支持并发的文件事务方法,其特征是,该方法的实现步骤如下:
步骤1:初始化数据库系统服务器,并判断原文件是否存在,如存在则转入步骤3,如不存在则转入步骤2;
步骤2:判断原文件的备份文件是否存在,如存在,则转入步骤3,如备份文件不存在则抛出异常;
步骤3:反序列化原文件或备份文件为对象;
步骤4:判断对象的消息鉴别码Mac是否正确,如果正确则跳至步骤5,如错误则抛出异常;
步骤5:将对象保存在内存中;
步骤6:对文件进行并发操作并进行保存。
2. 如权利要求书1所述的一种支持并发的文件事务方法,其特征是,所述的步骤6中:对文件进行并发操作的实现步骤如下:
1)深拷贝备份文件对象到临时文件对象中;
2)判断临时对象的Mac是否正确,如果正确则跳至步骤3),如果错误则判断原文件是否存在,如原文件存在则拷贝给备份文件,如原文件不存在则抛出异常;
3)用户对临时对象进行写操作;
4)从磁盘重新读取原文件到临时对象中;
5)判断临时对象的Mac是否正确,如果正确,转向步骤6),如果错误则抛出异常;
6)将临时对象写入备份文件中;
7)完成文件的并发操作。
3.如权利要求书1所述的一种支持并发的文件事务方法,其特征是,所述反序列化是将字节序列恢复为对象的过程。
4. 如权利要求书2所述的一种支持并发的文件事务方法,其特征是,所述步骤3)中对文件进行写操作时,每次执行完文件写操作后调用操作系统的刷新文件缓存方法强制刷新缓存文件内容到磁盘上,保证每次写文件都能及时写到磁盘上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110205006 CN102214247B (zh) | 2011-07-21 | 2011-07-21 | 一种支持并发的文件事务方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110205006 CN102214247B (zh) | 2011-07-21 | 2011-07-21 | 一种支持并发的文件事务方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102214247A true CN102214247A (zh) | 2011-10-12 |
CN102214247B CN102214247B (zh) | 2013-06-12 |
Family
ID=44745555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110205006 Active CN102214247B (zh) | 2011-07-21 | 2011-07-21 | 一种支持并发的文件事务方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102214247B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104616354A (zh) * | 2015-01-23 | 2015-05-13 | 克拉玛依红有软件有限责任公司 | 一种三维gis快速加载空间数据的方法 |
CN111736964A (zh) * | 2020-07-02 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040261020A1 (en) * | 1999-08-10 | 2004-12-23 | Microsoft Corporation | Object persister |
CN1856784A (zh) * | 2004-03-10 | 2006-11-01 | 微软公司 | 用于存储平台中的锁定和隔离的系统和方法 |
-
2011
- 2011-07-21 CN CN 201110205006 patent/CN102214247B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040261020A1 (en) * | 1999-08-10 | 2004-12-23 | Microsoft Corporation | Object persister |
CN1856784A (zh) * | 2004-03-10 | 2006-11-01 | 微软公司 | 用于存储平台中的锁定和隔离的系统和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104616354A (zh) * | 2015-01-23 | 2015-05-13 | 克拉玛依红有软件有限责任公司 | 一种三维gis快速加载空间数据的方法 |
CN104616354B (zh) * | 2015-01-23 | 2018-08-03 | 克拉玛依红有软件有限责任公司 | 一种三维gis快速加载空间数据的方法 |
CN111736964A (zh) * | 2020-07-02 | 2020-10-02 | 腾讯科技(深圳)有限公司 | 事务处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102214247B (zh) | 2013-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI499979B (zh) | 以交換式記憶體為手段來加速虛擬化或仿真化之方法、系統、及電腦可讀取媒體 | |
CN103493027B (zh) | 虚拟磁盘存储技术 | |
CN102707900B (zh) | 虚拟盘存储技术 | |
CN102929702B (zh) | 事务存储器中的并行嵌套事务 | |
US9875192B1 (en) | File system service for virtualized graphics processing units | |
US8732282B1 (en) | Model framework to facilitate robust programming of distributed workflows | |
US8924962B2 (en) | Method and computer system for sharing graphics card among multiple operation systems | |
TWI467373B (zh) | 以交換式記憶體為手段來加速虛擬化及仿真化 | |
TWI471803B (zh) | 以交換式記憶體為手段來加速虛擬化及仿真化 | |
CN108737325A (zh) | 一种多租户数据隔离方法、装置及系统 | |
CN106796529A (zh) | 通过利用商品型PCI交换机在PCIe结构中的CPU上使用未经修改的PCIe设备驱动程序来使用PCIe设备资源的方法 | |
CN102006241A (zh) | 一种多个应用共享一个缓冲区的报文接收方法 | |
US8793628B1 (en) | Method and apparatus of maintaining coherency in the memory subsystem of an electronic system modeled in dual abstractions | |
US10402218B2 (en) | Detecting bus locking conditions and avoiding bus locks | |
US20060136443A1 (en) | Method and apparatus for initializing data propagation execution for large database replication | |
US10089385B2 (en) | Method and apparatus for asynchroinzed de-serialization of E-R model in a huge data trunk | |
EP3369006A1 (en) | Techniques for application undo and redo using sql patchsets or changesets | |
CN108369517A (zh) | 聚合分散指令 | |
US9002824B1 (en) | Query plan management in shared distributed data stores | |
US9436395B2 (en) | Mechanisms to save user/kernel copy for cross device communications | |
CN104769569A (zh) | 智能双倍数据速率(ddr)存储器控制器 | |
CN104205077B (zh) | 包括可配置最大处理器电流的针对能效和节能的方法、装置和系统 | |
Zeng et al. | Conflict detection and resolution for workflows constrained by resources and non-determined durations | |
US20160267015A1 (en) | Mapping virtual memory pages to physical memory pages | |
CN102214247B (zh) | 一种支持并发的文件事务方法 |
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 | ||
C56 | Change in the name or address of the patentee |
Owner name: DAREWAY SOFTWARE CO., LTD. Free format text: FORMER NAME: SHANDONG DAREWAY COMPUTER SOFTWARE CO.,LTD. |
|
CP01 | Change in the name or title of a patent holder |
Address after: 250000, No. 6, No. 2, production research base, Qilihe Road, Licheng Road, Licheng District, Shandong, Ji'nan Patentee after: Dareway Software Co., Ltd. Address before: 250000, No. 6, No. 2, production research base, Qilihe Road, Licheng Road, Licheng District, Shandong, Ji'nan Patentee before: Shandong Dareway Computer Software Co., Ltd. |