[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN113296899A - 基于分布式系统的事务主机、事务从机及事务处理方法 - Google Patents

基于分布式系统的事务主机、事务从机及事务处理方法 Download PDF

Info

Publication number
CN113296899A
CN113296899A CN202110625851.5A CN202110625851A CN113296899A CN 113296899 A CN113296899 A CN 113296899A CN 202110625851 A CN202110625851 A CN 202110625851A CN 113296899 A CN113296899 A CN 113296899A
Authority
CN
China
Prior art keywords
slave
transaction
memory
operation sequence
data
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.)
Pending
Application number
CN202110625851.5A
Other languages
English (en)
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202110625851.5A priority Critical patent/CN113296899A/zh
Publication of CN113296899A publication Critical patent/CN113296899A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于分布式系统的事务主机、事务从机及事务处理方法。该事务主机的第一内存用于保存事务从机透传过来的从机文件描述符;第一中央处理器用于根据从机文件描述符,生成从机操作序列,并将从机操作序列写入第一内存;第一网卡用于从第一内存中读取从机操作序列,并将从机操作序列传输给事务从机的第二内存,由事务从机的第二DMA控制器加载从机操作序列,使事务从机的第二外部存储器控制器执行从机操作序列,从而旁路掉事务从机的中央处理器。在将事务从机的外部存储器中的数据进行迁移时,由于无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。

Description

