CN113342480B - 一种事务处理系统、事务处理方法及主机系统 - Google Patents
一种事务处理系统、事务处理方法及主机系统 Download PDFInfo
- Publication number
- CN113342480B CN113342480B CN202110701526.2A CN202110701526A CN113342480B CN 113342480 B CN113342480 B CN 113342480B CN 202110701526 A CN202110701526 A CN 202110701526A CN 113342480 B CN113342480 B CN 113342480B
- Authority
- CN
- China
- Prior art keywords
- memory module
- transaction
- module
- processor core
- transaction request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本发明提供一种事务处理系统、事务处理方法及主机系统,该事务处理系统包括至少两个处理器内核组、至少两个内存模块。将主内存模块中需要加锁的数据内存镜像到镜像内存模块中,由镜像内存模块及其对应的处理器内核组处理事务请求接收模块中的部分需要被处理的事务请求,使主内存模块及其对应的处理器内核组和镜像内存模块及其对应的处理器内核组同时处理事务请求,形成事务分区处理方式,降低事务处理时对数据资源的争用现象。在镜像内存模块及其对应的处理器内核组处理完上述事务请求之后,将处理结果提交给事务冲突检测模块,检测处理结果和主内存模块中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,满足数据库的强一致性要求。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种事务处理系统、事务处理方法及主机系统。
背景技术
数据库执行事务处理时,为满足强一致性或者事务隔离级别的要求,需要锁定数据库中的数据表、数据页、记录行以及其他相关的数据,例如索引、日志等。数据库资源加锁,会导致严重的资源竞争,从而导致性能下降。为优化数据库资源锁,多版本控制(Multi-Version Concurrency Control,MVCC)技术用来改善数据库资源锁的争用。但由于CPU(Central Processing Unit,中央处理器)核数众多以及NUMA(Non-uniform MemoryAccess,非一致性内存访问)系统跨节点的超长时延,即使采用数据库资源锁多版本控制以优化事务访问的并发,还是会产生非常严重的竞争,导致性能下降。
发明内容
本发明提供了一种事务处理系统、事务处理方法及主机系统,以改善由于数据库资源锁过多而引起的性能下降问题,提高整体性能。
第一方面,本发明提供了一种事务处理系统,该事务处理系统包括至少两个处理器内核组、以及至少两个内存模块。其中,每个处理器内核组至少包含有一个处理器内核;该至少两个内存模块和至少两个处理器内核组一一对应,每个内存模块直连对应的处理器内核组,该至少两个内存模块中包含有主内存模块、和除主内存模块之外的其他内存模块。在主内存模块中设置有事务请求接收模块,事务请求接收模块用于接收事务请求,并由主内存模块对应的处理器内核组处理事务请求。事务处理系统还包括性能受限监控模块,用于从其他内存模块中选择镜像内存模块,并将需要加锁的数据内存镜像到镜像内存模块中;且主内存模块还与镜像内存模块共享无需加锁的数据。事务处理系统还包括事务请求重定向模块,使镜像内存模块对应的处理器内核组处理事务请求接收模块中需要被处理的事务请求。镜像内存模块用于在其对应的处理器内核组处理完需要被处理的事务请求并生成处理结果后,向主内存模块提交处理结果。事务处理系统还包括事务冲突检测模块,事务冲突检测模块用于检测镜像内存模块提交的处理结果和主内存模块中的数据是否冲突;事务冲突检测模块还用于在检测结果为不冲突时,将处理结果进行提交。
在上述的方案中,通过将主内存模块中需要加锁的数据内存镜像到镜像内存模块中,由镜像内存模块及其对应的处理器内核组来处理事务请求接收模块中的部分需要被处理的事务请求,从而使主内存模块及其对应的处理器内核组和镜像内存模块及其对应的处理器内核组能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。在镜像内存模块及其对应的处理器内核组处理完上述需要被处理的事务请求之后,将处理结果提交给事务冲突检测模块,来检测处理结果和主内存模块中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。
在一个具体的实施方式中,性能受限监控模块具体用于在监控到单位时间内事务请求的增加量大于成功提交的处理结果增加量时,从其他内存模块中选择镜像内存模块,并将主内存模块中需要加锁的数据内存镜像到镜像内存中,由事务请求重定向模块使镜像内存模块对应的处理器内核组处理需要被处理的事务请求。以便于在主内存模块及其对应的处理器内核组的处理性能受限时,自动触发性能受限监控模块及事务请求重定向模块,实现事务处理系统的性能线性扩展。
在一个具体的实施方式中,事务冲突检测模块还用于在检测结果为冲突时,根据该一个事务请求对应的事务ID(Identity document,序列号)序列进行事务回滚,形成新的事务请求,并将新的事务请求传输给事务请求接收模块。以及时进行事务回滚,满足数据库的强一致性要求。
在一个具体的实施方式中,需要加锁的数据为数据库数据中的数据表、数据页和记录行中的至少一种数据;无需加锁的数据为数据库数据中的事务序列ID生成器、事务序列ID、日志记录、重做日志、事务语句解析和事务语句优化中的至少一种数据。通过仅内存镜像需要加锁的数据,提高内存镜像速度,从而提高整个事务处理系统的效率及性能。
在一个具体的实施方式中,主内存模块和镜像内存模块采用写时复制技术,将需要加锁的数据内存镜像到镜像内存模块中。以减少内存镜像数据的大小,节省镜像内存模块的内存空间。
在一个具体的实施方式中,性能受限监控模块根据其他内存模块中距离主内存模块的远近情况,和/或其他内存模块对应的处理器内核组的负载情况,从其他内存模块中选择镜像内存模块。以便于选择到合适的镜像内存模块及其对应的处理器内核组。
在一个具体的实施方式中,至少两个处理器内核组中的处理器内核均为同一多核处理器中的处理器内核;其中,该多核处理器中的多个处理器内核划分为至少两个处理器内核组。使主内存模块和镜像内存模块之间的距离较小,使内存镜像速度较快。
在一个具体的实施方式中,该多核处理器为多核非一致性内存访问处理器。便于结合不同节点的非一致性内存访问时延差异,充分利用本地内存时延小的特点,选择合适的镜像内存模块,提高事务处理系统的效率及整体性能。
在一个具体的实施方式中,至少两个处理器内核组形成在至少两路处理器组成中,每路处理器中所包含的处理器内核为一个处理器内核组。通过利用多路处理器的强大运算性能,提高事务处理系统的效率及整体性能。
在一个具体的实施方式中,该至少两路处理器组成非一致性内存访问处理器,便于结合不同节点的非一致性内存访问时延差异,充分利用本地内存时延小的特点,选择合适的镜像内存模块,提高事务处理系统的效率及整体性能。
第二方面,本发明还提供了一种事务处理方法,该事务处理方法应用于事务处理系统,其中,该事务处理系统包括至少两个处理器内核组、和该至少两个处理器内核组一一对应的至少两个内存模块,该至少两个内存模块中包含有主内存模块、和除主内存模块之外的其他内存模块,且每个内存模块直连对应的处理器内核组。该事务处理方法包括:主内存模块接收事务请求,并由主内存模块对应的处理器内核组处理该事务请求;从其他内存模块中选择镜像内存模块;将主内存模块中需要加锁的数据内存镜像到镜像内存模块中,且将主内存模块中无需加锁的数据共享给镜像内存模块;镜像内存模块对应的处理器内核组处理主内存模块中需要被处理的事务请求并生成处理结果;将处理结果提交给主内存模块;检测处理结果和主内存模块中的数据是否冲突;在检测结果为处理结果和主内存模块中的数据不冲突时,将处理结果进行提交。
在上述的方案中,通过将主内存模块中需要加锁的数据内存镜像到镜像内存模块中,由镜像内存模块及其对应的处理器内核组来处理事务请求接收模块中的部分需要被处理的事务请求,从而使主内存模块及其对应的处理器内核组和镜像内存模块及其对应的处理器内核组能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。在镜像内存模块及其对应的处理器内核组处理完上述需要被处理的事务请求之后,将处理结果提交给事务冲突检测模块,来检测处理结果和主内存模块中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。
在一个具体的实施方式中,该事务处理方法还包括:在从其他内存模块中选择镜像内存模块之前,监控单位时间内事务请求的增加量是否大于成功提交的处理结果增加量;在监控到单位时间内事务请求的增加量大于成功提交的处理结果增加量时,从其他内存模块中选择镜像内存模块。以便于在主内存模块及其对应的处理器内核组的处理性能受限时,自动触发性能受限监控模块及事务请求重定向模块,实现事务处理系统的性能线性扩展。
在一个具体的实施方式中,从其他内存模块中选择镜像内存模块具体为:根据其他内存模块中距离主内存模块的远近情况,和/或其他内存模块对应的处理器内核组的负载情况,从其他内存模块中选择镜像内存模块。以便于选择到合适的镜像内存模块及其对应的处理器内核组。
在一个具体的实施方式中,该事务处理方法还包括:在检测结果为处理结果和主内存模块中的数据冲突时,根据该一个事务请求对应的事务ID序列进行事务回滚,形成新的事务请求,并将新的事务请求传输给主内存模块。以及时进行事务回滚,满足数据库的强一致性要求。
第三方面,本发明还提供了一种主机系统,该主机系统包括上述任意一种事务处理系统。通过将主内存模块中需要加锁的数据内存镜像到镜像内存模块中,由镜像内存模块及其对应的处理器内核组来处理事务请求接收模块中的部分需要被处理的事务请求,从而使主内存模块及其对应的处理器内核组和镜像内存模块及其对应的处理器内核组能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。在镜像内存模块及其对应的处理器内核组处理完上述需要被处理的事务请求之后,将处理结果提交给事务冲突检测模块,来检测处理结果和主内存模块中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。
附图说明
图1为本发明实施例提供的一种事务处理系统的结构框图;
图2为本发明实施例提供的一种主内存模块和镜像内存模块联合实现业务流示意图;
图3为本发明实施例提供的事务处理系统执行事务处理的流程图;
图4为本发明实施例提供的一种事务处理方法的流程图。
附图标记:
10-处理器内核组20-主内存模块
21-事务请求接收模块30-镜像内存模块
41-事务请求重定向模块42-事务冲突检测模块
43-性能受限监控模块44-外存储器
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例提供的事务处理系统,下面首先说明一下本发明实施例提供的事务处理系统的应用场景,该事务处理系统应用于数据库管理过程中,用于处理事务请求并生成处理结果。下面结合附图对该事务处理系统进行详细的叙述。
参考图1及图2,本发明实施例提供的事务处理系统包括至少两个处理器内核组10、以及至少两个内存模块。其中,每个处理器内核组10至少包含有一个处理器内核;该至少两个内存模块和至少两个处理器内核组10一一对应,每个内存模块直连对应的处理器内核组10,该至少两个内存模块中包含有主内存模块20、和除主内存模块20之外的其他内存模块。在主内存模块20中设置有事务请求接收模块21,事务请求接收模块21用于接收事务请求,并由主内存模块20对应的处理器内核组10处理事务请求。事务处理系统还包括性能受限监控模块43,性能受限监控模块43用于从其他内存模块中选择镜像内存模块30,并将需要加锁的数据内存镜像到镜像内存模块30中;且主内存模块20还与镜像内存模块30共享无需加锁的数据。事务处理系统还包括事务请求重定向模块41,事务请求重定向模块41使镜像内存模块30对应的处理器内核组10处理事务请求接收模块21中需要被处理的事务请求。镜像内存模块30用于在其对应的处理器内核组10处理完上述需要被处理的事务请求并生成处理结果后,向主内存模块20提交处理结果。事务处理系统还包括事务冲突检测模块42,事务冲突检测模块42用于检测镜像内存模块30提交的处理结果和主内存模块20中的数据是否冲突;事务冲突检测模块42还用于在检测结果为不冲突时,将处理结果进行提交。
在上述的方案中,通过将主内存模块20中需要加锁的数据内存镜像到镜像内存模块30中,由镜像内存模块30及其对应的处理器内核组10来处理事务请求接收模块21中的部分需要被处理的事务请求,从而使主内存模块20及其对应的处理器内核组10和镜像内存模块30及其对应的处理器内核组10能够同时处理不同的事务请求,形成事务分区处理方式,降低处理不同事务请求过程中对数据资源的争用现象。在镜像内存模块30及其对应的处理器内核组10处理完事务请求之后,将处理结果提交给事务冲突检测模块42,来检测处理结果和主内存模块20中的数据是否存在冲突,并在不冲突时,才将处理结果提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。下面结合附图对上述各个结构进行详细的介绍。
在确定每个处理器内核组10中的处理器内核个数时,每个处理器内核组10中至少包含有一个处理器内核,如图1所示的每个CORE代表一个处理器内核。具体的,每个处理器内核组10中的处理器内核个数可以为1个、2个、3个、4个、5个等不少于1个的任意值。另外,每个处理器内核组10中的处理器内核个数可以相等,也可以不相等。
在确定处理器内核组10的组数时,处理器内核组10的组数可以为2组、3组、4组、5组等不少于2组的任意值。对应的,内存模块的个数与处理器内核组10的个数相等,每个内存模块均对应有一个处理器内核组10。如图1所示的处理器内核组10的组数为两组,内存模块的个数为两个。每个内存模块直连对应的处理器内核组10,设置时,每个内存模块可以直连对应的处理器内核组10中的所有处理器内核,使每个处理器内核均能够直接访问对应的内存模块,提高每个处理器内核读写对应的内存模块的效率。具体实现内存模块直连对应的处理器内核组10时,可以通过总线直连对应的处理器内核组10,具体的,该总线可以为数据总线、地址总线及控制总线的集合。
在具体设置至少两个处理器内核组10时,该至少两个处理器内核组10可以来自于同一台主机,其中,该台主机可以组成由单台主机构成的主机系统。当然,该台主机还可以为由多台主机组成的主机系统中的其中一台主机,即此时主机系统为由多台主机组成的分布式系统,该台主机为分布式系统中的其中一台主机。在上述至少两个处理器内核组10来自于同一台主机时,该至少两个处理器内核组10中的处理器内核可以来自于同一多核处理器中的多个处理器内核,此时,该多核处理器中的多个处理器内核划分为至少两个处理器内核组10。使主内存模块20和镜像内存模块30之间的距离较小,使内存镜像速度较快。同时由于主内存模块20和镜像内存模块30均属于同一路中的处理器,在对需要加锁的数据进行镜像内存时,能够保证在处理器缓存没有迁移或迁移代价较小的区域内,形成单独的镜像内存模块30。该多核处理器可以为多核非一致性内存访问处理器。便于结合不同节点的非一致性内存访问时延差异,充分利用本地内存时延小的特点,选择合适的镜像内存模块30,提高事务处理系统的效率及整体性能。应当理解的是,该多核处理器并不限于采用NUMA的内存架构设计方式,除此之外,还可以采用关闭NUMA特性,使操作系统认为所有的内存时延都一致的内存架构设计方式。
当然在至少两个处理器内核组10来自于同一台主机时,该至少两个处理器内核组10还可以形成在至少两路处理器组成中,每路处理器中所包含的处理器内核为一个处理器内核组10。通过利用多路处理器的强大运算性能,提高事务处理系统的效率及整体性能。至少两路处理器中的每路处理器可以均为单核处理器,还可以均为多核处理器,还可以部分处理器采用单核处理器,部分处理器采用多核处理器的设置方式。可以使该至少两路处理器为非一致性内存访问处理器,便于结合不同节点的非一致性内存访问时延差异,充分利用本地内存时延小的特点,选择合适的镜像内存模块30,提高事务处理系统的效率及整体性能。应当理解的是,该至少两路处理器并不限于采用NUMA的内存架构设计方式,除此之外,还可以采用关闭NUMA特性,使操作系统认为所有的内存时延都一致的内存架构设计方式。
需要额外说明的是,该至少两个处理器内核组10并不限于来自于同一台主机的设置方式,例如,该至少两个处理器内核组10还可以来自于分布式系统中的至少两台主机。具体的,可以使每个处理器内核组10可以来自于分布式系统中的一台主机,分布式系统中的每台主机贡献一个处理器内核组10。还可以使分布式系统中的每台主机10贡献至少两个处理器内核组10。在上述一个处理器内核组10和主内存模块20来自于分布式系统中的其中一台主机,而镜像内存模块30来自于分布式系统中的另一台主机时,两个处理器内核组10及内存模块进行数据传输的路径不仅包含每台主机内的总线传输方式,还包含不同主机之间采用网卡进行数据传输的方式。该数据传输路径不仅可以传输主内存模块20所接收的事务请求,还可以传输主内存模块20内的需要加锁和无需加锁的数据。
另外,参考图1,在至少两个内存模块中包含有一个主内存模块20(如图1~3中的MEM0表征主内存模块20)、和除主内存模块20之外的其他内存模块,其中,该主内存模块20对应的处理器内核组10为主处理器内核组,其他内存模块中的每个内存模块均对应一个处理器内核组10。如图3所示,在数据库启动之后,首先设置主内存模块20及其对应的处理器内核组10。参考图1,在主内存模块20中设置有事务请求接收模块21,用于接收事务请求,并由主内存模块20对应的处理器内核组10处理事务请求。即主内存模块20及对应的处理器内核组10作为处理事务请求的首选处理节点,在有新的事务处理请求后,首选由主内存模块20及对应的处理器内核组10进行处理。其中,事务请求接收模块21所接收的事务请求可以来自于客户输入,当然并不限于仅来自于客户输入,还可以来自于处理其他事务请求过程中生成的事务请求。
参考图1及图2,事务处理系统中还设置有性能受限监控模块42及事务请求重定向模块41,其中,性能受限监控模块42用于从其他内存模块中选择镜像内存模块30,并将需要加锁的数据内存镜像到镜像内存模块30中。且主内存模块20还与镜像内存模块30共享无需加锁的数据。事务请求重定向模块41使镜像内存模块30对应的处理器内核组10处理事务请求接收模块21中需要被处理的事务请求。即主内存模块20及对应的处理器内核组10在处理事务请求过程中,遇到需要加锁的数据时,由事务请求重定向模块42从其他的内存模块中选择镜像内存模块30,将该需要加锁的数据内存镜像到该镜像内存模块30中。且还使主内存模块20与镜像内存模块30能够共享无需加锁的数据,由事务请求重定向模块41使镜像内存模块30对应的处理器内核组10能够处理事务请求接收模块21中需要被处理的事务请求,使主内存模块20及其对应的处理器内核组10和镜像内存模块30及其对应的处理器内核组10能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。镜像内存模块30用于在其对应的处理器内核组10处理完上述需要被处理的事务请求并生成处理结果后,向主内存模块20提交处理结果。即镜像内存模块30及其对应的处理器内核组10处理完上述需要被处理的事务请求之后,会得到处理结果。之后需要将该处理结果传输到主内存模块20中。
其中,需要加锁的数据可以为数据库数据中的数据表、数据页和记录行中的至少一种数据,具体的,该需要加锁的数据可以为数据库数据中的数据表、数据页和记录行中的其中任意一种数据,该需要加锁的数据还可以为数据库数据中由数据表、数据页和记录行中的任意两种数据,当然,该需要加锁的数据还可以为数据库数据中的数据表、数据页和记录行。参考图2,无需加锁的数据为数据库数据中的事务序列ID生成器、事务序列ID、日志记录、重做日志、事务语句解析和事务语句优化中的至少一种数据。具体的,该无需加锁的数据可以为事务序列ID生成器、事务序列ID、日志记录、重做日志、事务语句解析和事务语句优化中的任意一种数据,该无需加锁的数据也可以为上述事务序列ID生成器、事务序列ID、日志记录、重做日志、事务语句解析和事务语句优化中的任意两种或两种以上的数据组合。通过仅内存镜像需要加锁的数据,提高内存镜像速度,从而提高整个事务处理系统的效率及性能。
可以使主内存模块20和镜像内存模块30采用写时复制技术,将需要加锁的数据内存镜像到镜像内存模块30中。形成独立特殊的附加表内存结构。以减少内存镜像数据的大小,节省镜像内存模块30的内存空间。另外,在将主内存模块20中需要加锁的数据同步到镜像内存模块30中时,可以只拷贝需要加锁的数据,而不拷贝具体给数据加的锁,以减少需要内存镜像的数据量,提高内存镜像速度。
在性能受限监控模块42选择镜像内存模块30时,性能受限监控模块42可以根据其他内存模块中距离主内存模块20的远近情况,和/或其他内存模块对应的处理器内核组10的负载情况,从其他内存模块中选择镜像内存模块30。以便于选择到合适的镜像内存模块30及其对应的处理器内核组10。具体的,性能受限监控模块42可以只根据其他内存模块中距离主内存模块20的远近情况,从其他内存模块中选择镜像内存模块30。优先选择距离主内存模块20较近的内存模块作为镜像内存模块30,以提高主内存模块20和镜像内存模块30之间进行内存镜像和数据共享的速度,减少时延。性能受限监控模块42还可以只根据其他内存模块对应的处理器内核组10的负载情况,从其他内存模块中选择镜像内存模块30。优选其他内存模块对应的处理器内核组10中的负载较少或空闲率较高的处理器内核组10来处理上述需要被处理的事务请求,此时,负载较少或空闲率较高的处理器内核组10对应的内存模块作为镜像内存模块30,来接收主内存模块20镜像过来的需要加锁的数据,使镜像内存模块30及其对应的处理器内核组10能够及时的处理事务请求,减少时延,提高整体性能。当然,性能受限监控模块42还可以既根据其他内存模块对应的处理器内核组10的负载情况,又根据其他内存模块中距离主内存模块20的远近情况,来从其他内存模块中选择镜像内存模块30。
另外,需要注意的是,在从其他内存模块中选择镜像内存模块30时,可以选择其他内存模块中的一个内存模块作为镜像内存模块30。如图1所示的是内存模块为两个,其中一个为主内存模块20,在选择镜像内存模块30时,只能选择另一个内存模块作为镜像内存模块30(如图1~3中的MEM1…MEMi中的每个MEM表征一个镜像内存模块30,其中i的值为任意的正整数)。在内存模块的总个数为3个或3个以上时,从其他内存模块中选择的镜像内存模块30的个数可以为1个,也可以为2个或2个以上。所选择的镜像内存模块30的个数最多可以为内存模块的总个数减去1,即除了主内存模块20之外的其他的所有内存模块均作为镜像内存模块30。镜像内存模块30的个数为2个或2个以上时,参与处理事务请求的处理器内核组10的组数也为2个或2个以上,即有多个镜像内存模块30及其对应的处理器内核组10参与处理事务请求。需要解释的是,在包含有主内存模块20和镜像内存模块30都参与处理事务请求时,每个内存模块及其对应的处理器内核组10所处理的事务请求可以不相同,即多个内存模块及其对应的处理器内核组10同时参与处理多个事务请求,任意两个内存模块及其对应的处理器内核组10所处理的事务请求内容可以不相同。
参考图1及图2,该事务处理系统中还设置有事务冲突检测模块42,事务冲突检测模块42用于检测镜像内存模块30提交的处理结果和主内存模块20中的数据是否冲突。参考图3,事务冲突检测模块42还用于在检测结果为不冲突时,将镜像内存模块30提交的处理结果进行提交。在镜像内存模块30及其对应的处理器内核组10处理完事务请求之后,将处理结果提交给事务冲突检测模块42,来检测处理结果和主内存模块20中的数据是否存在冲突,并在不冲突时,才将处理结果提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。在将处理结果进行提交时,可以提交给数据库系统,经数据库系统处理之后反馈给客户。另外,参考图1及图2,在将处理结果提交的同时,可以根据处理结果更新数据库,即将处理结果写入诸如磁盘的外存储器44中,进行落盘操作,实现永久保存。
当然,在事务冲突检测模块42检测结果为冲突时,参考图3,事务冲突模块还用于根据该一个事务请求对应的事务ID序列进行事务回滚,形成新的事务请求,并将新的事务请求传输给事务请求接收模块21。以及时进行事务回滚,满足数据库的强一致性要求。具体的,参考图3,若镜像内存模块30提交的处理结果和主内存模块20中的数据冲突,则根据事务ID序列的大小,进行事务回滚。其中的事务ID序列标识数据库中事务先后顺序的参数。事务ID较大者,这种事务在时序上为后来的任务,在出现冲突时,事务ID较大者无效。从事务回滚日志中取得事务请求,作为新的事务请求发送给事务请求接收模块21,按照上述流程重新执行失败的事务请求。
参考图1及图3,上述性能受限监控模块43可以监控单位时间内事务请求的增加量是否大于成功提交的处理结果增加量。如果单位时间内事务请求的增加量不大于成功提交的处理结果增加量,说明当前主内存模块20及其对应的处理器内核组10的处理性能较好,能够在较少延迟的情况下处理完新增的事务请求。此时,参考图3,继续由主内存模块20及其对应的处理器内核组10进行事务处理。如果单位时间内事务请求的增加量大于成功提交的处理结果增加量,说明当前主内存模块20及其对应的处理器内核组10在处理新提交的事务请求的负载较大,延时较大,整个事务处理系统的性能受限。性能受限监控模块43具体可以在监控到单位时间内事务请求的增加量大于成功提交的处理结果增加量时,从其他内存模块中选择镜像内存模块30,并将需要加锁的数据内存镜像到镜像内存模块30中,由事务请求重定向模块41使镜像内存模块30对应的处理器内核组10能够处理事务请求接收模块21中需要被处理的事务请求。以便于在主内存模块20及其对应的处理器内核组10的处理性能受限时,自动触发事务请求重定向模块41,实现事务处理系统的性能线性扩展。即仅仅在检测到性能受限时,进行内存数据的自动拆解并扩展;在性能没有受限(没有触发性能线性扩展时),不做拆分。
通过将主内存模块20中需要加锁的数据内存镜像到镜像内存模块30中,由镜像内存模块30及其对应的处理器内核组10来处理事务请求接收模块21中的部分需要被处理的事务请求,从而使主内存模块20及其对应的处理器内核组10和镜像内存模块30及其对应的处理器内核组10能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。在镜像内存模块30及其对应的处理器内核组10处理完事务请求之后,将处理结果提交给事务冲突检测模块42,来检测处理结果和主内存模块20中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。
另外,参考图4,本发明实施例还提供了一种事务处理方法,该事务处理方法应用于事务处理系统。参考图1及图2,该事务处理系统包括至少两个处理器内核组10、和该至少两个处理器内核组10一一对应的至少两个内存模块,其中该至少两个内存模块包含有主内存模块20、和除主内存模块20之外的其他内存模块,且每个内存模块直连对应的处理器内核组10。该事务处理方法包括:
S10:主内存模块20接收事务请求,并由主内存模块20对应的处理器内核组10处理该事务请求;
S20:从其他内存模块中选择镜像内存模块30;
S30:将主内存模块20中需要加锁的数据内存镜像到镜像内存模块30中,且将主内存模块20中无需加锁的数据共享给镜像内存模块30;
S40:镜像内存模块30对应的处理器内核组10处理主内存模块20中需要被处理的事务请求并生成处理结果;
S50:将处理结果提交给主内存模块20;
S60:检测处理结果和主内存模块20中的数据是否冲突;
S70:在检测结果为处理结果和主内存模块20中的数据不冲突时,将处理结果进行提交。
在上述的方案中,通过将主内存模块20中需要加锁的数据内存镜像到镜像内存模块30中,由镜像内存模块30及其对应的处理器内核组10来处理事务请求接收模块21中的部分需要被处理的事务请求,从而使主内存模块20及其对应的处理器内核组10和镜像内存模块30及其对应的处理器内核组10能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。在镜像内存模块30及其对应的处理器内核组10处理完上述需要被处理的事务请求之后,将处理结果提交给事务冲突检测模块42,来检测处理结果和主内存模块20中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。下面结合附图对上述各个步骤进行详细的介绍。
首先,参考图1、图2、图3及图4,主内存模块20接收事务请求,并由主内存模块20对应的处理器内核组10处理该事务请求。具体实现时,参考图3,在数据库系统启动之后,需要确定主内存模块20,可以从至少两个内存模块中选择一内存模块,作为主内存模块20。在主内存模块20接收事务请求时,如图1及前述事务处理系统部分的描述,可以在主内存模块20中设置事务请求接收模块21,来接收事务请求,并转交主内存模块20对应的处理器内核组10进行处理。具体设置方式,参考前述事务处理系统部分的描述,在此不再赘述。
接下来,如图1、图2、图3及图4,从其他内存模块中选择镜像内存模块30。具体实现时,可以设置性能受限监控模块43,由性能受限监控模块43从其他内存模块中选择镜像内存模块30。
参考图2及图3,在从其他内存模块中选择镜像内存模块30之前,还可以监控单位时间内事务请求的增加量是否大于成功提交的处理结果增加量。在监控到单位时间内事务请求的增加量大于成功提交的处理结果增加量时,从其他内存模块中选择镜像内存模块30。以便于在主内存模块20及其对应的处理器内核组10的处理性能受限时,自动触发性能受限监控模块43及事务请求重定向模块41,实现事务处理系统的性能线性扩展。具体可以通过性能受限监控模块43实现,实现的具体方式参考前述事务处理系统部分的描述,在此不再赘述。
此外,在从其他内存模块中选择镜像内存模块30时,可以根据其他内存模块中距离主内存模块20的远近情况,和/或其他内存模块对应的处理器内核组10的负载情况,从其他内存模块中选择镜像内存模块30。以便于选择到合适的镜像内存模块30及其对应的处理器内核组10。具体的选择方式参考前述事务处理系统部分的描述,在此不再赘述。
接下来,参考图2、图3及图4,将主内存模块20中需要加锁的数据内存镜像到镜像内存模块30中,且将主内存模块20中无需加锁的数据共享给镜像内存模块30。具体的操作方式参考前述事务处理系统部分的描述,在此不再赘述。
接下来,如图2、图3及图4所示,由镜像内存模块30对应的处理器内核组10处理主内存模块20中需要被处理的事务请求并生成处理结果。参考图1及图2,具体可以通过设置事务请求重定向模块41,由事务请求重定向模块41使镜像内存模块30对应的处理器内核组10能够处理事务请求接收模块21中需要被处理的事务请求。事务请求重定向模块41的设置方式参考前述事务处理系统部分的描述,在此不再赘述。
接下来,参考图2及图3,将处理结果提交给主内存模块20。具体可以由镜像内存模块30将处理结果提交给主内存模块20。
接下来,参考图2及图3,检测处理结果和主内存模块20中的数据是否冲突。如图1及图2所示,可以通过设置事务冲突检测模块42实现检测处理结果和主内存模块20中的数据是否冲突的功能。事务冲突检测模块42的设置方式参考前述事务处理系统部分的描述,在此不再赘述。
接下来,参考图2、图3及图4,在检测结果为处理结果和主内存模块20中的数据不冲突时,将处理结果进行提交。具有实现提交及后续操作的方式参考前述事务处理系统部分的描述,在此不再赘述。
参考图2及图3,在检测结果为处理结果和主内存模块20中的数据冲突时,可以根据该一个事务请求对应的事务ID序列进行事务回滚,形成新的事务请求,并将新的事务请求传输给主内存模块20。以及时进行事务回滚,满足数据库的强一致性要求。具体实现事务回滚的方式,参考前述事务处理系统部分的描述,在此不再赘述。
另外,本发明实施例还提供了一种主机系统,参考图1及图2,该主机系统包括上述任意一种事务处理系统。该主机系统可以为由单台主机组成的主机系统,也可以为由多台主机组成的分布式系统。通过将主内存模块20中需要加锁的数据内存镜像到镜像内存模块30中,由镜像内存模块30及其对应的处理器内核组10来处理事务请求接收模块21中的部分需要被处理的事务请求,从而使主内存模块20及其对应的处理器内核组10和镜像内存模块30及其对应的处理器内核组10能够同时处理事务请求,形成事务分区处理方式,降低处理事务请求过程中对数据资源的争用现象。在镜像内存模块30及其对应的处理器内核组10处理完上述需要被处理的事务请求之后,将处理结果提交给事务冲突检测模块42,来检测处理结果和主内存模块20中的数据是否存在冲突,并在不冲突时,才将处理结果进行提交,以满足数据库的强一致性要求。采用本申请的方式,通过内存镜像方式隔离需要加锁的数据资源,降低事务处理时对数据资源的争用现象,且缓解由于加锁引起的事务请求排队引起的处理器内核空闲情况,从而提高整体处理效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (13)
1.一种事务处理系统,其特征在于,包括:
至少两个处理器内核组,每个处理器内核组至少包含一个处理器内核;
至少两个内存模块,所述至少两个内存模块和所述至少两个处理器内核组一一对应;每个内存模块直连对应的处理器内核组;所述至少两个内存模块中包含有主内存模块、和除所述主内存模块之外的其他内存模块;所述主内存模块设置有事务请求接收模块;所述事务请求接收模块用于接收事务请求,并由所述主内存模块对应的处理器内核组处理所述事务请求;
性能受限监控模块,用于从所述其他内存模块中选择镜像内存模块,并将所述主内存模块中需要加锁的数据内存镜像到所述镜像内存模块中;且所述主内存模块还与所述镜像内存模块共享无需加锁的数据;
事务请求重定向模块,使所述镜像内存模块对应的处理器内核组处理所述事务请求接收模块中需要被处理的事务请求;所述镜像内存模块用于在其对应的处理器内核组处理完所述需要被处理的事务请求并生成处理结果后,向所述主内存模块提交所述处理结果;
事务冲突检测模块,用于检测所述镜像内存模块提交的处理结果和所述主内存模块中的数据是否冲突;所述事务冲突检测模块还用于在检测结果为不冲突时,将所述处理结果进行提交。
2.如权利要求1所述的事务处理系统,其特征在于,所述性能受限监控模块具体用于在监控到单位时间内事务请求的增加量大于成功提交的处理结果增加量时,从所述其他内存模块中选择所述镜像内存模块,并将所述主内存模块中需要加锁的数据内存镜像到所述镜像内存中,由所述事务请求重定向模块使所述镜像内存模块对应的处理器内核组处理所述需要被处理的事务请求。
3.如权利要求1所述的事务处理系统,其特征在于,所述事务冲突检测模块还用于在检测结果为冲突时,根据该一个事务请求对应的事务ID序列进行事务回滚,形成新的事务请求,并将所述新的事务请求传输给所述事务请求接收模块。
4.如权利要求1所述的事务处理系统,其特征在于,所述需要加锁的数据为数据库数据中的数据表、数据页和记录行中的至少一种数据;
所述无需加锁的数据为数据库数据中的事务序列ID生成器、事务序列ID、日志记录、重做日志、事务语句解析和事务语句优化中的至少一种数据。
5.如权利要求4所述的事务处理系统,其特征在于,所述主内存模块和所述镜像内存模块采用写时复制技术,将所述需要加锁的数据内存镜像到所述镜像内存模块中。
6.如权利要求1所述的事务处理系统,其特征在于,所述性能受限监控模块根据所述其他内存模块中距离所述主内存模块的远近情况,和/或所述其他内存模块对应的处理器内核组的负载情况,从所述其他内存模块中选择所述镜像内存模块。
7.如权利要求1所述的事务处理系统,其特征在于,所述至少两个处理器内核组中的处理器内核均为同一多核处理器中的处理器内核;
其中,所述多核处理器中的多个处理器内核划分为所述至少两个处理器内核组。
8.如权利要求7所述的事务处理系统,其特征在于,所述多核处理器为多核非一致性内存访问处理器。
9.如权利要求1所述的事务处理系统,其特征在于,所述至少两个处理器内核组形成在至少两路处理器中,每路处理器中所包含的处理器内核为一个处理器内核组。
10.一种事务处理方法,应用于事务处理系统,其中,所述事务处理系统包括至少两个处理器内核组、和所述至少两个处理器内核组一一对应的至少两个内存模块;所述至少两个内存模块中包含有主内存模块、和除所述主内存模块之外的其他内存模块,且每个内存模块直连对应的处理器内核组;其特征在于,所述事务处理方法包括:
所述主内存模块接收事务请求,并由所述主内存模块对应的处理器内核组处理所述事务请求;
从所述其他内存模块中选择镜像内存模块;
将所述主内存模块中需要加锁的数据内存镜像到所述镜像内存模块中,且将所述主内存模块中无需加锁的数据共享给所述镜像内存模块;
所述镜像内存模块对应的处理器内核组处理所述主内存模块中需要被处理的事务请求并生成处理结果;
将所述处理结果提交给所述主内存模块;
检测所述处理结果和所述主内存模块中的数据是否冲突;
在检测结果为所述处理结果和所述主内存模块中的数据不冲突时,将所述处理结果进行提交。
11.如权利要求10所述的事务处理方法,其特征在于,还包括:
在从所述其他内存模块中选择镜像内存模块之前,监控单位时间内事务请求的增加量是否大于成功提交的处理结果增加量;
在监控到单位时间内事务请求的增加量大于成功提交的处理结果增加量时,从所述其他内存模块中选择镜像内存模块。
12.如权利要求10所述的事务处理方法,其特征在于,还包括:
在检测结果为所述处理结果和所述主内存模块中的数据冲突时,根据该一个事务请求对应的事务ID序列进行事务回滚,形成新的事务请求,并将所述新的事务请求传输给所述主内存模块。
13.一种主机系统,其特征在于,包括:如权利要求1~9任一项所述的事务处理系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110701526.2A CN113342480B (zh) | 2021-06-23 | 2021-06-23 | 一种事务处理系统、事务处理方法及主机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110701526.2A CN113342480B (zh) | 2021-06-23 | 2021-06-23 | 一种事务处理系统、事务处理方法及主机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342480A CN113342480A (zh) | 2021-09-03 |
CN113342480B true CN113342480B (zh) | 2022-02-22 |
Family
ID=77478122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110701526.2A Active CN113342480B (zh) | 2021-06-23 | 2021-06-23 | 一种事务处理系统、事务处理方法及主机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342480B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729480A (zh) * | 2014-01-29 | 2014-04-16 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
US8868530B1 (en) * | 2012-07-16 | 2014-10-21 | Netapp, Inc. | Method and system for managing locks in storage systems |
CN104516793A (zh) * | 2013-09-27 | 2015-04-15 | 三星电子株式会社 | 数据镜像控制设备和方法 |
CN104769591A (zh) * | 2012-10-02 | 2015-07-08 | 甲骨文国际公司 | 分布式节点之间的存储器共享 |
CN110069935A (zh) * | 2019-03-20 | 2019-07-30 | 上海交通大学 | 基于标记内存的内部敏感数据保护方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10270810B2 (en) * | 2015-06-14 | 2019-04-23 | Avocado Systems Inc. | Data socket descriptor based policies for application and data behavior and security |
-
2021
- 2021-06-23 CN CN202110701526.2A patent/CN113342480B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8868530B1 (en) * | 2012-07-16 | 2014-10-21 | Netapp, Inc. | Method and system for managing locks in storage systems |
CN104769591A (zh) * | 2012-10-02 | 2015-07-08 | 甲骨文国际公司 | 分布式节点之间的存储器共享 |
CN104516793A (zh) * | 2013-09-27 | 2015-04-15 | 三星电子株式会社 | 数据镜像控制设备和方法 |
CN103729480A (zh) * | 2014-01-29 | 2014-04-16 | 重庆邮电大学 | 一种多核实时操作系统多个就绪任务快速查找及调度方法 |
CN110069935A (zh) * | 2019-03-20 | 2019-07-30 | 上海交通大学 | 基于标记内存的内部敏感数据保护方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于多核处理器的内存数据库查询执行优化研究;袁通;《中国优秀博硕士学位论文全文数据库(博士) 信息科技辑》;20190115(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113342480A (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713275B2 (en) | System and method for augmenting consensus election in a distributed database | |
CN107771321B (zh) | 数据中心中的恢复 | |
JP4586019B2 (ja) | 非故障ノードによる並列な回復 | |
US5423037A (en) | Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes | |
US9165025B2 (en) | Transaction recovery in a transaction processing computer system employing multiple transaction managers | |
WO2018107772A1 (zh) | 写入请求处理方法、装置及设备 | |
US20030079093A1 (en) | Server system operation control method | |
US20100169289A1 (en) | Two Phase Commit With Grid Elements | |
JP2023541298A (ja) | トランザクション処理方法、システム、装置、機器、及びプログラム | |
CN107070645B (zh) | 比较数据表的数据的方法和系统 | |
CN110825704A (zh) | 一种读数据方法、写数据方法及服务器 | |
CN110121694B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
CN114461593B (zh) | 日志写入方法及其装置、电子设备及存储介质 | |
CN110928496B (zh) | 一种在多控存储系统上的数据处理方法及装置 | |
US8359601B2 (en) | Data processing method, cluster system, and data processing program | |
CN114003662A (zh) | 基于缓存策略的区块链性能优化机制 | |
US8621260B1 (en) | Site-level sub-cluster dependencies | |
CN113342480B (zh) | 一种事务处理系统、事务处理方法及主机系统 | |
CN110659303A (zh) | 一种数据库节点的读写控制方法及装置 | |
KR102245309B1 (ko) | 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법 | |
Chatterjee et al. | Gossip based fault tolerant protocol in distributed transactional memory using quorum based replication system | |
KR102019565B1 (ko) | 데이터 베이스 관리 방법 | |
CN115051913B (zh) | Raft配置变更方法和装置 | |
US20230185822A1 (en) | Distributed storage system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221207 Address after: 100,193 501, Floor 5, Building C, Phase I, Zhongguancun Software Park, No. 8, Dongbei Wangxi Road, Haidian District, Beijing Patentee after: Haiguang Integrated Circuit Design (Beijing) Co.,Ltd. Address before: 300384 North 2-204 industrial incubation-3-8, No.18 Haitai West Road, Huayuan Industrial Zone, Nankai District, Tianjin Patentee before: Haiguang Information Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |