CN114968976A - 内存数据库存储引擎数据优化方法、电子设备及存储介质 - Google Patents

内存数据库存储引擎数据优化方法、电子设备及存储介质 Download PDF

Info

Publication number
CN114968976A
CN114968976A CN202210387516.0A CN202210387516A CN114968976A CN 114968976 A CN114968976 A CN 114968976A CN 202210387516 A CN202210387516 A CN 202210387516A CN 114968976 A CN114968976 A CN 114968976A
Authority
CN
China
Prior art keywords
value
data
storage engine
column
linked list
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
CN202210387516.0A
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.)
Shanghai Yunxi Technology Co ltd
Original Assignee
Shandong Inspur Science Research Institute 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 Shandong Inspur Science Research Institute Co Ltd filed Critical Shandong Inspur Science Research Institute Co Ltd
Priority to CN202210387516.0A priority Critical patent/CN114968976A/zh
Publication of CN114968976A publication Critical patent/CN114968976A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了内存数据库存储引擎数据优化方法、电子设备及存储介质,属于数据库管理技术领域,本发明要解决的技术问题为如何有效减少内存中存储的数据量,提升数据库的性能,采用的技术方案为:该方法具体如下:插入增量:基于ART树的内存存储引擎,将SQL原Update改为直接插入增量操作;KV数据插入:存储引擎查询要修改的行数据,并按照增量操作修改对应列,合并后重新插入;若没有快照,则将旧的KV数据删除;对于Update Returning语法,存储引擎返回全量Value;判断Put语法插入的是否为写意图的删除:若是,则直接把链表头节点对应Key的写意图删掉;若否,则查找存储该Key的双向链表,将链表内的其他版本删除,完成插入。

Description

