CN109074362B - 分布式系统中的拆分和移动范围 - Google Patents

分布式系统中的拆分和移动范围 Download PDF

Info

Publication number
CN109074362B
CN109074362B CN201680084930.7A CN201680084930A CN109074362B CN 109074362 B CN109074362 B CN 109074362B CN 201680084930 A CN201680084930 A CN 201680084930A CN 109074362 B CN109074362 B CN 109074362B
Authority
CN
China
Prior art keywords
group
range
target
data
source
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
CN201680084930.7A
Other languages
English (en)
Other versions
CN109074362A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN109074362A publication Critical patent/CN109074362A/zh
Application granted granted Critical
Publication of CN109074362B publication Critical patent/CN109074362B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

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

Abstract

描述了用于分布式数据库系统中的分布式事务的方法和系统。一个示例包括识别在包括一个或多个块复制件的源组中插入拆分点的请求,每个块包括来自分布式数据库系统中的表的数据的至少一部分数据,并且拆分点将源组中的数据拆分为第一范围和不同于第一范围的第二范围;响应于该请求:将源组的第一范围中的文件名列表发送给包含一个或多个块复制件的第一目标组;在第一目标组处,创建由第一范围中的文件名列表示的文件的虚拟副本,虚拟副本使得每个使用新名称的文件的数据可用,而不用重复复制文件的数据。

Description

