CN101667178A - 用于c/s架构文件管理系统的事务处理方法 - Google Patents

用于c/s架构文件管理系统的事务处理方法 Download PDF

Info

Publication number
CN101667178A
CN101667178A CN200810119259A CN200810119259A CN101667178A CN 101667178 A CN101667178 A CN 101667178A CN 200810119259 A CN200810119259 A CN 200810119259A CN 200810119259 A CN200810119259 A CN 200810119259A CN 101667178 A CN101667178 A CN 101667178A
Authority
CN
China
Prior art keywords
file
transaction
affairs
electronic warehouse
rollback
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
Application number
CN200810119259A
Other languages
English (en)
Other versions
CN101667178B (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.)
Caxa Technology Co Ltd
Original Assignee
Caxa Technology Co Ltd
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 Caxa Technology Co Ltd filed Critical Caxa Technology Co Ltd
Priority to CN2008101192592A priority Critical patent/CN101667178B/zh
Publication of CN101667178A publication Critical patent/CN101667178A/zh
Application granted granted Critical
Publication of CN101667178B publication Critical patent/CN101667178B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种用于C/S架构文件管理系统的事务处理方法,包括以下步骤:针对期望执行的文件操作建立一个文件事务,针对期望执行的数据库操作建立一个数据库事务;启动文件事务,在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态;如果文件操作成功,则启动数据库事务,如果数据库操作也成功,则提交数据库事务,然后提交文件事务;如果文件操作失败或数据库操作失败,则回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库。本发明在文件操作失败或数据库操作失败后,利用记录的状态恢复电子仓库到执行文件操作之前的状态,达到了消除脏数据的效果。

Description

用于C/S架构文件管理系统的事务处理方法
技术领域
本发明涉及文件管理领域,具体而言,涉及用于C/S架构文件管理系统的事务处理方法。
背景技术
在客户机/服务器(C/S)架构的文件管理系统中,用户需要管理的数据通常包括结构化数据和文件。结构化数据存储在服务器的数据库中,而文件存储在服务器的一个目录(可称为电子仓库)中。用户进行一个业务处理而操作数据时,比如删除一个文档,该过程包括从数据库中删除结构化数据以及从电子仓库中删除文件这两部分操作,即数据库操作和电子仓库操作(可称为文件操作)。
现有技术操作数据的方案主要有两种:第一种方案是将文件操作纳入到数据库事务(针对数据库操作所建立的事务)中间执行,例如将文件操作放在数据库事务启动之后、提交之前,如果文件操作成功则提交数据库事务,文件操作失败,则回滚数据库事务。
第一种方案将文件操作纳入到数据库事务中间执行,数据库事务需要等待文件操作成功后才能继续执行,由于文件操作耗时较长,使得对数据库锁的占用时间过长从而严重影响数据库的性能,进一步严重影响整个系统的性能。另外,如果数据库事务提交失败,则文件操作所产生的数据就可能成为脏数据。
针对上述的技术问题,现有技术中提出了第二种方案,文件操作和数据库事务各自独立,文件操作放在数据库事务之前或者之后执行。然而,由于文件操作和数据库事务各自独立,所以如果数据库事务提交失败或者文件操作失败,则文件操作所产生的数据就可能成为脏数据,导致电子仓库不能恢复原状。
总之,在实现本发明过程中,发明人发现上述两种方案都可能导致电子仓库产生脏数据,即,文件操作的失败或者数据库操作的失败即使引起事务回滚,也不能使电子仓库恢复原样。
发明内容
本发明旨在提供一种用于C/S架构文件管理系统的事务处理方法,能够解决现有技术方案在文件操作失败或数据库操作失败后,电子仓库可能会产生脏数据的问题。
在本发明的实施例中,提供了一种用于C/S架构文件管理系统的事务处理方法,包括以下步骤:针对期望执行的文件操作建立一个文件事务,针对期望执行的数据库操作建立一个数据库事务;启动文件事务,在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态;如果文件操作成功,则启动数据库事务,如果数据库操作也成功,则提交数据库事务,然后提交文件事务;如果文件操作失败或数据库操作失败,则回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库。
优选的,如果文件操作失败或数据库操作失败,则回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库具体包括:如果文件操作失败,则回滚文件事务,其中利用记录的状态恢复电子仓库到执行文件操作之前的状态;如果数据库操作失败,则回滚数据库事务,并回滚文件事务,回滚文件事务时利用记录的状态恢复电子仓库到执行文件操作之前的状态。
优选的,如果文件操作失败或数据库操作失败,则回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库具体包括:如果文件操作失败,则回滚文件事务,其中利用记录的状态恢复电子仓库到执行文件操作之前的状态;如果数据库操作失败,则判断是否执行过文件事务;如果是,回滚数据库事务,并回滚执行过的文件事务,回滚文件事务时利用记录的状态恢复电子仓库到执行文件操作之前的状态;如果未执行过文件事务,则仅回滚数据库事务。
优选的,文件操作为文件上传,在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态具体包括:记录上传文件后在电子仓库中产生的文件。
优选的,利用记录的状态恢复电子仓库具体包括:执行文件事务回滚时,根据状态获知删除上传文件后在电子仓库中产生的文件;从电子仓库中删除产生的文件。
优选的,文件操作为文件删除,在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态具体包括:将被删除的文件移动到电子仓库的删除区。
优选的,利用记录的状态恢复电子仓库具体包括:执行文件事务回滚时,根据状态获知电子仓库的删除区中被删除的文件;将被删除的文件恢复到电子仓库中。
优选的,提交文件事务具体包括:从电子仓库的删除区彻底删除被删除的文件。
优选的,文件操作为文件更名,在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态具体包括:记录更名前的文件名和更名后的文件名。
优选的,利用记录的状态恢复电子仓库具体包括:执行文件事务回滚时,根据状态获知更名前的文件名和更名后的文件名;在电子仓库中将更名后的文件名修改为更名前的文件名。
优选的,针对期望执行的文件操作建立一个文件事务具体包括:创建一个唯一ID;针对每个文件操作设置ID;以ID标识文件事务。
上述实施例的用于C/S架构文件管理系统的事务处理方法因为在执行文件操作时记录了执行文件操作之前和之后的和电子仓库有关的状态,从而在文件操作失败或数据库操作失败后,回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库。所以克服了现有技术方案在文件操作失败或数据库操作失败后,电子仓库可能会产生脏数据的问题,进而达到了一旦文件操作失败或数据库操作失败,能使电子仓库恢复原状的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本发明实施例的用于C/S架构文件管理系统的事务处理方法的流程图;
图2示出了根据本发明优选实施例的用于C/S架构文件管理系统的事务处理方法的流程图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
图1示出了根据本发明实施例的用于C/S架构文件管理系统的事务处理方法的流程图,包括以下步骤:
步骤S10,针对期望执行的文件操作建立一个文件事务,针对期望执行的数据库操作建立一个数据库事务;
步骤S20,启动文件事务,在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态;
步骤S30,如果文件操作成功,则启动数据库事务,如果数据库操作也成功,则提交数据库事务,然后提交文件事务;
步骤S40,如果文件操作失败或数据库操作失败,则回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库。
该事务处理方法可以看作创建并启动了一个虚拟事务,将文件事务和数据库事务均放入该虚拟事务中,文件事务或者数据库事务的失败都可导致虚拟事务的回滚。
该事务处理方法在执行文件操作时记录了执行文件操作之前和之后的和电子仓库有关的状态,从而在文件操作失败或数据库操作失败后,回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库。所以克服了现有技术方案在文件操作失败或数据库操作失败后,电子仓库可能会产生脏数据的问题,进而达到了一旦文件操作失败或数据库操作失败,能使电子仓库恢复原状的效果。
优选的,步骤S40具体包括:如果文件操作失败,则回滚文件事务,其中利用记录的状态恢复电子仓库到执行文件操作之前的状态;如果数据库操作失败,则回滚数据库事务,并回滚文件事务,回滚文件事务时利用记录的状态恢复电子仓库到执行文件操作之前的状态。
该优选实施例提供了文件操作失败或数据库操作失败后,回滚文件事务和或数据库事务的一种技术方案,其中在回滚文件事务时利用记录的状态恢复电子仓库到执行文件操作之前的状态,消除了电子仓库和或数据库产生的脏数据。
优选的,步骤S40还包括:如果文件操作失败,则回滚文件事务,其中利用记录的状态恢复电子仓库到执行文件操作之前的状态;如果数据库操作失败,则判断是否执行过文件事务;如果是,回滚数据库事务,并回滚执行过的文件事务,回滚文件事务时利用记录的状态恢复电子仓库到执行文件操作之前的状态;如果未执行过文件事务,则仅回滚数据库事务。
该优选实施例提供了文件操作失败或数据库操作失败后,回滚文件事务和或数据库事务的另一种技术方案,其中在回滚文件事务时利用记录的状态恢复电子仓库到执行文件操作之前的状态,消除了电子仓库和或数据库产生的脏数据。在该优选实施例中,可以处理单独执行数据库事务的情况。
优选的,文件操作为文件上传,步骤S20具体包括:记录上传文件后在电子仓库中产生的文件。步骤S40具体包括:执行文件事务回滚时,根据状态获知删除上传文件后在电子仓库中产生的文件;从电子仓库中删除产生的文件。
该优选实施例提供了进行文件上传时的事务处理方法的具体实施方案。
优选的,文件操作为文件删除,步骤S20具体包括:将被删除的文件移动到电子仓库的删除区。步骤S30具体包括:从电子仓库的删除区彻底删除被删除的文件。步骤S40具体包括:执行文件事务回滚时,根据状态获知电子仓库的删除区中被删除的文件;将被删除的文件恢复到电子仓库中。
该优选实施例提供了进行文件删除时的事务处理方法的具体实施方案。
优选的,文件操作为文件更名,步骤S20具体包括:记录更名前的文件名和更名后的文件名。步骤S40具体包括:执行文件事务回滚时,根据状态获知更名前的文件名和更名后的文件名;在电子仓库中将更名后的文件名修改为更名前的文件名。
该优选实施例提供了进行文件更名时的事务处理方法的具体实施方案。
优选的,针对期望执行的文件操作建立一个文件事务具体包括:创建一个唯一ID;针对每个文件操作设置ID;以ID标识文件事务。
图2示出了根据本发明优选实施例的用于C/S架构文件管理系统的事务处理方法的流程图,包括以下步骤:
步骤S102,启动文件事务;
步骤S104,执行文件操作,并在执行文件操作时记录执行文件操作之前和之后的和电子仓库有关的状态;
步骤S106,判断文件操作是否执行成功;
步骤S108,如果文件操作执行失败,则执行文件事务回滚,电子仓库恢复到执行文件操作之前的状态;
步骤S110,如果文件操作执行成功,则启动数据库事务;
步骤S112,执行数据库操作;
步骤S114,判断数据库操作是否执行成功;
步骤S116,如果数据库事务执行失败,则执行数据库事务回滚;
步骤S118,判断是否有文件事务,如果有文件事务,则执行步骤S108,如果没有文件事务,则直接结束事务处理流程;
步骤S120,如果数据库操作执行成功,则提交数据库事务;
步骤S122,提交文件事务。
该事务处理方法回滚文件事务和或数据库事务时利用记录的状态恢复电子仓库,所以一旦文件操作失败或数据库操作失败,能使电子仓库恢复原状。
从以上的描述中,可以看出,本发明上述的实施例实现了如下技术效果:因为在执行文件操作时记录了执行文件操作之前和之后的和电子仓库有关的状态,从而在文件操作失败或数据库操作失败后,回滚文件事务和或数据库事务,其中利用记录的状态恢复电子仓库。所以克服了现有技术方案在文件操作失败或数据库操作失败后,电子仓库可能会产生脏数据的问题,进而达到了一旦文件操作失败或数据库操作失败,能使电子仓库恢复原状的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (11)

1.一种用于C/S架构文件管理系统的事务处理方法,其特征在于,包括以下步骤:
针对期望执行的文件操作建立一个文件事务,针对期望执行的数据库操作建立一个数据库事务;
启动所述文件事务,在执行所述文件操作时记录执行所述文件操作之前和之后的和电子仓库有关的状态;
如果文件操作成功,则启动数据库事务,如果所述数据库操作也成功,则提交所述数据库事务,然后提交所述文件事务;
如果所述文件操作失败或所述数据库操作失败,则回滚所述文件事务和或所述数据库事务,其中利用所述状态恢复所述电子仓库。
2.根据权利要求1所述的事务处理方法,其特征在于,如果所述文件操作失败或所述数据库操作失败,则回滚所述文件事务和或所述数据库事务,其中利用所述状态恢复所述电子仓库具体包括:
如果所述文件操作失败,则回滚所述文件事务,其中利用所述状态恢复所述电子仓库到执行所述文件操作之前的状态;
如果所述数据库操作失败,则回滚所述数据库事务,并回滚所述文件事务,回滚所述文件事务时利用所述状态恢复所述电子仓库到执行所述文件操作之前的状态。
3.根据权利要求1所述的事务处理方法,其特征在于,如果所述文件操作失败或所述数据库操作失败,则回滚所述文件事务和或所述数据库事务,其中利用所述状态恢复所述电子仓库具体包括:
如果所述文件操作失败,则回滚所述文件事务,其中利用所述状态恢复所述电子仓库到执行所述文件操作之前的状态;
如果所述数据库操作失败,则判断是否执行过文件事务;
如果是,回滚所述数据库事务,并回滚所述执行过的文件事务,回滚所述文件事务时利用所述状态恢复所述电子仓库到执行所述文件操作之前的状态;
如果未执行过文件事务,则仅回滚所述数据库事务。
4.根据权利要求1所述的事务处理方法,其特征在于,所述文件操作为文件上传,在执行所述文件操作时记录执行所述文件操作之前和之后的和电子仓库有关的状态具体包括:
记录上传文件后在所述电子仓库中产生的文件。
5.根据权利要求4所述的事务处理方法,其特征在于,利用所述状态恢复所述电子仓库具体包括:
执行所述文件事务回滚时,根据所述状态获知删除所述上传文件后在所述电子仓库中产生的文件;
从所述电子仓库中删除所述产生的文件。
6.根据权利要求1所述的事务处理方法,其特征在于,所述文件操作为文件删除,在执行所述文件操作时记录执行所述文件操作之前和之后的和电子仓库有关的状态具体包括:
将被删除的文件移动到所述电子仓库的删除区。
7.根据权利要求6所述的事务处理方法,其特征在于,利用所述状态恢复所述电子仓库具体包括:
执行所述文件事务回滚时,根据所述状态获知所述电子仓库的删除区中所述被删除的文件;
将所述被删除的文件恢复到所述电子仓库中。
8.根据权利要求6所述的事务处理方法,其特征在于,提交所述文件事务具体包括:
从所述电子仓库的删除区彻底删除所述被删除的文件。
9.根据权利要求1所述的事务处理方法,其特征在于,所述文件操作为文件更名,在执行所述文件操作时记录执行所述文件操作之前和之后的和电子仓库有关的状态具体包括:
记录更名前的文件名和更名后的文件名。
10.根据权利要求9所述的事务处理方法,其特征在于,利用所述状态恢复所述电子仓库具体包括:
执行所述文件事务回滚时,根据所述状态获知所述更名前的文件名和更名后的文件名;
在电子仓库中将所述更名后的文件名修改为所述更名前的文件名。
11.根据权利要求1所述的事务处理方法,其特征在于,针对期望执行的文件操作建立一个文件事务具体包括:
创建一个唯一ID;
针对每个所述文件操作设置所述ID;
以所述ID标识所述文件事务。
CN2008101192592A 2008-09-01 2008-09-01 用于c/s架构文件管理系统的事务处理方法 Active CN101667178B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101192592A CN101667178B (zh) 2008-09-01 2008-09-01 用于c/s架构文件管理系统的事务处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101192592A CN101667178B (zh) 2008-09-01 2008-09-01 用于c/s架构文件管理系统的事务处理方法