基于分布式系统的事务主机、事务从机及事务处理方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于分布式系统的事务主机、事务从机及事务处理方法。
背景技术
目前随着存储系统的多样化,可以提供不同应用需要的各种特性。由于业务类型是多种多样的,很难做到全面覆盖。通常存储系统使用三个性能指标:IOPS(Input/OutputOperations Per Second,每秒输入输出操作数)、Throughput(吞吐量)和Latency(时延)来测评一款存储系统。通常输入/输出(Input/Output,IO)密集应用使用吞吐量指标来评测系统性能;小IO使用IOPS指标来评测系统性能。而关于时延指标的作用在很多关键型业务中很重要。一位专家在一篇博客中详细叙述了只有在延迟小于4ms的情况下,信用卡处理器才不会减慢防诈骗或提款授权等进程。时延在核心金融、证券类应用中是必须保证的部分。
基于联机事务处理(On-Line Transaction Processing,OLTP)和联机分析处理(On-Line Analytical Processing,OLAP)的业务,对时延的要求非常高。实现高性能的关键是高IOPS和低时延的结合。当存储系统提供更高的IOPS时,单IO的时延不应同步提高过多。但是分布式的网络存储环境,却有很多限制。在本地的传统存储系统中,由于其IO路径短,时延有着天然的优势。但是采用分布式,即借助多主机进行扩展后,不可避免涉及网络、远程数据同步、业务流中断等。所以一个IO通过网络,在多个副本服务器上处理,这些操作都将增加IO的时延。时延问题也会由于多机事务相互之间进行同步业务而恶化。同步业务会导致CPU(Central Processing Unit,中央处理器)的上下文切换,导致高速缓存的清空问题。这对时延非常敏感的业务是致命的。分布式存储的副本模式对数据库性能的影响非常大,平均事务处理能力差距可达10倍。
在分布式扩展读写性能的方面,目前可以采用共享磁盘或网络DMA(DirectMemory Access,直接存储器访问)技术等,但是数据传输都需要CPU参与。目前数据库系统中常见提高可用性与性能扩展,可以采用共享存储系统。例如RAC(Real ApplicationClusters,一种数据库集群)数据库集群。数据磁盘是全局可用的。因为跨CPU同步数据,磁盘IO需要打断CPU当前任务并且非常耗时,存在性能扩展问题。实际应用中,也可采用网络DMA技术,这样在远程数据搬运过程可以直接使用网络DMA控制器,从而节省很多CPU周期。但是在数据库、即时游戏类应用数据要尽快落盘做持久化,即使采用网络DMA进行分布式数据共享,这些数据与当前的任务不相关(做分布式系统的多副本、数据库读写分离模式时的主机数据),也会频繁打断当前的事务。这些附加的任务切换,会造成不必要的时延,降低系统的性能。
目前可以从多方面提高延迟性能,采用旁路操作系统,即利用网络DMA直接传输远端数据到本地内存,可以大幅度降低数据获取时延,并能较好降低CPU的利用率,从而提高系统并行能力。但是数据到达指定内存后,还是需要中断CPU进行必要的操作。导致CPU处理的当前其他任务会被打断,进行上下文切换,甚至会导致高速缓存驱逐到下一级或者清空,导致性能下降。
发明内容
本发明提供了一种基于分布式系统的事务主机、事务从机及事务处理方法,以减少时延,同时提高分布式系统的性能。
第一方面,本发明提供了一种基于分布式系统的事务主机,该分布式系统还至少包括事务从机。该事务主机包括第一中央处理器、第一内存、第一网卡。其中,第一内存用于保存事务从机透传过来的从机文件描述符;第一中央处理器用于根据从机文件描述符,生成从机操作序列,并将从机操作序列写入第一内存;第一网卡用于从第一内存中读取从机操作序列,并将从机操作序列传输给事务从机的第二内存,由事务从机的第二DMA控制器加载从机操作序列,使事务从机的第二外部存储器控制器执行从机操作序列。
在上述的方案中,通过提前将事务从机的文件描述符透传给事务主机,由事务主机根据从机文件描述符,生成由事务从机执行的从机操作序列;之后将从机操作序列传输给事务从机,由事务从机的第二DMA控制器加载从机操作序列,使事务从机的第二外部存储器控制器进行执行,从而旁路掉事务从机的中央处理器。在将事务从机的外部存储器中的数据进行迁移时,由于无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机的第一中央处理器和事务从机的非第二中央处理器的控制器完成相应的操作。使事务从机的第二中央处理器不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA(Non Uniform Memory Access,非统一内存访问)系统中时延更严重的问题。
在一个具体的实施方式中,第一中央处理器还用于生成待存储数据,并将待存储数据写入第一内存;第一网卡还用于从第一内存中读取待存储数据,并将待存储数据传输给第二内存;从机操作序列中包含有将待存储数据写入事务从机的第二外存储器的操作序列,以使第二DMA控制器加载从机操作序列时,能够控制第二外部存储器控制器将待存储数据由第二内存写入第二外存储器。在事务主机需要将待存储数据远程传输给事务从机并在事务从机中进行写盘时,事务主机的第一中央处理器提前生成包含有写盘操作的从机操作序列,由事务从机的第二DMA控制器加载,控制第二外部存储器控制器进行写盘操作。在此过程中,无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。
在一个具体的实施方式中,该事务主机还包括第一DMA控制器、第一外存储器、以及第一外部存储器控制器。其中,第一内存中还存储有事务主机的主机文件描述符;第一中央处理器还用于根据主机文件描述符,生成将待存储数据写入第一外存储器的主机操作序列,并将主机操作序列写入第一内存;第一DMA控制器中设置有第一命令序列装载器,第一命令序列装载器用于加载主机操作序列,以使第一外部存储器控制器将所述待存储数据由第一内存写入第一外存储器。在事务主机的中央处理器生成待存储数据后,可以同时生成将该待存储数据在本地落盘的主机操作序列,在第一DMA控制器中设置第一命令序列装载器,由第一命令序列装载器加载主机操作序列,使第一外部存储器控制器执行落盘到本地的第一外存储器的操作。在此过程中,事务主机的中央处理器生成主机操作序列即可,无需事务主机的中央处理器参与落盘,使事务主机的中央处理器无需进行上下文切换,减少事务主机的时延,提高分布式系统的性能。
在一个具体的实施方式中,该事务主机还包括第一DMA控制器以及第一外存储器。事务从机的第二外存储器内存储有事务主机需要读取的待读取数据。其中,从机操作序列中包含有将待读取数据传输到第二内存的操作序列,以使第二DMA控制器加载从机操作序列时,控制第二外部存储器控制器将待读取数据从第二外存储器传送到第二内存。从机操作序列中还包含有将待读取数据传输给第一内存的操作序列,以使事务从机的第二网卡读取待读取数据,并通过第一网卡传输给第一内存。第一内存中还存储有事务主机的主机文件描述符;第一中央处理器还用于根据主机文件描述符,生成将待读取数据写入第一外存储器的主机操作序列,并将主机操作序列写入第一内存。第一DMA控制器中设置有第一命令序列装载器,第一命令序列装载器用于加载主机操作序列,以使第一命令序列装载器加载主机操作序列时,将待读取数据写入第一外存储器。在事务主机需要远程读取事务从机的第二外存储器中存储的待读取数据时,使事务主机生成的从机操作序列中包含有对事务从机进行读盘的操作序列,由事务从机的第二DMA控制器加载,控制第二外存储器控制器进行执行即可。在此过程中,无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。
在一个具体的实施方式中,该事务主机还包括第一根桥设备、以及第一中断提取及重定向模块。其中,第一中断提取及重定向模块用于在将主机操作序列传输到第一内存后,截获第一根桥设备提交的带有设定标识的中断信号,并重定向到第一命令序列装载器。便于及时截获能够由第一命令序列装载器进行加载执行的主机操作序列,从而无需使需事务主机的中央处理器参与落盘,使事务主机的中央处理器无需进行上下文切换,减少事务主机的时延,提高分布式系统的性能。
第二方面,本发明还提供了一种基于分布式系统的事务从机,其中,该分布式系统还至少包括事务主机。该事务从机包括第二中央处理器、第二内存、第二网卡、第二外部存储器控制器、第二DMA控制器。其中,第二内存用于存储事务从机的从机文件描述符。第二网卡用于读取从机文件描述符,并将从机文件描述符透传给事务主机的第一内存;该第二网卡还用于接收事务主机传输过来的从机操作序列,并将从机操作序列传输给第二内存。在第二DMA控制器内设置有第二命令序列装载器,第二命令序列装载器用于加载从机操作序列,使第二外部存储器控制器执行从机操作序列。
在上述的方案中,通过提前将事务从机的文件描述符透传给事务主机,由事务主机根据从机文件描述符,生成由事务从机执行的从机操作序列;之后将从机操作序列传输给事务从机,在第二DMA控制器中设置第二命令序列装载器,由第二命令序列装载器加载从机操作序列,使事务从机的第二外部存储器控制器进行执行,从而旁路掉事务从机的中央处理器。在将事务从机的外部存储器中的数据进行迁移时,由于无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机的第一中央处理器和事务从机的非第二中央处理器的控制器完成相应的操作。使事务从机的第二中央处理器不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
在一个具体的实施方式中,该事务从机还包括第二外存储器。其中,从机操作序列中包含有将事务主机传输过来的待存储数据写入第二外存储器的操作序列,使第二命令序列装载器加载从机操作序列时,能够控制第二外部存储器控制器将待存储数据由第二内存写入第二外存储器。在事务主机需要将待存储数据远程传输给事务从机并在事务从机中进行写盘时,事务主机的第一中央处理器提前生成包含有写盘操作的从机操作序列,由第二命令序列装载器加载,控制第二外部存储器控制器进行写盘操作。在此过程中,无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。
在一个具体的实施方式中,该事务从机还包括第二外存储器,第二外存储器内还保存有事务主机需要读取的待读取数据。从机操作序列中还包含有将待读取数据传输到第二内存的操作序列,使第二命令序列装载器加载从机操作序列时,能够控制第二外部存储器控制器将待读取数据从第二外存储器传输到第二内存。从机操作序列中还包含有将待读取数据传输给事务主机的第一内存的操作序列,以使第二命令序列装载器加载从机操作序列时,第二网卡读取第二内存内的待读取数据,并通过事务主机的第一网卡传输给第一内存。在事务主机需要远程读取事务从机的第二外存储器中存储的待读取数据时,使事务主机生成的从机操作序列中包含有对事务从机进行读盘的操作序列,由第二命令序列装载器加载,控制第二外存储器控制器进行执行即可。在此过程中,无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。
在一个具体的实施方式中,该事务从机还包括第二根桥设备、以及第二中断提取及重定向模块。其中,第二中断提取及重定向模块用于在第二网卡将从机操作序列传输到第二内存后,截获第二根桥设备提交的带有设定标识的中断信号,并重定向到第二命令序列装载器。便于及时截获能够由第二命令序列装载器进行加载执行的从机操作序列,从而无需使需事务从机的中央处理器参与读盘及落盘,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。
第三方面,本发明还提供了一种分布式系统,该分布式系统包括至少两台主机,至少两台主机中包含事务主机和事务从机。事务主机包括第一中央处理器、第一内存、第一网卡及第一DMA控制器;事务从机包括第二中央处理器、第二内存、第二网卡、第二DMA控制器及第二外部存储器控制器。其中,第二内存用于存储事务从机的从机文件描述符。第二网卡用于读取从机文件描述符,并将从机文件描述符透传给第一内存。第一中央处理器用于根据从机文件描述符,生成从机操作序列,并将从机操作序列写入第一内存。第一网卡用于从第一内存中读取从机操作序列,并将从机操作序列传输给第二内存。第二网卡还用于接收第一网卡传输过来的从机操作序列,并将从机操作序列传输给第二内存。在第二DMA控制器内设置有第二命令序列装载器,第二命令序列装载器用于加载从机操作序列,使第二外部存储器控制器执行从机操作序列。
在上述的方案中,通过预先将事务从机的文件描述符透传给事务主机,由事务主机根据从机文件描述符,生成由事务从机执行的从机操作序列;之后将从机操作序列传输给事务从机,在第二DMA控制器中设置第二命令序列装载器,由第二命令序列装载器加载从机操作序列,使事务从机的第二外部存储器控制器进行执行,从而旁路掉事务从机的中央处理器。在将事务从机的外部存储器中的数据进行迁移时,由于无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机的第一中央处理器和事务从机的非第二中央处理器的控制器完成相应的操作。使事务从机的第二中央处理器不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
第四方面,本发明还提供了一种基于分布式系统的事务处理方法。其中,分布式系统至少包括事务主机和事务从机;事务主机包括第一中央处理器、第一内存、第一网卡及第一DMA控制器;事务从机包括第二中央处理器、第二内存、第二网卡、第二DMA控制器及第二外部存储器控制器。该事务处理方法包括:第二网卡读取第二内存内的从机文件描述符,并透传给第一内存;第一中央处理器根据从机文件描述符,生成从机操作序列,并将从机操作序列写入第一内存;第一网卡从第一内存中读取从机操作序列,并将从机操作序列传输给第二内存;第二DMA控制器内的第二命令序列装载器加载从机操作序列,使第二外部存储器控制器执行从机操作序列。
在上述的方案中,通过提前将事务从机的文件描述符透传给事务主机,由事务主机根据从机文件描述符,生成由事务从机执行的从机操作序列;之后将从机操作序列传输给事务从机,在第二DMA控制器中设置第二命令序列装载器,由第二命令序列装载器加载从机操作序列,使事务从机的第二外部存储器控制器进行执行,从而旁路掉事务从机的中央处理器。在将事务从机的外部存储器中的数据进行迁移时,由于无需事务从机的中央处理器参与,使事务从机的中央处理器无需进行上下文切换,减少事务从机的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机的第一中央处理器和事务从机的非第二中央处理器的控制器完成相应的操作。使事务从机的第二中央处理器不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
附图说明
图1为本发明实施例提供的一种分布式系统的结构框图;
图2为本发明实施例提供的一种事务主机和事务从机进行事务处理时的流程结构框图;
图3为本发明实施例提供的一种事务主机远程读取事务从机中的待读取数据时的流程图;
图4为本发明实施例提供的一种事务主机向事务从机远程传输数据并在事务从机写盘的流程图;
图5为本发明实施例提供的一种基于分布式系统的事务处理方法的流程图。
附图标记:
10-事务主机 11-第一中央处理器 12-第一内存 13-第一网卡
14-第一DMA控制器 15-第一外部存储器控制器
16-第一中断提取及重定向模块 17-第一共享文件参数内存区
20-事务从机 21-第二中央处理器 22-第二内存 23-第二网卡
24-第二DMA控制器 25-第二外部存储器控制器
26-第二中断提取及重定向模块 27-第二共享文件参数内存区
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例提供的基于分布式系统的事务主机,下面首先说明一下本发明实施例提供的基于分布式系统的事务主机的应用场景,该事务主机应用于分布式系统中,参考图1,该分布式系统包括至少两台主机,具体的,分布式系统中主机的台数可以为2台、3台、4台、10台、20台等不少于2台的任意台数。其中,每台主机均包括中央处理器、内存、网卡、DMA控制器、外存储器以及外部存储器控制器等基本的硬件。其中的外存储器可以为磁盘、硬盘等类型的存储器,外部存储器控制器为对应类型的外存储器的控制器。例如,在外存储器为磁盘时,该外部存储器控制器即为磁盘控制器;在外存储器为固态盘时,该外部存储器控制器即为固态盘控制器。该至少两台主机中包含有事务主机10和事务从机20。需要说明的是,事务主机10和事务从机20的划分是根据处理某一具体事务过程中,提出数据需求的为事务主机10,而提供数据请求的为事务从机20。在处理不同的事务过程中,依据其所承担的角色不同,可以在某一事务处理过程中,作为事务主机10,而在另一事务处理过程中,作为事务从机20。当然,如果在某一事务处理过程中,分布式系统中的主机没有参与该事务操作,则属于该分布式系统中的其他主机。需要说明的是,这里面的事务主要是指数据落盘、远端数据的读取以及数据在内存中进行搬移等,不涉及数据处理的事务。例如,分布式系统中的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由非中央处理器的其他控制器进行控制已完成相应操作的事务。另外,为了便于描述,将事务主机10中的硬件多描述为“第一”类型的硬件,将事务从机20中的硬件多描述为“第二”类型的硬件,即该“第一”、“第二”的分类方式并非限定某一主机中不同的硬件类型,而是作为区分事务主机10和事务从机20中的硬件位置不同,而采用的划分方式,因此下列限定的“第一”、“第二”不应当作为限定本申请权利要求所请求保护的方案的保护范围的限定特征。下面结合附图对该基于分布式系统的事务主机10进行详细的叙述。
参考图1及图2,本发明实施例提供的基于分布式系统的事务主机10包括第一中央处理器11、第一内存12、第一网卡13。其中,该第一内存12可以采用随机存取存储器(RandomAccess Memory,RAM),用于暂时存放第一中央处理器11中的运算数据,作为与磁盘、固态盘等外存储器进行数据交换的桥梁。
在进行事务操作过程中,参考图1及图2,第一内存12用于保存事务从机20透传过来的从机文件描述符,该从机文件描述符作为事务从机20的文件描述符,能够通过文件描述符来访问事务从机20中的文件。即在开始处理事务时,事务从机20会将其自身的从机文件描述符透传给事务主机10。具体实现透传的方式可以通过事务主机10中的第一网卡13和事务从机20中的第二网卡23实现从机文件描述符的传输。具体的,参考图2,从机文件描述符在开始时存储在事务从机20的第二内存22中,由事务从机20的第二网卡23读取第二内存22中的从机文件描述符,并传输给第一网卡13。由第一网卡13接收,并存储在第一内存12中。
接下来,参考图1及图2,第一中央处理器11用于根据从机文件描述符,生成从机操作序列。具体的,事务主机10可以作用于事务从机20的存储文件(该存储文件由文件描述符虚拟提供),形成从机操作序列(Operation Sequence Slaver,简称OPSS,图中的“操作序列S”表示从机操作序列)。即事务主机10的第一中央处理器11在远程对事务从机20中的事务操作进行控制时,可以直接依据事务从机20透传过来的从机文件描述符,生成能够使事务从机20中的非中央处理器的控制器能够进行加载和执行的从机操作序列,使后续事务从机20收到从机操作序列时,能够旁路掉事务从机20的第二中央处理器21,由事务从机20中的非第二中央处理器21的控制器进行加载和执行,避免了第二中央处理器21进行上下文切换。在将从机操作序列传输给事务从机20时,首先需要将从机操作序列写入第一内存12,之后由第一网卡13从第一内存12中读取从机操作序列,并将从机操作序列传输给事务从机20的第二内存22。即先将从机操作序列存储在第一内存12中,之后由第一网卡13传输给第二网卡23,并由第二网卡23接收并传输给事务从机20的第二内存22,以完成将从机操作序列传输给事务从机20的操作。具体的,将从机操作序列发送到事务从机20的第二内存22中的执行命令序列缓存区。
参考图1及图2,在事务从机20接收到从机操作序列后,由事务从机20的第二DMA控制器24加载从机操作序列,使事务从机20的第二外部存储器控制器25执行从机操作序列。即采用事务从机20中的第二DMA控制器24加载从机操作序列,和事务从机20的第二外部存储器控制器25配合,完成事务从机20的外存储器内的数据迁移、备份等操作(图中的DATA00、DATA1表示不同的数据类型)。通过提前将事务从机20的文件描述符透传给事务主机10,由事务主机10根据从机文件描述符,生成由事务从机20执行的从机操作序列;之后将从机操作序列传输给事务从机20,由事务从机20的第二DMA控制器24加载从机操作序列,使事务从机20的第二外部存储器控制器25进行执行,从而旁路掉事务从机20的中央处理器。在将事务从机20的外部存储器中的数据进行迁移时,由于无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机10的第一中央处理器11和事务从机20的非第二中央处理器21的控制器完成相应的操作。使事务从机20的第二中央处理器21不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
为了方便理解一个事务从开始到最后执行如何进行,下面将事务从机20如何采用非第二中央处理器21的控制器加载和执行从机操作序列的步骤在该部分进行描述。应当理解的是,以下解释事务从机20如何采用非第二中央处理器21的控制器加载和执行从机操作序列的方式并不作为对事务主机10的限定。参考图1及图2,在第二DMA控制器24内设置有第二命令序列装载器,第二命令序列装载器用于读取第二内存22中的从机操作序列,并加载从机操作序列,使第二外部存储器控制器25执行从机操作序列。通过修改第二DMA控制器24,在其内增设第二命令序列装载器,第二命令序列装载器能够拾取第二内存22中的从机操作序列,并配置相应的寄存器进行加载,使第二命令序列装载器完成原来由第二中央处理器21完成的搬运数据到第二内存22或者到第二网卡23内部缓冲区的操作序列进行加载的操作。具体实现时,第二命令序列装载器从第二内存22的固定位置把远端事务主机10传输过来的从机操作序列(scatter/gather table,发散/聚集表)附加到本地的发散/聚集表之后,并设置相应的寄存器序列,然后启动传输,用于在无事务从机20的第二中央处理器21支持下的独立读盘、写盘等操作。
下面结合附图3介绍事务主机10远程读取事务从机20的数据操作方式。此时,第二外存储器内还存储有事务主机10需要读取的待读取数据。事务主机10生成的从机操作序列中还包含有将待读取数据传输到第二内存22的操作序列,以使第二DMA控制器24加载从机操作序列时,控制第二外部存储器控制器25将待读取数据从第二外存储器传送到第二内存22。即先完成将待读取数据由第二外存储器向第二内存22的传输,以便于后续第二网卡23读取待读取数据,并传输给事务主机10。具体实现时,该从机操作序列中还包含有将待读取数据传输给第一内存12的操作序列,以使第二DMA控制器24加载从机操作序列时,事务从机20的第二网卡23读取待读取数据,并通过第一网卡13传输给第一内存12。从而便于事务主机10的第一中央处理器11能够从第一内存12中直接读取该待读取数据。在事务主机10需要远程读取事务从机20的第二外存储器中存储的待读取数据时,使事务主机10生成的从机操作序列中包含有对事务从机20进行读盘的操作序列,由事务从机20的第二DMA控制器24加载,控制第二外存储器控制器进行执行即可。在此过程中,无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。
另外,可以将该待读取数据在本地落盘,以便于后续第一中央处理器11再次用到该待读取数据时,能够直接从本地的外存储器中进行调取,从而无需远程调取,减少时延。在此过程中,该事务主机10还包括第一DMA控制器14、第一外存储器、以及第一外部存储器控制器15。在第一内存12中还存储有事务主机10的主机文件描述符。第一中央处理器11能够根据主机文件描述符,生成将待读取数据写入第一外存储器的主机操作序列(OperationSequence Master,简称OPSM,图中的“操作序列M”表示主机操作序列,对应的,图中的“操作序列M&S”表示主机操作序列和从机操作序列),并将主机操作序列写入第一内存12。其中,主机操作序列可以和从机操作序列一并生成。可以在第一DMA控制器14中设置有第一命令序列装载器,第一命令序列装载器用于加载主机操作序列,以将待读取数据写入第一外存储器。采用该方式,在事务主机10从远程读取数据后,可以通过第一DMA控制器14加载主机操作序列即可完成本地的落盘操作,无需事务主机10的中央处理器参与落盘,使事务主机10的中央处理器无需进行上下文切换,减少事务主机10的时延,提高分布式系统的性能。具体实现时,第一命令序列装载器把主机操作序列(scatter/gather table,发散/聚集表)附加到本地的发散/聚集表之后,并设置相应的寄存器序列,然后启动传输,用于在无事务主机10的第一中央处理器11支持下的独立读盘、写盘等操作。
在应用过程中,还经常需要事务主机10将其自身生成的待存储数据远程存储到事务从机20的第二外存储器中,下面结合图4介绍常见的事务主机10将其自身生成的待存储数据,远程传输给事务从机20,并在事务从机20进行写盘的事务操作。具体的,参考图1及图2,在第一中央处理器11进行数据处理过程中,会生成待存储数据,并将待存储数据写入第一内存12。之后,第一网卡13从第一内存12中读取待存储数据,并将待存储数据传输给第二内存22。具体的传输方式和前述从机操作序列由第一网卡13向第二网卡23的传输方式相同。故而,可以使第一中央处理器11生成待存储数据时,一并生成从机操作序列,并使从机操作序列和待存储数据一起传输给第二网卡23,由第二网卡23将待存储数据和从机操作序列一并存储在第二内存22中。此时,从机操作序列中包含有将待存储数据写入事务从机20的第二外存储器的操作序列,在第二DMA控制器24加载从机操作序列时,能够控制第二外部存储器控制器25将待存储数据由第二内存22写入第二外存储器。具体的,先将待存储数据由第二内存22传输到第二外部存储器控制器25,再由第二外部存储器控制器25写入到第二外存储器中,完成数据落盘操作。采用该方式,在事务主机10需要将待存储数据远程传输给事务从机20并在事务从机20中进行写盘时,事务主机10的第一中央处理器11提前生成包含有写盘操作的从机操作序列,由事务从机20的第二DMA控制器24加载,控制第二外部存储器控制器25进行写盘操作。在此过程中,无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。
另外,在事务主机10将待存储数据远程传输到事务从机20的过程中,还可以将该待存储数据写入本地的外存储器,完成在本地的落盘。具体实现时,参考图1及图2,第一中央处理器11的主机操作序列中包含有将待存储数据写入第一外存储器的操作序列,在第一命令序列装载器加载主操作序列时,能够使第一外部存储器控制器15将所述待存储数据由第一内存12写入第一外存储器。具体的,先将第一内存12中的待存储数据传输给第一外部存储器控制器15,之后由第一外部存储器控制器15将待存储数据写入第一外存储器中,完成数据的落盘。主机操作序列可以和从机操作序列一并生成,即在事务主机10的中央处理器生成待存储数据后,可以同时生成将该待存储数据在本地落盘的主机操作序列。在第一命令序列装载器加载主机操作序列时,能够使第一外部存储器控制器15执行落盘到本地的第一外存储器的操作。在此过程中,事务主机10的中央处理器生成主机操作序列即可,无需事务主机10的中央处理器参与落盘,使事务主机10的中央处理器无需进行上下文切换,减少事务主机10的时延,提高分布式系统的性能。
在第一DMA控制器14具体旁路掉第一中央处理器11,进行主机操作序列的加载时,参考图1及图2,可以通过设置第一中断提取及重定向模块16实现。由第一中断提取及重定向模块16在将主机操作序列传输到第一内存12后,截获第一根桥设备提交的带有设定标识的中断信号,并重定向到第一命令序列装载器。便于及时截获能够由第一命令序列装载器进行加载执行的主机操作序列,从而无需使事务主机10的中央处理器参与落盘,使事务主机10的中央处理器无需进行上下文切换,减少事务主机10的时延,提高分布式系统的性能。具体的,第一网卡13完成数据传输后,会发出事件完成中断。此类型的中断一般在PCIe的根桥设备(Root Complex,RC),会根据设备提交的MSI/MSI-x提取中断信号,并提交到总线上。第一中断提取及重定向模块16负责根据当前的传输模式,从第一网卡13完成数据传输后的中断信号中,分离出带有设定标识的中断信号,并重定向到第一命令序列装载器。具体的,在第一根桥设备提取MSI/MSI-X中断信号,在第一根桥设备中提取该中断信号时,会判断当前第一网卡13进行DMA操作是否为多机旁路模式。若判断结果为是,则把该中断信号定向到第一中断提取及重定向模块16,由第一DMA控制器14控制。中断信息中携带第一网卡13的中断号,第一DMA控制器14可以根据这个中断号定位第一内存12中,其他设备送来的控制信息和数据DMA操作描述符。第一DMA控制器14启动执行第一命令序列装载器,自动完成主机操作序列指示的操作。可以在第一DMA控制器14中设置可共享远端或者独立写盘标识(Sharable Access,简称SA,图中的SA0表示在事务主机上设置的SA),来识别带有设定标识的中断信号。由于在事务主机10和事务从机20进行数据Copy(复制)模式中,从存储操作的角度看,事务主机10和事务从机20是等效的底层接口,通过设置SA用于通知事务主机10和事务从机20的操作系统的当前状态。
需要额外说明的是,前述事务主机10远程读取事务从机20中的待读取数据的实施方式,和事务主机10将其自身生成的待存储数据远程存储到事务从机20的实施方式,属于两个相互独立的实施方式,该两个实施方式可以同时进行,也可以分开进行,也可以只进行其中的一个实施方式。
参考图2,还可以在第一内存12中定义第一共享文件参数内存区17(Shared FileDescription Memory,简称SFDM),该第一共享文件参数内存区17用于保存事务操作过程中需要的文件描述符、以及各种数据。第一中央处理器11、第一网卡13、第一DMA控制器14以及第一外部存储器控制器15均可以访问第一共享文件参数内存区17,以减少数据复制,提高操作速度,减少时延。
通过提前将事务从机20的文件描述符透传给事务主机10,由事务主机10根据从机文件描述符,生成由事务从机20执行的从机操作序列;之后将从机操作序列传输给事务从机20,由事务从机20的第二DMA控制器24加载从机操作序列,使事务从机20的第二外部存储器控制器25进行执行,从而旁路掉事务从机20的中央处理器。在将事务从机20的外部存储器中的数据进行迁移时,由于无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机10的第一中央处理器11和事务从机20的非第二中央处理器21的控制器完成相应的操作。使事务从机20的第二中央处理器21不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
另外,本发明实施例还提供了一种基于分布式系统的事务从机20,参考图1及图2,该事务从机20包括第二中央处理器21、第二内存22、第二网卡23、第二外部存储器控制器25、第二DMA控制器24。其中的第二内存22同样可以采用随机存取存储器(Random AccessMemory,RAM),用于暂时存放第二中央处理器21中的运算数据,作为与磁盘、固态盘等外存储器进行数据交换的桥梁。该第二内存22用于存储事务从机20的从机文件描述符。参考图1及图2,第二网卡23用于读取第二内存22中的从机文件描述符,并将从机文件描述符透传给事务主机10的第一内存12。具体实现透传的方式参考前述关于事务主机10部分的描述,在此不再赘述。第二网卡23还用于接收事务主机10传输过来的从机操作序列,并将从机操作序列传输给第二内存22。且在第二DMA控制器24内设置有第二命令序列装载器,第二命令序列装载器用于加载从机操作序列,使第二外部存储器控制器25执行从机操作序列。
通过提前将事务从机20的文件描述符透传给事务主机10,由事务主机10根据从机文件描述符,生成由事务从机20执行的从机操作序列;之后将从机操作序列传输给事务从机20,在第二DMA控制器24中设置第二命令序列装载器,由第二命令序列装载器加载从机操作序列,使事务从机20的第二外部存储器控制器25进行执行,从而旁路掉事务从机20的中央处理器。在将事务从机20的外部存储器中的数据进行迁移时,由于无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机10的第一中央处理器11和事务从机20的非第二中央处理器21的控制器完成相应的操作。使事务从机20的第二中央处理器21不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
在第二DMA控制器24具体旁路掉第二中央处理器21,进行从机操作序列的加载时,参考图1及图2,可以通过设置第二中断提取及重定向模块26实现。由第二中断提取及重定向模块26在第二网卡23将从机操作序列传输到第二内存22后,截获第二根桥设备提交的带有设定标识的中断信号,并重定向到第二命令序列装载器。便于及时截获能够由第二命令序列装载器进行加载执行的从机操作序列,从而无需使需事务从机20的中央处理器参与读盘、写盘、数据迁移等,使事务从机20的第二中央处理器21无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。具体的,第二网卡23在完成数据传输后,会发出事件完成中断。此类型的中断一般在PCIe的根桥设备(Root Complex,RC),会根据设备提交的MSI/MSI-x提取中断信号,并提交到总线上。第二中断提取及重定向模块26负责根据当前的传输模式,从第二网卡23完成数据传输后的中断信号中,分离出带有设定标识的中断信号,并重定向到第二命令序列装载器。具体的,在第二根桥设备提取MSI/MSI-X中断信号,在第二根桥设备中提取该中断信号时,会判断当前第二网卡23进行DMA操作是否为多机旁路模式。若判断结果为是,则把该中断信号定向到第二中断提取及重定向模块26,由第二DMA控制器24控制。中断信息中携带第二网卡23的中断号,第二DMA控制器24可以根据这个中断号定位第二内存22中,其他设备送来的控制信息和数据DMA操作描述符。第二DMA控制器24启动执行第二命令序列装载器,自动完成从机操作序列指示的操作。可以在第二DMA控制器24中设置可共享远端或者独立写盘标识(Sharable Access,简称SA,图中的SA1表示在事务从机上设置的SA),来识别带有设定标识的中断信号。由于在事务主机10和事务从机20进行数据Copy(复制)模式中,从存储操作的角度看,事务主机10和事务从机20是等效的底层接口,通过设置SA用于通知事务主机10和事务从机20的操作系统的当前状态。
在事务主机10远程读取该待读取数据时,从机操作序列中还包含有将待读取数据传输到第二内存22的操作序列,使第二命令序列装载器加载从机操作序列时,能够控制第二外部存储器控制器25将待读取数据从第二外存储器传输到第二内存22。即先将第二外存储器中的待读取数据传输给第二外部存储器控制器25,由第二外部存储器控制器25将该待读取数据传输到第二内存22。此时,从机操作序列中还包含有将待读取数据传输给事务主机10的第一内存12的操作序列,以使第二命令序列装载器加载从机操作序列时,第二网卡23读取第二内存22内的待读取数据,并通过事务主机10的第一网卡13传输给第一内存12。该从机操作序列的生成以及传输方式参考前述关于事务主机10部分的描述,在此不再赘述。采用该方式,在事务主机10需要远程读取事务从机20的第二外存储器中存储的待读取数据时,使事务主机10生成的从机操作序列中包含有对事务从机20进行读盘的操作序列,由第二命令序列装载器加载,控制第二外存储器控制器进行执行即可。在此过程中,无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。
另外,在应用过程中,还经常存在事务主机10将生成的待存储数据远程存储到第二外存储器中的情况。在前述示出的事务主机10将其自身生成的待存储数据,远程传输给事务从机20,并在事务从机20进行写盘的事务操作时。参考图1及图2,该事务从机20还包括第二外存储器。此时,从机操作序列中包含有将事务主机10传输过来的待存储数据写入第二外存储器的操作序列,使第二命令序列装载器加载从机操作序列时,能够控制第二外部存储器控制器25将待存储数据由第二内存22写入第二外存储器。事务主机10如何生成该从机操作序列、以及如何传输到事务从机20的第二内存22中的方式,参考前述关于事务主机10部分的描述,在此不再赘述。在将待存储数据写入第二外存储器时,由第二命令序列装载器加载从机操作序列,控制第二外部存储器控制器25将待存储数据由第二内存22写入第二外存储器。具体的,先将待存储数据由第二内存22传输到第二外部存储器控制器25,再由第二外部存储器控制器25写入到第二外存储器中,完成数据落盘操作。采用该方式,在事务主机10需要将待存储数据远程传输给事务从机20并在事务从机20中进行写盘时,事务主机10的第一中央处理器11提前生成包含有写盘操作的从机操作序列,由第二命令序列装载器加载,控制第二外部存储器控制器25进行写盘操作。在此过程中,无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。
需要额外说明的是,前述事务主机10远程读取事务从机20中的待读取数据的实施方式,和事务主机10将其自身生成的待存储数据远程存储到事务从机20的实施方式,属于两个相互独立的实施方式,该两个实施方式可以同时进行,也可以分开进行,也可以只进行其中的一个实施方式。
参考图2,还可以在第二内存22中定义第二共享文件参数内存区27(Shared FileDescription Memory,简称SFDM),该第二共享文件参数内存区27用于保存事务操作过程中需要的从机操作序列、以及各种数据。第二中央处理器21、第二网卡23、第二DMA控制器24以及第二外部存储器控制器25均可以访问第二共享文件参数内存区27,以减少数据复制,提高操作速度,减少时延。
另外,本发明实施例还提供了一种分布式系统,参考图1及图2,该分布式系统包括至少两台主机,至少两台主机中包含事务主机10和事务从机20。事务主机10包括第一中央处理器11、第一内存12、第一网卡13及第一DMA控制器14;事务从机20包括第二中央处理器21、第二内存22、第二网卡23、第二DMA控制器24及第二外部存储器控制器25。其中,第二内存22用于存储事务从机20的从机文件描述符。第二网卡23用于读取从机文件描述符,并将从机文件描述符透传给第一内存12。第一中央处理器11用于根据从机文件描述符,生成从机操作序列,并将从机操作序列写入第一内存12。第一网卡13用于从第一内存12中读取从机操作序列,并将从机操作序列传输给第二内存22。且第二网卡23还用于接收第一网卡13传输过来的从机操作序列,并将从机操作序列传输给第二内存22。在第二DMA控制器24内设置有第二命令序列装载器,第二命令序列装载器用于加载从机操作序列,使第二外部存储器控制器25执行从机操作序列。
通过提前将事务从机20的文件描述符透传给事务主机10,由事务主机10根据从机文件描述符,生成由事务从机20执行的从机操作序列;之后将从机操作序列传输给事务从机20,在第二DMA控制器24中设置第二命令序列装载器,由第二命令序列装载器加载从机操作序列,使事务从机20的第二外部存储器控制器25进行执行,从而旁路掉事务从机20的中央处理器。在将事务从机20的外部存储器中的数据进行迁移时,由于无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机10的第一中央处理器11和事务从机20的非第二中央处理器21的控制器完成相应的操作。使事务从机20的第二中央处理器21不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
各个硬件具体的设置及工作方式参考前述关于事务主机10和事务从机20部分的描述,在此不再赘述。且需要说明的是,前述关于事务主机10和事务从机20中描述的每一个操作及功能模块,都能够应用到本发明实施例所请求保护的分布式系统中。
再者,本发明实施例还提供了一种基于分布式系统的事务处理方法。参考图1及图2,该分布式系统至少包括事务主机10和事务从机20;事务主机10包括第一中央处理器11、第一内存12、第一网卡13及第一DMA控制器14;事务从机20包括第二中央处理器21、第二内存22、第二网卡23、第二DMA控制器24及第二外部存储器控制器25。参考图5,该事务处理方法包括:
Step10:第二网卡23读取第二内存22的从机文件描述符,并透传给第一内存12;
Step20:第一中央处理器11根据从机文件描述符,生成从机操作序列,并将从机操作序列写入第一内存12;
Step30:第一网卡13从第一内存12中读取从机操作序列,并将从机操作序列传输给第二内存22;
Step40:第二DMA控制器24内的第二命令序列装载器加载从机操作序列,使第二外部存储器控制器25执行从机操作序列。
在上述的方案中,通过提前将事务从机20的文件描述符透传给事务主机10,由事务主机10根据从机文件描述符,生成由事务从机20执行的从机操作序列;之后将从机操作序列传输给事务从机20,在第二DMA控制器24中设置第二命令序列装载器,由第二命令序列装载器加载从机操作序列,使事务从机20的第二外部存储器控制器25进行执行,从而旁路掉事务从机20的中央处理器。在将事务从机20的外部存储器中的数据进行迁移时,由于无需事务从机20的中央处理器参与,使事务从机20的中央处理器无需进行上下文切换,减少事务从机20的时延,提高分布式系统的性能。即本申请在涉及数据落盘、数据在内存中的搬移等不涉及数据处理的事务,诸如分布式系统的多副本传输事务、数据库读写分离模式时的数据流备份事务等,可由事务主机10的第一中央处理器11和事务从机20的非第二中央处理器21的控制器完成相应的操作。使事务从机20的第二中央处理器21不参与或尽量少的参与此类事务的操作,减少延时,提高时延敏感的分布式系统的整体性能,满足高速通信过程中对低时延的要求,缓解NUMA系统中时延更严重的问题。
每个步骤的具体工作方式参考前述关于事务主机10和事务从机20部分的描述,在此不再赘述。且需要注意的是,前述关于事务主机10和事务从机20中描述的每一个操作,都能够应用到本发明实施例所请求保护的基于分布式系统的事务处理方法中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (11)