分布式系统中的拆分和移动范围
背景技术
本说明书大体涉及在分布式数据库系统中拆分大组。
当在分布式数据库中重新分区数据时,经常复制大块数据以进行移动。当前实施重新分区所需的时间和资源经常会引起问题,特别是在尝试拆分具有大量写入负载的大组时,并且,由此导致,比大小阈值大许多倍的拆分并不罕见。因此,出现了在分布式数据库中快速并有效地拆分大组的机制的需求。
发明内容
大体上,本说明书中描述的主题的一个方面可以体现系统和方法中,方法由包括用于分布式数据库系统中的分布式事务的动作的数据处理装置执行,其包括识别在源组中插入拆分点的请求,源组包括一个或多个块复制件(replica),每个块包括来自分布式数据库系统中的表的数据的至少一部分数据,并且拆分点将源组中的数据拆分为第一范围和不同于第一范围的第二范围;以及响应于在源组中插入拆分点的请求,将源组的第一范围中的文件名列表发送给第一目标组,第一目标组包含一个或多个块复制件;以及在第一目标组处,创建由第一范围中的文件名列表示的文件的虚拟副本,虚拟副本使得每个文件的内容在新名称下可用而不用重复复制文件的数据。
系统和方法还可以包括:将第一范围中的文件添加到第一目标组;指令源组第一目标组不再依赖于源组处的第一范围中的文件;以及从源组删除第一范围中的文件。此外,响应于在源组中插入拆分点的请求,可以将源组的第二范围中的文件名列表发送到第二目标组,第二目标组包括一个或多个块复制件,以及可以在第二目标组创建由第二范围中的文件名列表示的文件的虚拟副本,虚拟副本使得每个文件的内容在新名称下可用而不用重复复制文件的数据。
此外,该系统和方法可以包括从源组发送第一范围中的内存中缓存的更新的内容;以及在第一目标组处,将来自源组的第一范围中的内存中缓存的更新的内容添加到第一目标组的内存中缓存的更新。
根据某些实施例,分布式事务根据两阶段提交协议来运行,其中两阶段提交协议包括投票阶段和提交阶段。为了完成分布式事务,每个组中的大多数块必须在投票阶段中提交。响应于在投票阶段中的中止投票,每个组取消事务。
在附图和以下描述中阐述了本说明书中描述的主题的一个或多个实施方式的细节。根据说明书、附图和权利要求,本主题的其他特征、方面和潜在优点将变得显而易见。
附图说明
图1是用于在分布式存储系统中拆分大组的示例环境的示意图。
图2是用于在分布式存储系统中拆分大组的过程中的示例分布式数据库组的示意图。
图3是用于协调分布式存储系统中的分布式事务的示例过程的泳道图。
图4是用于在分布式存储系统中拆分大组的示例处理的流程图。
图5是可用于实施本文档中描述的系统和方法的计算设备的示意图。
各附图中同样的附图标记和符号表示同样的元件。
具体实施方式
当在分布式数据库中重新分区数据时,标准实施方式复制整个要移动的数据。例如,拆分数据或更改复制级别需要在新配置中制作数据的全新副本。这里描述的实施例提供了一种机制,以通过尽可能地共享数据的盘上副本来避免这种额外的副本。例如,当拆分数据时,不是制作两个分区的新副本,而是可以提供现有分区的虚拟视图,使得现有分区可用作两个单独的部分。只有当制作新的其它数据副本时,例如当将数据重写为更紧凑的形式(即,“压缩”)时,才需要将虚拟副本解析为数据的真实副本。根据某些实施例,将数据库分区成组,其中每个组是复制的块(tablet)的集合。块包括一系列还称为层的不可变文件和缓存的更新的内存中表示(in-memory representation)。可以将组拆分成两个或更多个组,可以合并两个或更多个组,或者可以将数据从一个组移动到具有不同复制配置的另一个组(例如,从仅在美国的具有块的组到仅在欧洲的具有块的组)。
本文描述的实施例允许更有效地在复制的分区之间移动数据。复制的分区是组,每个组由一个或多个块组成,每个块保存数据的副本。每个块可以精确地由一个服务器提供服务。块是数据结构,其可以是可以封装行空间或行序列的多个分区的容器。可以在某个拆分点处拆分数据,例如,通过从一个组移动到两个新组。第一组可以接收数据的范围的较低(lower)部分(即,直到拆分点),第二组可以接收数据的范围的后一部分,并且可以从源组中移除该范围。类似地,可以通过从两个源组移动到一个目标组来合并数据。数据的移动必须在所有块中基本上同时发生。为此,例如,系统提交分布式事务,分布式事务包括源组、目标组和系统表,该系统表包含将范围映射到组的元数据。该分布式事务描述了移动并包含拆分点以及哪个范围到达哪个目标。每个组复制事务,确保每个块都应用事务。当源块应用事务时,源块会获取当前内容的并保留快照。当目标块应用事务时,目标块联系源块以传输要移动的范围。块的状态被拆分成存储在集群文件系统中的不可变文件和用于缓存更新的内存中状态。通过发送快照中所有文件名列表以及落入要传输的范围内的所有内存中更新的内容,源块将范围传输到目标块。目标块将内容添加到目标块内存中缓存的更新中,创建所有文件的快照,并将快照文件添加到目标块内容中,内容包裹在将文件内容限制为所请求范围的过滤器中。通过使文件的内容在新名称下可用而不用重复复制(duplicate)基础数据,这些快照类似于符号链接。来自内存中缓存的更新的数据可以通过例如传输控制协议(TCP)连接在组之间流传输。然后,目标组通知源组目标组不再需要源文件,并且源组可删除这些文件。典型地,当源组在源组的下一个周期压缩中重写文件时,源组删除文件。
本文描述的技术可提供以下优点。例如,这种方法允许在时间和空间上使拆分更有效,使得由于更多样的标准导致的更频繁地重新分配数据成为可能。例如,可以更快速且有效地拆分过载的分区。
相应地,本公开描述了分布式存储系统中用于拆分大组的技术。分布式数据库系统中的分布式事务的一个示例方法包括,识别在源组中插入拆分点的请求,源组包括一个或多个块复制件,每个块包括来自分布式数据库系统中的表的数据的至少一部分数据,拆分点将源组中的数据拆分成第一范围和不同于第一范围的第二范围。响应于在源组中插入拆分点的请求,将源组的第一范围中的文件名列表发送到第一目标组,第一目标组包括一个或多个块复制件。在第一个目标组中创建由第一范围中的文件名列表示的文件的虚拟副本,虚拟副本使每个文件的内容都在新名称下可用,而不用重复复制文件的数据。
可以将第一范围中的文件添加到第一目标组,并且可以向源组指示第一目标组不再依赖于源组的第一范围中的文件。作为响应,可以从源组中删除第一范围中的文件。此外,响应于在源组中插入拆分点的请求,可以将源组的第二范围中的文件名列表发送到包括一个或多个块复制件的第二目标组。另外,可以在第二目标组处创建由第二范围中的文件名列表示的文件的虚拟副本,虚拟副本使得每个文件的内容都在新名称下可用而不必重复复制文件的数据。此外,可以从源组发送第一范围中的内存中缓存的更新的内容,并将更新的内容在第一目标组处添加到目标组的内存中缓存的更新中。
根据某些实施例,分布式事务根据包括投票阶段和提交阶段的两阶段提交协议来运行。为了完成分布式事务,每个组中的大多数块必须在投票阶段提交。另一方面,响应于在投票阶段中的中止投票,每个组取消事务。
通常,根据本发明的实施例,与插入或移除拆分点相关联的数据移动由事务运行,事务包括源组和目标组作为参与者。事务可以更新合适的元数据表以反映新的数据位置并且可以更新拆分点,也可以更新源和目的地组中的拆分点的元数据表以反映移动。事务还可以包括源和目标组的范围数据,其指定要被移动的用户数据的范围和要应用的任意拆分偏移。当源组的源块应用范围数据时,它们可以保留当前的层堆栈并准备将其提供给目标组的目标块。目标块可以从同一区(zone)中的源块检索这些层,其中区是管理部署的单位。区集也可以是位置集,其中数据可以跨位置复制。当新的数据中心投入使用和旧的数据中心关闭时,可以分别在正在运行的系统中添加或移除区。例如,如果不同的应用程序的数据必须跨同一数据中心中的不同服务器集被分区,则数据中心中可能有一个或多个区。在目标块检索源块的当前层堆栈之后,目标块可以对表的层进行快照,表为从密钥到值的持久、有序、不可变的映射。目标块可以在应用循环中插入一个或多个指定要移动的范围的代理层,而不是同步解析那些移动的层。这些代理层可能引起已移动但尚未解析的范围的读取失败并返回可重试的错误。因此,目标块可以在解析后台中移动的范围的同时继续其应用循环。源组删除可以通过在删除源组之前,将已移出但尚未被目标组发布的所有范围的内容写入目标组中的复制表来实现,这可以允许源组在即使目标组的一些块不可用时也可以删除自己。尽管通过参考插入或移除一个拆分点来描述该示例,但是相同的系统和方法适用于插入或移除多个拆分点。
图1是分布式存储系统中用于拆分大组的示例环境100的示意图。如图所示,环境100包括分布式存储系统110,分布式存储系统110包括多个服务器112,每个服务器112管理多个数据组114。在操作中,客户端120可以将请求122发送到分布式存储系统110。分布式存储系统110可以处理请求122并且可以将响应124发送到客户端120。
分布式存储系统110可以是包括通过本地或专用网络(未示出)连接的多个服务器112的分布式系统。在一些情况下,本地或专用网络可以完全位于单个设施内,而在其他情况下,本地或专用网络可以覆盖大区域并且与多个设施互连。服务器112可以彼此通信,以便通过存储、检索和更新客户端120所请求的数据来服务客户端请求122。在某些情况下,分布式存储系统110可以是分布式数据库、分布式文件系统或其他类型的分布式存储。分布式存储系统110还可以包括管理和组织系统内的服务器112的操作的组件。
在分布式存储系统110内,每个服务器112可以是包括处理器和存储设备的计算设备,存储设备例如硬盘驱动器,用于存储由分布式存储系统110管理的数据。在一些情况下,可以根据分发策略将数据分发到不同的服务器112。例如,分发策略可以指定分布式存储系统110内的特定表或文件必须存储在特定数量的服务器112上以维持冗余。分发策略还可以指定,例如,数据必须存储在多个不同的位置以便维持地理冗余。在一些情况下,服务器112可以利用外部存储设备或系统,例如分布式文件系统,而不是直接连接的永久存储器。
每个服务器112可以管理一个或多个数据组114。数据组114可以包括由分布式存储系统110管理的总数据集的部分。每个数据组114可以包括来自分布式数据库中的表的一部分的数据、来自分布式文件系统的一个或多个文件或分布式存储系统110内的其他分区数据。在操作中,每个请求122可以由分布式存储系统110分析,以基于请求目标来确定请求所属的特定数据组114。然后,分布式存储系统可以将请求路由到管理特定数据组114的特定服务器112。
在一些情况下,客户端120可以是分布式存储系统110的用户。客户端120还可以是使用分布式存储系统110来存储和检索数据的实体(例如,网站或应用程序)。每个客户端120可以记录关于它发送给分布式存储系统110的每个请求122的信息。在一些情况下,每个客户端120可以存储发送到分布式存储系统110的整个请求的记录。每个客户端也可以存储发送到分布式存储系统的请求122的概要,例如,存储用同一请求参数集发送的请求的计数。
图2是用于拆分分布式存储系统中的大组的过程中的示例分布式数据库200组的示图。例如,如果存储在特定组中的数据变得太大,则可以在组中添加新的拆分点以将数据拆分成两个或更多个范围。组210可以包括一个或多个块212-216,并且组210中的块212-216可以是彼此的复制件,即块复制件。当组210没有错误时,组210中的所有块212-216都是等同的。每个组210可以包括当前被选为该组的主导的主导块。主导块充当那一组中的数据权威,类似于主副本,并且如果该主导停止响应,则选择另一个块作为主导块。
密钥空间中的拆分点确定组之间的边界,这反过来又确定了数据的负载或字节的分布。为了操作效率,不希望有一个分片(shard)执行太多的读或写操作。因此,分发策略可以包括对每个组中记录的数量,或者对每个组的数据大小或CPU负载使用的阈值限制。为了处置数据的重新平衡,可以根据需要周期性地添加或移除拆分点。
例如,如图2所示,当将拆分点225添加到源组220时,可以为目标组230分配第一范围,该第一范围包括来自源组220的直到拆分点225的数据。在一些实施例中,包括拆分点225之后的后一部分的数据的第二范围可以保持分配给源组220,或者可以分配给不同的目标组240。
图3是用于协调分布式存储系统中的分布式事务的示例过程300的泳道图。如图3所示,协调通过两阶段提交协议来实现,包括投票阶段和提交阶段。两阶段提交协议是一种原子性承诺协议,其协调参与分布式事务的所有进程是否以协商一致的方式提交或中止事务。当没有发生故障时,协议的两个阶段根据以下描述进行。
首先,投票阶段是如下的阶段:协调器进程尝试准备事务(即参与者)的所有参与进程,以采取必要步骤来提交或中止事务,并这样投票给以下二者之一:例如,如果参与者的本地部分运行已正确结束,则投票提交,或者,例如,如果已经用本地部分检测到问题,则投票中止。例如,可以选择事务中的一个组作为协调器320,并且事务中的剩余组可以是参与者330。在两个不同组之间的事务中,每个组中的大多数块必须同意提交,这样两个组都投票提交。
接下来,提交阶段是这样的阶段:其中,基于参与者330的投票,如果所有参与者330已投票提交,则协调器320决定是否提交,或者否则,决定是否中止事务。协调器320将结果通知给所有参与者330,然后参与者330继续进行所需的动作以提交或中止其本地事务资源(例如,数据库数据)。
在投票阶段中,协调器320向所有参与者330发送查询-提交消息305,并且协调器320等待,直到协调器320从所有参与者330接收到答复。参与者330运行事务直到参与者330被要求提交的点,如果出现失败,准备提交或中止315。每个参与者回复同意消息325,即在参与者的动作成功时投票提交,或者回复中止消息,即在参与者经历了失败使其无法提交时投票中止。
在提交阶段中,协调器320响应于来自每个参与者330的投票来确定是提交还是中止335。如果协调器320在投票阶段期间从所有参与者330接收到同意消息,则协调器320向所有参与者330发送提交消息345。每个参与者330完成操作355,释放在事务期间保持的所有锁定和资源,并向协调器320发送确认365。协调器320在已经接收到所有确认时完成事务,并且进程结束375。如果任何参与者330在投票阶段期间投票中止325,或者如果协调者320超时,则协调器320向所有参与者330发送退回消息345。每个参与者330取消事务355,释放在事务期间保持的资源和锁定,并向协调器320发送确认365。协调器320在已经接收到所有确认时取消事务,并且进程结束375。
图4是用于拆分分布式存储系统中的大组的示例处理400的流程图。在405处,识别在源组中插入拆分点的请求。源组可以包括一个或多个块复制件,每个块包括来自分布式数据库系统中的表的数据的至少一部分数据。拆分点可以将源组中的数据拆分成第一范围和不同于第一范围的第二范围。在410处,响应于在源组中插入拆分点的请求,可以将源组的第一范围中的文件名列表发送到第一目标组。第一目标组可以包括一个或多个块复制件。尽管参考插入或移除拆分点来描述该示例,但是相同的系统和方法适用于同时或基本上同时插入或移除多个拆分点。
在415处,可以在第一目标组处创建由第一范围中的文件名列表表示的文件的虚拟副本。虚拟副本或快照类似于符号链接,因为虚拟副本或参考文件使每个文件的内容都在新名称下可用,而不需要重复复制文件的基础数据。
在420处,可以将第一范围中的内存中缓存的更新的内容从源组发送到第一目标组。此外,可以将来自源组的第一范围中的内存中缓存的更新的内容添加到第一目标组的内存中缓存的更新。
在425处,可以将第一范围中的文件添加到第一目标组,并且可以向源组指示第一目标组不再依赖于源组处的第一范围中的文件。作为响应,可以从源组中删除第一范围中的文件。例如,当源组在源组的下一个周期压缩中重写文件时,源组可以删除第一范围中的文件。
在某些实施例中,该处理还可以包括:响应于在源组中插入拆分点的请求,将源组的第二范围中的文件名列表发送到第二目标组,第二目标组包括一个或多个块复制件。另外,可以在第二目标组处创建由第二范围中的文件名列表示的文件的虚拟副本,该虚拟副本使得每个文件的内容都在新名称下可用,而不用重复复制文件的数据。根据某些实施例,分布式事务的处理根据包括投票阶段和提交阶段的两阶段提交协议来运行。为了完成分布式事务,每个组中的大多数块必须在投票阶段中提交。另一方面,响应于投票阶段的中止投票,每个组取消事务。
图5是可用于实施本文档中描述的系统和方法的计算设备500、550的框图,计算设备500、550作为客户端或作为服务器或多个服务器。计算设备500旨在表示各种形式的数字计算机,例如膝上型计算机、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备550旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。另外,计算设备500或550可以包括通用串行总线(USB)闪存驱动器。USB闪存驱动器可以存储操作系统和其他应用程序。USB闪存驱动器可以包括输入/输出组件,例如无线发送器或者可以插入另一计算设备的USB端口的USB连接器。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的发明的实施。
计算设备500包括处理器502、内存504、存储设备506、连接到内存504和高速扩展端口510的高速接口508、以及连接到低速总线514和存储设备506的低速接口512。组件502、504、506、508、510和512中的每一个使用各种总线互连,并且可以安装在公共主板上或以其他适当的方式安装。处理器502可以处理在计算设备500内运行的指令,包括存储在内存504或存储设备506上的指令,以在外部输入/输出设备上显示GUI的图形信息,例如耦合到高速接口508的显示器516。在其他实施方式中,可以适当地使用多个处理器和/或多个总线以及多个内存和多种类型的内存。而且,可以连接多个计算设备500,每个设备提供必要操作的部分(例如,作为服务器库、一组刀片服务器或多处理器系统)。
内存504存储计算设备500内的信息。在一种实施方式中,内存504是易失性内存单元。在另一实施方式中,内存504是非易失性内存单元。内存504还可以是另一种形式的计算机可读介质,例如磁盘或光盘。
存储设备506能够为计算设备500提供大容量存储。在一种实施方式中,存储设备506可以是或包含计算机可读介质或包括存储区域网络中的设备或其他配置的设备阵列,计算机可读介质如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备。计算机程序产品可以有形地体现在信息载体中。计算机程序产品还可以包含指令,这些指令在运行时执行一个或多个方法,例如上面描述的那些方法。信息载体是计算机或机器可读介质,例如内存504、存储设备506或处理器502上的内存。
高速控制器508管理计算设备500的带宽密集型(bandwidth-intensive)操作,而低速控制器512管理较低带宽密集型操作。这种功能分配仅是示例性的。在一种实施方式中,高速控制器508耦合到内存504、显示器516(例如,通过图形处理器或加速器),并耦合到高速扩展端口510,高速扩展端口510可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器512耦合到存储设备506和低速扩展端口514。包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口,可以耦合到一个或多个输入/输出设备,例如键盘、指示设备、扫描仪,或例如,通过网络适配器耦合到诸如交换机或路由器的网络设备。
计算设备500可以以多种不同的形式实施,如图中所示。例如,它可以被实施为标准服务器520,或者在一组这样的服务器中多次实施。它也可以作为机架服务器系统524的一部分来实施。此外,它可以在诸如膝上型计算机522的个人计算机中实施。或者,来自计算设备500的组件可以与移动设备中的其他组件(未示出)组合,移动设备例如设备550。这些设备中的每一个可以包含计算设备500、550中的一个或多个,并且整个系统可以由彼此通信的多个计算设备500、550组成。
计算设备550包括处理器552、内存564、诸如显示器554的输入/输出设备、通信接口566和收发器568以及其他组件。设备550还可以设置有存储设备,例如微驱动器或其他设备,以提供额外的存储。组件550、552、564、554、566和568中的每一个使用各种总线互连,并且若干组件可以被安装在公共主板上或以其他适当的方式安装。
处理器552可以运行计算设备550内的指令,包括存储在内存564中的指令。处理器可以被实施为芯片的芯片集,芯片包括单个和多个的模拟和数字处理器。另外,可以使用多种架构中的任何架构来实现处理器。例如,处理器510可以是CISC(复杂指令集计算机)处理器、RISC(精简指令集计算机)处理器或MISC(最小指令集计算机)处理器。例如,可以提供处理器用于设备550的其他组件的协调,例如用户界面的控制、由设备550运行的应用程序以及设备550的无线通信。
处理器552可以通过耦合到显示器554的控制接口558和显示器接口556与用户通信。显示器554可以是例如TFT(薄膜晶体管液晶显示器)显示器或OLED(有机发光二极管)显示器,或其他适当的显示技术。显示器接口556可以包括用于驱动显示器554以向用户呈现图形和其他信息的适当电路。控制接口558可以从用户接收命令并将它们转换以提交给处理器552。此外,可以提供与处理器552通信的外部接口562,以便使设备550能够与其他设备近区域通信。例如,外部接口562可以在一些实施方式中提供有线通信,或者在其他实施方式中提供无线通信,并且还可以使用多个接口。
内存564存储计算设备550内的信息。内存564可以被实施为计算机可读介质或媒介、易失性存储单元或非易失性存储单元中的一个或多个。还可以提供扩展内存574并且扩展内存574通过扩展接口572连接到设备550,扩展接口572可以包括例如SIMM(单列直插存储模块)卡接口。这样的扩展内存574可以为设备550提供额外的存储空间,或者还可以存储设备550的应用程序或其他信息。具体地,扩展内存574可以包括执行或补充上述处理的指令,并且还可以包括安全信息。因此,例如,扩展内存574可以被提供为设备550的安全模块,并且可以用允许设备550的安全使用的指令编程。此外,可以通过SIMM卡提供安全应用程序以及附加信息,例如以不可入侵(non-hackable)的方式在SIMM卡上放置识别信息。
内存可以包括例如闪存和/或NVRAM内存,如下所述。在一种实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含指令,该指令在运行时执行一种或多种方法,例如上述的方法。信息载体是计算机或机器可读介质,例如内存564、扩展内存574或处理器552上的内存,其可以例如通过收发器568或外部接口562被接收。
设备550可以通过通信接口566进行无线通信,通信接口566可以在必要时包括数字信号处理电路。通信接口566可以提供各种模式或协议下的通信,例如GSM语音呼叫、SMS、EMS或MMS消息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。例如,这种通信可以通过射频收发器568发生。此外,可以发生短程通信,例如使用蓝牙、WiFi或其他这样的收发器(未示出)。此外,GPS(全球定位系统)接收器模块570可以向设备550提供附加的与导航和位置相关的无线数据,其可以由在设备550上运行的应用程序适当地使用。
设备550还可以使用音频编解码器560可听地通信,音频编解码器560可以从用户接收语音信息并将其转换为可用的数字信息。音频编解码器560同样可以为用户生成可听声音,例如通过扬声器,例如设备550的听筒中的扬声器。这种声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备550上操作的应用程序生成的声音。
如图所示,计算设备550可以以多种不同的形式实施。例如,它可以被实施为蜂窝电话580。它还可以被实施为智能手机582、个人数字助理或其他类似移动设备的一部分。
这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,耦合到存储系统、至少一个输入设备和至少一个输出设备,以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,以及向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也被熟知为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级程序化的和/或面向对象的编程语言,和/或以汇编/机器语言来实施。如这里所使用的,术语“机器可读介质”和“计算机可读介质”指的是使用的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),用于向可编程处理器提供机器指令和/或数据,包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指的是用于向可编程处理器提供机器指令和/或数据的任何信号。
为了提供与用户的交互,这里描述的系统和技术可以在具有显示设备(例如,CRT(阴极射线管)或LCD(液晶显示器)监视器)的计算机上实现,用于向用户显示信息,还可以具有键盘和指示设备(例如,鼠标或轨迹球),用户可以通过其向计算机提供输入。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。
这里描述的系统和技术可以在包括后端组件(例如,作为数据服务器),或包括中间件组件(例如,应用程序服务器),或包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该浏览器与这里描述的系统和技术的实施方式交互),或者这种后端、中间件或前端组件的任何组合的计算系统中被实施。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)、对等网络(具有ad-hoc或静态成员)、网格计算基础设施和因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系凭借在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而出现。
在本文档中,描述了用于分布式数据库系统中的分布式事务的方法和系统。本文档中描述的一个示例包括识别在包括一个或多个块复制件的源组中插入拆分点的请求,每个块包括来自分布式数据库系统中的表的数据的至少一部分数据,并且拆分点将源组中的数据拆分为第一范围和不同于第一范围的第二范围;响应于该请求:将源组的第一范围中的文件名列表发送给包含一个或多个块复制件的第一目标组;在第一目标组处,创建由第一范围中的文件名列表示的文件的虚拟副本,虚拟副本使得每个使用新名称的文件的数据可用,而不用重复复制文件的数据。
尽管上面已经详细描述了一些实施方式,但是其他修改也是可能的。另外,图中描绘的逻辑流程不需要所示的特定次序或顺序次序来实现想要的结果。可以从所描述的流程中提供其他步骤,或者可以从所描述的流程中消除步骤,并且可以将其他组件添加到所描述的系统或从所述系统移除。相应地,其他实施方式在以下权利要求的范围内。

