当前位置: 首页 > 专利查询>谷歌公司专利>正文

处理远程数据库的变化制造技术

技术编号:14689114 阅读:41 留言:0更新日期:2017-02-23 11:32
描述了用于处理远程数据库的变化的方法、系统以及装置。在一个方面,一种方法包括从客户端设备接收数据库变化的日志,该数据库变化日志指示先前对存储在客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在数据库中的实体;用于实体的操作;以及用于实体的客户端版本号;在数据库变化的日志中识别两个或更多个数据库变化,每个针对相同实体指定相同客户端版本号;基于冲突解决策略,确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。

【技术实现步骤摘要】
【国外来华专利技术】优先权声明本申请根据35U.S.C.§119(e)要求2014年6月24日提交的美国专利申请序号62/016,457的优先权,该申请的全部内容通过引用结合到本文中。
技术介绍
本说明书涉及处理远程数据库的变化(mutation)。数据库是通常被以支持处理包括在其中的数据的方式组织的数据集合。数据库常常被数据库服务器管理,所述数据库服务器促进由数据库管理员和/或通过局域网或广域网连接到该数据库服务器的设备的用户对包括在数据库中的数据的访问和操纵。
技术实现思路
一般地,可以用包括以下动作的方法来体现在本说明书中描述的主题的一个创新方面:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及用于所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略,确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。这方面的其它实施例包括被配置成执行在计算机存储设备上编码的方法的动作的相应系统、装置以及计算机程序。这些及其它实施例每个可以可选地包括以下特征中的一个或多个。基于冲突解决策略确定所述两个或更多个数据库变化有资格折叠包括:识别基于所述冲突解决策略将被应用于远程数据库的所述两个或更多个数据库变化中的第一数据库变化。将所述两个或更多数据库变化折叠可以包括:将所述第一数据库变化和所述两个或更多个数据库变化中在所述第一数据库变化之后发生的每个其它数据库变化折叠成单个数据库变化。将所述第一数据库变化和每个其它数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成单个数据库变化。有资格折叠的所述两个或更多个数据库变化中的每一个可以指定冲突解决策略。该冲突解决策略可以是与数据库的远程版本相关联的默认冲突解决策略。该操作还可以包括:针对所述单个数据库变化并且针对包括在所述日志中的每个其它数据库变化:查询所述数据库的远程版本以识别由该变化指定的实体的基础版本号;确定该实体的客户端版本号是否与该实体的基础版本号匹配;响应于确定所述客户端版本号与所述基础版本号匹配:针对所述数据库的所述远程版本,执行由该变化指定的操作;生成对所述客户端设备的响应数据,所述响应数据包括该实体的经更新的基础版本号;以及响应于确定所述客户端版本号与所述基础版本号不匹配:基于冲突解决策略来确定是否将执行由该变化指定的操作;针对所述数据库的所述远程版本,只有当确定将执行由该变化指定的操作时才执行由该变化指定的操作;以及生成对所述客户端设备的冲突响应数据,所述冲突响应数据指定是否执行由该变化指定的操作。针对由该变化指定的实体,对所述客户端设备的所述冲突响应数据包括存储在所述数据库的所述远程版本中的实体的当前版本。一般地,可以用包括以下动作的方法来体现在本说明书中描述的主题的另一方面:访问存储在客户端设备上的数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略,确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。这方面的其它实施例包括配置成执行在计算机存储设备上编码的方法的动作的相应系统、装置以及计算机程序。这些及其它实施例每个可以可选地包括以下特征中的一个或多个。基于冲突解决策略确定所述两个或更多数据库变化有资格折叠可以包括:确定由所述两个或更多数据库变化指定的操作的结果与存储在数据库上的对应数据库实体的远程版本的值无关。将所述两个或更多个数据库变化折叠成单个数据库变化可以包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成单个数据库变化。有资格折叠的所述两个或更多个数据库变化中的每一个可以指定冲突解决策略。该冲突解决策略可以是与数据库的远程版本相关联的默认冲突解决策略。所述操作还可以包括:将数据库变化的折叠日志提供给数据库服务器,所述数据库变化的折叠日志包括所述数据库变化的日志中的未被折叠的每个变化和所述单个数据库变化。一般地,可以用包括以下动作的方法来体现在本说明书中描述的主题的另一方面:从客户端设备接收对于对存储在所述客户端设备上的数据库的客户端版本的更新的请求,所述请求包括i)所述数据库的所述客户端版本的客户端数据库版本号,以及ii)指定包括在所述数据库的所述客户端版本中的特定数据库实体的第一游标;访问远离所述客户端设备的所述数据库的远程版本,所述数据库的所述远程版本包括多个数据库实体,每个数据库实体具有跨所述数据库的所述多个数据库实体以单调增加方式分配的远程实体版本;针对包括在以与所述特定数据库实体匹配的数据库实体开始的数据库实体的有序子集中的多个数据库实体中的每一个数据库实体:基于该数据库实体的远程实体版本号与所述客户端数据库版本号的比较来确定该数据库实体是否已被更新;以及针对已被更新的每个数据库实体,向所述客户端设备提供实体更新;以及利用至少一个实体更新向客户端设备提供远程数据库版本号,所述远程数据库版本号是所述数据库的所述远程版本中的最高远程实体版本号。这方面的其它实施例包括配置成执行在计算机存储设备上编码的方法的动作的对应系统、装置以及计算机程序。这些及其它实施例每个可以可选地包括以下特征中的一个或多个。所述数据库实体的子集不包括在所述数据库的所述远程版本中的每个数据库实体。所述数据库实体的子集基于被满足的一个或多个系统约束来动态地确定。所述一个或多个系统约束包括:针对所述对于更新的请求所允许的最大处理时间;或者针对所述对于更新的请求所允许的最大更新尺寸。所述操作还可以包括:从客户端设备接收对于对所述数据库的所述客户端版本的更新的第二请求,所述第二请求包括i)第二客户端数据库版本号,所述第二客户端数据库版本号与利用实体更新提供给所述客户端设备的所述远程数据库版本号匹配;以及ii)指定第二数据库实体的第二游标,所述第二数据库实体包括在所述数据库的所述客户端版本中并且排序在所述数据库实体的有序子集中所包括的最后数据库实体之后。所述操作还可以包括:更新所述数据库的所述远程版本的三维表格,所述三维表格指定在当前时间之前预定时间段内发生的对所述数据库的所述远程版本的每个更新。一般地,可以用包括以下动作的方法来体现在本说明书中描述的主题的另一方面:从服务器设备接收至指定版本号为止的包括在数据库的远程版本中的数据库实体的计数;确定所述数据库实体的计数小于客户端实体计数,所述客户端实体计数指定至所述指定版本号为止的包括在所述数据库的客户端版本中的实体的数目;响应于确定所述数据库实体的计数小于所述客户端实体计数,向所述服务器设备发送对于包括在所述数据库的所述远程版本中的所述数据库实体的键列表的请求;从所述服务器设备接收包括在所本文档来自技高网...
处理远程数据库的变化