1.一种基于分布式系统的事务主机,其中,所述分布式系统还至少包括事务从机,其特征在于,所述事务主机包括:
第一内存,用于保存所述事务从机透传过来的从机文件描述符;
第一中央处理器,用于根据所述从机文件描述符,生成从机操作序列,并将所述从机操作序列写入所述第一内存;
第一网卡,用于从所述第一内存中读取所述从机操作序列,并将所述从机操作序列传输给所述事务从机的第二内存,由所述事务从机的第二DMA控制器加载所述从机操作序列,使所述事务从机的第二外部存储器控制器执行所述从机操作序列。
2.如权利要求1所述的事务主机,其特征在于,所述第一中央处理器还用于生成待存储数据,并将所述待存储数据写入所述第一内存;
所述第一网卡还用于从所述第一内存中读取所述待存储数据,并将所述待存储数据传输给所述第二内存;
所述从机操作序列中包含有将所述待存储数据写入所述事务从机的第二外存储器的操作序列,以使所述第二DMA控制器加载所述从机操作序列时,能够控制所述第二外部存储器控制器将所述待存储数据由第二内存写入所述第二外存储器。
3.如权利要求2所述的事务主机,其特征在于,还包括第一DMA控制器、第一外存储器、以及第一外部存储器控制器;
其中,所述第一内存中还存储有所述事务主机的主机文件描述符;
所述第一中央处理器还用于根据所述主机文件描述符,生成将所述待存储数据写入所述第一外存储器的主机操作序列,并将所述主机操作序列写入所述第一内存;
所述第一DMA控制器中设置有第一命令序列装载器,所述第一命令序列装载器用于加载所述主机操作序列,以使所述第一外部存储器控制器将所述待存储数据由所述第一内存写入所述第一外存储器。
4.如权利要求1所述的事务主机,其特征在于,还包括第一DMA控制器以及第一外存储器;
所述事务从机的第二外存储器内存储有所述事务主机需要读取的待读取数据;
其中,所述从机操作序列中包含有将所述待读取数据传输到所述第二内存的操作序列,以使所述第二DMA控制器加载所述从机操作序列时,控制所述第二外部存储器控制器将所述待读取数据从所述第二外存储器传输到所述第二内存;
所述从机操作序列中还包含有将所述待读取数据传输给所述第一内存的操作序列,以使所述第二DMA控制器加载所述从机操作序列时,控制所述事务从机的第二网卡读取所述待读取数据,并通过所述第一网卡传输给所述第一内存;
所述第一内存中还存储有所述事务主机的主机文件描述符;所述第一中央处理器还用于根据所述主机文件描述符,生成将所述待读取数据写入所述第一外存储器的主机操作序列,并将所述主机操作序列写入所述第一内存;
所述第一DMA控制器中设置有第一命令序列装载器,所述第一命令序列装载器用于加载所述主机操作序列,以使所述第一命令序列装载器加载所述主机操作序列时,将所述待读取数据由所述第一内存写入所述第一外存储器。
5.如权利要求3或4所述的事务主机,其特征在于,还包括第一根桥设备、以及第一中断提取及重定向模块;
其中,所述第一中断提取及重定向模块用于在将所述主机操作序列传输到所述第一内存后,截获所述第一根桥设备提交的带有设定标识的中断信号,并重定向到所述第一命令序列装载器。
6.一种基于分布式系统的事务从机,其中,所述分布式系统还至少包括事务主机,其特征在于,所述事务从机包括:
第二中央处理器;
第二内存,用于存储所述事务从机的从机文件描述符;
第二网卡,用于读取所述从机文件描述符,并将所述从机文件描述符透传给所述事务主机的第一内存;还用于接收所述事务主机传输过来的从机操作序列,并将所述从机操作序列传输给所述第二内存;
第二外部存储器控制器;
第二DMA控制器,所述第二DMA控制器内设置有第二命令序列装载器,所述第二命令序列装载器用于加载所述从机操作序列,使所述第二外部存储器控制器执行所述从机操作序列。
7.如权利要求6所述的事务从机,其特征在于,还包括第二外存储器;
其中,所述从机操作序列中包含有将所述事务主机传输过来的待存储数据写入所述第二外存储器的操作序列,使所述第二命令序列装载器加载所述从机操作序列时,能够控制所述第二外部存储器控制器将所述待存储数据由所述第二内存写入所述第二外存储器。
8.如权利要求6所述的事务从机,其特征在于,还包括第二外存储器,所述第二外存储器内存储有所述事务主机需要读取的待读取数据;
所述从机操作序列中包含有将所述待读取数据传输到所述第二内存的操作序列,使所述第二命令序列装载器加载所述从机操作序列时,能够控制所述第二外部存储器控制器将所述待读取数据从所述第二外存储器传输到所述第二内存;
所述从机操作序列中还包含有将所述待读取数据传输给所述事务主机的第一内存的操作序列,以使所述第二命令序列装载器加载所述从机操作序列时,所述第二网卡读取所述第二内存内的待读取数据,并通过所述事务主机的第一网卡传输给所述第一内存。
9.如权利要求6所述的事务从机,其特征在于,还包括第二根桥设备、以及第二中断提取及重定向模块;
其中,所述第二中断提取及重定向模块用于在所述第二网卡将所述从机操作序列传输到所述第二内存后,截获所述第二根桥设备提交的带有设定标识的中断信号,并重定向到所述第二命令序列装载器。
10.一种分布式系统,其特征在于,包括至少两台主机,所述至少两台主机中包含事务主机和事务从机;其中,所述事务主机包括第一中央处理器、第一内存、第一网卡及第一DMA控制器;所述事务从机包括第二中央处理器、第二内存、第二网卡、第二DMA控制器及第二外部存储器控制器;
其中,所述第二内存用于存储所述事务从机的从机文件描述符;
所述第二网卡用于读取所述从机文件描述符,并将所述从机文件描述符透传给所述第一内存;
所述第一中央处理器用于根据所述从机文件描述符,生成从机操作序列,并将所述从机操作序列写入所述第一内存;
所述第一网卡用于从所述第一内存中读取所述从机操作序列,并将所述从机操作序列传输给所述第二内存;
所述第二网卡还用于接收所述第一网卡传输过来的从机操作序列,并将所述从机操作序列传输给所述第二内存;
所述第二DMA控制器内设置有第二命令序列装载器,所述第二命令序列装载器用于加载所述从机操作序列,使所述第二外部存储器控制器执行所述从机操作序列。
11.一种基于分布式系统的事务处理方法,其中,所述分布式系统至少包括事务主机和事务从机;所述事务主机包括第一中央处理器、第一内存、第一网卡及第一DMA控制器;所述事务从机包括第二中央处理器、第二内存、第二网卡、第二DMA控制器及第二外部存储器控制器;其特征在于,所述事务处理方法包括:
所述第二网卡读取所述第二内存内的从机文件描述符,并透传给所述第一内存;
所述第一中央处理器根据所述从机文件描述符,生成从机操作序列,并将所述从机操作序列写入所述第一内存;
所述第一网卡从所述第一内存中读取所述从机操作序列,并将所述从机操作序列传输给所述第二内存;
所述第二DMA控制器内的第二命令序列装载器加载所述从机操作序列,使所述第二外部存储器控制器执行所述从机操作序列。
CN202110625851.5A 2021-06-04 2021-06-04 基于分布式系统的事务主机、事务从机及事务处理方法 Pending CN113296899A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110625851.5A CN113296899A (zh) 2021-06-04 2021-06-04 基于分布式系统的事务主机、事务从机及事务处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110625851.5A CN113296899A (zh) 2021-06-04 2021-06-04 基于分布式系统的事务主机、事务从机及事务处理方法