Claims (20)

1.一种用于分布式数据库系统中的分布式事务的计算机实施的方法,所述方法由一个或多个处理器运行,其特征在于,所述方法包括:
识别在源组中插入拆分点的请求,所述源组包括一个或多个块复制件,每个块包括一系列不可变文件或层,包括来自所述分布式数据库系统中的表的数据中的至少一部分数据,并且所述拆分点将所述源组中的所述数据拆分为第一范围和不同于所述第一范围的第二范围;
响应于在所述源组中插入所述拆分点的所述请求:
将所述源组的所述第一范围中的文件名列表发送给多个目标组中的第一目标组,所述第一目标组包含一个或多个块复制件;以及
在所述第一目标组处,创建由所述第一范围中的所述文件名列表表 示的文件的虚拟副本,所述虚拟副本使得每个使用新名称的所述文件的数据可用,而不用重复复制所述文件的所述数据;
应用包括所述源组和所述目标组的分布式事务,其中所述事务更新元数据表以反映新的数据位置,更新拆分点以及更新所述源组和所述目标组中的拆分点的元数据表以反映移动,并且其中所述事务还包括所述源组和所述目标组的范围数据,其中所述范围数据指定要被移动的用户数据的范围和要应用的拆分偏移;
通过所述源组的源块来应用所述范围数据,保留当前的层堆栈并准备所述当前层堆栈以用于所述第一目标组的目标块;
检索同一区中的所述源块的所述当前层堆栈,并在应用循环中插入指定要被移动的范围的一个或多个代理层;和
在删除所述源组之前,将已移出但尚未被目标组发布的所有范围的内容写入所述第一目标组中的复制表中。
2.如权利要求1所述的方法,其特征在于,包括:
将所述第一范围中的所述文件添加到所述第一目标组;
指示所述源组所述第一目标组不再依赖于所述源组处的所述第一范围中的文件;以及
从所述源组删除所述第一范围中的文件。
3.如权利要求1所述的方法,其特征在于,包括:
响应于在所述源组中插入所述拆分点的请求:
将所述源组的所述第二范围中的文件名列表发送到第二目标组,所述第二目标组包括一个或多个块复制件;以及
在所述第二目标组处创建由所述第二范围中的文件名列表示的文件的虚拟副本,所述虚拟副本使得每个文件的内容在新名称下可用,而不用重复复制所述文件的数据。
4.如权利要求1所述的方法,其特征在于,包括:
从所述源组发送所述第一范围中的内存中缓存的更新的内容;以及
在所述第一目标组处,将来自所述源组的所述第一范围中的内存中缓存的更新的内容添加到所述第一目标组的内存中缓存的更新。
5.如权利要求1所述的方法,其特征在于,所述分布式事务根据两阶段提交协议来运行,其中所述两阶段提交协议包括投票阶段和提交阶段。
6.如权利要求5所述的方法,其特征在于,为了完成所述分布式事务,每个组中的大多数块必须在所述投票阶段中提交。
7.如权利要求5所述的方法,其特征在于,响应于在所述投票阶段中的中止投票,每个组取消所述事务。
8.一种用于运行分布式数据库中的分布式事务的系统,其特征在于,所述系统包括:
存储器,用于存储数据;和
一个或多个处理器,所述处理器可操作以访问所述存储器并执行操作,所述操作包括:
识别在源组中插入拆分点的请求,所述源组包括一个或多个块复制件,每个块包括一系列不可变文件或层,包括来自所述分布式数据库系统中的表的数据中的至少一部分数据,并且所述拆分点将所述源组中的所述数据拆分为第一范围和不同于所述第一范围的第二范围;
响应于在所述源组中插入所述拆分点的所述请求:
将所述源组的所述第一范围中的文件名列表发送给多个目标组中的第一目标组,所述第一目标组包含一个或多个块复制件;以及
在所述第一目标组处,创建由所述第一范围中的所述文件名列表表 示的文件的虚拟副本,所述虚拟副本使得每个使用新名称的所述文件的数据可用,而不用重复复制所述文件的数据;应用包括所述源组和所述目标组的分布式事务,其中所述事务更新元数据表以反映新的数据位置,更新拆分点以及更新所述源组和所述目标组中的拆分点的元数据表以反映移动,并且其中所述事务还包括所述源组和所述目标组的范围数据,其中所述范围数据指定要被移动的用户数据的范围和要应用的拆分偏移;
通过所述源组的源块来应用所述范围数据,保留当前的层堆栈并准备所述当前层堆栈以用于所述第一目标组的目标块;
检索同一区中的所述源块的所述当前层堆栈,并在应用循环中插入指定要被移动的范围的一个或多个代理层;和
在删除所述源组之前,将已移出但尚未被目标组发布的所有范围的内容写入所述第一目标组中的复制表中。
9.如权利要求8所述的系统,其特征在于,所述操作包括:
将所述第一范围中的所述文件添加到所述第一目标组;
指示所述源组所述第一目标组不再依赖于所述源组处的所述第一范围中的文件;以及
从所述源组删除所述第一范围中的文件。
10.如权利要求8所述的系统,其特征在于,所述操作包括:
响应于在所述源组中插入所述拆分点的请求:
将所述源组的所述第二范围中的文件名列表发送到第二目标组,所述第二目标组包括一个或多个块复制件;以及
在所述第二目标组处创建由所述第二范围中的文件名列表示的文件的虚拟副本,所述虚拟副本使得每个文件的内容在新名称下可用,而不用重复复制所述文件的数据。
11.如权利要求8所述的系统,其特征在于,所述操作包括:
从所述源组发送所述第一范围中的内存中缓存的更新的内容;以及
在所述第一目标组处,将来自所述源组的所述第一范围中的内存中缓存的更新的内容添加到所述第一目标组的内存中缓存的更新。
12.如权利要求8所述的系统,其特征在于,所述分布式事务根据两阶段提交协议来运行,其中所述两阶段提交协议包括投票阶段和提交阶段。
13.如权利要求12所述的系统,其特征在于,为了完成所述分布式事务,每个组中的大多数块必须提交。
14.如权利要求12所述的系统,其特征在于,响应于在所述投票阶段中的中止投票,每个组取消所述事务。
15.一种存储指令的非暂时性计算机可读介质,所述指令在运行时可操作以使至少一个处理器执行操作,所述操作用于运行分布式数据库中的分布式事务,其特征在于,所述操作包括:
识别在源组中插入拆分点的请求,所述源组包括一个或多个块复制件,每个块包括一系列不可变文件或层,包括来自所述分布式数据库系统中的表的数据中的至少一部分数据,并且所述拆分点将所述源组中的所述数据拆分为第一范围和不同于所述第一范围的第二范围;
响应于在所述源组中插入所述拆分点的所述请求:
将所述源组的所述第一范围中的文件名列表发送给多个目标组中的第一目标组,所述第一目标组包含一个或多个块复制件;以及
在所述第一目标组处,创建由所述第一范围中的所述文件名列表表 示的文件的虚拟副本,所述虚拟副本使得每个使用新名称的所述文件的数据可用,而不用重复复制所述文件的所述数据;
应用包括所述源组和所述目标组的分布式事务,其中所述事务更新元数据表以反映新的数据位置,更新拆分点以及更新所述源组和所述目标组中的拆分点的元数据表以反映移动,并且其中所述事务还包括所述源组和所述目标组的范围数据,其中所述范围数据指定要被移动的用户数据的范围和要应用的拆分偏移;
通过所述源组的源块来应用所述范围数据,保留当前的层堆栈并准备所述当前层堆栈以用于所述第一目标组的目标块;
检索同一区中的所述源块的所述当前层堆栈,并在应用循环中插入指定要被移动的范围的一个或多个代理层;和
在删除所述源组之前,将已移出但尚未被目标组发布的所有范围的内容写入所述第一目标组中的复制表中。
16.如权利要求15所述的计算机可读介质,其特征在于,所述操作包括:
将所述第一范围中的所述文件添加到所述第一目标组;
指示所述源组所述第一目标组不再依赖于所述源组处的所述第一范围中的文件;以及
从所述源组删除所述第一范围中的文件。
17.如权利要求15所述的计算机可读介质,其特征在于,所述操作包括:
响应于在所述源组中插入所述拆分点的请求:
将所述源组的所述第二范围中的文件名列表发送到第二目标组,所述第二目标组包括一个或多个块复制件;以及
在所述第二目标组处创建由所述第二范围中的文件名列表示的文件的虚拟副本,所述虚拟副本使得每个文件的内容在新名称下可用,而不用重复复制所述文件的数据。
18.如权利要求15所述的计算机可读介质,其特征在于,所述操作包括:
从所述源组发送所述第一范围中的内存中缓存的更新的内容;以及
在所述第一目标组处,将来自所述源组的所述第一范围中的内存中缓存的更新的内容添加到所述第一目标组的内存中缓存的更新。
19.如权利要求15所述的计算机可读介质,其特征在于,所述分布式事务根据两阶段提交协议来运行,其中所述两阶段提交协议包括投票阶段和提交阶段。
20.如权利要求19所述的计算机可读介质,其特征在于,为了完成所述分布式事务,每个组中的大多数块必须提交,并且
如果所述投票阶段包括中止投票,则每个组取消所述事务。
CN201680084930.7A 2016-05-02 2016-12-14 分布式系统中的拆分和移动范围 Active CN109074362B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/144,353 US10108632B2 (en) 2016-05-02 2016-05-02 Splitting and moving ranges in a distributed system
US15/144,353 2016-05-02
PCT/US2016/066506 WO2017192174A1 (en) 2016-05-02 2016-12-14 Splitting and moving ranges in a distributed system

