1.一种由一个或多个数据处理装置实现的方法,所述方法包括:
从客户端设备接收数据库变化的日志,所述数据库变化的日志指示先前对存储在所述客户端设备上的数据库的客户端版本进行的改变,并且每个数据库变化指定:
包括在所述数据库中的实体;
用于所述实体的操作;以及
所述实体的客户端版本号;
在所述数据库变化的日志中识别两个或更多个数据库变化,每个数据库变化针对相同实体指定相同客户端版本号;
基于冲突解决策略来确定所述两个或更多个数据库变化有资格折叠;以及
将所述两个或更多个数据库变化折叠成单个数据库变化。
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所述的计算机可读介质,其中,所述操作进一步包括:
将数据库变化的折叠日志提供给数据库服务器,所述数据库变化的折叠日志包括所述数据库变化的日志中的未被折叠的每个变化和所述单个数据库变化。
43.一种由一个或多个数据处理装置实现的方法,所述方法包括:
从客户端设备接收对于对存储在所述客户端设备上的数据库的客户端版本的更新的请求,所述请求包括i)所述数据库的所述客户端版本的客户端数据库版本号、以及ii)指定包括在所述数据库的所述客户端版本中的特定数据库实体的第一游标;
访问远离所述客户端设备的所述数据库的远程版本,所述数据库的所述远程版本包括多个数据库实体,每个数据库实体具有跨所述数据库的所述多个数据库实体以单调增加方式分配的远程实体版本;
针对包括在以与所述特定数据库实体匹配的数据库实体开始的数据库实体的有序子集中的多个数据库实体中的每一个数据库实体:
基于该数据库实体的远程实体版本号与所述客户端数据库版本号的比较来确定该数据库实体是否已被更新;以及
针对已被更新的每个数据库实体,向所述客户端设备提供实体更新;以及
利用至少一个实体更新向客户端设备提供远程数据库版本号,所述远程数据库版本号是所述数据库的所述远程版本中的最高远程实体版本号。
44.根据权利要求43所述的方法,其中,所述数据库实体的子集不包括在所述数据库的所述远程版本中的每个数据库实体。
45.根据权利要求44所述的方法,其中,所述数据库实体的子集基于被满足的一个或多个系统约束来动态地确定。
46.根据权利要求45所述的方法,其中,所述一个或多个系统约束包括:
针对所述对于更新的请求所允许的最大处理时间;或者
针对所述对于更新的请求所允许的最大更新尺寸。
47.根据权利要求43所述的方法,还包括:
从所述客户端设备接收对于对所述数据库的所述客户端版本的更新的第二请求,所述第二请求包括i)第二客户端数据库版本号,所述第二客户端数据库版本号与利用实体更新提供给所述客户端设备的所述远程数据库版本号匹配;以及ii)指定第二数据库实体的第二游标,所述第二数据库实体包括在所述数据库的所述客户端版本中并且排序在所述数据库实体的有序子集中所包括的最后数据库实体之后。
48.根据权利要求43所述的方法,还包括:
更新所述数据库的所述远程版本的三维表格,所述三维表格指定在当前时间之前的预定时间段内发生的对所述数据库的所述远程版本的每个更新。
49.一种系统,包括:
一个或多个数据处理装置;以及
存储指令的数据存储,所述指令在由所述一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:
从客户端设备接收对于对存储在所述客户端设备上的数据库的客户端版本的更新的请求,所述请求包括i)所述数据库的所述客户端版本的客户端数据库版本号以及ii)指定包括在所述数据库的所述客户端版本中的特定数据库实体的第一游标;
访问远离所述客户端设备的所述数据库的远程版本,所述数据库的所述远程版本包括多个数据库实体,每个数据库实体具有跨所述数据库的所述多个数据库实体以单调增加方式分配的远程实体版本;
针对包括在以与所述特定数据库实体匹配的数据库实体开始的数据库实体的有序子集中的多个数据库实体中的每一个数据库实体:
基于该数据库实体的远程实体版本号与所述客户端数据库版本号的比较来确定该数据库实体是否已被更新;以及
针对已被更新的每个数据库实体,向所述客户端设备提供实体更新;以及
利用至少一个实体更新向所述客户端设备提供远程数据库版本号,所述远程数据库版本号是所述数据库的所述远程版本中的最高远程实体版本号。
50.根据权利要求49所述的系统,其中,所述数据库实体的子集不包括在所述数据库的所述远程版本中的每个数据库实体。
51.根据权利要求50所述的系统,其中,所述数据库实体的子集基于被满足的一个或多个系统约束来动态地确定。
52.根据权利要求51所述的系统,其中,所述一个或多个系统约束包括:
针对所述对于更新的请求所允许的最大处理时间;或者
针对所述对于更新的请求所允许的最大更新尺寸。
53.根据权利要求49所述的系统,其中,所述操作进一步包括:
从所述客户端设备接收对于对所述数据库的所述客户端版本的更新的第二请求,所述第二请求包括i)第二客户端数据库版本号,所述第二客户端数据库版本号与利用实体更新提供给所述客户端设备的所述远程数据库版本号匹配;以及ii)指定第二数据库实体的第二游标,所述第二数据库实体包括在所述数据库的所述客户端版本中并且排序在所述数据库实体的有序子集中所包括的最后数据库实体之后。
54.根据权利要求49所述的系统,其中,所述操作进一步包括:
更新所述数据库的所述远程版本的三维表格,所述三维表格指定在当前时间之前的预定时间段内发生的对所述数据库的所述远程版本的每个更新。
55.一种存储指令的计算机可读介质,所述指令在由一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:
从客户端设备接收对于对存储在所述客户端设备上的数据库的客户端版本的更新的请求,所述请求包括i)所述数据库的所述客户端版本的客户端数据库版本号以及ii)指定包括在所述数据库的所述客户端版本中的特定数据库实体的第一游标;
访问远离所述客户端设备的所述数据库的远程版本,所述数据库的所述远程版本包括多个数据库实体,每个数据库实体具有跨所述数据库的所述多个数据库实体以单调增加方式分配的远程实体版本;
针对包括在以与所述特定数据库实体匹配的数据库实体开始的数据库实体的有序子集中的多个数据库实体中的每一个数据库实体:
基于该数据库实体的远程实体版本号与所述客户端数据库版本号的比较来确定该数据库实体是否已被更新;以及
针对已被更新的每个数据库实体,向所述客户端设备提供实体更新;以及
利用至少一个实体更新向所述客户端设备提供远程数据库版本号,所述远程数据库版本号是所述数据库的所述远程版本中的最高远程实体版本号。
56.根据权利要求55所述的计算机可读介质,其中,所述数据库实体的子集不包括在所述数据库的所述远程版本中的每个数据库实体。
57.根据权利要求56所述的计算机可读介质,其中,所述数据库实体的子集基于被满足的一个或多个系统约束来动态地确定。
58.根据权利要求57所述的计算机可读介质,其中,所述一个或多个系统约束包括:
针对所述对于更新的请求所允许的最大处理时间;或者
针对所述对于更新的请求所允许的最大更新尺寸。
59.根据权利要求55所述的计算机可读介质,其中,所述操作进一步包括:
从所述客户端设备接收对于对所述数据库的所述客户端版本的更新的第二请求,所述第二请求包括i)第二客户端数据库版本号,所述第二客户端数据库版本号与利用实体更新提供给所述客户端设备的所述远程数据库版本号匹配;以及ii)指定第二数据库实体的第二游标,所述第二数据库实体包括在所述数据库的所述客户端版本中并且排序在所述数据库实体的有序子集中所包括的最后数据库实体之后。
60.根据权利要求55所述的计算机可读介质,其中,所述操作进一步包括:
更新所述数据库的所述远程版本的三维表格,所述三维表格指定在当前时间之前的预定时间段内发生的对所述数据库的所述远程版本的每个更新。
61.一种由一个或多个数据处理装置实现的方法,所述方法包括:
从服务器设备接收至指定版本号为止的包括在数据库的远程版本中的数据库实体的计数;
确定所述数据库实体的计数小于客户端实体计数,所述客户端实体计数指定至所述指定版本号为止的包括在所述数据库的客户端版本中的实体的数目;
响应于确定所述数据库实体的计数小于所述客户端实体计数,向所述服务器设备发送对于包括在所述数据库的所述远程版本中的所述数据库实体的键列表的请求;
从所述服务器设备接收包括在所述数据库的所述远程版本中的所述数据库实体的适当子集的键的第一适当子集;以及
从所述数据库的所述客户端版本移除包括在所述数据库的所述客户端版本中的数据库实体的对应适当子集内且具有未被包括在所述键的第一适当子集中的键的任何数据库实体。
62.根据权利要求61所述的方法,进一步包括:
向所述服务器设备发送对于包括在数据库实体的第二子集中的数据库实体的第二计数的第二请求,所述数据库实体的第二子集不同于所述数据库实体的第一子集,所述第二请求指定所述数据库的第二版本号;
从所述服务器设备接收至所述第二版本号为止的数据库实体的第二计数,该数据库实体包括在被包括在所述数据库的所述远程版本中的数据库实体的对应第二子集中;
确定所述数据库实体的第二计数小于第二客户端实体计数,所述第二客户端实体计数指定至所述第二版本号为止的包括在所述数据库的所述数据库实体客户端版本的第二子集中的实体的第二数目;
向所述服务器设备发送对包括在所述第二子集中的所述数据库实体的键的第二列表的第二请求;
从所述服务器设备接收包括在所述数据库的所述远程版本中的所述数据库实体的第三子集的键的第三子集;以及
从所述数据库的所述客户端版本移除包括在所述数据库的所述客户端版本中的数据库实体的子集内与所述第三子集相对应且具有未被包括在所述键的第三子集中的键的任何数据库实体。
63.一种系统,包括:
一个或多个数据处理装置;以及
存储指令的数据存储,所述指令在由所述一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:
从服务器设备接收至指定版本号为止的包括在数据库的远程版本中的数据库实体的计数;
确定所述数据库实体的计数小于客户端实体计数,所述客户端实体计数指定至所述指定版本号为止的包括在所述数据库的客户端版本中的实体的数目;
响应于确定所述数据库实体的计数小于所述客户端实体计数,向所述服务器设备发送对于包括在所述数据库的所述远程版本中的所述数据库实体的键列表的请求;
从所述服务器设备接收包括在所述数据库的所述远程版本中的所述数据库实体的适当子集的键的第一适当子集;以及
从所述数据库的所述客户端版本移除包括在所述数据库的所述客户端版本中的数据库实体的对应适当子集内且具有未被包括在所述键的第一适当子集中的键的任何数据库实体。
64.根据权利要求63所述的系统,其中,所述操作进一步包括:
向所述服务器设备发送对于包括在数据库实体的第二子集中的数据库实体的第二计数的第二请求,所述数据库实体的第二子集不同于所述数据库实体的第一子集,所述第二请求指定所述数据库的第二版本号;
从所述服务器设备接收至所述第二版本号为止的数据库实体的第二计数,该数据库实体包括在被包括在所述数据库的所述远程版本中的数据库实体的对应第二子集中;
确定所述数据库实体的第二计数小于第二客户端实体计数,所述第二客户端实体计数指定至所述第二版本号为止的包括在所述数据库的所述数据库实体客户端版本的第二子集中的实体的第二数目;
向所述服务器设备发送对包括在所述第二子集中的所述数据库实体的键的第二列表的第二请求;
从所述服务器设备接收包括在所述数据库的所述远程版本中的所述数据库实体的第三子集的键的第三子集;以及
从所述数据库的所述客户端版本移除包括在所述数据库的所述客户端版本中的数据库实体的子集内与所述第三子集相对应且具有未被包括在所述键的第三子集中的键的任何数据库实体。
65.一种存储指令的计算机可读介质,所述指令在由一个或多个数据处理装置执行时使得所述一个或多个数据处理装置执行操作,所述操作包括:
从服务器设备接收至指定版本号为止的包括在数据库的远程版本中的数据库实体的计数;
确定所述数据库实体的计数小于客户端实体计数,所述客户端实体计数指定至所述指定版本号为止的包括在所述数据库的客户端版本中的实体的数目;
响应于确定所述数据库实体的计数小于所述客户端实体计数,向所述服务器设备发送对于包括在所述数据库的所述远程版本中的所述数据库实体的键列表的请求;
从所述服务器设备接收包括在所述数据库的所述远程版本中的所述数据库实体的适当子集的键的第一适当子集;以及
从所述数据库的所述客户端版本移除包括在所述数据库的所述客户端版本中的数据库实体的对应适当子集内且具有未被包括在所述键的第一适当子集中的键的任何数据库实体。
66.根据权利要求65所述的计算机可读介质,其中,所述操作进一步包括:
向所述服务器设备发送对于包括在数据库实体的第二子集中的数据库实体的第二计数的第二请求,所述数据库实体的第二子集不同于所述数据库实体的第一子集,所述第二请求指定所述数据库的第二版本号;
从所述服务器设备接收至所述第二版本号为止的数据库实体的第二计数,该数据库实体包括在被包括在所述数据库的所述远程版本中的数据库实体的对应第二子集中;
确定所述数据库实体的第二计数小于第二客户端实体计数,所述第二客户端实体计数指定至所述第二版本号为止的包括在所述数据库的所述数据库实体客户端版本的第二子集中的实体的第二数目;
向所述服务器设备发送对包括在所述第二子集中的所述数据库实体的键的第二列表的第二请求;
从所述服务器设备接收包括在所述数据库的所述远程版本中的所述数据库实体的第三子集的键的第三子集;以及
从所述数据库的所述客户端版本移除包括在所述数据库的所述客户端版本中的数据库实体的子集内与所述第三子集相对应且具有未被包括在所述键的第三子集中的键的任何数据库实体。