Publications (1)

Publication Number Publication Date
CN113296899A true CN113296899A (zh) 2021-08-24

Family

ID=77327197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110625851.5A Pending CN113296899A (zh) 2021-06-04 2021-06-04 基于分布式系统的事务主机、事务从机及事务处理方法

Country Status (1)

Country Link
CN (1) CN113296899A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114401218A (zh) * 2021-12-28 2022-04-26 绿盟科技集团股份有限公司 一种数据报文的旁路转发方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1713164A (zh) * 2005-07-21 2005-12-28 复旦大学 可自主处理多事务传输要求的dma控制器及数据传输方法
US20060095604A1 (en) * 2004-10-28 2006-05-04 Edirisooriya Samantha J Implementing bufferless DMA controllers using split transactions
US20080140878A1 (en) * 2006-12-08 2008-06-12 Ofer Bar-Shalom System and method for peripheral device communications
CN109213631A (zh) * 2018-08-22 2019-01-15 郑州云海信息技术有限公司 一种事务处理方法、装置、设备及可读存储介质
CN110045912A (zh) * 2018-01-16 2019-07-23 华为技术有限公司 数据处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060095604A1 (en) * 2004-10-28 2006-05-04 Edirisooriya Samantha J Implementing bufferless DMA controllers using split transactions
CN1713164A (zh) * 2005-07-21 2005-12-28 复旦大学 可自主处理多事务传输要求的dma控制器及数据传输方法
US20080140878A1 (en) * 2006-12-08 2008-06-12 Ofer Bar-Shalom System and method for peripheral device communications
CN110045912A (zh) * 2018-01-16 2019-07-23 华为技术有限公司 数据处理方法和装置
CN109213631A (zh) * 2018-08-22 2019-01-15 郑州云海信息技术有限公司 一种事务处理方法、装置、设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114401218A (zh) * 2021-12-28 2022-04-26 绿盟科技集团股份有限公司 一种数据报文的旁路转发方法及装置
CN114401218B (zh) * 2021-12-28 2023-07-21 绿盟科技集团股份有限公司 一种数据报文的旁路转发方法及装置