Publications (2)

Publication Number Publication Date
CN109074362A CN109074362A (zh) 2018-12-21
CN109074362B true CN109074362B (zh) 2020-06-05

Family

ID=57755464

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680084930.7A Active CN109074362B (zh) 2016-05-02 2016-12-14 分布式系统中的拆分和移动范围

Country Status (7)

Country Link
US (1) US10108632B2 (zh)
EP (1) EP3452919A1 (zh)
JP (1) JP6553822B2 (zh)
KR (1) KR102025934B1 (zh)
CN (1) CN109074362B (zh)
AU (1) AU2016405587B2 (zh)
WO (1) WO2017192174A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536476B2 (en) 2016-07-21 2020-01-14 Sap Se Realtime triggering framework
US10482241B2 (en) 2016-08-24 2019-11-19 Sap Se Visualization of data distributed in multiple dimensions
US10542016B2 (en) 2016-08-31 2020-01-21 Sap Se Location enrichment in enterprise threat detection
US10630705B2 (en) 2016-09-23 2020-04-21 Sap Se Real-time push API for log events in enterprise threat detection
US10673879B2 (en) 2016-09-23 2020-06-02 Sap Se Snapshot of a forensic investigation for enterprise threat detection
US10534908B2 (en) 2016-12-06 2020-01-14 Sap Se Alerts based on entities in security information and event management products
US10534907B2 (en) 2016-12-15 2020-01-14 Sap Se Providing semantic connectivity between a java application server and enterprise threat detection system using a J2EE data
US10530792B2 (en) 2016-12-15 2020-01-07 Sap Se Using frequency analysis in enterprise threat detection to detect intrusions in a computer system
US11470094B2 (en) * 2016-12-16 2022-10-11 Sap Se Bi-directional content replication logic for enterprise threat detection
US10552605B2 (en) 2016-12-16 2020-02-04 Sap Se Anomaly detection in enterprise threat detection
US10764306B2 (en) 2016-12-19 2020-09-01 Sap Se Distributing cloud-computing platform content to enterprise threat detection systems
US10530794B2 (en) 2017-06-30 2020-01-07 Sap Se Pattern creation in enterprise threat detection
US10986111B2 (en) 2017-12-19 2021-04-20 Sap Se Displaying a series of events along a time axis in enterprise threat detection
US10681064B2 (en) 2017-12-19 2020-06-09 Sap Se Analysis of complex relationships among information technology security-relevant entities using a network graph
US11086840B2 (en) 2018-12-07 2021-08-10 Snowflake Inc. Transactional streaming of change tracking data
CN110427216A (zh) * 2019-08-05 2019-11-08 网联清算有限公司 构建物应用的管理方法、装置、计算设备及介质
CN114079659A (zh) * 2020-08-13 2022-02-22 支付宝(杭州)信息技术有限公司 分布式存储系统的服务器、分布式存储系统、数据存储及数据访问的方法和系统
US20230094789A1 (en) * 2021-09-24 2023-03-30 International Business Machines Corporation Data distribution in target database systems
US20230128133A1 (en) * 2021-10-22 2023-04-27 Dell Products L.P. Distributed smart lock system
CN117806836B (zh) * 2024-02-29 2024-06-07 济南浪潮数据技术有限公司 分布式文件系统命名空间管理方法、装置和设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399949A (zh) * 2013-08-16 2013-11-20 北京搜狐新媒体信息技术有限公司 一种数据库存储块状态控制方法和装置
CN103514274A (zh) * 2013-09-17 2014-01-15 宁波东冠科技有限公司 非关系型数据库HBase的数据迁移方法
CN103870602A (zh) * 2014-04-03 2014-06-18 中国科学院地理科学与资源研究所 数据库空间分片复制方法及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US6343294B1 (en) * 1998-12-15 2002-01-29 International Business Machines Corporation Data file editor for multiple data subsets
US7801848B2 (en) 2007-08-02 2010-09-21 International Business Machines Corporation Redistributing a distributed database
US9996572B2 (en) 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
US8346722B2 (en) 2009-11-23 2013-01-01 Sap Ag Replica placement strategy for distributed data persistence
US9009112B2 (en) 2010-03-15 2015-04-14 Microsoft Technology Licensing, Llc Reorganization of data under continuous workload
CN101916261B (zh) 2010-07-28 2013-07-17 北京播思软件技术有限公司 一种分布式并行数据库系统的数据分区方法
US9805108B2 (en) 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US9753999B2 (en) 2012-01-06 2017-09-05 Citus Data Bilgi Islemieri Ticaret A.S. Distributed database with mappings between append-only files and repartitioned files
US9069835B2 (en) 2012-05-21 2015-06-30 Google Inc. Organizing data in a distributed storage system
US8965921B2 (en) 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US9411866B2 (en) 2012-12-19 2016-08-09 Sap Global Ip Group, Sap Ag Replication mechanisms for database environments

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399949A (zh) * 2013-08-16 2013-11-20 北京搜狐新媒体信息技术有限公司 一种数据库存储块状态控制方法和装置
CN103514274A (zh) * 2013-09-17 2014-01-15 宁波东冠科技有限公司 非关系型数据库HBase的数据迁移方法
CN103870602A (zh) * 2014-04-03 2014-06-18 中国科学院地理科学与资源研究所 数据库空间分片复制方法及系统