内存数据库存储引擎数据优化方法、电子设备及存储介质
技术领域
本发明涉及数据库管理技术领域,具体地说是一种内存数据库存储引擎数据优化方法、电子设备及存储介质。
背景技术
近年来,随着动态随机存储器(DRAM)容量的上升和单位价格的下降,使大量数据在内存中的存储和处理成为可能。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。
内存中数据的数据量是影响存储引擎性能的重要因素。ART树在所有的索引结构中,查询性能最优。但是,索引结构普遍存在一个问题,随着索引的数据量增大,查询性能会降低。当数据量从64K提升到16M时,ART树的查询性能降低了至少4倍,这种现象严重影响到了存储引擎的性能。同时,由于内存存储的数据量有限,有效的数据优化方法能够在相同大小的内存中存储更多的数据。
Update语句在执行过程中,需要将存储引擎中的全量数据读到SQL层进行处理,再Put到存储引擎中,该过程不仅导致链路过长,而且全量数据的查找和插入占用了过多的资源,导致性能降低。
发明内容
本发明的技术任务是提供一种内存数据库存储引擎数据优化方法、电子设备及存储介质,来解决如何有效减少内存中存储的数据量,提升数据库的性能的问题。
本发明的技术任务是按以下方式实现的,一种内存数据库存储引擎数据优化方法,该方法具体如下:
插入增量:基于ART树的内存存储引擎,将SQL原Update改为直接插入增量操作;
KV数据插入:存储引擎查询要修改的行数据,并按照增量操作修改对应列,合并后重新插入;若没有快照,则将旧的KV数据删除;对于Update Returning语法,存储引擎返回全量Value,无需由上层合并;
判断Put语法插入的是否为写意图的删除:
若是,则不需要插入到ART树的节点,直接把链表头节点对应Key的写意图删掉,减少存储的数据量;
若否,则查找存储该Key的双向链表,将链表内的其他版本删除,完成插入。
其中,ART(Adaptive Radix Tree,自适应基数/前缀树)是以二进制位串为关键字的trie树,是一种多叉树形结构,同时又类似多层索引表,每个中间节点包含指向多个子节点的指针数组,叶子节点包含指向实际的对象的指针。中间节点根据长度的不同分成若干种不同类型,随着数据的变化而自行调整。虽然使用基于ART树构建的KV内存存储引擎会具备很好的性能优势,但由于树的高度取决于Key的长度,时间复杂度取决于key的长度,所以当Key的长度增加时,性能会下降,存在性能瓶颈。索引结构普遍存在一个问题,随着索引的数据量增大,查询性能会降低。
作为优选,当Put语法插入的Key有多个版本时(SequenceNumber不同),遍历存储该Key多版本的双向链表,将该Key相同HLC,不同SequenceNumber的其他版本删除,只保留最新版本和快照之前的版本,其余版本存到一个删除链表中等待后台线程删除。
更优地,Update增量编码方式具体如下:
当Value的头部增加一列值标签(ValueTag),存放Update类型,用于区分是否为Update操作;
将后续的列类型(ColumnType)改为增量操作类型(OperationType,如Replace,Sum,Sub等),最后的列值为增量值(UpdateValue);
同时,Update增量语法不处理系统表数据,增加判断,跳过表ID小于52的表;编码时将对应列的增量操作类型编码。
更优地,存储引擎在数据插入前对增量Value进行编码,判断Value第一列的类型是否为Update:
若是,则对Value进行增量更新,最后插入的Value是更新后的值。
更优地,对增量Value进行编码具体如下:
对增量Value进行解码,得到需要增量更新的列ID(ColumnID)、增量操作类型(OperationType)和增量值(UpdateValue);
通过Key查询出存储引擎中最新的Value;
对该最新的Value进行解码,得到对应的列ID(ColumnID)、列类型(ColumnType)和列值(ColumnValue);
根据增量更新的ID与列ID的一一对应关系,得到要更新后的列,按照增量操作类型(OperationType)和增量值(UpdateValue)对列值(ColumnValue)进行更新;
将更新后的Value按Value的编码方式重新编码为一整条Value,插入存储引擎中;旧的KV数据存到删除链表中,等待后台线程删除;
更优地,Value的编码方式具体如下:
一行Value由多个列(Column)组成,每个列由值标签(ValueTag)和列值(ColumnValue)组成,值标签包括列ID(ColumnID)和列类型(ColumnType);
将原Update语句为读取数据--解码--编码--插入的执行流程推到存储层实现,修改上层Value的编码方式。
作为优选,KV数据插入时,解码UserKey,得到表ID(TableID);当表ID大于0、Key的时间戳为空以及值类型为删除(kTypeDeletion)时,则认定此次插入是写意图删除,直接将链表头部的写意图KV数据删除;
基于ART的存储引擎中,使用一个双向链表存储Key的不同版本,由于写意图的Key没有时间戳,所以该Key肯定存储在链表的头部节点,遇到写意图删除的KV数据插入时,不需要将该条写意图KV数据插入,只需将链表头部节点的写意图KV数据删除即可。
更优地,写意图删除时,先找到存储该UserKey的双向链表,通过迭代器得到链表头部的Key和下一个NextKey,将此链表的头部指向NextKey,此操作使用原子操作;再将之前的头部节点删除。
一种电子设备,包括:存储器和至少一个处理器;
其中,所述存储器上存储有计算机程序;
所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如上述的内存数据库存储引擎数据优化方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的内存数据库存储引擎数据优化方法。
本发明的内存数据库存储引擎数据优化方法、电子设备及存储介质具有以下优点:
(一)本发明优化了Update逻辑,将Update转为Insert;优化了数据的插入逻辑,将多余的数据及时删除,有效的减少了内存中存储的数据量,提升了数据库存储引擎的性能;
(二)本发明通过优化插入逻辑,同时将Update改为Insert逻辑,减少了ART索引的数据量,提升了内存存储引擎存储数据的效率和性能;
(三)本发明将SQL原Update需要先查询再插入的操作,改为直接插入增量操作,存储层只返回全量Value,无需由上层合并,而是在插入时进行合并,并将原KV数据删除,提升了Update的执行速度,减少了数据量;
(四)当Put语法插入的是写意图删除数据时,不需要插入节点,直接把链表对应节点的写意图数据删掉;插入新的KV数据时,将链表中不同SequenceNumber的其他版本删除,只保留最新版本及快照之前的版本(如果设置了快照),减少存储的数据量。
附图说明
下面结合附图对本发明进一步说明。
附图1为内存数据库存储引擎数据优化方法的流程框图;
附图2为原Value编码示意图;
附图3为Update优化后的Value编码示意图。
具体实施方式
参照说明书附图和具体实施例对本发明的内存数据库存储引擎数据优化方法、电子设备及存储介质作以下详细地说明。
实施例1:
如附图1所示,本实施例的内存数据库存储引擎数据优化方法,该方法具体如下:
S1、插入增量:基于ART树的内存存储引擎,将SQL原Update改为直接插入增量操作;
S2、KV数据插入:存储引擎查询要修改的行数据,并按照增量操作修改对应列,合并后重新插入;若没有快照,则将旧的KV数据删除;对于Update Returning语法,存储引擎返回全量Value,无需由上层合并;
S3、判断Put语法插入的是否为写意图的删除:
①、若是,则不需要插入到ART树的节点,直接把链表头节点对应Key的写意图删掉,减少存储的数据量;
②若否,则查找存储该Key的双向链表,将链表内的其他版本删除,完成插入。
当Put语法插入的Key有多个版本时(SequenceNumber不同),遍历存储该Key多版本的双向链表,将该Key相同HLC,不同SequenceNumber的其他版本删除,只保留最新版本和快照之前的版本,其余版本存到一个删除链表中等待后台线程删除。
如附图3所示,本实施例中的Update增量编码方式具体如下:
(1)、当Value的头部增加一列值标签(ValueTag),存放Update类型,用于区分是否为Update操作;
(2)、将后续的列类型(ColumnType)改为增量操作类型(OperationType,如Replace,Sum,Sub等),最后的列值为增量值(UpdateValue);
同时,Update增量语法不处理系统表数据,增加判断,跳过表ID小于52的表;编码时将对应列的增量操作类型编码。
本实施例中的存储引擎在数据插入前对增量Value进行编码,判断Value第一列的类型是否为Update:
若是,则对Value进行增量更新,最后插入的Value是更新后的值。
更优地,对增量Value进行编码具体如下:
(1)、对增量Value进行解码,得到需要增量更新的列ID(ColumnID)、增量操作类型(OperationType)和增量值(UpdateValue);
(2)、通过Key查询出存储引擎中最新的Value;
(3)、对该最新的Value进行解码,得到对应的列ID(ColumnID)、列类型(ColumnType)和列值(ColumnValue);
(4)、根据增量更新的ID与列ID的一一对应关系,得到要更新后的列,按照增量操作类型(OperationType)和增量值(UpdateValue)对列值(ColumnValue)进行更新;
(5)、将更新后的Value按Value的编码方式重新编码为一整条Value,插入存储引擎中;旧的KV数据存到删除链表中,等待后台线程删除;
如附图2所示,本实施例中的Value的编码方式具体如下:
(1)、一行Value由多个列(Column)组成,每个列由值标签(ValueTag)和列值(ColumnValue)组成,值标签包括列ID(ColumnID)和列类型(ColumnType);
(2)、将原Update语句为读取数据--解码--编码--插入的执行流程推到存储层实现,修改上层Value的编码方式。
本实施例中的KV数据插入时,解码UserKey,得到表ID(TableID);当表ID大于0、Key的时间戳为空以及值类型为删除(kTypeDeletion)时,则认定此次插入是写意图删除,直接将链表头部的写意图KV数据删除。
基于ART的存储引擎中,使用一个双向链表存储Key的不同版本,由于写意图的Key没有时间戳,所以该Key肯定存储在链表的头部节点,遇到写意图删除的KV数据插入时,不需要将该条写意图KV数据插入,只需将链表头部节点的写意图KV数据删除即可。
本实施例中的写意图删除时,先找到存储该UserKey的双向链表,通过迭代器得到链表头部的Key和下一个NextKey,将此链表的头部指向NextKey,此操作使用原子操作;再将之前的头部节点删除。
实施例2:
本实施例还提供了一种电子设备,包括:存储器和处理器;
其中,存储器存储计算机执行指令;
处理器执行所述存储器存储的计算机执行指令,使得处理器执行本发明任一实施例中的内存数据库存储引擎数据优化方法。
实施例3:
本实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的内存数据库存储引擎数据优化方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RYM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种内存数据库存储引擎数据优化方法,其特征在于,该方法具体如下:
插入增量:基于ART树的内存存储引擎,将SQL原Update改为直接插入增量操作;
KV数据插入:存储引擎查询要修改的行数据,并按照增量操作修改对应列,合并后重新插入;若没有快照,则将旧的KV数据删除;对于Update Returning语法,存储引擎返回全量Value;
判断Put语法插入的是否为写意图的删除:
若是,则直接把链表头节点对应Key的写意图删掉;
若否,则查找存储该Key的双向链表,将链表内的其他版本删除,完成插入。
2.根据权利要求1所述的内存数据库存储引擎数据优化方法,其特征在于,当Put语法插入的Key有多个版本时,遍历存储该Key多版本的双向链表,将该Key相同HLC,不同SequenceNumber的其他版本删除,只保留最新版本和快照之前的版本,其余版本存到一个删除链表中等待后台线程删除。
3.根据权利要求1或2所述的内存数据库存储引擎数据优化方法,其特征在于,Update增量编码方式具体如下:
当Value的头部增加一列值标签,存放Update类型,用于区分是否为Update操作;
将后续的列类型改为增量操作类型,最后的列值为增量值;
同时,Update增量语法增加判断,跳过表ID小于52的表;编码时将对应列的增量操作类型编码。
4.根据权利要求3所述的内存数据库存储引擎数据优化方法,其特征在于,存储引擎在数据插入前对增量Value进行编码,判断Value第一列的类型是否为Update:
若是,则对Value进行增量更新,最后插入的Value是更新后的值。
5.根据权利要求4所述的内存数据库存储引擎数据优化方法,其特征在于,对增量Value进行编码具体如下:
对增量Value进行解码,得到需要增量更新的列ID、增量操作类型和增量值;
通过Key查询出存储引擎中最新的Value;
对该最新的Value进行解码,得到对应的列ID、列类型和列值;
根据增量更新的ID与列ID的一一对应关系,得到要更新后的列,按照增量操作类型和增量值对列值进行更新;
将更新后的Value按Value的编码方式重新编码为一整条Value,插入存储引擎中;旧的KV数据存到删除链表中,等待后台线程删除。
6.根据权利要求5所述的内存数据库存储引擎数据优化方法,其特征在于,Value的编码方式具体如下:
一行Value由多个列组成,每个列由值标签和列值组成,值标签包括列ID和列类型;
将原Update语句为读取数据--解码--编码--插入的执行流程推到存储层实现,修改上层Value的编码方式。
7.根据权利要求1所述的内存数据库存储引擎数据优化方法,其特征在于,KV数据插入时,解码UserKey,得到表ID;当表ID大于0、Key的时间戳为空以及值类型为删除时,则认定此次插入是写意图删除,直接将链表头部的写意图KV数据删除。
8.根据权利要求7所述的内存数据库存储引擎数据优化方法,其特征在于,写意图删除时,先找到存储该UserKey的双向链表,通过迭代器得到链表头部的Key和下一个NextKey,将此链表的头部指向NextKey,此操作使用原子操作;再将之前的头部节点删除。
9.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
其中,所述存储器上存储有计算机程序;
所述至少一个处理器执行所述存储器存储的计算机程序,使得所述至少一个处理器执行如权利要求1至8任一项所述的内存数据库存储引擎数据优化方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如权利要求1至8中任一项所述的内存数据库存储引擎数据优化方法。
CN202210387516.0A 2022-04-14 2022-04-14 内存数据库存储引擎数据优化方法、电子设备及存储介质 Pending CN114968976A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210387516.0A CN114968976A (zh) 2022-04-14 2022-04-14 内存数据库存储引擎数据优化方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210387516.0A CN114968976A (zh) 2022-04-14 2022-04-14 内存数据库存储引擎数据优化方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114968976A true CN114968976A (zh) 2022-08-30