【技术保护点】
一种由一个或多个数据处理装置实现的方法,所述方法包括:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。

【技术特征摘要】
【国外来华专利技术】2014.06.24 US 62/016,4571.一种由一个或多个数据处理装置实现的方法,所述方法包括:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。2.根据权利要求1所述的方法,其中,基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠包括:识别基于所述冲突解决策略将被应用于远程数据库的所述两个或更多个数据库变化中的第一数据库变化。3.根据权利要求2所述的方法,其中,将所述两个或更多个数据库变化折叠包括:将所述第一数据库变化和所述两个或更多个数据库变化中在所述第一数据库变化之后发生的每个其它数据库变化折叠成单个数据库变化。4.根据权利要求3所述的方法,其中,将所述第一数据库变化和每个其它数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成所述单个数据库变化。5.根据权利要求1所述的方法,其中,有资格折叠的所述两个或更多个数据库变化中的每一个数据库变化指定冲突解决策略。6.根据权利要求1所述的方法,进一步包括:针对所述单个数据库变化并且针对包括在所述日志中的每个其它数据库变化:查询所述数据库的远程版本以识别由该变化指定的实体的基础版本号;确定该实体的客户端版本号是否与该实体的基础版本号匹配;响应于确定所述客户端版本号与所述基础版本号匹配:针对所述数据库的所述远程版本,执行由该变化指定的操作;生成对所述客户端设备的响应数据,所述响应数据包括该实体的经更新的基础版本号;以及响应于确定所述客户端版本号与所述基础版本号不匹配:基于冲突解决策略来确定是否将执行由该变化指定的操作;针对所述数据库的所述远程版本,只有当确定将执行由该变化指定的操作时才执行由该变化指定的操作;以及生成对所述客户端设备的冲突响应数据,所述冲突响应数据指定是否执行由该变化指定的操作。7.根据权利要求6所述的方法,其中,针对由该变化指定的实体,对所述客户端设备的所述冲突响应数据包括存储在所述数据库的所述远程版本中的实体的当前版本。8.一种系统,包括:一个或多个数据处理装置;以及存储指令的数据存储,所述指令在由所述一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。9.根据权利要求8所述的系统,其中,基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠包括:识别基于所述冲突解决策略将被应用于所述远程数据库的所述两个或更多个数据库变化中的第一数据库变化。10.根据权利要求9所述的系统,其中,将所述两个或更多个数据库变化折叠包括:将所述第一数据库变化和所述两个或更多个数据库变化中在所述第一数据库变化之后发生的每个其它数据库变化折叠成单个数据库变化。11.根据权利要求10所述的系统,其中,将所述第一数据库变化和每个其它数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成所述单个数据库变化。12.根据权利要求8所述的系统,其中,有资格折叠的两个或更多个数据库变化中的每一个数据库变化指定冲突解决策略。13.根据权利要求8所述的系统,其中,所述操作进一步包括:针对所述单个数据库变化并且针对包括在所述日志中的每个其它数据库变化:查询所述数据库的远程版本以识别由该变化指定的实体的基础版本号;确定该实体的客户端版本号是否与该实体的基础版本号匹配;响应于确定所述客户端版本号与所述基础版本号匹配:针对所述数据库的所述远程版本,执行由该变化指定的操作;生成对所述客户端设备的响应数据,所述响应数据包括该实体的经更新的基础版本号;以及响应于确定所述客户端版本号与所述基础版本号不匹配:基于冲突解决策略来确定是否将执行由该变化指定的操作;针对所述数据库的所述远程版本,只有当确定将执行由该变化指定的操作时才执行由该变化指定的操作;以及生成对所述客户端设备的冲突响应数据,所述冲突响应数据指定是否执行由该变化指定的操作。14.根据权利要求13所述的系统,其中,针对由该变化指定的实体,对所述客户端设备的所述冲突响应数据包括存储在所述数据库的所述远程版本中的实体的当前版本。15.一种存储指令的计算机可读介质,所述指令在由一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。16.根据权利要求15所述的计算机可读介质,其中,基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠包括:识别基于所述冲突解决策略将被应用于所述远程数据库的所述两个或更多个数据库变化中的第一数据库变化。17.根据权利要求16所述的计算机可读介质,其中,将所述两个或更多个数据库变化折叠包括:将所述第一数据库变化和所述两个或更多个数据库变化中在所述第一数据库变化之后发生的每个其它数据库变化折叠成单个数据库变化。18.根据权利要求17所述的计算机可读介质,其中,将所述第一数据库变化和每个其它数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成所述单个数据库变化。19.根据权利要求15所述的计算机可读介质,其中,有资格折叠的所述两个或更多个数据库变化中的每一个数据库变化指定冲突解决策略。20.根据权利要求15所述的计算机可读介质,进一步包括:针对所述单个数据库变化并且针对包括在所述日志中的每个其它数据库变化:查询所述数据库的远程版本以识别由该变化指定的实体的基础版本号;确定该实体的客户端版本号是否与该实体的基础版本号匹配;响应于确定所述客户端版本号与所述基础版本号匹配:针对所述数据库的所述远程版本,执行由该变化指定的操作;生成对所述客户端设备的响应数据,所述响应数据包括该实体的经更新的基础版本号;以及响应于确定所述客户端版本号与所述基础版本号不匹配:基于冲突解决策略来确定是否将执行由该变化指定的操作;针对所述数据库的所述远程版本,只有当确定将执行由该变化指定的操作时才执行由该变化指定的操作;以及生成对所述客户端设备的冲突响应数据,所述冲突响应数据指定是否执行由该变化指定的操作。21.根据权利要求20所述的计算机可读介质,其中,针对由该变化指定的实体,对所述客户端设备的所述冲突响应数据包括存储在所述数据库的所述远程版本中的实体的当前版本。22.根据权利要求1所述的方法,其中,所述冲突解决策略是与所述数据库的所述远程版本相关联的默认冲突解决策略。23.根据权利要求8所述的系统,其中,所述冲突解决策略是与所述数据库的所述远程版本相关联的默认冲突解决策略。24.根据权利要求15所述的计算机可读介质,其中,所述冲突解决策略是与所述数据库的所述远程版本相关联的默认冲突解决策略。25.一种由一个或多个数据处理装置实现的方法,所述方法包括:访问存储在客户端设备上的数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。26.根据权利要求25所述的方法,其中,基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠包括:确定由所述两个或更多个数据库变化指定的操作的结果与为所述数据库的远程版本上的相对应的数据库实体存储的值无关。27.根据权利要求25所述的方法,其中,将所述两个或更多个数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成所述单个数据库变化。28.根据权利要求25所述的方法,其中,有资格折叠的所述两个或更多个数据库变化中的每一个数据库变化指定所述冲突解决策略。29.根据权利要求25所述的方法,其中,所述冲突解决策略是与所述数据库的所述远程版本相关联的默认冲突解决策略。30.根据权利要求25所述的方法,还包括:将数据库变化的折叠日志提供给数据库服务器,所述数据库变化的折叠日志包括所述数据库变化的日志中的未被折叠的每个变化和所述单个数据库变化。31.一种系统,包括:一个或多个数据处理装置;以及存储指令的数据存储,所述指令在由所述一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:访问存储在客户端设备上的数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。32.根据权利要求31所述的系统,其中,基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠包括:确定由所述两个或更多个数据库变化指定的操作的结果与为所述数据库的远程版本上的相对应的数据库实体存储的值无关。33.根据权利要求31所述的系统,其中,将所述两个或更多个数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成所述单个数据库变化。34.根据权利要求31所述的系统,其中,有资格折叠的所述两个或更多个数据库变化中的每一个数据库变化指定所述冲突解决策略。35.根据权利要求31所述的系统,其中,所述冲突解决策略是与所述数据库的所述远程版本相关联的默认冲突解决策略。36.根据权利要求31所述的系统,其中,所述操作进一步包括:将数据库变化的折叠日志提供给数据库服务器,所述数据库变化的折叠日志包括所述数据库变化的日志中的未被折叠的每个变化和所述单个数据库变化。37.一种存储指令的计算机可读介质,所述指令在由一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:访问存储在客户端设备上的数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。38.根据权利要求37所述的计算机可读介质,其中,基于冲突解决策略确定所述两个或更多个数据库变化有资格折叠包括:确定由所述两个或更多个数据库变化指定的操作的结果与为所述数据库的远程版本上的相对应的数据库实体存储的值无关。39.根据权利要求37所述的计算机可读介质,其中,将所述两个或更多个数据库变化折叠成单个数据库变化包括将来自有资格折叠的所述两个或更多个数据库变化的最近数据库变化折叠成所述单个数据库变化。40.根据权利要求37所述的计算机可读介质,其中,有资格折叠的所述两个或更多个数据库变化中的每一个数据库变化指定所述冲突解决策略。41.根据权利要求37所述的计算机可读介质,其中,所述冲突解决策略是与所述数据库的所述远程版本相关联的默认冲突解决策略。42.根据权利要求37所述的计算机可读介质,其...

【专利技术属性】
技术研发人员:陈建军阿尔弗雷德·R·K·富勒史蒂文·蔡
申请(专利权)人:谷歌公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1