Also Published As

Publication number Publication date
US20170316026A1 (en) 2017-11-02
WO2017192174A1 (en) 2017-11-09
AU2016405587A1 (en) 2018-11-22
KR102025934B1 (ko) 2019-09-26
EP3452919A1 (en) 2019-03-13
JP2019519025A (ja) 2019-07-04
AU2016405587B2 (en) 2019-11-21
US10108632B2 (en) 2018-10-23
CN109074362A (zh) 2018-12-21
JP6553822B2 (ja) 2019-07-31
KR20180123140A (ko) 2018-11-14

Similar Documents

Publication Publication Date Title
CN109074362B (zh) 分布式系统中的拆分和移动范围
US10853242B2 (en) Deduplication and garbage collection across logical databases
CN105027068B (zh) 在存储系统中执行复制
CN107844388B (zh) 从备份系统流式恢复数据库
US9990225B2 (en) Relaxing transaction serializability with statement-based data replication
US20150193526A1 (en) Schemaless data access management
US11044312B2 (en) Storage segment server covered cache
US11880495B2 (en) Processing log entries under group-level encryption
US10048883B2 (en) Integrated page-sharing cache storing a single copy of data where the data is stored in two volumes and propagating changes to the data in the cache back to the two volumes via volume identifiers
US11301210B2 (en) Merging multiple sorted lists in a distributed computing system
US11907162B2 (en) Minimizing data volume growth under encryption changes
US9967310B2 (en) Using an RPC framework to facilitate out-of-band data transfers
US20230325378A1 (en) Online Migration From An Eventually Consistent System To A Strongly Consistent System
US11379147B2 (en) Method, device, and computer program product for managing storage system
US20230188324A1 (en) Initialization vector handling under group-level encryption
US11455292B2 (en) Brokering persisted and unpersisted log records
US10802926B2 (en) Accessing prior storage segment server state
US11099948B2 (en) Persistent storage segment caching for data recovery
Koschel et al. Architecture of Large-Scale Systems
CN113806023A (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
GR01 Patent grant
GR01 Patent grant