Publications (2)

Publication Number Publication Date
CN101667178A true CN101667178A (zh) 2010-03-10
CN101667178B CN101667178B (zh) 2012-08-22

Family

ID=41803797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101192592A Active CN101667178B (zh) 2008-09-01 2008-09-01 用于c/s架构文件管理系统的事务处理方法

Country Status (1)

Country Link
CN (1) CN101667178B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102141946A (zh) * 2011-03-25 2011-08-03 北京世纪互联工程技术服务有限公司 一种图形数据库联机事务数据恢复的方法及系统
CN102317913A (zh) * 2011-07-30 2012-01-11 华为技术有限公司 一种事务恢复方法和事务恢复装置
CN102340537A (zh) * 2011-06-30 2012-02-01 北京新媒传信科技有限公司 一种分布式事务处理方法和装置
CN105677746A (zh) * 2015-12-29 2016-06-15 上海爱数信息技术股份有限公司 一种基于数据库事务操作的重复文档归并系统及方法
CN108228617A (zh) * 2016-12-14 2018-06-29 北京国双科技有限公司 保证数据库操作原子性的方法及装置
CN114722125A (zh) * 2022-04-11 2022-07-08 京东科技信息技术有限公司 数据库事务处理的方法、装置、设备和计算机可读介质
CN115577031A (zh) * 2022-10-24 2023-01-06 北京力控元通科技有限公司 一种数据库事务处理方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
KR100790991B1 (ko) * 2006-03-22 2008-01-03 삼성전자주식회사 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102141946A (zh) * 2011-03-25 2011-08-03 北京世纪互联工程技术服务有限公司 一种图形数据库联机事务数据恢复的方法及系统
CN102141946B (zh) * 2011-03-25 2014-08-20 北京世纪互联宽带数据中心有限公司 一种图形数据库联机事务数据恢复的方法及系统
CN102340537A (zh) * 2011-06-30 2012-02-01 北京新媒传信科技有限公司 一种分布式事务处理方法和装置
CN102317913A (zh) * 2011-07-30 2012-01-11 华为技术有限公司 一种事务恢复方法和事务恢复装置
CN102317913B (zh) * 2011-07-30 2016-11-16 华为技术有限公司 一种事务恢复方法和事务恢复装置
CN105677746A (zh) * 2015-12-29 2016-06-15 上海爱数信息技术股份有限公司 一种基于数据库事务操作的重复文档归并系统及方法
CN108228617A (zh) * 2016-12-14 2018-06-29 北京国双科技有限公司 保证数据库操作原子性的方法及装置
CN114722125A (zh) * 2022-04-11 2022-07-08 京东科技信息技术有限公司 数据库事务处理的方法、装置、设备和计算机可读介质
CN115577031A (zh) * 2022-10-24 2023-01-06 北京力控元通科技有限公司 一种数据库事务处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN101667178B (zh) 2012-08-22