Family

ID=82976392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210387516.0A Pending CN114968976A (zh) 2022-04-14 2022-04-14 内存数据库存储引擎数据优化方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114968976A (zh)

Similar Documents

Publication Publication Date Title
US6910043B2 (en) Compression of nodes in a trie structure
US8135752B2 (en) Deleting leaves in tree table structures
US7647334B2 (en) Method for checking index consistency in database
US6691131B2 (en) Functional memory based on a trie structure
US8086641B1 (en) Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same
CN105117415A (zh) 一种优化的ssd数据更新方法
CN1652112A (zh) 一种嵌入式环境下数据字典的实现方法
US6675171B2 (en) Memory based on a digital trie structure
CN112269786B (zh) 一种内存数据库kv存储引擎索引的创建方法
US7499927B2 (en) Techniques for improving memory access patterns in tree-based data index structures
US20230342395A1 (en) Network key value indexing design
CN113448490A (zh) 用于存储的方法、设备和计算机程序产品
CN115718819A (zh) 一种索引构建方法、数据读取方法及索引构建装置
CN112732725B (zh) 基于nvm混合内存的自适应前缀树构建方法及其系统、介质
CN114416646A (zh) 一种层级存储系统的数据处理方法及装置
CN113392089B (zh) 一种数据库索引优化方法及可读存储介质
CN114968976A (zh) 内存数据库存储引擎数据优化方法、电子设备及存储介质
CN114218277A (zh) 一种关系数据库的高效查询方法和装置
CN112015791A (zh) 数据处理方法、装置、电子设备及计算机存储介质
CN113742307B (zh) 一种基于值日志系统的二级索引的存储和查询方法及系统
CN1492363A (zh) 一种嵌入式系统的数据存放及其查找方法
KR102404174B1 (ko) 비관계형 데이터베이스 관리 시스템의 메모리 자료구조, 노드를 삽입하는 방법 및 범위 질의를 처리하는 방법
CN113535711B (zh) 一种基于LSM-Tree的分层索引数据管理方法及系统
CN113688130A (zh) 一种内存数据库存储引擎管理方法
CN102479213A (zh) 数据缓冲方法和装置

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
TA01 Transfer of patent application right

Effective date of registration: 20221130

Address after: Room 305-22, Building 2, No. 1158 Zhangdong Road and No. 1059 Dangui Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200120

Applicant after: Shanghai Yunxi Technology Co.,Ltd.

Address before: Building S02, 1036 Gaoxin Langchao Road, Jinan, Shandong 250100

Applicant before: Shandong Inspur Scientific Research Institute Co.,Ltd.

TA01 Transfer of patent application right