CN106909557B - 内存集群的存储方法及装置、内存集群的读取方法及装置 - Google Patents
内存集群的存储方法及装置、内存集群的读取方法及装置 Download PDFInfo
- Publication number
- CN106909557B CN106909557B CN201510976655.7A CN201510976655A CN106909557B CN 106909557 B CN106909557 B CN 106909557B CN 201510976655 A CN201510976655 A CN 201510976655A CN 106909557 B CN106909557 B CN 106909557B
- Authority
- CN
- China
- Prior art keywords
- original
- key
- hash ring
- hash
- primary key
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种内存集群的数据存储方法及装置、一种内存集群的数据读取方法及装置,涉及数据库领域。其中的内存集群的数据存储方法包括:基于一致性哈希运算构建各个节点的原始哈希环;将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环;按照逻辑哈希环将各个节点存储到相应的服务器;建立各个节点在原始哈希环和逻辑哈希环的映射关系。从而使得相邻节点存储在相同的服务器中,使得内存空间内的数据挪移和恢复更加高效,降低故障恢复造成的业务不可用时长。
Description
技术领域
本发明涉及数据库领域,特别涉及一种内存集群的数据存储方法及装置和一种内存集群的读取方法及装置。
背景技术
一致性哈希算法提出了在动态变化的缓存环境中,判定哈希算法好坏的四个定义:
平衡性:平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,这样可以使得所有的缓冲空间都得到利用。很多哈希算法都能够满足这一条件。
单调性:单调性是指如果已经有一些内容通过哈希分派到了相应的缓冲中,又有新的缓冲加入到***中。哈希的结果应能够保证原有已分配的内容可以被映射到原有的或者新的缓冲中去,而不会被映射到旧的缓冲集合中的其他缓冲区。
分散性:在分布式环境中,终端有可能看不到所有的缓冲,而是只能看到其中的一部分。当终端希望通过哈希过程将内容映射到缓冲上时,由于不同终端所见的缓冲范围有可能不同,从而导致哈希的结果不一致,最终的结果是相同的内容被不同的终端映射到不同的缓冲区中。这种情况显然是应该避免的,因为它导致相同内容被存储到不同缓冲中去,降低了***存储的效率。分散性的定义就是上述情况发生的严重程度。好的哈希算法应能够尽量避免不一致的情况发生,也就是尽量降低分散性。
负载:负载问题实际上是从另一个角度看待分散性问题。既然不同的终端可能将相同的内容映射到不同的缓冲区中,那么对于一个特定的缓冲区而言,也可能被不同的用户映射为不同的内容。与分散性一样,这种情况也是应当避免的,因此好的哈希算法应能够尽量降低缓冲的负荷。
如果以单物理机为实例最小单元,按照传统一致性哈希的环形空间构建模式,如图1所示,某个分区的数据将会比较均匀的分布在所有服务器上,在访问时能够比较好的起到均衡作用。但如果应对单实例实效,其他节点托管,然后失效节点恢复再进行数据挪移的情况下,相邻的实例(即图中的节点)在物理上可能分布在不同的服务器上,内存空间内的挪移恢复可能需要在不同物理机间通过网络传输数据进行恢复,***服务可用性差。
发明内容
本发明所要解决的技术问题是:如何使得相邻节点存储在相同的服务器中,从而使得内存空间内的数据挪移和恢复更加高效。
根据本发明实施例的一个方面,提供了一种内存集群的数据存储方法,包括:基于一致性哈希运算构建各个节点的原始哈希环;将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环;按照逻辑哈希环将各个节点存储到相应的服务器;建立各个节点在原始哈希环和逻辑哈希环的映射关系。
根据本发明实施例的另一个方面,提供了一种内存集群的数据读取方法,包括:基于一致性哈希运算确定欲读取数据在原始哈希环上的节点;根据各个节点在原始哈希环和逻辑哈希环的映射关系,确定欲读取数据在逻辑哈希环上的节点;根据逻辑哈希环上的节点对应的服务器编号到相应的服务器进行数据的读取。
根据本发明实施例的又一个方面,提供了一种内存集群的数据存储装置,包括:原始哈希环构建模块,用于基于一致性哈希运算构建各个节点的原始哈希环;逻辑哈希环构建模块,将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环;存储模块,用于按照逻辑哈希环将各个节点存储到相应的服务器;映射关系建立模块,用于建立各个节点在原始哈希环和逻辑哈希环的映射关系。
根据本发明实施例的再一个方面,提供了一种内存集群的数据读取装置,包括:节点确定模块,用于基于一致性哈希运算确定欲读取数据在原始哈希环上的节点,并根据各个节点在原始哈希环和逻辑哈希环的映射关系,确定欲读取数据在逻辑哈希环上的节点;数据读取模块,用于根据逻辑哈希环上的节点对应的服务器编号到相应的服务器进行数据的读取。
本发明至少具有以下优点:
通过构建逻辑哈希环,并建立原始哈希环与逻辑哈希环的映射关系,并按照逻辑哈希环将各个节点存储到相应的服务器,使得相邻节点存储在相同的服务器中,从而使得内存空间内的数据挪移和恢复更加高效。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出传统一致性哈希的环形空间构建模式的示意图。
图2示出本发明内存集群的数据存储方法的一个实施例的流程示意图。
图3示出本发明内存集群的数据存储方法的另一个实施例的流程示意图。
图4示出本发明对原始一级键K1的表分区段进行切分得到分片号的一个实施例示意图。
图5示出本发明对原始一级键K1的表分区段进行切分得到分片号的另一个实施例的示意图。
图6示出本发明内存集群的数据读取方法的一个实施例的示意图。
图7示出本发明内存集群的数据存储装置的一个实施例的结构示意图。
图8示出本发明切分模块的一个实施例的结构示意图。
图9示出本发明切分模块的另一个实施例的结构示意图。
图10示出本发明内存集群的数据读取装置的一个实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图2描述本发明一个实施例的内存集群的数据存储方法。
图2示出本发明内存集群的数据存储方法的一个实施例的流程示意图。如图2所示,该实施例的内存集群的数据存储方法包括
步骤S202,基于一致性哈希运算构建各个节点的原始哈希环。原始哈希环可以参考现有技术构建。
步骤S204,将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环。
步骤S206,按照逻辑哈希环将各个节点存储到相应的服务器。
步骤S208,建立各个节点在原始哈希环和逻辑哈希环的映射关系。
上述方法中,通过构建逻辑哈希环,建立原始哈希环与逻辑哈希环的映射关系,并按照逻辑哈希环将各个节点存储到相应的服务器,使得相邻节点存储在相同的服务器中,从而使得内存空间内的数据挪移和恢复更加高效。
对于内存空间内的数据来说,数据的分散性越强,数据的挪移和恢复越复杂。因此,可以将本发明内存集群的数据存储方法与内存集群的存储均衡方法相结合运用,使得本发明的技术效果更加明显。
下面结合图3描述本发明一个实施例的内存集群的数据存储方法。
图3示出本发明内存集群的数据存储方法的另一个实施例的流程示意图。如图3所示,在图2所示的实施例基础上,本实施例还包括:
步骤S3012,对原始一级键K1的表分区段进行切分得到分片号。原始一级键K1为定制对象DO的原始逻辑键,原始一级键K1由数据库段、数据表段、表分区段组成。
步骤S3014,根据原始一级键K1、分片号生成均衡一级键K1’。其中,均衡一级键K1’为定制对象DO的均衡逻辑键。
步骤S3016,采用(K1’,DO)的数据存储形式存储键值数据。
通过上述方法,对原始一级键K1的表分区段进行进一步细分,然后根据原始键和分片号重新构建均衡键,并基于均衡键进行数据的存储,实现了数据在内存集群数据节点上的均匀分布,进而充分利用内存集群的存储容量。然后,利用图2所示的实施例方法对进一步细分后的数据进行存储,使得相邻的节点存储在相同的服务器中,从而在数据挪移和恢复过程中只需在相同服务器内对数据进行操作,避免了服务器之间的数据操作,提高了数据操作效率。
下面结合图4描述本发明一个实施例的对原始一级键K1的表分区段进行切分得到分片号方法。
图4示出本发明对原始一级键K1的表分区段进行切分得到分片号的一个实施例的示意图。如图4所示,定制对象DO中存储(K2,V),二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。对原始一级键K1的表分区段进行切分得到分片号的一种具体实现方法包括:
步骤S402,对原始一级键K1和二级键K2进行哈希运算。
步骤S404,将哈希运算所得哈希值对计划分片数M进行取余运算。
步骤S406,将取余运算的结果作为分片号。
例如,集群节点数是4,分区的最大分片数设计为40。那么用户向db1的table1中存储一新的值:Key-Value,该值对应的分区是:String slice=String.valueOf(Math.abs(Key.hashCode())/40)。假设计算的结果为23。如果完整的分区键名为db1_table1_p1,则新的分区名为db1_table1_p1_23。
在分区的基础上进一步把数据“切”分成片。当切片数大于节点数时,切片就会根据TwemProxy的特性被均匀分布到不同的节点上。原则上切片数越多,数据存储粒度越小,数据分布就越均匀,从而实现数据在内存集群数据节点上的均匀分布,进而充分利用内存集群的存储容量。但切片数据也没必要过大,一般保持在节点数的N(N≤10)倍即可。
下面结合图5描述本发明一个另实施例的对原始一级键K1的表分区段进行切分得到分片号方法。
图5示出本发明对原始一级键K1的表分区段进行切分得到分片号的另一个实施例的示意图。如图5所示,对原始一级键K1的表分区段进行切分得到分片号的另一种具体实现方法包括:
步骤S502,对原始一级键K1和二级键K2进行md5运算;
步骤S504,取md5运算所得摘要值的后n位作为分片号,n位所能表示的最大数值不大于计划分片数M。
通过对原始一级键K1和二级键K2进行md5运算获取分片号,同样可以使得数据存储粒度越小,数据分布就越均匀,从而实现数据在内存集群数据节点上的均匀分布,进而充分利用内存集群的存储容量。与图4所示的实施例相比,md5算法可以根据原始一级键K1和二级键K2计算出结果为唯一值的分片号,但是md5算法对CPU的占用较高,在大的并发压力下会影响性能。
此外,定制对象DO可以通过MAP的形式存储。
下面结合图6描述本发明一个实施例的内存集群的数据读取方法。
图6示出本发明内存集群的数据读取方法的一个实施例的示意图。如图6所示,该实施例的内存集群的数据读取方法包括:
步骤S602,基于一致性哈希运算确定欲读取数据在原始哈希环上的节点。
步骤S604,根据各个节点在原始哈希环和逻辑哈希环的映射关系,确定欲读取数据在逻辑哈希环上的节点。
步骤S606,根据逻辑哈希环上的节点对应的服务器编号到相应的服务器进行数据的读取。
通过上述方法,用户采用的数据读取方式不做改变,而此时相邻的节点已经存储在相同的服务器中,既实现了一致性哈希功能,还实现了数据存储的均衡。
下面结合图7描述本发明一个实施例的内存集群的数据存储装置。
图7示出本发明内存集群的数据读取方法的另一个实施例的示意图。如图7所示,该实施例的内存集群的数据存储装置70包括:
原始哈希环构建模块702,用于基于一致性哈希运算构建各个节点的原始哈希环;
逻辑哈希环构建模块704,将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环。
存储模块706,用于按照逻辑哈希环将各个节点存储到相应的服务器。
映射关系建立模块708,用于建立各个节点在原始哈希环和逻辑哈希环的映射关系。
此外,数据存储装置70还可以包括:
切分模块710,用于对原始一级键K1的表分区段进行切分得到分片号。
均衡一级键生成模块712,用于根据原始一级键K1、分片号生成均衡一级键K1’。
键值数据存储模块714,用于采用(K1’,DO)的数据存储形式将键值数据存储到节点中。
其中,原始一级键K1为定制对象DO的原始逻辑键,所述原始一级键K1由数据库段、数据表段、表分区段组成,均衡一级键K1’为定制对象DO的均衡逻辑键。
下面结合图8描述本发明一个实施例的切分模块。
图8示出本发明切分模块的一个实施例的结构示意图。如图8所示,该实施例的切分模块810包括:
哈希运算单元8102,用于对原始一级键K1和二级键K2进行哈希运算;
取余运算单元8104,用于将哈希运算所得哈希值对计划分片数M进行取余运算,并将取余运算的结果作为分片号。
下面结合图9描述本发明另一个实施例的切分模块。
图9示出本发明切分模块的另一个实施例的结构示意图。如图9所示,该实施例的切分模块910包括:
md5运算单元9102,用于对原始一级键K1和二级键K2进行md5运算;
分片号确定单元9104,用于取md5运算所得摘要值的后n位作为分片号,n位所能表示的最大数值不大于计划分片数M。
下面结合图10描述本发明一个实施例的内存集群的数据读取装置。
图10示出本发明内存集群的数据读取装置的一个实施例的结构示意图。如图10所示,该实施例的数据读取装置100包括:
节点确定模块1002,用于基于一致性哈希运算确定欲读取数据在原始哈希环上的节点,并根据各个节点在原始哈希环和逻辑哈希环的映射关系,确定欲读取数据在逻辑哈希环上的节点;
数据读取模块1004,用于根据逻辑哈希环上的节点对应的服务器编号到相应的服务器进行数据的读取。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种内存集群的数据存储方法,包括:
基于一致性哈希运算构建各个节点的原始哈希环;
将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环;
按照逻辑哈希环将各个节点存储到相应的服务器;
建立各个节点在原始哈希环和逻辑哈希环的映射关系;
对原始一级键K1的表分区段进行切分得到分片号,包括:对原始一级键K1和二级键K2进行哈希运算;将哈希运算所得哈希值对计划分片数M进行取余运算;将取余运算的结果作为分片号;或者,对原始一级键K1和二级键K2进行消息摘要算法第五版md5运算;取md5运算所得摘要值的后n位作为分片号,n位所能表示的最大数值不大于计划分片数M;
根据原始一级键K1和分片号生成均衡一级键K1’;
采用(K1’,DO)的数据存储形式将键值数据存储到节点中;
其中,原始一级键K1为定制对象DO的原始逻辑键,所述原始一级键K1由数据库段、数据表段、表分区段组成,均衡一级键K1’为定制对象DO的均衡逻辑键,定制对象DO中存储(K2,V),二级键K2为定制对象DO的数据键,V为定制对象DO的数据值。
2.一种内存集群的数据存储装置,包括:
原始哈希环构建模块,用于基于一致性哈希运算构建各个节点的原始哈希环;
逻辑哈希环构建模块,用于将原始哈希环中的各个节点按照相邻关系进行分组,使得相邻节点具有相同的服务器编号,以构建逻辑哈希环;
存储模块,用于按照逻辑哈希环将各个节点存储到相应的服务器;
映射关系建立模块,用于建立各个节点在原始哈希环和逻辑哈希环的映射关系;
切分模块,用于对原始一级键K1的表分区段进行切分得到分片号,包括:哈希运算单元,用于对原始一级键K1和二级键K2进行哈希运算;取余运算单元,用于将哈希运算所得哈希值对计划分片数M进行取余运算,并将取余运算的结果作为分片号;或者,md5运算单元,用于对原始一级键K1和二级键K2进行md5运算;分片号确定单元,用于取md5运算所得摘要值的后n位作为分片号,n位所能表示的最大数值不大于计划分片数M;
均衡一级键生成模块,用于根据原始一级键K1和分片号生成均衡一级键K1’;
键值数据存储模块,用于采用(K1’,DO)的数据存储形式将键值数据存储到节点中;
其中,原始一级键K1为定制对象DO的原始逻辑键,所述原始一级键K1由数据库段、数据表段、表分区段组成,均衡一级键K1’为定制对象DO的均衡逻辑键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976655.7A CN106909557B (zh) | 2015-12-23 | 2015-12-23 | 内存集群的存储方法及装置、内存集群的读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510976655.7A CN106909557B (zh) | 2015-12-23 | 2015-12-23 | 内存集群的存储方法及装置、内存集群的读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106909557A CN106909557A (zh) | 2017-06-30 |
CN106909557B true CN106909557B (zh) | 2020-06-16 |
Family
ID=59199933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510976655.7A Active CN106909557B (zh) | 2015-12-23 | 2015-12-23 | 内存集群的存储方法及装置、内存集群的读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106909557B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109600447B (zh) * | 2018-12-21 | 2021-08-10 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置和*** |
CN110096227B (zh) * | 2019-03-28 | 2023-04-18 | 北京奇艺世纪科技有限公司 | 数据存储方法、数据处理方法、装置、电子设备及计算机可读介质 |
CN110489059B (zh) * | 2019-07-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 数据集群存储的方法、装置及计算机设备 |
CN112702167B (zh) | 2020-12-14 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 一种集群特征码获得方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235820B (zh) * | 2013-04-27 | 2016-10-05 | 北京搜狐新媒体信息技术有限公司 | 一种集群***中数据存储方法与装置 |
CN104462124B (zh) * | 2013-09-22 | 2018-04-06 | 中国电信股份有限公司 | 基于线性哈希表的数据存储平台组织方法和数据存储平台 |
CN104301425A (zh) * | 2014-10-24 | 2015-01-21 | 南方电网科学研究院有限责任公司 | 基于对象类型和哈希环的对象注册中心服务集群实现方法 |
-
2015
- 2015-12-23 CN CN201510976655.7A patent/CN106909557B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
Non-Patent Citations (1)
Title |
---|
Oracle数据库***优化调整;刘超 等;《信息安全与技术》;20140710;103-104 * |
Also Published As
Publication number | Publication date |
---|---|
CN106909557A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9984106B2 (en) | Systems, methods, and media for managing an in-memory NOSQL database | |
CN106909557B (zh) | 内存集群的存储方法及装置、内存集群的读取方法及装置 | |
KR102376713B1 (ko) | 복합 파티션 함수 제공 기법 | |
CN111247518B (zh) | 用于数据库分片的方法和*** | |
US8891520B2 (en) | Scaling redundancy elimination middleboxes | |
CN106909556B (zh) | 内存集群的存储均衡方法及装置 | |
US20110208947A1 (en) | System and Method for Simplifying Transmission in Parallel Computing System | |
CN106161633B (zh) | 一种基于云计算环境下打包文件的传输方法及*** | |
US20210073123A1 (en) | Method, device, and computer program product for managing address mapping in storage system | |
US8954478B2 (en) | Systems, methods, and media for managing RAM resources for in-memory NoSQL databases | |
CN111723073B (zh) | 数据存储处理方法、装置、处理***以及存储介质 | |
US11140220B1 (en) | Consistent hashing using the power of k choices in server placement | |
US10503737B1 (en) | Bloom filter partitioning | |
CN110955704A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN108140049B (zh) | 基于树的数据结构的并行批量处理 | |
CN110851525A (zh) | 一种数据分片方法、相关设备及计算机存储介质 | |
CN114461407B (zh) | 数据处理方法、装置、分发服务器、***及存储介质 | |
US8903871B2 (en) | Dynamic management of log persistence | |
CN115525655A (zh) | 一种数据查询切片的方法和*** | |
WO2019153546A1 (zh) | 万级维度数据生成方法、装置、设备以及存储介质 | |
US20220156013A1 (en) | Methods, devices, and a computer program product for processing an access request and updating a storage system | |
WO2023029485A1 (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN116016508A (zh) | 一种基于分布式对象的存储***及其控制方法 | |
US11310309B1 (en) | Arc jump: per-key selection of an alternative server when implemented bounded loads | |
US10712959B2 (en) | Method, device and computer program product for storing data |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220126 Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Patentee after: Tianyiyun Technology Co.,Ltd. Address before: No.31, Financial Street, Xicheng District, Beijing, 100033 Patentee before: CHINA TELECOM Corp.,Ltd. |