发明内容
本发明的目的在于提供一种数据处理方法及装置,以有效避免现有的分布式存储系统中存储的数据与用户终端发送的数据不一致的缺点。
第一方面,本发明实施例提供的一种数据处理方法,其特征在于,应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置,所述方法包括:
所述服务器接收所述用户终端发送的写入数据请求;
所述服务器设置存储事务,所述存储事务包括所述服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置;
所述服务器设置第一回滚点,其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态;
所述服务器执行所述存储事务;
所述服务器判断所述存储事务是否成功执行;
若否,所述服务器触发所述存储事务回滚至所述第一回滚点,所述服务器重新执行所述存储事务。
结合第一方面,本发明实施例还提供了第一方面的第一种可能实施方式,其中,所述服务器设置所述存储事务,包括:
所述服务器为所述存储事务分配事务标识,其中,所述事务标识与所述存储事务唯一对应;
所述服务器执行所述存储事务,包括:
所述服务器根据所述事务标识查找所述存储事务,执行所述存储事务。
结合第一方面的第一种可能实施方式,本发明实施例还提供了第一方面的第二种可能实施方式,其中,所述方法还包括:
所述服务器重新执行所述存储事务之后,所述服务器判断所述存储事务是否成功执行;
若否,所述服务器删除所述事务标识。
结合第一方面,本发明实施例还提供了第一方面的第三种可能实施方式,其中,所述服务器设置存储事务,所述存储事务包括所述服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置,包括:
所述服务器设置第一事务和第二事务,其中,所述第一事务包括所述服务器接收所述用户终端发送的数据,存储至所述服务器的缓存,所述第二事务包括所述服务器将所接收的数据发送至所述存储装置;
所述服务器执行所述存储事务,包括:
所述服务器执行所述第一事务;
所述服务器判断所述第一事务是否成功执行;
若是,所述服务器执行所述第二事务;
所述服务器设置第二回滚点,其中,所述第二回滚点包括所述第二事务的初始化状态,所述第二事务的初始化状态包括为将所接收的数据发送至所述存储装置的做准备的状态;
所述服务器判断所述存储事务是否成功执行,包括:
所述服务器判断所述第二事务是否成功执行;
若否,所述服务器触发所述存储事务回滚至所述第一回滚点,所述服务器重新执行所述存储事务,包括:
当所述服务器判断所述第二事务未成功执行时,所述服务器触发所述第二事务回滚至所述第二回滚点。
结合第一方面,本发明实施例还提供了第一方面的第四种可能实施方式,其中,所述方法还包括:
所述服务器接收所述用户终端发送的读取数据请求;
所述服务器设置发送事务,所述发送事务包括所述服务器从所述存储装置获取待发送的数据,所述服务器将所述待发送的数据发送至所述用户终端;
所述服务器设置第三回滚点,其中,所述第三回滚点包括所述发送事务的初始化状态,所述发送事务的初始化状态包括为从所述存储装置获取待发送的数据的做准备的状态;
所述服务器执行所述发送事务;
所述服务器判断所述发送事务是否成功执行;
若否,所述服务器触发所述发送事务回滚至所述第三回滚点,所述服务器重新执行所述发送事务。
结合第二方面,本发明实施例还提供了一种数据处理装置,其特征在于,应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置,所述服务器包括:
第一接收单元,用于接收所述用户终端发送的写入数据请求;
第一事务设置单元,用于设置存储事务,所述存储事务包括所述服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置;
第一回滚点设置单元,用于设置第一回滚点,其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态;
存储事务执行单元,用于执行所述存储事务;
第一判断单元,用于判断所述存储事务是否成功执行;
第一回滚单元,用于当所述第一判断单元判断所述存储事务未成功执行时,触发所述存储事务回滚至所述第一回滚点,所述存储事务执行单元重新执行所述存储事务。
结合第二方面,本发明实施例还提供了第二方面的第一种可能实施方式,其中,所述第一事务设置单元包括:
事务标识子单元,用于为所述存储事务分配事务标识,其中,所述事务标识与所述存储事务唯一对应;
存储事务执行单元包括:
查找子单元,用于根据所述事务标识查找所述存储事务,执行所述存储事务。
结合第二方面的第一种可能实施方式,本发明实施例还提供了第二方面的第二种可能实施方式,其中,所述服务器还包括:
第二判断单元,用于当所述存储事务执行单元重新执行所述存储事务之后,判断所述存储事务是否成功执行;
删除单元,用于当所述第二判断单元判断所述存储事务未成功执行时,删除所述事务标识。
结合第二方面,本发明实施例还提供了第二方面的第三种可能实施方式,其中,所述第一事务设置单元包括:
事务设置子单元,用于设置第一事务和第二事务,其中,所述第一事务包括所述服务器接收所述用户终端发送的数据,存储至所述服务器的缓存,所述第二事务包括所述服务器将所接收的数据发送至所述存储装置;
所述存储事务执行单元包括:
第一事务执行子单元,用于执行所述第一事务;
第一判断子单元,用于判断所述第一事务是否成功执行;
第二事务执行子单元,用于当所述第一判断子单元判断所述第一事务成功执行时,执行所述第二事务;
第二回滚点设置子单元,用于设置第二回滚点,其中,所述第二回滚点包括所述第二事务的初始化状态,所述第二事务的初始化状态包括为将所接收的数据发送至所述存储装置的做准备的状态;
所述第一判断单元包括:
第二事务执行判断子单元,用于判断所述第二事务是否成功执行;
所述第一回滚单元包括:
第二回滚子单元,用于当所述第二事务执行判断子单元判断所述第二事务未成功执行时,触发所述第二事务回滚至所述第二回滚点。
结合第二方面,本发明实施例还提供了第二方面的第四种可能实施方式,其中,所述服务器还包括:
第二接收单元,用于接收所述用户终端发送的读取数据请求;
第二事务设置单元,用于设置发送事务,所述发送事务包括所述服务器从所述存储装置获取待发送的数据,所述服务器将所述待发送的数据发送至所述用户终端;
第三回滚点设置单元,用于设置第三回滚点,其中,所述第三回滚点包括所述发送事务的初始化状态,所述发送事务的初始化状态包括为从所述存储装置获取待发送的数据的做准备的状态;
发送事务执行单元,用于执行所述发送事务;
第三判断单元,用于所述发送事务是否成功执行;
第三回滚单元,用于当所述第三判断单元判断所述发送事务未成功执行时,触发所述发送事务回滚至所述第三回滚点,所述发送事务执行单元重新执行所述发送事务。
本发明实施例通过在分布式存储系统中引入数据库的事务机制,将所述服务器接收用户终端发送的数据并存储至存储装置看作一个完整的事务,事务中的任何一个环节的失败导致事务没有成功执行,都会使事务回滚到事务的初始化状态。因此,与现有技术相比,本发明实施例在接收数据并存储时,数据在存储到所述存储装置的过程中,由于系统突然状况使数据未成功存储,则立刻将存储事务回滚至事务的初始状态,即重新接收一次数据,再次存储,此时事务内的所有更新全部撤销,存储装置中所存储的所述服务器接收的部分数据全部丢弃,有效避免了所述存储装置中所存储的数据与所述用户终端发送的数据不一致。
进一步,所述服务器为所述存储事务分配事务标识,所述事务标识与所述存储事务是唯一对应的,即一个事务仅有一个事务标识。当所述存储事务回滚至所述存储事务的初始化状态之后,所述服务器再次判断所述存储事务是否成功执行,若否,所述服务器删除所述事务标识,所述服务器放弃执行所述存储事务,因此,如果所述用户终端发送的数据在事务回滚以后仍然不能成功存储,则所述服务器不再接收和存储所述用户终端发送的数据。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
近年来,随着云计算的兴起,云存储成为信息存储领域的一个研究热点。与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等多个部分组成的系统。云存储提供的是存储服务,存储服务通过网络将本地数据存放在存储服务提供商(SSP)提供的在线存储空间。
发明人在研究中发现,现有的计算机系统中所有的数据都要被读入内存后才能被计算机处理,但是数据又常常需要由内存写回磁盘当中,当数据在写入过程中,若计算机系统出现异常,停止将之后的数据写入磁盘,此时,磁盘中残余了出现异常之前接收的部分数据,使接收的数据信息不完整,从而导致发送的数据与接收的数据不一致。
为了有效避免现有的分布式存储系统中存储的数据与用户终端发送的数据不一致的缺点,本发明实施例提供了一种数据处理方法,应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置。
如图1所示,所述方法包括:
S11:服务器接收用户终端发送的写入数据请求;
分布式存储系统,也叫云存储,与传动的存储系统相比,从功能上来看,云存储系统面向多种类型的网络在线存储服务,因此用户终端欲在云存储系统的存储装置中存储数据,需要发送一个写入数据请求至所述服务器,服务器接收所述写入数据请求后,可以反馈给用户终端一个类似允许写入数据的反馈指令,用户终端将数据发送至服务器。
S12:服务器设置存储事务;
事务是现代数据库理论中的核心概念之一,数据库运行的基本工作单位是事务,它相当于操作系统中的进程,事务本身就是构成单一逻辑工作单元的数据操作的有限序列。
所述存储事务包括服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置。
S13:服务器设置第一回滚点;
其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态。
所述回滚点可以是数据库中的事务存储点,所述事务存储点就是在事务过程中插入若干个标记,当事务执行中出现错误时,将事务退回到某个事务存储点。
本发明实施例中,所述第一回滚点为存储事务的初始状态,即事务的开始之处。
S14:服务器执行存储事务;
S15:服务器判断存储事务是否成功执行;
所述服务器将所接收的用户终端发送的数据存储至所述存储装置的过程中,诸如系统断电等异常状况使所接收的用户终端发送的数据无法成功存储所述存储装置中,使所述存储事务未成功执行。
当所述存储事务因为异常状况无法成功执行时,能够反馈未成功执行所述存储事务的信息至所述服务器。
S16:当存储事务未成功执行时,服务器触发存储事务回滚至第一回滚点,重新执行存储事务;
所述存储事务在执行时,根据执行是否成功有两个结果,当存储事务成功执行时,将存储事务提交,数据库将事务的所有更新数据保存,从而交付实施,当存储事务未成功执行时,即当前的事务的操作是非正常的,则存储事务回滚至所述第一回滚点。
如果所述存储事务为执行的原因是临时性的,例如所述存储装置的访问端口被其他事务临时占用,此时,再重新存储一次,有可能成功,因此如果第一次存储事务未成功执行,再重新执行一次所述存储事务,有可能会使存储事务成功执行。
因此,本发明实施例通过在分布式存储系统中引入数据库的事务机制,将所述服务器接收用户终端发送的数据并存储至存储装置看作一个完整的事务,事务中的任何一个环节的失败导致事务没有成功执行,都会使事务回滚到事务的初始化状态。因此,与现有技术相比,本发明实施例在接收数据并存储时,数据在存储到所述存储装置的过程中,由于系统突然状况使数据未成功存储,则立刻将存储事务回滚至事务的初始状态,即重新接收一次数据,再次存储,此时事务内的所有更新全部撤销,存储装置中所存储的所述服务器接收的部分数据全部丢弃,有效避免了所述存储装置中所存储的数据与所述用户终端发送的数据不一致。
另外,本发明实施例中,不同的用户终端的多个写入数据请求,所述服务器配置多个存储事务,多个存储事务采用事务并行方式处理。
在进行具体特征值比较时,根据比较的具体方法不同,本发明实施例还提供了另一种实施例,如图2所示,所述数据处理方法包括:
S21:服务器接收用户终端发送的写入数据请求;
S22:服务器设置存储事务;
所述存储事务包括服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置。
S23:服务器为存储事务分配事务标识;
所述事务标识与所述存储事务唯一对应,所述事务标识相当于所述存储事务的身份ID。
S24:服务器设置第一回滚点;
其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态。本发明实施例中,所述第一回滚点为存储事务的初始状态,即事务的开始之处。
S25:服务器根据事务标识查找存储事务,执行存储事务;
服务器与执行存储事务,但是服务器的数据库内存储有多个事务,因此,需要每一个事务需要一个身份ID便于服务器查找该事务,因此,服务器根据所述事务标识查找到所述存储事务。
S26:服务器判断存储事务是否成功执行;
所述服务器将所接收的用户终端发送的数据存储至所述存储装置的过程中,诸如系统断电等异常状况使所接收的用户终端发送的数据无法成功存储所述存储装置中,使所述存储事务未成功执行。
当所述存储事务因为异常状况无法成功执行时,能够反馈未成功执行所述存储事务的信息至所述服务器。
S27:当存储事务未成功执行时,服务器触发存储事务回滚至第一回滚点,重新执行存储事务;
所述存储事务在执行时,根据执行是否成功有两个结果,当存储事务成功执行时,将存储事务提交,数据库将事务的所有更新数据保存,从而交付实施,当存储事务未成功执行时,即当前的事务的操作是非正常的,则存储事务回滚至所述第一回滚点。
S28:服务器重新判断存储事务是否成功执行;
如果所述存储事务为执行的原因是临时性的,例如所述存储装置的访问端口被其他事务占用,此时,再重新存储一次,有可能成功,因此如果第一次存储事务未成功执行,再重新执行一次所述存储事务,有可能会使存储事务成功执行
也有可能所述存储事务未成功执行的原因非临时性的,例如存储装置的数据传输端口损坏,因此,需要在第一次所述存储事务未成功执行时,再次判断存储事务是否成功执行。
S29:当存储事务未成功执行时,服务器删除事务标识;
如果导致所述存储事务未成功执行的原因始终无法排除,所述存储装置是否无法成功执行,那么所述服务器删除所述事务标识,即所述服务器不再执行所述存储事务。
由于,所述事务标识与所述事务时唯一对应的,每个事务有一个唯一的事务ID,因此删除所述存储事务的事务标识,所述服务器无法找到所述事务标识,则无法执行所述存储事务。
因此,本发明实施例在所述服务器第一次存储所述用户终端发送的数据时,所述存储事务回滚到存储事务的初始状态,重新接收用户终端发送的数据,如果仍然无法存储用户终端发送的数据,则不再接收和存储用户终端发送的数据。
在进行具体特征值比较时,根据比较的具体方法不同,本发明实施例还提供了另一种实施例,如图3所示,所述数据处理方法包括:
S31:服务器接收用户终端发送的写入数据请求;
S32:服务器设置第一事务和第二事务;
所述第一事务包括所述服务器接收所述用户终端发送的数据,存储至所述服务器的缓存,所述第二事务包括所述服务器将所接收的数据发送至所述存储装置。
S33:服务器执行第一事务;
S34:服务器判断第一事务是否成功执行;
本发明实施例的S34步骤,在具体实施时,还可以将所述第一事务和所述第二事务定义为顺序执行的时候,即只有在所述第一事务成功执行后才执行所述第二事务。当然,也可以在所述第一事务执行后,服务器判断所述第一事务是否成功执行,成功执行后再执行S35。
S35:当第一事务成功执行时,服务器执行第二事务;
第一事务成功执行,表示所述服务器成功接收所述用户终端发送的数据,此时,所述服务器将所接收的所述用户终端发送的数据存入所述服务器的内存中。
S36:服务器设置第二回滚点;
所述第二回滚点包括所述第二事务的初始化状态,所述第二事务的初始化状态包括为将所接收的数据发送至所述存储装置的做准备的状态。即所述第二回滚点表示所述第一事务成功执行,执行所述第二事务的开始之处。
S37:服务器判断第二事务是否成功执行;
所述服务器将所接收的所述用户终端发送的数据存储至所述存储装置的过程中,诸如系统断电等异常状况使所接收的用户终端发送的数据无法成功存储所述存储装置中,使所述第二事务未成功执行。
当所述第二事务因为异常状况无法成功执行时,能够反馈未成功执行所述第二事务的信息至所述服务器。
S38:当第二事务未成功执行时,服务器触发第二事务回滚至第二回滚点;
所述第二事务在执行时,根据执行是否成功有两个结果,当第二事务成功执行时,将第二事务提交,数据库将事务的所有更新数据保存,从而交付实施,当第二事务未成功执行时,即当前的事务的操作是非正常的,则第二事务回滚至所述第二回滚点。
S39:服务器重新判断第二事务是否成功执行;
如果所述第二事务为执行的原因是临时性的,例如所述存储装置的访问端口被其他事务占用,此时,再重新存储一次,有可能成功,因此如果第一次第二事务未成功执行,再重新执行一次所述第二事务,有可能会使第二事务成功执行
也有可能所述第二事务未成功执行的原因非临时性的,例如存储装置的数据传输端口损坏,因此,需要在第一次所述第二事务未成功执行时,再次判断第二事务是否成功执行。
S310:当第二事务未成功执行时,删除第一事务和第二事务;
删除第一事务和第二事务的方式与所述图2中删除存储事务的方式一致,可以在设置所述第一事务和所述第二事务时,为所述第一事务分配第一事务的事务标识和所述第二事务的事务标识。删除第一事务的事务标识和第二事务的事务标识。
因此,本发明实施例可以在所述服务器成功接收了所述用户终端发送的数据,但是未成功存储所述用户终端发送的数据时,所述服务器重新将所述服务器的缓存内存储的数据存入所述存储装置,而不需要再次重新接收所述用户终端发送的数据。
在进行具体特征值比较时,根据比较的具体方法不同,本发明实施例还提供了另一种实施例,如图4所示,所述数据处理方法包括:
S41:服务器接收用户终端发送的读取数据请求;
用户终端欲读取云存储系统中的存储装置内的数据,则向所述服务器发送读取数据请求,所述服务器接收所述读取数据请求。
S42:服务器设置发送事务;
服务器为所接收的所述用户终端发送的读取数据请求建立发送事务。所述发送事务包括所述服务器从所述存储装置获取待发送的数据,所述服务器将所述待发送的数据发送至所述用户终端。
S43:服务器设置第三回滚点;
所述第三回滚点包括所述发送事务的初始化状态,所述发送事务的初始化状态包括为从所述存储装置获取待发送的数据的做准备的状态。
S44:服务器判断发送事务是否成功执行;
所述服务器首先将用户终端所需的数据由所述存储装置中读取,存储所述服务器的内存内,所述服务器再将数据发送至所述用户终端。
当所述云存储系统出现异常,例如断电等状况,所述服务器无法成功由所述存储装置内读取数据,即所述发送事务未成功执行。
S45:当发送事务未成功执行时,服务器触发发送事务回滚至第三回滚点,重新执行事务。
如果所述服务器无法从所述存储装置中读取数据的原因是临时性的,例如所述存储装置的访问端口被其他事务临时占用,此时,再重新读取一次,有可能成功,如果第一次发送事务未成功执行,再重新执行一次,有可能使发送事务成功执行。
另外,本发明实施例中,在执行步骤S45之后,还可以再次判断是否成功执行发送事务,如果未成功执行,则删除所述发送事务。
其中,删除发送事务的方式可以是,在所述服务器接收所述用户终端的读取数据请求时,为所述读取数据请求分配发送事务ID,因此删除发送事务方式包括删除发送事务的事务ID。
图5示出了本发明实施例提供的一种数据处理装置的实施例的结构框图,所述装置的实现原理和有益效果与前述方法实施例相同,本发明实施例未述及之处,可以参见前述方法实施例相应部分。本发明实施例提供的一种数据处理装置,应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置,所述服务器包括:
第一接收单元501,用于接收所述用户终端发送的写入数据请求;
第一事务设置单元502,用于设置存储事务,所述存储事务包括所述服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置;
第一回滚点设置单元503,用于设置第一回滚点,其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态;
存储事务执行单元504,用于执行所述存储事务;
第一判断单元505,用于判断所述存储事务是否成功执行;
第一回滚单元506,用于当所述第一判断单元505判断所述存储事务未成功执行时,触发所述存储事务回滚至所述第一回滚点,所述存储事务执行单元重新执行所述存储事务。
在进行具体特征值比较时,根据比较的具体方法不同,本发明实施例还提供了另一种数据处理装置的实施例的结构框图,如图6所示,所述数据处理装置应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置,所述服务器包括:
第一接收单元601,用于接收所述用户终端发送的写入数据请求;
第一事务设置单元602,用于设置存储事务,所述存储事务包括所述服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置;
第一回滚点设置单元603,用于设置第一回滚点,其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态;
存储事务执行单元604,用于执行所述存储事务;
第一判断单元605,用于判断所述存储事务是否成功执行;
第一回滚单元606,用于当所述第一判断单元605判断所述存储事务未成功执行时,触发所述存储事务回滚至所述第一回滚点,所述存储事务执行单元重新执行所述存储事务;
所述第一事务设置单元602包括:
事务标识子单元607,用于为所述存储事务分配事务标识,其中,所述事务标识与所述存储事务唯一对应;
存储事务执行单元604包括:
查找子单元608,用于根据所述事务标识查找所述存储事务,执行所述存储事务。
所述服务器还包括:
第二判断单元609,用于当所述存储事务执行单元604重新执行所述存储事务之后,判断所述存储事务是否成功执行;
删除单元610,用于当所述第二判断单元609判断所述存储事务未成功执行时,删除所述事务标识。
在进行具体特征值比较时,根据比较的具体方法不同,本发明实施例还提供了另一种数据处理装置的实施例的结构框图,如图7所示,所述数据处理装置应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置,所述服务器包括:
第一接收单元701,用于接收所述用户终端发送的写入数据请求;
第一事务设置单元702,用于设置存储事务,所述存储事务包括所述服务器接收所述用户终端发送的数据,所述服务器将所接收的数据发送至所述存储装置;
第一回滚点设置单元703,用于设置第一回滚点,其中,所述第一回滚点包括所述存储事务的初始化状态,所述存储事务的初始化状态包括为接收所述用户终端发送数据的做准备的状态;
存储事务执行单元704,用于执行所述存储事务;
第一判断单元705,用于判断所述存储事务是否成功执行;
第一回滚单元706,用于当所述第一判断单元705判断所述存储事务未成功执行时,触发所述存储事务回滚至所述第一回滚点,所述存储事务执行单元重新执行所述存储事务。
所述第一事务设置单元702包括:
事务设置子单元706,用于设置第一事务和第二事务,其中,所述第一事务包括所述服务器接收所述用户终端发送的数据,存储至所述服务器的缓存,所述第二事务包括所述服务器将所接收的数据发送至所述存储装置;
所述存储事务执行单元704包括:
第一事务执行子单元707,用于执行所述第一事务;
第一判断子单元708,用于判断所述第一事务是否成功执行;
第二事务执行子单元709,用于当所述第一判断子单元708判断所述第一事务成功执行时,执行所述第二事务;
第二回滚点设置子单元710,用于设置第二回滚点,其中,所述第二回滚点包括所述第二事务的初始化状态,所述第二事务的初始化状态包括为将所接收的数据发送至所述存储装置的做准备的状态;
所述第一判断单元705包括:
第二事务执行判断子单元711,用于判断所述第二事务是否成功执行;
所述第一回滚单元713包括:
第二回滚子单元712,用于当所述第二事务执行判断子单元判断所述第二事务未成功执行时,触发所述第二事务回滚至所述第二回滚点。
在进行具体特征值比较时,根据比较的具体方法不同,本发明实施例还提供了另一种数据处理装置的实施例的结构框图,如图8所示,所述数据处理装置应用于分布式存储系统,所述分布式存储系统包括用户终端、服务器和用于存储数据的存储装置,所述服务器包括:
第二接收单元801,用于接收所述用户终端发送的读取数据请求;
第二事务设置单元802,用于设置发送事务,所述发送事务包括所述服务器从所述存储装置获取待发送的数据,所述服务器将所述待发送的数据发送至所述用户终端;
第三回滚点设置单元803,用于设置第三回滚点,其中,所述第三回滚点包括所述发送事务的初始化状态,所述发送事务的初始化状态包括为从所述存储装置获取待发送的数据的做准备的状态;
发送事务执行单元804,用于执行所述发送事务;
第三判断单元805,用于所述发送事务是否成功执行;
第三回滚单元806,用于当所述第三判断单元805判断所述发送事务未成功执行时,触发所述发送事务回滚至所述第三回滚点,所述发送事务执行单元重新执行所述发送事务。
参见图9,本发明实施例还提供一种数据处理装置900,包括:处理器904,存储器901,总线902和通信接口903,所述处理器904、通信接口903和存储器901通过总线902连接;处理器904用于执行存储器901中存储的可执行模块,例如计算机程序。
其中,存储器901可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口903(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线902可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器901用于存储程序,所述处理器904在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流程定义的装置所执行的方法可以应用于处理器904中,或者由处理器904实现。
处理器904可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器904中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器904可以是通用服务器,包括中央服务器(Central Processing Unit,简称CPU)、网络服务器(Network Processor,简称NP)等;还可以是数字信号服务器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用服务器可以是微服务器或者该服务器也可以是任何常规的服务器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码服务器执行完成,或者用译码服务器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器901,处理器904读取存储器901中的信息,结合其硬件完成上述方法的步骤。
另外,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明实施例所提供的进行一种信息交互方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。