数据库数据分布管理的制作方法

文档序号:11530766阅读:326来源:国知局
数据库数据分布管理的制造方法与工艺

计算系统和相关联的网络已经改变了人类工作,娱乐和交流的方式。我们生活的几乎每一个方面都受到计算系统的某种影响。网络的激增已经允许计算系统共享数据和通信,从而大大增加信息访问。因此,目前的时代通常被称为“信息时代”。

数据库是有序地组织通常是大量数据的一种方式。此外,查询处理引擎允许针对数据库处理特定查询,允许用户快速检索感兴趣的特定数据,即使当从大量数据检索时也是如此。为了处理查询,查询处理引擎首先将查询转换为查询计划。常规地,数据库可以是分布式的,使得单个查询可以导致来自位于不同位置的数据库的部分的数据。

本文要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的实施例。而是,仅提供该背景以示出其中可以实践本文所描述的一些实施例的一个示例性技术领域。



技术实现要素:

本文描述的至少一些实施例涉及维护跨越一个或者多个前端数据库(frontdatabase)和一个或者多个云数据库而分布的数据库。例如,前端数据库可以是本地数据库或远程数据库。尽管如此,在向前端数据库提交查询的意义上,前端数据库是“前端的”。事实上,向前端数据库提交查询的那些人甚至不需要知道一些数据可能在云中。不是将数据库的前端和远程部分固定,数据分布管理器遵循数据分布策略来评估数据库分段,以识别一个或者多个数据库段,所述一个或者多个数据库段将从所述前端数据库被传送到所述一个或者多个云数据库、或将从所述一个或者多个云数据库被传送到所述前端数据库。作为响应,数据分布管理器使得所识别的数据库段被移动。因此,前端数据库中的数据和存储在云中的数据可随时间变化。

本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图说明

为了描述可以获得上述和其他优点和特征的方式,将通过参考附图来给出对各种实施例的更具体的描述。应当理解,这些附图仅描绘了样本实施例,因此不被认为是限制本发明的范围,通过使用附图以附加的特征和细节来描述和解释实施例,在附图中:

图1抽象地示出其中可以采用本文所述的一些实施例的计算系统;

图2示出了数据库环境,其中分布式数据库包括计算系统内的前端的数据库,并且还包括远程云系统内的远程云数据库,并且其中数据库段(segment)在前端的数据库和远程云数据库之间移动;

图3示出了用于维护跨越前端的数据库和远程云数据库而分布的数据库,并且涉及在前端的数据库和远程云数据库之间移动数据库分段的方法的流程图;以及

图4示出了用于分布式数据库的备份环境。

具体实施方式

本文描述的至少一些实施例涉及维护跨一个或者多个前端数据库和一个或者多个远程云数据库分布的数据库。例如,前端数据库可以是本地数据库或远程数据库。尽管如此,在向前端数据库提交查询的意义上,前端数据库是“前端的”。事实上,向前端数据库提交查询的那些人甚至不需要知道某些数据可能在云中。代替将数据库的前端和远程部分固定,数据分布管理器遵循在数据分布策略来评估数据库分段,以识别将被传送到云数据库或从云数据库传送、将被传送到前端数据库或从前端的数据库传送的一个或者多个数据库段。作为响应,数据分布管理器使得所识别的数据库段被移动。因此,前端数据库中的数据和存储在云中的数据可随时间而变化。将参照图1描述计算系统的一些介绍性讨论。然后,将参照随后的附图描述访问控制的结构和使用。

计算系统现在越来越多地采取各种各样的形式。计算系统可以例如是手持设备,家用电器,膝上型计算机,台式计算机,大型机,分布式计算系统,数据中心,或甚至通常不被认为是计算系统的设备,诸如可穿戴设备(例如眼镜)。在本说明书和权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),其包括至少一个物理和有形处理器以及物理和有形存储器,其上能够具有可由处理器执行的可执行指令。存储器可以采取任何形式,并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上并且可以包括多个组成计算系统。

如图1所示,在其最基本的配置中,计算系统100通常包括至少一个硬件处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性,非易失性,或两者的某种组合。术语“存储器”在这里也可以用于指非易失性大容量存储器,例如物理存储介质。如果计算系统是分布式的,则处理,存储器和/或存储能力也可以是分布式的。如本文所使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象,例程或方法。本文描述的不同组件,模块,引擎和服务可以被实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。

