【技术实现步骤摘要】
【国外来华专利技术】优先权声明本申请根据35U.S.C.§119(e)要求2014年6月24日提交的美国专利申请序号62/016,457的优先权,该申请的全部内容通过引用结合到本文中。
技术介绍
本说明书涉及处理远程数据库的变化(mutation)。数据库是通常被以支持处理包括在其中的数据的方式组织的数据集合。数据库常常被数据库服务器管理,所述数据库服务器促进由数据库管理员和/或通过局域网或广域网连接到该数据库服务器的设备的用户对包括在数据库中的数据的访问和操纵。
技术实现思路
一般地,可以用包括以下动作的方法来体现在本说明书中描述的主题的一个创新方面:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及用于所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略,确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。这方面的其它实施例包括被配置成执行在计算机存储设备上编码的方法的动作的相应系统、装置以及计算机程序。这些及其它实施例每个可以可选地包括以下特征中的一个或多个。基于冲突解决策略确定所述两个或更多个数据库变化有资格折叠包括:识别基于所述冲突解决策略将被应用于远程数据库的所述两个或更多个数据库变化中的第一数据库变化。将所述两个或更多数据库变化折叠可以包括:将所述第一数据库变化和所述两个或更多个数据库变化中在所述第一数 ...
【技术保护点】
一种由一个或多个数据处理装置实现的方法,所述方法包括:从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:包括在所述数据库中的实体;用于所述实体的操作;以及所述实体的客户端版本号;在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及将所述两个或更多个数据库变化折叠成单个数据库变化。
【技术特征摘要】
【国外来华专利技术】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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。