CN105938446B - 基于rdma和硬件事务性内存支持的数据复制容错方法 - Google Patents

基于rdma和硬件事务性内存支持的数据复制容错方法 Download PDF

Info

Publication number
CN105938446B
CN105938446B CN201610018490.7A CN201610018490A CN105938446B CN 105938446 B CN105938446 B CN 105938446B CN 201610018490 A CN201610018490 A CN 201610018490A CN 105938446 B CN105938446 B CN 105938446B
Authority
CN
China
Prior art keywords
data
affairs
rdma
fault
transactional memory
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
CN201610018490.7A
Other languages
English (en)
Other versions
CN105938446A (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 Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201610018490.7A priority Critical patent/CN105938446B/zh
Publication of CN105938446A publication Critical patent/CN105938446A/zh
Application granted granted Critical
Publication of CN105938446B publication Critical patent/CN105938446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于RDMA和HTM支持的数据复制容错方法,包括如下步骤:步骤1:在数据库事务提交时将事务修改的数据提交为一个中间的版本,使得其他执行中的事务可以检测到未完成备份的数据;步骤2:通过RDMA进行数据备份,数据备份完成后再将其修改的数据的版本修改为一个合法的版本;步骤3:在数据库事务的执行过程中,通过检测是否操作到中间版本的数据来保证这次事务执行的正确性。与现有的技术相比,本发明可以实现基于HTM和RDMA的并发控制方法,并提供相应的***容错支持,同时不损失HTM和RDMA带来的并发控制的性能优势。

Description

基于RDMA和硬件事务性内存支持的数据复制容错方法
技术领域
本发明涉及分布式计算和多核计算技术领域,具体地,涉及一种基于RDMA和HTM支持的数据复制容错方法。
背景技术
分布式内存计算为处理超大规模的并发事务提供了便利,而提供可用性是分布式***一般需求;通常***的可用性可以通过数据的备份来完成。当事务在某个主机器完成后,事务的修改会被备份到备份机器中。这样当某些主机器不工作的时候,备份机器可以代替主机器来完成请求。
现有使用新的硬件技术,比如硬件事务性内存HTM(HardwareTransactionalMemory),和远程内存直接访问RDMA(Remote Direct Memory Access)来加速分布式事务处理的***。这些***相比传统的并发控制方法具有非常好的性能,然而这些***没有提供容错支持,从而目前这些***不支持可用性。
硬件事务性内存HTM是一种硬件特性,直接由处理器提供执行程序时对共享内存数据的并发控制,具有非常低的开销。远程内存直接访问RDMA是新的网络通信技术,直接由网卡来对远端机器的内存进行操作,拥有非常高的吞吐量和低延迟的特性。虽然这两个技术一起使用的时候可以非常高效的执行数据库事务,然而却加大了***容错的难度。
这类***通常使用HTM来提交事务对本地机器的修改,这样可以拥有非常好的性能,却同时给***容错带来了困难。因为通常采用数据备份或写日志来完成容错,如果等到数据用HTM提交完再作这些操作,则有数据在这些操作完成前可能会被远端机器用RDMA操作读到,因此当主机器不工作的时候,备份机器可能没有办法恢复主机器的数据,而这些数据却可能被某些其他服务器读到,从而违反了数据库事务的一致性。如果在事务提交前备份数据,则需要复杂的协议来检测未提交的数据,这会带来非常大的开销。所以之前利用HTM和RDMA的数据库事务***都没有提供事务数据的备份。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于RDMA和HTM支持的数据复制容错方法。
根据本发明提供的基于RDMA和HTM支持的数据复制容错方法,包括如下步骤:
步骤1:将数据库执行事务前的所有数据记录为初始版本数据;
步骤2:将数据库事务提交时的事务修改数据作为中间版本数据;
步骤3:将事务修改数据复制至相应的备份服务器进行备份;
步骤4:将经过备份的事务修改数据作为合法版本数据;
步骤5:执行事务时,若读取到某一中间版本数据,则将该中间版本数据记录至对应的一个读集合中;
步骤6:检查事务是否能提交时时,若读集合中包含有中间版本数据,则中断执行对应的事务;
步骤7:定期检查备份服务器的日志,并恢复在主服务器中执行过的操作;
步骤8:当存在主服务器宕机时,则新的主服务器恢复原主服务器执行过的操作,并接受用户请求。
优选地,所述步骤1包括:在数据库执行事务前,将所有数据设为初始版本数据,即将初始版本数据的版本号设为0。
优选地,所述步骤2包括:在数据库利用HTM提交数据的时候,将事务修改数据设为一个中间版本数据,即相对于初始版本数据,所述中间版本数据的版本号自增1。
优选地,所述步骤3包括:将事务修改数据复制至相应的备份服务器中,即通过RDMA写操作将事务修改数据写到备份机服务器的日志中。
优选地,所述步骤4包括:将经过备份的事务修改数据设置为合法版本数据,即相对于中间版本数据,所述合法版本数据的版本号自增1。
优选地,所述步骤5包括:在事务的执行过程中,当读到一个中间版本数据,则将该数据记录到一个读集合中;其中,所述中间版本数据的版本号为奇数,且每个事务维护一个读集合。
优选地,所述步骤6包括:在检查事务能否提交的过程中,读取读集合中数据的版本,若读集合中包含有中间版本数据,即存在版本号为奇数的数据,则中断执行对应对的事务。
优选地,所述步骤7包括:当在检查备份服务器的日志时发现存在数据操作,则将相应的操作应用于所述备份服务器复制的数据上。
优选地,所述步骤8包括:在备份服务器开始恢复数据时,从所有原主服务器的备份服务器的日志中读取数据的修改操作,并在新的主服务器中执行所述修改操作。
优选地,使用HTM将数据提交为一个中间状态,同时事务提交时检测是否读到一个中间状态的数据,这样对未完成备份的数据不需要进行上锁操作。与现有技术相比,本发明具有如下的有益效果:
1、本发明提供的基于RDMA和HTM支持的数据复制容错方法,利用HTM提交事务本身就需要修改数据的版本号的特性,将版本变为一个中间版本,从而避免了性能开销很大的上锁操作。
2、本发明提供的基于RDMA和HTM支持的数据复制容错方法的数据备份操作在事务提交操作之后,使得备份的操作基本不会影响事务并发控制的性能。
3、本发明提供的基于RDMA和HTM支持的数据复制容错方法避免了很多事务执行时候的中断重试,事务执行的时候可以读到一个没有完成备份的数据,然而事务可以不用中断继续执行,只要事务提交的时候数据已经完成备份就可以通过验证;这样使得数据备份和事务执行可以并发的进行而不影响正确性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明提供的基于RDMA和HTM支持的数据复制容错方法的流程图;
图2为本发明提供的基于RDMA和HTM支持的数据复制容错方法的拓扑图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
根据本发明提供的基于RDMA和HTM支持的数据复制容错方法,该方法先在数据库事务提交时将事务修改的数据提交为一个中间的版本,使得其他执行中的事务可以检测到未完成备份的数据,然后通过RDMA进行数据备份,数据备份完成后再将其修改的数据的版本修改为一个合法的版本;在数据库事务的执行过程中,通过检测是否操作到中间版本的数据来保证这次事务执行的正确性;在机器宕机时,数据可以从备份机器中恢复;具体地,包括以下步骤:
步骤1:在数据库执行事务前将所有数据的版本设为一个初始版本;
步骤2:在事务利用HTM提交事务的时候将所修改的数据的版本变为一个中间版本;
步骤3:将事务所修改的数据复制到数据的备份机器中;
步骤4:将事务所修改的数据的版本变为一个合法的版本;
步骤5:在事务的执行过程中,如果读到一个中间版本的数据,则记录这个数据到一个读集合中;
步骤6:在事务的检查过程中,如果读集合中仍然有数据的版本是中间版本,则中断这个事务的执行;
步骤7:备份服务器定期检查其日志,并恢复主服务器中执行过的操作;
步骤8:在有主服务器宕机后,被选为新的主服务器的原备份机器从恢复主服务器的事务的操作,随后开始接受用户请求。
所述步骤1包括:在数据库执行事务前将所有数据的版本设为一个初始版本,将初始版本设为0。
所述步骤2包括:在事务利用HTM提交的时候将所修改的数据的版本变为一个中间版本,特别的将数据的版本变为之前的版本加上1。
所述步骤3包括,将事务所修改的数据复制到数据的备份机器中,使用RDMA写操作将所有数据的操作写到他们的备份机器的日志中。
所述步骤4包括,将事务所修改的数据变为一个合法的版本,即再将其版本在其之前版本上加上1。
所述步骤5包括,在事务的执行过程中,如果读到一个中间版本的数据,则记录这个数据到一个读集合中,中间版本即数据的版本是一个奇数,每个事务维护一个读集合。
所述步骤6包括,在事务的检查过程中,再次读取读集合中数据的版本,如果其中仍然有版本号为基数的数据,则中断事务的执行。
所述步骤7包括,在备份服务器检查日志发现有数据操作时,将相应的操作应用在其复制的数据上。
所述步骤8包括,在备份服务器开始恢复数据的时候,从所有原主服务器的备份服务器的日志中中读取数据的修改的操作,在本地机器执行这些操作。
具体地,如图1所示,为本发明数据库事务数据备份的具体流程,下面以一个数据有两个备份为例,结合图1对一下数据备份步骤进行详细描述:
在步骤S1中,执行事务逻辑,如果有读写版本号为奇数的数据,则将这个数据记录到事务的读集合中;
在步骤S2中,事务提交时再次读取读集合中的数据,并检查是否这些数据中仍然有奇数版本的数据,如果是则返回执行步骤S1重新执行事务;
在步骤S3中,事务提交,事务将所有修改的数据的版本号修改为当前版本号加上一;
在步骤S4中,事务将所修改的数据使用RDMA操作备份到备份机器中,如图2所示,主服务器A会将事务的修改通过RDMA网络将数据写到备份服务器C的日志中;
在步骤S5中,事务将所有修改的数据版本号修改为当前版本加1,事务提交完成。
更进一步地,如图2所示,本发明假设拥有多个服务器,它们通过RDMA网络请求;其中一部分服务器作为主服务器接受用户请求,执行用户指定的事务;一部分服务器作为备份服务器储存主服务器数据,他们复制其对应的主服务器上的数据;当主服务器宕机的时候对应的备份服务器会恢复主服务器的数据接并代替原主服务器接受用户的请求。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (10)

1.一种基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,包括如下步骤:
步骤1:将数据库执行事务前的所有数据记录为初始版本数据;
步骤2:将数据库事务提交时的事务修改数据作为中间版本数据;
步骤3:将事务修改数据复制至相应的备份服务器进行备份;
步骤4:将经过备份的事务修改数据作为合法版本数据;
步骤5:执行事务时,若读取到某一中间版本数据,则将该中间版本数据记录至对应的一个读集合中;
步骤6:检查事务是否能提交时,若读集合中包含有中间版本数据,则中断执行对应的事务;
步骤7:定期检查备份服务器的日志,并恢复在主服务器中执行过的操作;
步骤8:当存在主服务器宕机时,则新的主服务器恢复原主服务器执行过的操作,并接受用户请求。
2.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤1包括:在数据库执行事务前,将所有数据设为初始版本数据,即将初始版本数据的版本号设为0。
3.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤2包括:在数据库利用硬件事务性内存提交数据的时候,将事务修改数据设为一个中间版本数据,即相对于初始版本数据,所述中间版本数据的版本号自增1。
4.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤3包括:将事务修改数据复制至相应的备份服务器中,即通过RDMA写操作将事务修改数据写到备份机服务器的日志中。
5.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤4包括:将经过备份的事务修改数据设置为合法版本数据,即相对于中间版本数据,所述合法版本数据的版本号自增1。
6.根据权利要求3所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤5包括:在事务的执行过程中,当读到一个中间版本数据,则将该数据记录到一个读集合中;其中,所述中间版本数据的版本号为奇数,且每个事务维护一个读集合。
7.根据权利要求6所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤6包括:在检查事务能否提交的过程中,读取读集合中数据的版本,若读集合中包含有中间版本数据,即存在版本号为奇数的数据,则中断执行对应对的事务。
8.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤7包括:当在检查备份服务器的日志时发现存在数据操作,则将相应的操作应用于所述备份服务器复制的数据上。
9.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,所述步骤8包括:在备份服务器开始恢复数据时,从所有原主服务器的备份服务器的日志中读取数据的修改操作,并在新的主服务器中执行所述修改操作。
10.根据权利要求1所述的基于RDMA和硬件事务性内存支持的数据复制容错方法,其特征在于,使用硬件事务性内存将数据提交为一个中间状态,同时事务提交时检测是否读到一个中间状态的数据,这样对未完成备份的数据不需要进行上锁操作。
CN201610018490.7A 2016-01-12 2016-01-12 基于rdma和硬件事务性内存支持的数据复制容错方法 Active CN105938446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610018490.7A CN105938446B (zh) 2016-01-12 2016-01-12 基于rdma和硬件事务性内存支持的数据复制容错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610018490.7A CN105938446B (zh) 2016-01-12 2016-01-12 基于rdma和硬件事务性内存支持的数据复制容错方法

Publications (2)

Publication Number Publication Date
CN105938446A CN105938446A (zh) 2016-09-14
CN105938446B true CN105938446B (zh) 2019-01-25

Family

ID=57152911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610018490.7A Active CN105938446B (zh) 2016-01-12 2016-01-12 基于rdma和硬件事务性内存支持的数据复制容错方法

Country Status (1)

Country Link
CN (1) CN105938446B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107967188B (zh) * 2016-10-18 2020-06-16 腾讯科技(深圳)有限公司 数据存储中的处理方法和装置
CN107590028B (zh) * 2017-09-14 2021-05-11 广州华多网络科技有限公司 一种信息处理的方法、服务器
CN110069431B (zh) * 2018-01-24 2020-11-24 上海交通大学 基于RDMA和HTM的弹性Key-Value键值对数据存储方法
CN110874290B (zh) * 2019-10-09 2023-05-23 上海交通大学 分布式内存数据库的事务分析混合处理方法及数据库

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089857A (zh) * 2007-07-24 2007-12-19 中兴通讯股份有限公司 一种内存数据库事务管理方法及***
CN102722401A (zh) * 2012-04-25 2012-10-10 华中科技大学 一种硬件事务内存***中的伪相联多版本数据管理方法
CN103366511A (zh) * 2013-05-30 2013-10-23 中国水利水电科学研究院 一种山洪预警数据接收汇集的方法
CN103636181A (zh) * 2011-06-29 2014-03-12 微软公司 通过远程直接存储器访问的任意大小的传输操作
CN104410681A (zh) * 2014-11-21 2015-03-11 上海交通大学 基于远程直接内存访问的虚拟机动态迁移优化方法
CN104866430A (zh) * 2015-04-30 2015-08-26 上海交通大学 结合主从备份和纠删码的内存计算***高可用优化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089857A (zh) * 2007-07-24 2007-12-19 中兴通讯股份有限公司 一种内存数据库事务管理方法及***
CN103636181A (zh) * 2011-06-29 2014-03-12 微软公司 通过远程直接存储器访问的任意大小的传输操作
CN102722401A (zh) * 2012-04-25 2012-10-10 华中科技大学 一种硬件事务内存***中的伪相联多版本数据管理方法
CN103366511A (zh) * 2013-05-30 2013-10-23 中国水利水电科学研究院 一种山洪预警数据接收汇集的方法
CN104410681A (zh) * 2014-11-21 2015-03-11 上海交通大学 基于远程直接内存访问的虚拟机动态迁移优化方法
CN104866430A (zh) * 2015-04-30 2015-08-26 上海交通大学 结合主从备份和纠删码的内存计算***高可用优化方法

Also Published As

Publication number Publication date
CN105938446A (zh) 2016-09-14

Similar Documents

Publication Publication Date Title
US9798792B2 (en) Replication for on-line hot-standby database
US9389905B2 (en) System and method for supporting read-only optimization in a transactional middleware environment
US8874512B2 (en) Data replication method and system for database management system
US10204019B1 (en) Systems and methods for instantiation of virtual machines from backups
US7631214B2 (en) Failover processing in multi-tier distributed data-handling systems
US20090157766A1 (en) Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US20090300414A1 (en) Method and computer system for making a computer have high availability
US9798639B2 (en) Failover system and method replicating client message to backup server from primary server
CN105938446B (zh) 基于rdma和硬件事务性内存支持的数据复制容错方法
MXPA06005797A (es) Sistema y metodo para la recuperacion en caso de fallas.
CN112181723A (zh) 一种金融灾备方法、装置、存储介质及电子设备
US9430485B2 (en) Information processor and backup method
US20230315713A1 (en) Operation request processing method, apparatus, device, readable storage medium, and system
US11797523B2 (en) Schema and data modification concurrency in query processing pushdown
CN110121694A (zh) 一种日志管理方法、服务器和数据库***
US10664361B1 (en) Transactionally consistent backup of partitioned storage
AU2019371362B2 (en) Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment
CN109446212B (zh) 一种双活主机***切换方法及***
US11507545B2 (en) System and method for mirroring a file system journal
US20220138177A1 (en) Fault tolerance for transaction mirroring
Li et al. A hybrid disaster-tolerant model with DDF technology for MooseFS open-source distributed file system
CN111400098A (zh) 一种副本管理方法、装置、电子设备及存储介质
US6539434B1 (en) UOWE's retry process in shared queues environment
CN112749156A (zh) 数据处理方法、数据库管理***和数据处理设备
CN110704239A (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
GR01 Patent grant
GR01 Patent grant