CN111448560A - 数据库同步 - Google Patents

数据库同步 Download PDF

Info

Publication number
CN111448560A
CN111448560A CN201880035822.XA CN201880035822A CN111448560A CN 111448560 A CN111448560 A CN 111448560A CN 201880035822 A CN201880035822 A CN 201880035822A CN 111448560 A CN111448560 A CN 111448560A
Authority
CN
China
Prior art keywords
database
entry
change
query
entries
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.)
Pending
Application number
CN201880035822.XA
Other languages
English (en)
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 CN111448560A publication Critical patent/CN111448560A/zh
Pending legal-status Critical Current

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
    • 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/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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/178Techniques for file synchronisation in file systems
    • 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/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data

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)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种数据库同步的方法(500)。该方法包括接收指示数据库(130)的变化(312,314)的数据库变化指示符(230)。对于每个数据库变化指示符,该方法还包括确定数据库的相应变化是否对应于数据库的单个版本的单次变化,数据库的公共版本的多次变化之一,或数据库的不同版本的多次变化之一。该方法还包括生成包括条目(322)的变化日志压缩数据结构(324)。每个条目包括定义数据库的相应单个版本的相应单个变化的精确条目,定义数据库的相应公共版本的相应多次变化的范围条目,或定义数据库的相应不同版本的相应多次变化的间隔条目。

Description

数据库同步
技术领域
本公开涉及同步数据库。
背景技术
数据库是数据存储的普遍存在的部分。数据库通常负责信息系统内每天使用的许多服务。数据库具有存储数据并允许访问或查询所存储的数据的组织结构。组织结构可以在数据库内的数据之间形成关系,以便数据库用户参考相关数据。随着一些数据库随时间变化或更新,数据库用户经常设法与这些修改的数据库同步并理解这种修改。
发明内容
本公开的一个方面提供了一种数据库同步的方法。该方法包括在数据处理硬件处接收指示数据库的变化的数据库变化指示符。对于每个数据库变化指示符,该方法还包括由数据处理硬件确定数据库的相应变化是否对应于:数据库的单一版本的单次变化;数据库的公共版本的多次变化之一;或数据库的不同版本的多次变化之一。该方法还包括由数据处理硬件生成包括条目的变化日志压缩数据结构。每个条目包括定义数据库的相应单一版本的相应单次变化的确切条目、定义数据库的相应公共版本的相应多次变化的范围条目、或定义数据库的相应不同版本的相应多次变化的间隔条目。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,变化日志压缩数据结构包括索引空间和数据空间,索引空间的任何负空间包括数据库没有改变的已知空间。可选地,数据库变化指示符可以包括提交日志条目。附加地或替代地,对应于间隔条目的数据库的不同版本可以跨越连续的时间间隔。
本公开的另一方面提供了一种数据库同步的方法。该方法包括在数据处理硬件处从客户端接收对数据库变化的查询,该查询指示一组数据范围和时间间隔。该方法还包括由数据处理硬件访问包括条目的变化日志压缩数据结构。每个条目包括定义数据库的相应单一版本的相应单次变化的确切条目、定义数据库的相应公共版本的相应多次变化的范围条目、或定义数据库的相应不同版本的相应多次变化的间隔条目。。该方法还包括由数据处理硬件确定变化日志压缩数据结构的任何条目是否满足查询。当变化日志压缩数据结构的至少一个条目满足查询时,该方法包括由数据处理硬件将相应的至少一个条目返回给客户端。
该方面可以包括一个或多个以下可选特征。在一些示例中,当变化日志压缩数据结构的至少一个条目满足查询时,该方法包括由数据处理硬件返回以下中的至少一个:数据库变化指示符,数据库变化日志条目或对应于客户端的至少一个条目的变化。在一些实施方式中,当变化日志压缩数据结构的至少一个条目满足查询时,该方法包括由数据处理硬件返回对应于客户端的至少一个条目的布隆过滤器(bloom filter)。
在一些配置中,变化日志压缩数据结构包括索引空间和数据空间。这里,索引空间的任何负空间包括数据库没有变化的已知空间。当变化日志压缩数据结构的至少一个条目满足查询时,该方法可以包括由数据处理硬件在满足查询的至少一个条目处或在满足查询的至少一个条目之后,返回满足查询的至少一个条目的索引空间的任何重叠条目。附加地或替代地,当变化日志压缩数据结构的多个条目满足查询时,该方法可以包括由数据处理硬件将相应的条目作为范围返回给客户端,该范围由索引空间或数据空间中的范围的开始排序。
在一些实施方式中,该方法包括由数据处理硬件确定满足查询的变化日志压缩数据结构的任何条目是否包括间隔条目。对于满足查询的每个间隔条目,该方法可以包括返回定义为由间隔条目定义的数据库的所有对应版本的集合的跨度,该跨度具有数据库的开始版本和数据库的结束版本。
本公开的另一方面提供了一种数据库同步的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行指令时使数据处理硬件进行操作。所述操作包括接收指示数据库变化的数据库变化指示符。对于每个数据库变化指示符,操作包括确定数据库的相应变化是否对应于数据库的单个版本的单次变化,数据库的公共版本的多次变化之一,或数据库的不同版本的多次变化之一。所述操作还包括生成包括条目的变化日志压缩数据结构。每个条目包括定义数据库的相应单个版本的相应单次变化的确切条目,定义数据库的相应公共版本的相应多变化的范围条目,或定义数据库的相应不同版本的相应多次变化的间隔条目。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些配置中,变化日志压缩数据结构包括索引空间和数据空间。这里,索引空间的任何负空间包括数据库没有变化的已知空间。在一些示例中,数据库变化指示符包括提交日志条目。附加地或替代地,对应于间隔条目的数据库的不同版本可以跨越连续的时间间隔。
本公开的又一方面提供了一种同步数据库的系统。该系统包括数据处理硬件和与数据处理硬件通信的存储器硬件。存储器硬件存储指令,当在数据处理硬件上执行指令时使数据处理硬件进行操作。所述操作包括从客户端接收对数据库的变化的查询。查询指示一组数据范围和时间间隔。所述操作还包括访问包括条目的变化日志压缩数据结构。每个条目包括定义数据库的相应单一版本的相应单次变化的确切条目、定义数据库的相应公共版本的相应多次变化的范围条目、或定义数据库的相应不同版本的相应多次变化的间隔条目。操作还包括确定变化日志压缩数据结构的任何条目是否满足查询。当变化日志压缩数据结构的至少一个条目满足查询时,操作包括将相应的至少一个条目返回给客户端。
该方面的实施方式可以包括一个或多个以下可选特征。在一些实施方式中,当变化日志压缩数据结构的至少一个条目满足查询时,操作包括返回数据库变化指示符,数据库变化日志条目或对应于客户端的至少一个条目的变化中的至少一个。在一些实施方式中,当变化日志压缩数据结构的至少一个条目满足查询时,系统包括返回与客户端的至少一个条目相对应的布隆过滤器。
在一些示例中,变化日志压缩数据结构包括索引空间和数据空间。在该示例中,索引空间的任何负空间包括数据库没有改变的已知空间。当变化日志压缩数据结构的至少一个条目满足查询时,操作可以包括,在满足查询的至少一个条目处或满足查询的至少一个条目之后,返回满足查询的至少一个条目的索引空间的任何重叠条目。附加地或替代地,当变化日志压缩数据结构的多个条目满足查询时,操作可以包括将相应条目作为范围返回给客户端,所述范围由索引空间或数据空间中的范围的开始排序。
在一些配置中,操作包括确定满足查询的变化日志压缩数据结构的任何条目是否包括间隔条目。这里,对于满足查询的每个间隔条目,操作包括返回定义为由间隔条目定义的数据库的所有相应版本的集合的跨度,该跨度具有数据库的开始版本和数据库的结束版本。
本公开的一个或多个实施方式的细节在附图和以下描述中阐述。说明书和附图以及权利要求书,其它的方面、特征和优点将是显而易见的。
附图说明
图1A和1B是示例数据库同步环境的示意图。
图2是数据库同步环境内的示例数据库记录器的示意图。
图3A-3C是数据库同步环境内的示例压缩器的示意图。
图4A-4D是数据库同步环境内的示例查询的示意图。
图5和6是在数据库同步环境内执行的操作的示例设置的框图。
图7是可用于实现本文所述的系统和方法的示例性计算设备的示意图。
在各个附图中相同的附图标记表示相同的元件。
具体实施方式
当今的计算设备经常依赖于数据库。这些数据库可以包括随时间变化和突变的大量数据。随着数据库内的数据变化,数据库的设备和/或客户端需要与变化同步。与每次设备尝试与数据库同步时获取数据库的重要部分不同,设备通常可以被配置为仅标识自上次更新以来发生的变化。尽管该方法减少了设备需要接收的数据库中的数据量,但是该方法可能保持低效。例如,设备可能需要解析整个数据库,以寻找自上次更新以来的变化。例如,一些方法在数据库中创建与所发生的每个变化相对应的标记。然而,随着时间的推移和大量的数据,甚至标记也变得越来越低效。因此,希望提供一种紧凑的空间保存数据结构,以更有效和更高效地与数据库同步。
参考图1,在一些实施方式中,示例数据库同步环境10包括一个或多个客户端设备102,102a-n,每个客户端设备与经由网络120与远程系统110的数据库同步系统100通信的各自的客户20相关联。远程系统110可以是具有可伸缩/弹性计算资源112(例如,数据处理硬件)和/或存储资源114(例如,存储器硬件)的分布式系统(例如,云环境)。数据库同步系统100被配置为同步数据库130的信息和/或数据,例如远程系统110(例如,图1)的分布式数据库130。尽管本公开说明了关于分布式系统(例如,云环境)的数据库同步系统100,但是数据库同步系统100可以与任何类型的数据库交互。其它类型的数据库130的一些示例包括关系数据库(例如,结构化查询语言数据库),非结构化查询语言数据库(例如,文档数据库,图形数据库,键值数据库,或表格式数据库),或面向对象的数据库。附加地或替代地,数据库130可以是相同数据库类型的一个以上的数据库或不同类型数据库的一个以上的数据库。
如图1A中的虚线框所示,数据库同步系统100通常包括数据库记录器200和压缩器300。为了同步关于数据库130的信息和/或数据,数据库同步系统100跟踪数据库130的变化,并基于这些跟踪的变化构造数据结构。数据库记录器200被配置为跟踪数据库130的变化并将所跟踪的变化传送到压缩器300。利用从数据库记录器200传送的变化,压缩器300基于变化构造数据结构。在一些示例中,数据库130另外被集成到同步系统100中。例如,图1A通过数据库130周围的虚线框将数据库130示出为对数据库同步系统100是可选的。数据库同步环境10的配置,将数据库130与数据库同步系统100集成可以减少数据库同步系统100和数据库130之间的通信时间。在一些实施方式中,数据库同步系统100是数据库管理系统或数据库管理系统的一部分。该管理系统可以在数据库130的本地或者与数据库130进行远程通信。
参考图1B,客户20经由客户端设备102向数据库同步系统100发送查询140。查询140参考客户20的请求从数据库130提取数据。这里,通过查询140,客户20设法使客户端设备102与包含在数据库130中的数据同步。同步通常指的是更新或捕捉客户20以改变从客户20经由客户端设备102最后与数据库130通信以在数据库130内已经发生的改变的过程。作为示例,使用电子邮件(电子邮件)应用的客户20与对应于基于云的电子邮件服务器110的电子邮件数据库130同步。在该示例中,客户20通过在客户端设备102,例如移动电话上打开电子邮件应用程序,或者在电子邮件应用程序内通过选择发送和接收电子邮件来与电子邮件数据库130同步。换句话说,客户20通过查询140与电子邮件数据库130同步以发送和接收电子邮件。例如,图1B将查询140描述为向数据库同步系统100询问“从上午9:47和当前时间以来是否有任何变化”。在该示例中,客户20在上午9:47最后更新(即同步)了他或她的电子邮件,并且想要知道在查询140的当前时间和上午9:47的最后更新之间他或她的电子邮件是否有任何更新。作为同步的一部分,数据库同步系统100通过确定电子邮件数据库130是否进行了任何改变(例如,诸如电子邮件的数据增加)来识别是否发生了任何更新(例如,新的电子邮件)。基于该确定,数据库同步系统100传送“从上午9:47以来没有新电子邮件”的响应150。
图2提供了数据库同步系统100的数据库记录器200进一步的细节。图2包括数据库130在一段时间内的一个示例。如图2所示,诸如数据库130的数据库包括数据空间132。数据空间通常是指数据D可访问或被数据D占据的空间。例如,图2描述了具有简化数据空间的数据库130,该简化数据空间有数据D的八个空间。随着时间的推移,数据库130的不同版本“t”可以捕获数据空间132变化(例如,写入功能或删除功能)。数据库130的版本是在特定时刻的数据库130,因此每个版本t代表数据库130的不同时刻。换句话说,数据库130的版本tn对应于数据库130在离散时间间隔的快照。每个版本t可以具有相关联的时间戳以帮助识别版本t。在一些示例中,数据库130的版本t根据与数据库130相关联的处理器的时钟而变化,使得每个增量版本t(n+1)是时钟的增量。在其它示例中,当数据库130有变化时,数据库130的版本t递增。在其它示例中,每个版本t根据预编程的时间间隔递增。
图2描述了数据库130的六个版本t0–t5。每个版本t包括数据库130的数据空间132的表示。在数据库130的每个版本t之间,可以在数据空间132内发生变化。当提交事务时,发生每次变化,例如添加或删除。当提交事务(即,发生变化)时,该事务被配置为被记忆为数据库变化日志220(即,提交日志或事务日志)中的变化日志条目210。日志条目210可以是与事务相关的一行文本,实际事务的条目,或向对应于事务的数据库130表达或提供变化的反映的任何其它表示。附加地或替代地,每个变化日志条目210包括与变化相关联的数据库130的版本t。
在一些实施方式中,数据库记录器200包括具有相应变化日志条目210的数据库变化日志220。在一些实例中,数据库记录器200包括对应于一个以上数据库130的一个以上数据库变化日志220。在其它示例中,数据库变化记录器200包括一个以上数据库130的单个数据库改变日志220。为简单起见,图2描述了数据库130的单个数据库变化日志220。
进一步参考图2,在第一版本t0中,数据D1-D5占用数据库130。图2的例子中所示的数据库130的第一版本t0,数据库130还没有发生变化。在第二版本t1,已经从数据库130中删除数据D1,并且已经将数据D6写入数据库130。第一变化日志条目210a将数据D1的删除和数据D6的添加记录在数据库变化日志220中。在数据库130的第三版本t2,数据空间132内的数据D2-D6没有变化。在没有变化的情况下,数据库记录器200不生成数据库变化日志条目210。在第四版本t3,数据D1已被写入数据库130,并且数据D6已被从数据库130中删除。第二变化日志条目210b将数据D1的添加和数据D6的删除记录在数据库变化日志220中。在数据库130的第五版本t4,数据D2已经被删除,并且第三变化日志条目210c记录数据D2的删除。在第六版本t5,数据D1被删除,并且数据D6和D7被写入。数据库变化日志220包括第四条目210d以表示第六版本t5期间的变化。随着变化日志条目210的每次变化,数据库记录器200可以生成对应于变化的数据库变化指示符230,以传送给压缩器300。例如,第一变化日志条目210a和第二变化日志条目210b分别对应于两个数据库变化指示符230,230a1-2和230,230b1-2,而第四变化日志条目210d对应于三个数据库变化日志指示符230,230d1-3
图3A-3C是数据库同步系统100的压缩器300的示例。压缩器300被配置成从数据库记录器200接收指示数据库130的变化的数据库变化指示符230。根据变化日志条目210,数据库变化指示符230可以与变化日志条目210(例如,提交日志条目)相同或不同于变化日志条目210。具有主要类似于数据库变化指示符230的变化日志条目210的配置可减少对数据库记录器200的额外处理,且潜在地减少计算冗余或错误风险。对于每个接收的数据库变化指示符230,压缩器300确定数据库130的底层变化的类型。在一些实施方式中,压缩器300包括变化确定器310,用于确定数据库130的相应改变是否对应于对数据库130的单个版本ti的单次变化312,数据库130的公共版本ti的多次变化314c之一,或者数据库130的不同版本ti-n的多个ti314d之一。例如,如图3A和3B所示,数据库变化指示符230c对应于数据库230的第五版本t4的单次变化312。在图3A和3B中,变化确定器310还确定若干变化指示符230对应于对数据库130的公共版本ti的多次变化314c中的一个。数据库变化指示符230a1和230a2对应于数据库130的第二版本t1的多次变化314c。数据库变化指示符230b1和230b2对应于数据库130的第四版本t3的多次变化314c。数据库变化指示符230d1-3对应于数据库130的第六版本t5的多次变化314c。这里,公共版本是指在相同版本期间发生的变化(即共享)。换句话说,这些变化具有相同的共同版本。此外,数据库变化指示符230b-d共同对应于不同版本的多次变化314d,例如第四版本t3,第五版本t4和第六版本t5
参照图3A-3C,压缩器300还包括构造器320被配置为生成形成变化日志压缩数据结构324的条目322。在一些示例中,构造器320可以生成精确条目322e,范围条目322r或间隔条目322i。每个条目322对应于由变化确定器310基于数据库变化指示符230确定的不同类型的变化312,314。条目322e定义数据库130的相应单个版本ti的相应单次变化312。范围条目322r定义数据库130的相应公共版本ti的相应多次变化314c。间隔条目322i定义对应的数据库130的不同版本的对应的多次变化314d。
在一些实施方式中,变化日志压缩数据结构324包括版本空间326v和数据空间326d。版本空间326v使得构造器320能够构造变化日志压缩数据结构324,以便客户20对变化日志压缩数据结构324的查询140可以有效地集中于版本ti的特定跨段(例如,自从先前同步以来的版本)。非常类似于数据库130的数据空间132的数据空间326d对应于可由变化日志压缩数据结构324内的条目322(即,压缩数据)访问或占用的空间。在图3A-3C所示的例子中,变化日志压缩数据结构324通常包括版本空间326v和数据空间326d,但是也可以包括索引空间326i(例如,图3B和3C)。一般而言,索引是数据结构的一部分,并且可以优化数据结构内的数据的搜索(例如,快速查找)和访问。索引空间包括作为唯一标识符的索引,例如数字或时间戳。索引空间326i还可以包括指向数据空间326d内的底层数据D的指针,所述数据空间326d对应于索引(即,由索引唯一标识的数据)。附加地或替代地,变化日志压缩数据结构324被配置用于二级索引,其可以修改或不修改数据变化。因为变化日志压缩数据结构324对应于数据空间326d,版本空间326v和/或索引空间326i上的变化,所以与客户20的同步大致与对语料库的变化的数量而不是语料库的大小(例如,数据库的大小)成比例。此外,同步系统100是灵活的,使得可以在任何时间构建变化日志压缩数据结构324(例如,而不是依赖于数据库的始发时间),并且变化日志压缩数据结构不必是数据库130的写入路径中的关键依赖。同步系统100的灵活性的优点在于,因为变化日志压缩数据结构324可以在任何时间构建,所以变化日志压缩数据结构324不需要持久的存储。
在一些示例中,诸如图3B,构造器320生成包括数据空间326d,索引空间326i和版本空间326v的单次变化日志压缩数据结构324。在诸如图3C的其它示例中,构造器320被配置为生成一个以上的变化日志压缩数据结构324。例如,构造器320生成具有数据压缩326d和版本空间326v的第一变化日志压缩数据结构324a以及具有索引空间326i和版本空间326v的第二变化日志压缩数据结构324b。
进一步参考图3A-3C,构造器320解释来自变化确定器310的变化312,314c,314d,并生成变化日志压缩数据结构324。在这些示例中,对应于数据库变化指示符230c的单次变化312在变化日志压缩数据结构324内的第五版本t4生成精确条目322e。对应于对公共版本的多次变化314c的数据库变化指示符230a1-2,230b1-2,230d1-3(例如,分别为第二版本t1,第四版本t3和第六版本t5)的每一个都生成范围条目322r:第二版本t1的数据库变化指示符30a1-2生成范围条目322r1;第四版本t3的数据库变化指示符230b1-2生成范围条目322r2;以及第六版本t5的数据库变化指示符230d1-3生成范围条目322r3。数据库变化指示符230b-d还对应于对数据库130的不同版本(例如,例如,分别为第四版本t3,第五版本t4和第六版本t5)的多次变化314d,并生成间隔条目322i。这里,与一些配置类似,间隔条目322i跨越与不同版本,例如版本t3-t5相关的连续时间间隔。在一些示例中,条目322包括元数据,例如对应于底层变化或数据库变化指示符230的更新时间或删除时间。在一些实施方式中,布隆过滤器可以过滤条目322的元数据,例如,条目322的元数据稍后可以被优化用于二次索引。在一些配置中,当条目322对应于删除变化时,布隆过滤器或存在过滤器累积这些变化。然后可以将该布隆过滤器或存在过滤器作为对查询140的响应150发送给客户20。附加地或替代地,可以利用布隆过滤器来检查与条目322相关的数据和/或识别对应于条目322的底层变化。
在一些实施方式中,构造器320构造变化日志压缩数据结构324,使得任何负空间328实际上是数据库130没有变化的已知空间。当负空间328实际上是数据库130没有变化的已知空间时,同步可以可靠地跳过大范围的数据而没有丢失数据的风险。换句话说,通过数据日志压缩数据结构324导航可固有地跳过大范围的数据,因为数据日志压缩数据结构324可仅包括对应于数据库变化指示符230的条目322(例如,范围条目322r,间隔条目322i或精确条目322e)。
变化日志压缩数据结构324的优点在于,它是通过检查数据空间条目和/或索引条目的子集来找到修改的数据(即变化)的加速结构。例如,变化日志压缩数据结构324有效地找到自特定时间戳(例如,版本t)以来已经变化的数据。变化日志压缩数据结构324可以是空间有效的数据结构,因为所有丢失的数据范围(即,未包括在该结构中的数据范围)已经被过滤(例如,布隆过滤器)以确保客户20将查询140引导到主要修改的数据和/或数据表示。作为一个实例,同步系统100被配置为使用布隆过滤器来优化获取变化的数据以合并到变化日志压缩数据结构324中。布隆过滤器可以与数据库记录器200和/或压缩器300集成在一起,或者与数据库记录器200和/或压缩器300一起操作。
附加地或替代地,变化日志压缩数据结构324可以被限制到数据库130的有限数量的版本(例如,最近的版本),以进一步减少查询响应时间。换句话说,变化日志压缩数据结构324是与数据库130同步的客户端相关的数据形成的空间保存结构。数据库同步系统100的另一个优点是,它可以通过提供用于合并条目的原语并允许做出关于什么应该被合并以及何时被合并的决策来提供自适应粒度。例如,可以用已知的数据库130没有改变的负空间328来简化合并条目。
图4A-4D是对数据库同步系统100的查询140的示例。在这些示例中,压缩器300还包括查询分析器330。查询分析器330被配置成从客户20接收数据库130变化的查询140。在一些示例中,查询140指示一组数据范围142和时间间隔144。例如,回到参考图1B,查询140通过查询自上一次在上午9:47的更新以来是否有更新来暗示时间间隔144。换句话说,查询140本身暗示了上午9:47和查询140的时间之间的时间间隔144。利用查询140,查询分析器330访问由构造器320构造的条目322构成的变化日志压缩数据结构324。基于变化日志压缩数据结构324内的条目322,查询分析器330确定任一条目322是否满足查询140。当变化日志压缩数据结构324的至少一个条目322满足查询140时,数据库同步系统100将相应的至少一个条目322返回给客户20。
参考图4A-4D,除了对查询140的特定响应之外,这些图主要是压缩器300的类似示例。在一些配置中,数据库同步系统100将相应的至少一个条目322作为响应150返回给客户20。根据满足查询140的至少一个条目322,响应150可以另外包括关于至少一个条目322的进一步细节。在一些示例中,当变化日志压缩数据结构324的多个条目322满足查询140时,数据库同步系统100将相应条目322返回给客户20作为索引空间326i或数据空间326d中的范围152开始所排序的范围152。例如,通过对范围152进行排序,客户端20可以接收按时间顺序的同步。在一些实施方式中,满足查询140的条目322是间隔条目322i。这里,对于满足查询140的每个间隔条目322i,响应150包括跨度154,该跨度154被定义为由间隔条目322i定义的数据库130的所有相应版本的集合。在这些实施方式中,作为跨度154的一部分,响应150包括数据库130的开始版本tstart和数据库130的结束版本tend
如图4A所示,响应150可以是数据库变化指示符230、数据库变化日志条目210或对应于至少一个条目322的变化中的至少一个。例如,数据库同步系统100被配置成从满足查询140的至少一个条目322反向确定相应的数据库变化指示符230,数据库变化日志条目210或数据D中的底层变化改变。在一些示例中,诸如图4B和4D,数据库同步系统100将第一响应150a传送到数据库记录器200。第一响应150a可以由压缩器300传送,并且可以包括满足查询140的至少一个条目322,对应于该至少一个条目322的数据库变化指示符230,或者两者。如果数据库记录器200接收作为第一响应150a的至少一个数据库变化指示符230,则数据库记录器200可以被进一步配置为交叉引用至少一个数据库变化指示符230,以将数据库变化日志条目210和/或原始数据变化作为第二响应150b提供给客户20和/或客户端设备102。
图4C和4D是查询140和响应150的示例,因为它们与图2和3所示的示例相关。图4C是基于查询140的单个响应150的示例,而图4D是基于相同查询140的多步响应150的示例。图4C和4D描述了具有数据D1-D5的数据范围142和t0-t3的时间间隔144的查询140。这里,查询分析器330接收查询140,并将数据范围142和时间间隔144与变化日志压缩数据结构324进行比较。比较识别出变化日志压缩数据结构324内的三个重叠条目322–一个间隔条目322i和两个范围条目322r,322r1-2。作为响应150的一部分,数据库同步系统100将间隔条目322i的跨度154,t3-ts连同排序范围152一起返回。图4D描述了类似的结果,但是关于第一响应150a和第二响应150b。如图所示,第一响应150a返回条目322i,322r1,322r2和数据库变化指示符230a-d。这里,查询分析器330将第一响应150a传送到数据库记录器200,使得数据库记录器200可以另外提供与数据库日志条目210a-d相关的相应数据库日志条目210a-d和/或数据D1-2和D6-7。这些相应的数据库日志条目210a-d和/或数据D1-2和D6-7然后可以经由第二响应150b被传送到客户20和/或客户端设备102。在一些示例中,数据库同步器系统100将第一响应150a和第二响应150b两者传送到客户端20和/或客户端设备102。
再参考图2,图2还示出了根据数据库变化进行更新的一些系统的潜在缺陷。例如,如果客户端设备102先前在第一版本t0更新并随后在第四版本t3更新,则在一些系统中,客户端设备102可能接收到数据库130没有改变的不准确通信。例如,如果客户端设备102被配置为扫描第四版本t3与第一版本t0相比的变化,则客户端设备102可能不能识别变化,因为数据库130看起来包含相同的数据D1-D5。然而,根据数据库变化日志220,数据库130已经记录了数据库130的四次修改。在这段时间内,数据库130实际上已经扩展到包括数据D6以及随后移除数据D6。换句话说,将第一快照(例如,t0处的第一版本)与第二快照(例如,t3处的第四版本)进行比较不能视为在第一快照和第二快照之间发生的变化。如果客户端设备102改为检查变化日志压缩数据结构324,则客户端设备102将识别第一版本t0到第四版本t3之间的变化。了解快照之间发生的变化可以帮助数据故障排除,指示对系统的数据的未经授权的修改,或者为客户20识别t3是否可能影响其它数据。
附图5和6是关于操作数据库同步系统的示例方法500和600。在502,方法500包括接收指示数据库130的变化的数据库变化指示符230。在504,方法500还包括,对于每个数据库变化指示符230,确定数据库130的相应变化是否对应于数据库130的单个版本的单次变化312,数据库130的公共版本的多次变化314c之一,或数据库130的不同版本的多次变化314d之一。在506,方法500还包括生成包括条目322的变化日志压缩数据结构324。在602,方法600包括从客户端102接收对数据库130的变化的查询140,查询140指示一组数据范围142和时间间隔144。在604,方法600包括访问包括条目322的变化日志压缩数据结构324。在606,方法600还包括确定变化日志压缩数据结构324的任何条目322是否满足查询140。在608,方法600还包括当变化日志压缩数据结构324的至少一个条目322满足查询140时,将相应的至少一个条目322返回给客户20。
图7是可用于实现本文档中描述的系统和方法的示例性计算设备700的示意图。计算设备700用于表示各种形式的数字计算机,例如膝上型计算机,台式计算机,工作站,个人数字助理,服务器,刀锋服务器,大型机和其它适当的计算机。这里所示的组件,它们的连接和关系以及它们的功能仅仅是示例性的,而不是要限制在本文件中描述和/或要求保护的本发明的实现。
计算设备700包括处理器710,内存720,存储设备730,连接到内存720和高速扩展端口750的高速接口/控制器740,以及连接到低速总线770和存储设备730的低速接口/控制器760。部件710,720,730,740,750和760中的每一个使用不同的总线互连,并且可以适当地安装在公共母板上或以其它方式安装。处理器710可以处理在计算设备700内执行的指令,包括存储在内存720中或存储设备730上的指令,以在外部输入/输出设备(例如耦合到高速接口740的显示器780)上显示图形用户界面(GUI)的图形信息。在其它实施方式中,可以适当地使用多个处理器和/或多个总线以及多个存储器和存储器类型。此外,多个计算设备700可以被连接,其中每个设备提供必要操作的部分(例如,作为服务器库,一组刀锋服务器,或多处理器系统)。
内存720在计算设备700内非暂时性地存储信息。720可以是计算机可读介质,易失性存储器单元或非易失性存储器单元。非暂时性内存720可以是用于临时或永久地存储由计算设备700使用的程序(例如,指令序列)或数据(例如,程序状态信息)的物理设备。非易失性内存的实例包括,但不限于快闪存储器和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,例如引导程序)。易失性存储器的实例包括但不限于随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM),相变存储器(PCM)以及磁盘或磁带。
存储设备730能够为计算设备700提供大容量存储。在一些实施方式中,存储设备730是计算机可读介质。在各种不同的实现中,存储设备730可以是软盘设备,硬盘设备,光盘设备,或磁带设备,闪存或其它类似的固态存储器设备,或设备阵列,包括存储区域网络中的设备或其它配置。在另外的实施方式中,计算机程序产品被有形地包含在信息载体中。计算机程序产品包含指令,指令在被执行时执行一个或多个方法,例如上述的那些方法。信息载体是计算机或机器可读介质,例如内存720,存储设备730或处理器710上的存储器。
高速控制器740管理计算设备700的带宽密集操作,而低速控制器760管理较低带宽密集操作。这种职责的分配仅是示例性的。在某些实施方式中,高速控制器740耦接到内存720,显示器780(例如,通过图形处理器或加速器)以及高速扩展端口750,高速扩展端口750可以接受各种扩展卡(未示出)。在某些实施方式中,低速控制器760耦接到存储设备730和低速扩展端口790。低速扩展端口790可以包括各种通信端口(例如,USB,蓝牙,以太网,无线以太网),可以例如通过网络适配器耦接到一个或多个输入/输出设备,例如键盘,指点设备,扫描仪,或联网设备,例如交换机或路由器。
计算设备700可以以多种不同的形式实现,如图所示。例如,它可以被实现为标准服务器700a或在一组这样的服务器700a中多次实现为膝上型计算机700b,或者实现为机架服务器系统700c的一部分。
在此描述的系统和技术的各种实施方式可以在数字电子和/或光学电路,集成电路,专门设计的ASIC(专用集成电路),计算机硬件,固件,软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或解释的一个或多个计算机程序,可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用或通用的,所述可编程处理器被耦接以从存储系统,至少一个输入设备和至少一个输出设备接收数据和指令,并向所述存储系统,至少一个输入设备和至少一个输出设备发送数据和指令。
这些计算机程序(也称为程序,软件,软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或用汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品,非暂时性计算机可读介质,设备和/或设备(例如,磁盘,光盘,存储器,可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。例如,适于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或被可操作地耦合以从一个或多个大容量存储设备接收数据或向一个或多个大容量存储设备传送数据,所述大容量存储设备用于存储数据,例如磁盘,磁光盘或光盘。然而,计算机不必具有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,介质和存储器设备,包括例如半导体存储器设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;CD ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
为了提供与用户的交互,本公开的一个或多个方面可以在具有显示设备的计算机上实现,所述显示设备例如CRT(阴极射线管),LCD(液晶显示器)监视器,或者用于向用户显示信息的触摸屏,以及可选地,键盘和指点设备,例如鼠标或轨迹球,通过所述指示设备用户可以向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈,听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音,语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,响应于从网页浏览器接收的请求向用户的客户端设备上的网页浏览器发送网页。
已经描述了许多实现。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其它实施方式也在所附权利要求的范围内。

Claims (22)

1.一种方法(500),其特征在于,包括:
在数据处理硬件处接收指示数据库(130)的变化(312,314)的数据库变化指示符(230);
对于每个所述数据库变化指示符(230),由所述数据处理硬件确定所述数据库(130)的相应变化(312,314)是否对应于:
所述数据库(130)的单个版本的单次变化(312);
所述数据库(130)的公共版本的多次变化(312,314)中的一个;或者
所述数据库(130)的不同版本的多次变化(312,314)中的一个;以及
由所述数据处理硬件生成包括条目(322)的变化日志压缩数据结构(324),每个所述条目(322)包括:
定义所述数据库(130)的相应的单个版本的相应单次变化(312)的精确条目(322);
定义所述数据库(130)的相应公共版本的相应多次变化(312,314)的范围条目(322);或
定义所述数据库(130)的相应不同版本的相应多次变化(312,314)的间隔条目(322)。
2.根据权利要求1所述的方法(500),其特征在于,所述变化日志压缩数据结构(324)包括索引空间(326i)和数据空间(132),并且其中所述索引空间(326i)的任何负空间(328)包括没有所述数据库(130)的变化(312,314)的已知空间。
3.如权利要求1或2所述的方法(500),其特征在于,所述数据库变化指示符(230)包括提交日志条目(210)。
4.根据权利要求1-3中任一项所述的方法(500),其特征在于,对应于所述间隔条目(322)的所述数据库(130)的所述不同版本跨越(154)连续的时间间隔(144)。
5.一种方法(600),其特征在于,包括:
在数据处理硬件处,从客户端(20)接收对数据库(130)的变化(312,314)的查询(140),所述查询(140)指示一组数据范围(142)和时间间隔(144);
由所述数据处理硬件访问包括条目(322)的变化日志压缩数据结构(324),每个所述条目(322)包括:
定义所述数据库(130)的相应的单个版本的相应单次变化(312)的精确条目(322);
定义所述数据库(130)的相应公共版本的相应多次变化(312,314)的范围条目(322);或
定义所述数据库(130)的相应不同版本的相应多次变化(312,314)的间隔条目(322);
由所述数据处理硬件确定所述变化日志压缩数据结构(324)的任意条目(322)是否满足所述查询(140);和
当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,所述数据处理硬件将相应的至少一个条目(322)返回给所述客户端(20)。
6.如权利要求5所述的方法(600),其特征在于,还包括,当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,由所述数据处理硬件返回以下中的至少一个:
数据库变化指示符(230),
数据库变化日志条目(210),或
与所述客户端(20)的所述至少一个条目(322)相对应的变化。
7.如权利要求5或6所述的方法(600),其特征在于,还包括,当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,由所述数据处理硬件将对应于所述至少一个条目(322)的布隆过滤器返回给所述客户端(20)。
8.根据权利要求5-7中任一项所述的方法(600),其特征在于,所述变化日志压缩数据结构(324)包括索引空间(326i)和数据空间(132),并且其中所述索引空间(326i)的任何负空间(328)包括没有所述数据库(130)的变化(312,314)的已知空间。
9.如权利要求8所述的方法(600),其特征在于,还包括,当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,由所述数据处理硬件在满足所述查询(140)的所述至少一个条目(322)处或之后返回满足所述查询(140)的所述至少一个条目(322)的所述索引空间(326i)的任何重叠条目(322)。
10.如权利要求8所述的方法(600),其特征在于,还包括,当所述变化日志压缩数据结构(324)的多个条目(322)满足所述查询(140)时,由所述数据处理硬件将所述相应条目(322)作为由所述索引空间(326i)或所述数据空间(132)中的范围的开始所排序的范围返回给所述客户端(20)。
11.根据权利要求5-10中任一项所述的方法(600),其特征在于,还包括:
由所述数据处理硬件确定满足所述查询(140)的所述变化日志压缩数据结构(324)的任何条目(322)是否包括间隔条目(322);和
对于满足所述查询(140)的每个间隔条目(322),返回被定义为由间隔条目(322)定义的所述数据库(130)的所有相应版本的集合的跨度(154),所述跨度(154)具有所述数据库(130)的开始版本和所述数据库(130)的结束版本。
12.一种系统(100),其特征在于,包括:
数据处理硬件;和
与所述数据处理硬件通信的存储器硬件,所述存储器硬件存储指令,所述指令在所述数据处理硬件上执行时使所述数据处理硬件进行以下操作:
接收指示数据库(130)的变化(312,314)的数据库变化指示符(230);
对于每个所述数据库变化指示符(230),确定所述数据库(130)的相应变化是否对应于:
所述数据库(130)的单个版本的单次变化(312);
所述数据库(130)的公共版本的多次变化(312,314)中的一个;或者
所述数据库(130)的不同版本的多次变化(312,314)中的一个;以及
生成包括条目(322)的变化日志压缩数据结构(324),每个条目(322)包括:
定义所述数据库(130)的相应的单个版本的相应单次变化(312)的精确条目(322);
定义所述数据库(130)的相应公共版本的相应多次变化(312,314)的范围条目(322);或
定义所述数据库(130)的相应不同版本的相应多次变化(312,314)的间隔条目(322)。
13.如权利要求12所述的系统(100),其特征在于,所述变化日志压缩数据结构(324)包括索引空间(326i)和数据空间(132),并且其中所述索引空间(326i)的任何负空间(328)包括没有所述数据库(130)的变化(312,314)的已知空间。
14.如权利要求12或13所述的方法(500),其特征在于,所述数据库变化指示符(230)包括提交日志条目(210)。
15.根据权利要求12-14中任一项所述的方法(500),其特征在于,对应于所述间隔条目(322)的所述数据库(130)的所述不同版本跨越(154)连续的时间间隔(144)。
16.一种系统(100),其特征在于,包括:
数据处理硬件;和
与所述数据处理硬件通信的存储器硬件,所述存储器硬件存储指令,所述指令在所述数据处理硬件上执行时使所述数据处理硬件进行以下操作:
从客户端(20)接收对数据库(130)的变化(312,314)的查询(140),所述查询(140)指示一组数据范围(142)和时间间隔(144);
访问包括条目(322)的变化日志压缩数据结构(324),每个所述条目(322)包括:
定义所述数据库(130)的相应的单个版本的相应单次变化(312)的精确条目(322);
定义所述数据库(130)的相应公共版本的相应多次变化(312,314)的范围条目(322);或
定义所述数据库(130)的相应不同版本的相应多次变化(312,314)的间隔条目(322);
确定所述变化日志压缩数据结构(324)的任意条目(322)是否满足所述查询(140);和
当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,将相应的至少一个条目(322)返回给所述客户端(20)。
17.如权利要求16所述的系统(100),其特征在于,还包括,当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,返回以下中的至少一个:
数据库变化指示符(230),
数据库变化日志条目(210),或
与所述客户端(20)的所述至少一个条目(322)相对应的变化。
18.如权利要求16或17所述的系统(100),其特征在于,还包括,当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,返回对应于所述客户端(20)的所述至少一个条目(322)的布隆过滤器。
19.根据权利要求16-18中任一项所述的系统(100),其特征在于,所述变化日志压缩数据结构(324)包括索引空间(326i)和数据空间(132),并且其中所述索引空间(326i)的任何负空间(328)包括没有所述数据库(130)的变化(312,314)的已知空间。
20.如权利要求19所述的系统(100),其特征在于,还包括,当所述变化日志压缩数据结构(324)的至少一个条目(322)满足所述查询(140)时,在满足所述查询(140)的所述至少一个条目(322)处或之后返回满足所述查询(140)的所述至少一个条目(322)的所述索引空间(326i)的任何重叠条目(322)。
21.如权利要求19所述的系统(100),其特征在于,还包括,当所述变化日志压缩数据结构(324)的多个条目(322)满足所述查询(140)时,将所述相应条目(322)作为由所述索引空间(326i)或所述数据空间(132)中的范围的开始所排序的范围返回给所述客户端(20)。
22.根据权利要求16-21中任一项所述的系统(100),其特征在于,还包括:
确定满足所述查询(140)的所述变化日志压缩数据结构(324)的任何条目(322)是否包括间隔条目(322);和
对于满足所述查询(140)的每个间隔条目(322),返回被定义为由间隔条目(322)定义的所述数据库(130)的所有相应版本的集合的跨度(154),所述跨度(154)具有所述数据库(130)的开始版本和所述数据库(130)的结束版本。
CN201880035822.XA 2017-12-14 2018-06-14 数据库同步 Pending CN111448560A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/842,008 US10769114B2 (en) 2017-12-14 2017-12-14 Database syncing
US15/842,008 2017-12-14
PCT/US2018/037534 WO2019117994A1 (en) 2017-12-14 2018-06-14 Database syncing

Publications (1)

Publication Number Publication Date
CN111448560A true CN111448560A (zh) 2020-07-24

Family

ID=62817096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880035822.XA Pending CN111448560A (zh) 2017-12-14 2018-06-14 数据库同步

Country Status (5)

Country Link
US (3) US10769114B2 (zh)
EP (1) EP3616024A1 (zh)
KR (2) KR102311032B1 (zh)
CN (1) CN111448560A (zh)
WO (1) WO2019117994A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595800A (zh) * 2021-08-03 2021-11-02 腾云悦智科技(深圳)有限责任公司 一种应用连接关系自动发现与cmdb信息保鲜的方法
WO2023242720A1 (en) * 2022-06-15 2023-12-21 International Business Machines Corporation Conditional replication of data

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209642A (zh) * 2018-02-05 2019-09-06 北京智明星通科技股份有限公司 信息处理的方法、装置、服务器及计算机可读介质
AU2021216392A1 (en) * 2020-02-04 2022-09-01 Grav1Ty Inc. Selective synchronization of database objects
US20210243111A1 (en) * 2020-02-04 2021-08-05 Nokia Solutions And Networks Oy Supporting multicast communications
US11032158B1 (en) 2020-11-18 2021-06-08 Coupang Corp. Computerized systems and methods for processing high-volume log files from virtual servers
CN113761052A (zh) * 2020-11-27 2021-12-07 北京沃东天骏信息技术有限公司 数据库同步方法和装置
US11657032B2 (en) * 2021-07-30 2023-05-23 Thoughtspot, Inc. Compacted table data files validation
KR20230138673A (ko) 2022-03-24 2023-10-05 주식회사 티맥스티베로 데이터베이스를 관리하기 위한 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
CN1326571A (zh) * 1998-11-17 2001-12-12 艾利森电话股份有限公司 变更记录处理的优化
CN101369283A (zh) * 2008-09-25 2009-02-18 中兴通讯股份有限公司 一种内存数据库与物理数据库间的数据同步方法及系统
US20100023533A1 (en) * 2008-07-22 2010-01-28 International Business Machines Corporation Embedded change logging for data synchronization
US20110295802A1 (en) * 2010-05-28 2011-12-01 Microsoft Corporation Scalable policy-based database synchronization of scopes

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US7076508B2 (en) 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US7685253B1 (en) 2003-10-28 2010-03-23 Sun Microsystems, Inc. System and method for disconnected operation of thin-client applications
US20090064160A1 (en) 2007-08-31 2009-03-05 Microsoft Corporation Transparent lazy maintenance of indexes and materialized views
IL208641A0 (en) 2010-10-12 2010-12-30 Eci Telecom Ltd Method for accelerating start up of a computerized system
US9367560B1 (en) * 2011-12-14 2016-06-14 Unboundid, Corp. Method, system and apparatus for synchronizing changes in a directory service
US8782100B2 (en) * 2011-12-22 2014-07-15 Sap Ag Hybrid database table stored as both row and column store
US9058367B2 (en) 2012-08-20 2015-06-16 Sears Brands, L.L.C. Methods and systems for staging and propagating data
EP2741217A1 (en) 2012-12-04 2014-06-11 Thomson Licensing Database synchronization

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
CN1326571A (zh) * 1998-11-17 2001-12-12 艾利森电话股份有限公司 变更记录处理的优化
US20100023533A1 (en) * 2008-07-22 2010-01-28 International Business Machines Corporation Embedded change logging for data synchronization
CN101369283A (zh) * 2008-09-25 2009-02-18 中兴通讯股份有限公司 一种内存数据库与物理数据库间的数据同步方法及系统
US20110295802A1 (en) * 2010-05-28 2011-12-01 Microsoft Corporation Scalable policy-based database synchronization of scopes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113595800A (zh) * 2021-08-03 2021-11-02 腾云悦智科技(深圳)有限责任公司 一种应用连接关系自动发现与cmdb信息保鲜的方法
CN113595800B (zh) * 2021-08-03 2022-07-05 腾云悦智科技(深圳)有限责任公司 一种应用连接关系自动发现与cmdb信息保鲜的方法
WO2023242720A1 (en) * 2022-06-15 2023-12-21 International Business Machines Corporation Conditional replication of data

Also Published As

Publication number Publication date
US20190188283A1 (en) 2019-06-20
US11615058B2 (en) 2023-03-28
KR102311032B1 (ko) 2021-10-07
WO2019117994A1 (en) 2019-06-20
US20200372000A1 (en) 2020-11-26
KR20200003164A (ko) 2020-01-08
US10769114B2 (en) 2020-09-08
KR20210121315A (ko) 2021-10-07
US20230214362A1 (en) 2023-07-06
KR102423125B1 (ko) 2022-07-19
EP3616024A1 (en) 2020-03-04

Similar Documents

Publication Publication Date Title
CN111448560A (zh) 数据库同步
JP7410181B2 (ja) ハイブリッド・インデックス作成方法、システム、プログラム
US10417265B2 (en) High performance parallel indexing for forensics and electronic discovery
US10262013B2 (en) Efficient full delete operations
US20190205293A1 (en) Systems and methods for concurrent summarization of indexed data
US20180189367A1 (en) Data stream ingestion and persistence techniques
US9720989B2 (en) Dynamic partitioning techniques for data streams
US7257690B1 (en) Log-structured temporal shadow store
US9197710B1 (en) Temporal based data string intern pools
CN104040481A (zh) 用于融合、存储和检索增量式备份数据的方法和系统
US20200364185A1 (en) Method for data replication in a data analysis system
EP2380090B1 (en) Data integrity in a database environment through background synchronization
US20130159339A1 (en) Data Container Access in a Database System
CN110083579A (zh) 增量数据同步的方法、装置、计算机设备及计算机存储介质
US20240004883A1 (en) Data ingestion with spatial and temporal locality
WO2015168988A1 (zh) 一种数据索引创建方法、装置及计算机存储介质
CN109947730A (zh) 元数据恢复方法、装置、分布式文件系统及可读存储介质
US11210236B2 (en) Managing global counters using local delta counters
US11048728B2 (en) Dependent object analysis
CN109885619A (zh) 基于分布式数据库的数据写入与读取方法和装置
CN113515518A (zh) 数据存储方法、装置、计算机设备和存储介质
US20220327099A1 (en) Segmented Streaming Data Processing
US11113296B1 (en) Metadata management for a transactional storage system
Singh NoSQL: A new horizon in big data
Qi et al. Distributed structured database system HugeTable

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