在下面的描述中,参考由一个或者多个计算系统执行的动作来描述实施例。如果这些动作以软件实现,则(执行动作的关联计算系统的)一个或者多个处理器响应于已经执行的计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或者多个计算机可读介质上实现。这种操作的示例涉及数据的操纵。计算机可执行指令(和被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可以包含通信信道108,其允许计算系统100与其他计算系统通信,例如,计算系统100还包括显示器,其可以用于向用户显示视觉表示。

本文描述的实施例可以包括或利用包括计算机硬件的专用或通用计算系统,诸如例如一个或者多个处理器和系统存储器,如下面更详细地讨论的。本文描述的实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可以由通用或专用计算系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。携带计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例可以包括至少两种截然不同种类的计算机可读介质:存储介质和传输介质。

计算机可读存储介质包括ram,rom,eeprom,cd-rom或其它光盘存储器,磁盘存储器或其它磁存储设备和有形的存储介质,其可用于以有形存储介质以计算机可执行指令或数据结构的形式的存储所需程序代码的任何其它物理,其可以由通用或专用计算系统访问。

“网络”被定义为使得能够在计算系统和/或模块和/或其他电子设备之间传输电子数据的一个或者多个数据链路。当通过网络或另一通信连接(硬连线,无线或硬连线或无线的组合)向计算系统传送或提供信息时,计算系统将连接适当地视为传输介质。传输介质可以包括可以用于以计算机可执行指令或数据结构的形式携带期望的程序代码装置,其可以由通用或专用计算系统访问的网络和/或数据链路访问。上述的组合也应包括在计算机可读介质的范围内。

此外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置可以从传输介质自动传输到存储介质(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以缓存在网络接口模块(例如,“nic”)内的ram中,然后最终传送到计算系统ram和/或较不易失存储介质。因此,应当理解,存储介质可以被包括在也(或甚至主要)利用传输介质的计算系统组件中。

计算机可执行指令包括例如当在处理器处执行时使得通用计算系统,专用计算系统或专用处理设备执行某一功能或一组功能的指令和数据。计算机可执行指令可以是例如在由处理器直接执行之前所经历的一些转换(诸如编译)的二进制或甚至指令,诸如汇编语言的中间格式指令,或甚至源代码。虽然已经用对结构特征和/或方法动作专用的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于上述描述的特征或动作。相反,所描述的特征和动作作为实现权利要求的示例形式被公开。

本领域技术人员将理解,本发明可以在具有许多类型的计算系统配置的网络计算环境中实践,包括个人计算机,台式计算机,膝上型计算机,消息处理器,手持设备,多处理器系统,基于微处理器或可编程消费电子产品,网络pc,小型计算机,大型计算机,移动电话,pda,寻呼机,路由器,交换机,数据中心,可穿戴设备(例如眼镜)等。本发明还可以在分布式系统环境中实施,其中通过网络链接(通过硬连线数据链路,无线数据链路,或通过硬连线和无线数据链路的组合)的本地和远程计算系统都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。

图2示出了包括前端的系统210和远程云系统220的数据库环境200。前端的系统210例如可以是计算系统,并且可以构造为如上所述用于图1的计算系统100。远程云系统220是云计算环境。云计算环境通常被称为“云”,因为云计算环境提供具有高可用性的服务。从云服务的消费者的角度来看,消费者可以在任何时间和任何地方简单地到达云中,并且检索期望的服务,而不必担心支持该服务的实际物理硬件服务。在许多情况下,数据中心内的计算和存储硬件为云计算环境提供硬件支持。

在所示的实施例中,前端的系统210具有一个或者多个前端数据库211,并且远端云系统220具有一个或者多个远端云数据库221。分布式数据库230被示为包括前端数据库211和远程云数据库221。在如下意义上,前端的系统210是“前端的”的:前端的系统210从数据库利用系统214(例如,包括软件应用,该软件应用向指向分布式数据库230的数据库系统(例如,前端的系统210)提交诸如查询的命令)接收查询(例如,查询201),并向数据库利用系统214提供相应的查询响应(例如,查询响应204)。实际上,那些提交的对前端的系统210的查询(例如,数据库利用系统214)甚至不需要知道数据库的一些数据可能在云中。数据库利用系统214可以本地于或远离前端的系统210,并且还可以是诸如上面关于图1所描述的计算系统。虽然一个或者多个前端数据库211被示为包括单个前端数据库如图211a所示,一个或者多个前端数据库211可以包括由椭圆211b表示的更多前端数据库。此外,虽然一个或者多个云数据库221被示为包括单个云数据库221a,但是一个或者多个云数据库221可以包括由椭圆221b表示的更多的云数据库。可以利用多个数据库的一种情况是当底层数据库平台对数据库大小具有最大限制时。

前端的系统210还包括查询计划生成器212,其接收要针对分布式数据库230处理的命令(例如,命令201)。命令可以包括由分布式数据库230的管理员发布的管理命令,或者可能包括有分布式数据库230的程序员发布的编程命令。然而,在操作时间期间,命令更可能是由分布式数据库230的用户发出的查询。例如,如图所示,数据库利用系统214发布命令201到前端的系统210,命令201由查询计划生成器212接收。

在管理员发出命令的情况下,数据库利用系统214可以具有数据库利用应用程序(或利用分布式数据库230的应用程序)。在程序员发出命令的情况下,数据库利用系统214可以具有数据库软件开发应用程序。在运行时用户发出命令的情况下,数据库利用系统214可以具有提交数据库查询的应用。然而,无关于命令201的发布者,命令201本身不需要具有任何特殊结构以与分布式数据库230的结构对齐(align)。而是,可以发布和结构化命令201,而不考虑底层数据库是单个数据库或贯穿于前端的系统210和远程云系统220分布。

另一方面,查询计划生成器212具有前端数据库211和远程云数据库221的存在的知识。此外,查询计划生成器212可访问位置数据213,其表示数据驻留在哪里(例如,是在前端数据库211上还是在远程云数据库221上)。因此,查询计划生成器212具有数据如何贯穿分布式数据库230而分布的理解。查询计划生成器212响应于接收到查询(例如图2中的查询201)而使用位置数据213来制定和发出查询计划。

在查询计划生成器212确定要用于响应于查询201的所有数据仅位于前端数据库211上的情况下,则将查询计划简单地提交到前端数据库211。然而,在查询计划生成器212确定数据将被用于响应于查询201的数据分布在前端数据库211和远程云数据库221之间的情况下,查询计划生成器212将查询计划的部分202a发送到前端数据库211以进行处理,并且将查询计划的另一部分202b发送到远程云数据库221以进行处理。在下文中,查询计划的部分202a和202b可以统称为“查询计划202”。

然而,即使当查询计划生成器212发现位置数据213指示响应于查询的有用数据驻留在远程云数据库220中时,也可能存在以下情况:查询计划生成器212仍然选择不向远程云数据库221发送查询计划202的部分202b。作为示例,当前可能在前端的系统210和远程系统220之间没有建立的通信连接。或者,可能在前端的系统210上的数据足以至少给出对查询的部分答案。

在任何情况下,如果查询计划202的部分202b被分派,则部分202b然后被发送到远程云系统220。查询计划202的部分202b然后被远程云系统230中的查询计划处理器222接收。查询计划处理器222向远程云数据库221提交适当的查询(如箭头231a所示),并收集结果(如箭头231b所示)。然而,查询计划处理器222不仅简单地收集查询的结果,而且实际上能够对来自远程数据库的数据执行计算以获得查询结果。因此,对于计算的输入数据现在不需要被下载到前端的系统210。而是,在远程云系统220上执行计算。查询计划202的部分202b指定要执行的计算。由于查询计划处理器222的计算结果被下载到前端的系统210(相对于对这种计算的潜在更大的输入而言),所以从远程云系统220和前端的系统210传输的数据量显著降低。

查询计划生成器212从前端数据库211(如箭头203b所示)以及经由查询计划处理器222从远程云数据库221接收结果(如箭头203a表示),并且聚集(例如,通过合并或并集)那些结果以返回最终查询结果(如箭头204所表示的)。

在一些实施例中,可以针对数据库的分层分层结构来分层地处理查询。例如,假设远程数据库221包括多个数据库。在这种情况下,查询计划处理器222可以像查询计划生成器212处理原始查询201一样处理查询计划202的部分202b。具体地,查询计划处理器222可以基于位置数据223生成查询计划,该位置数据223描述数据如何跨远程云数据库221分布。该分层结构可以针对潜在的许多层递归地继续。同样地,如果前端数据库211包括多个前端数据库,则类似的查询计划处理器(未示出)可以使用位置数据(未示出)来确定数据在哪个前端数据库211上,并且对每个前端数据库制定适当的查询计划。

然而,根据本文所描述的原理,数据跨分布式数据库230的分布随时间而改变。特别地,数据移动代理240(在本文中也被称为“数据移动管理器”或“数据分布管理器”)响应于评估策略251将远程云数据库221的部分传送到前端数据库211(如箭头241所示)。响应于评估策略251,数据移动代理240还将前端数据库211的部分传送到远程云数据库221(如箭头242所示)。在前端数据库211是本地数据库的情况下,这可以被称为“远程”前端数据库211的“远程”部分。数据移动代理240还在每次传送出现时更新位置数据213(如箭头243所示)。数据移动代理240可以位于前端的系统210上,或者可以位于远程云系统220中,或者分布在它们之间。然而,尽管不是必需的,但出于安全目的,可能存在将数据移动代理240定位在前端的系统210上的倾向。在一个实施例中,数据移动代理240可以被实现为查询计划生成器212的一部分。

图3示出了用于维护分布在前端数据库和远端数据库上的数据库的方法300的流程图。方法300可以由例如图2的数据移动代理240执行,以便管理分布式数据库230。因此,现在将频繁参考图2的环境200来描述图3的方法300。

方法300包括遵循数据分发策略来评估前端数据库,以确定要被移动到一个或者多个云数据库的一个或者多个前端数据库段(动作311)。例如,在图2中,数据移动代理240评估策略252以确定要被移动到远程云数据库221的前端数据库211的一个或者多个段。例如,被移动的段可以包括前端数据库的一行或多行,前端数据库的一列或多列,或前端数据库的一个或者多个单元。在识别要被移动的前端数据库段(动作311)之后,使所识别的前端数据库段移动到远程云数据库221(动作312)。例如,数据移动代理240可以使所识别的前端数据库段从前端数据库211移动到远端云数据库221。

在一个实施例中,在将前端数据库段移动到远程云数据库之前,可以通过加密前端数据库段的至少一些内容来实现安全性。然而,为了允许在云中远程地执行至少一些计算(例如,通过查询计划处理器222),一些字段可以保持明文(intheclear)。因此,前端系统可保持对加密密钥的控制(例如,在查询计划生成器212中),并将安全加密的内容提供到远程云数据库中。

例如,假设某个表具有雇员列表。对于名称,工资,社会保险号,职务,雇用日期等等中的每一个存在一个列。在前端数据库211中的段中,所有数据可以是明文。然而,在远程云数据库221中的段中,这些列中的一些可以被加密(例如姓名和社会安全号码),而允许其他列(例如,工资,职务,雇用日期)为明文。因此,如果存在询问具有大于$200,000的工资的所有雇员的社会安全号码的查询,则查询可以由查询计划处理器222远程处理(例如,使用工资信息作为明文输入)。然而,代替直接返回社会安全号码,查询计划处理器222将返回社会安全号码的加密版本。前端的系统210具有解密密钥,因此前端的系统能够获取敏感的社会安全号码信息。

返回图3,方法300还包括根据数据分布策略来评估远程云数据库,以确定要移动到一个或者多个前端数据库的一个或者多个远程云数据库段(动作321)。例如,在图2中,数据移动代理240评估策略251,以确定要被移动到前端数据库211的远程云数据库211的一个或者多个段。例如,被移动的段可以包括远程云数据库的一行或多行,远程云数据库的一个或者多个列、或远程云数据库的一个或者多个单元。在识别要被移动的远程云数据库段(动作321)之后,然后使得所识别的远程云数据库段移动到前端数据库(动作322)。例如,数据移动代理240可以使所识别的远程云数据库段来从远程云数据库221移动到前端的数据库211。当从远程数据库221向前端数据库211移动数据库段时,任何加密内容可以被解密以用于在前端数据库211上表示。

当存在到前端数据库211或来自前端数据库211的数据库段的移动(例如,动作311或动作321)时,对于查询计划生成器可用的位置数据被更新,以反映数据库段移动的完成(动作331)。例如,参考图2,当数据移动代理240将数据库段从前端数据库211移动到远程云数据库221(如箭头242所示)时,或者从远程云数据库221(如箭头241所示)移动至前端数据库211(如有箭头241所示)时,位置数据213被更新(如箭头243所示)。例如,移动(动作311或动作321)和位置更新(动作331)可以以原子方式发生。

与前端数据库211特别是与远程数据库220的大小相比,由箭头241和242表示的数据的移动可能是小体积。因此,箭头241和242可能因此表示来回的信息的流(trickle),以确保在任何给定时间和随时间流逝而实现正确分布(由策略251和252定义)。

如前所述,根据数据分布策略做出关于是否在前端数据库211和远端数据库221之间移动数据的决定。管理前端数据库段到远程云数据库221的移动的数据分布策略252不必与管理远程数据库段到前端数据库221的移动的数据分布策略251相同。例如,在一个示例中,用于将远程云数据库段移动到前端数据库211的数据分布策略251可以是按需策略,其中当查询调用它们时移动它们。可选地或另外地,用于将前面的数据库段移动到远程云数据库221中的数据分布策略252可以根据如下评定(assessment):前端数据库段不太可能被用于响应于未来近期的查询。

然而,数据分布策略251和252中的任一个或两者可以符合按需策略,其中数据库段在不同数据库中根据需要移动。例如,当命令系统114发出需要访问特定远程数据库段的命令时,数据移动代理240可以将该远程数据库段移动到前端数据库211。

备选地或另外,数据分布策略251和252中的任一个或两者可以根据由用户指定的策略。例如,数据库利用系统214的用户可以发出表示定义数据分布策略的谓词的命令。例如,考虑销售信息的分布式数据库(其中包括销售日期的列)。用户可以指定谓词,其具有大于一年的销售数据的销售记录将被移动到云数据库。

备选地或另外,数据分布策略251和252中的任一个或两者可以根据数据使用的历史和/或预期的频率。有时,使用的频率(历史或预期)被称为数据的“温度”。本文所描述的原理不限于确定数据的温度的任何特定方式。在一个实施例中,更热(或更频繁访问的)数据库段被移动到前端数据库。

备选地或另外,数据分布策略251和252中的任一个或两者可以与主题域一致。例如,在一些条件和时间中,将数据库段与一个域相比较另一个域更有利。

备选地或另外,数据分布策略251和252中的任一个或两者可以与数据创建的时间一致。例如,一个示例数据库可以简单地收集事件数据,其中每个表包括在给定月份中发生的事件的列表。包括来自更远的月份的事件的表可以从前端数据库移除到远端数据库。

备选地或另外,数据分布策略251和252中的任一者或两者可基于时态版本化(temporalversioning)(例如,可基于数据库表的时态设置),其中一个,一些或所有先前版本的数据将位于远程云数据库中。

备选地或另外,数据分布策略251和252中的任一个或两者可以基于使用该数据的工作流的工作流状态。备选地或另外,数据分布策略251和252中的任一个或两者可以基于将数据保持在前端数据库与远端云数据库中的所有权的总成本。

备选地或另外,数据分布策略251和252中的任一个或两者可以基于被排除远程于云数据库的数据的列表。这种排除可能基于安全或监管要求。此外,策略可能指示这样的信息可以仅在被加密时才被远程存储到云数据库中。因此,策略251和252可以不仅用于识别要移动哪些数据库段,而且还可以用于在移动到云数据库之前应该加密哪些字段。

图4示出了其中可以备份分布式数据库的示例备份环境400。备份环境400可以用于备份图2的分布式数据库230。如由备份环境所表示的,备份包括前端数据库401(例如,图2的前端数据库211)如存在的或者在备份时存在那些前端数据库。因此,为了执行数据库230的备份,至少备份前端数据库。

然而,为了表示远程数据库,而不是备份整个远程数据库,存储用于远程数据库221的恢复信息412。这样的恢复信息412足以能够在备份时间恢复远程云数据库(例如,远程云数据库221)的状态。例如,这样的恢复信息412可以指向远程云数据库221并且可能提供足够的信息,使得确定备份时间的远程数据库的状态。在一些云实施例中,远程云系统220本身维护远程云数据库221的备份和副本。这是由当前云提供的常规服务。远程云数据库221中的每一行可以具有与它们相关联的时间戳,其表示该行的状态最后改变的时间。如果恢复发生在例如2014年10月1日下午1点,则恢复将删除具有在2014年10月1日下午1点之前的时间戳的所有行。在这种情况下,恢复信息412可以包括要恢复的挂钟时间。时间戳可以是文字的一天中的时间(或“挂钟时间”),但也可以是表示行版本信息的更通用的应用时间(例如,计数器,标识,号码)(例如将在时态数据库(temporaldatabase)或者多版本数据库中使用的)。因此,在恢复期间,远程云数据库221也被恢复到适当的备份时间。

因此,已经描述了分布式数据库技术,其中在前端数据库和远程数据库之间的数据库段的分布可以响应于策略随时间改变。此外,数据库的分布式性质对于查询的发布者和查询结果的消费者不必是易见的。此外,查询的部分计算可以被移动到云系统。因此,存储和处理资源可以被移动到云,从而利用云提供的存储和处理的效率。

权利要求支持部分

这里描述了一种用于维护跨越前端数据库和一个或者多个云数据库而分布的数据库的方法。该方法包括如下动作:遵循数据分布策略来评估前端数据库,以确定将被移动到一个或者多个云数据库的一个或者多个前端数据库段。此外,响应于评估前端数据库的动作,使得一个或者多个前端数据库段被移动到一个或者多个云数据库中的至少一个云数据库。遵循数据分布策略而评估一个或者多个云数据库中的数据库的远程部分,以确定要从一个或者多个云数据库中的至少一个云数据库移动到前端数据库的一个或者多个远程数据库段。此外,响应于评估数据库的远程部分的动作,使得一个或者多个远程数据库段被移动到前端数据库。

该方法还可以包括备份数据库的动作,备份数据库的动作包括:备份前端数据库的动作;以及备份远程恢复信息的动作,所述远程恢复信息足以在对应于备份所述前端数据库的动作的备份时间获取所述一个或者多个云数据库中的至少一个云数据库的状态。

一个或者多个云数据库可以包括单个云数据库或多个云数据库。此外,一个或者多个中的每个前端数据库段可以包括前端数据库的一个或者多个行,前端数据库的一个或者多个列或组合。

数据分布策略可以基于数据使用的频率,基于时态版本化,基于主题域,基于时间填充时间,基于工作流状态,基于所有权的总成本等,来由用户指定,和/或包括按需策略。

本文还描述了一种计算机程序产品,其包括其上具有计算机可执行指令的一个或者多个计算机可读存储介质,所述计算机可执行指令被构造为使得当由计算系统的一个或者多个处理器执行时,使计算系统执行用于维护跨越前端数据库和一个或者多个云数据库分布的数据库的方法。这里,该方法可以包括遵循数据分布策略而评估数据库段以识别一个或者多个数据库段的动作,所述一个或者多个数据库段将从所述前端数据库被传送到所述一个或者多个云数据库、或将从所述一个或者多个云数据库被传送到所述前端数据库;以及响应于评估所述数据库段的动作,使所识别的一个或者多个数据库段相应地移动的动作。识别要相应地移动的一个或者多个数据库段的动作可以包括原子地执行以下操作:相应地移动所识别的一个或者多个数据库段的动作;以及更新对于查询计划生成器可用的位置数据,以反映相应地移动所识别的数据库段的动作的完成的动作。

本文中还描述了一种计算系统,包括:一个或者多个处理器;以及其上具有计算机可执行指令的一个或者多个计算机可读存储介质,所述计算机可执行指令被构造为使得当由所述一个或者多个处理器执行时,使所述计算系统实例化和/或操作以下:数据移动管理器,遵循数据分布策略来评估数据库段以识别一个或者多个数据库段,所述一个或者多个数据库段将从所述前端数据库被传送到所述一个或者多个云数据库、或将从所述一个或者多个云数据库被传送到所述前端数据库;以及响应于评估所述前端数据库的动作,使得所识别的一个或者多个数据库段相应地被移动的动作。

一个或者多个计算机可读存储介质上还可以具有计算机可执行指令,其被构造为使得当由一个或者多个处理器执行时,使得计算系统实例化和/或操作以下:查询计划生成器,其接收被引导至包括所述前端数据库和所述一个或者多个云数据库的数据库的查询,并且被配置为使用位置数据来制定针对所述前端数据库和所述一个或者多个云数据库执行的相应的查询计划。

数据移动管理器可以被配置为原子地执行以下操作:使得所识别的一个或者多个数据库段相应地移动的动作;以及更新对于查询计划生成器可用的位置数据以反映使所识别的一个或者多个数据库段相应地被移动的动作的完成的动作。

查询计划生成器可以被配置为避免以下:在其中位置数据指示响应信息是在一个或者多个云数据库中的至少一个云数据库上的至少一些情况下,使对应的查询针对一个或者多个云数据库中的至少一个云数据库被执行。

在不脱离本发明的精神或本质特征的情况下,本发明可以以其它具体形式实施。所描述的实施例在所有方面都被认为仅是说明性的而不是限制性的。因此,本发明的范围由所附权利要求书而不是前面的说明书来表示。在权利要求的等同物的含义和范围内的所有改变将被包括在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1