Similar Documents

Publication Publication Date Title
CN101667178B (zh) 用于c/s架构文件管理系统的事务处理方法
US7707455B2 (en) Self-service recovery of application data
CN100456676C (zh) 合并关于备份存储装置中的文件的元数据的系统和方法
US7933872B2 (en) Database backup, refresh and cloning system and method
US8825601B2 (en) Logical data backup and rollback using incremental capture in a distributed database
US9223805B2 (en) Durability implementation plan in an in-memory database system
CN103036956B (zh) 一种分布式组态化海量数据归档系统及实现方法
KR101044849B1 (ko) 자동 데이터베이스 또는 파일 시스템 정비 및 수리를 위한시스템 및 방법
US7610314B2 (en) Online tablespace recovery for export
CN105574187B (zh) 一种异构数据库复制事务一致性保障方法及系统
CN1752939B (zh) 用于综合备份和恢复的方法
CN101061467B (zh) 远程存储数据副本
US7676503B2 (en) Hybrid computer restore using network service
CN101167058B (zh) 用于恢复文件的设备、方法和系统
CN102193844A (zh) 基于部分块的备份
CN105930228A (zh) 数据备份方法及系统
CN107066357A (zh) 一种数据库合成备份和挂载恢复方法
CN104166605B (zh) 基于增量数据文件的数据备份方法及系统
US20100306178A1 (en) Separating file data streams to enhance progressive incremental processing
JP3830389B2 (ja) インターネット基盤の遠隔データ及びファイル復旧システム及びその方法
US20090177856A1 (en) Method and apparatus for automated backup process
CN101694637A (zh) 一种数据库恢复的方法和系统
US20160314049A1 (en) Prioritized backup segmenting
US20190138386A1 (en) Recovering log-structured filesystems from physical replicas
WO2017028375A1 (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: CAXA TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING DIGITAL DAFANG TECHNOLOGY CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 100080, Room 802, satellite building, No. 63, Zhichun Road, Beijing, Haidian District

Patentee after: Beijing CAXA Technology Co., Ltd.

Address before: 100080, Room 802, satellite building, No. 63, Zhichun Road, Beijing, Haidian District

Patentee before: Beijing Digital Dafang Technology Co., Ltd.