Similar Documents

Publication Publication Date Title
JP3694273B2 (ja) 多重パスi/o要求機構を有するデータ処理システム
US10922135B2 (en) Dynamic multitasking for distributed storage systems by detecting events for triggering a context switch
EP0130349B1 (en) A method for the replacement of blocks of information and its use in a data processing system
US6636908B1 (en) I/O system supporting extended functions and method therefor
US6735636B1 (en) Device, system, and method of intelligently splitting information in an I/O system
EP1466255B1 (en) Supercharge message exchanger
US5335327A (en) External memory control techniques with multiprocessors improving the throughput of data between a hierarchically upper processing unit and an external memory with efficient use of a cache memory
US5201053A (en) Dynamic polling of devices for nonsynchronous channel connection
CN106066890B (zh) 一种分布式高性能数据库一体机系统
CN104541244A (zh) 用于进行重放执行的方法和系统
CN102207886A (zh) 虚拟机快速仿真辅助
US20060206663A1 (en) Disk array device and shared memory device thereof, and control program and control method of disk array device
CN110119304B (zh) 一种中断处理方法、装置及服务器
EP0133015B1 (en) Data transfer system
CN105681402A (zh) 一种基于PCIe闪存卡的分布式高速数据库集成系统
US7007126B2 (en) Accessing a primary bus messaging unit from a secondary bus through a PCI bridge
US20150006825A9 (en) Method and Apparatus for Memory Write Performance Optimization in Architectures with Out-of-Order Read/Request-for-Ownership Response
CN113296899A (zh) 基于分布式系统的事务主机、事务从机及事务处理方法
CN114661239B (zh) 一种基于nvme硬盘的数据交互系统及方法
CN114153634B (zh) 基于国产龙芯处理器的进程间通信系统及操作平台
US20060277326A1 (en) Data transfer system and method
CN111611104B (zh) 一种InfluxDB数据备份方法、系统及终端设备
CN104391763B (zh) 基于设备视图冗余的众核处理器容错方法
JP2615677B2 (ja) 共用拡張記憶制御方式
CN100371916C (zh) Scsi磁盘记录装置与方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination