首页> 中国专利> 用于使用利用率分析管理存储器利用率的系统和方法

用于使用利用率分析管理存储器利用率的系统和方法

摘要

公开了用于使用使用分析在云环境和传统环境中管理存储器使用的方法。所述方法可以在包括硬件和软件的组合的计算机基础结构中实现。所述方法包括确定空间在具有模式定义的一个或者多个表内可用,所述模式定义带有具有预定长度的字符串字段。所述方法进一步包括创建虚拟表和将可用空间映射至虚拟表以用于由一个或多个记录来填充。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-11

    授权

    授权

  • 2014-06-11

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20131031

    实质审查的生效

  • 2014-05-14

    公开

    公开

说明书

技术领域

本发明一般地涉及计算系统,并且更具体地,涉及用于使用利 用率分析在云环境和传统环境中管理存储器利用率的方法和系统。

背景技术

数据库模式以字段具有足够空间来存储数据这样的方式来设 计。然而,对于大多数实例,用于存储这些字段的空间比实际使用的 多。当然,这样导致空间和资源的浪费。

例如,考虑用于存储客户地址信息的典型数据库模式如下:

Table CustmerAddress{

Addrlinel varchar(255),

AddrLine2varchar(255),

City varchar(100),

PinCode varchar(10),

Country varchar(50),

};

对于上述示例,计算机数据库应用可以从虚拟存储管理器(例 如操作系统的组件)要求期望数量的字节用于存储客户地址。然而, 在该示例中,CustmerAddress Table只有少数(如果有的话)实例 将使用所有分配空间,特别是Addrline1和Addrline2字段。在这种 情况下,由于并非用于存储客户地址的所有分配空间都被使用的事 实,资源被浪费了。可以更好地实现这些资源(空间)以满足其它需 要。同样,如这里所描述的,需要消耗大量的能量(即电力)以保持 存储器中或者外部存储设备上的那些未使用的空间。

基于云的范例的关键特征是高效的资源利用(例如,通过虚拟 化实现)。许多算法存在用于高水平的有效存储器分配利用。然而, 有下列方面的差距:

由程序静态使用的数据块可能具有以下特征:“客户”表具有 char30的名字、char10的中间名和char50的姓氏。由于缺乏定义 数据长度的标准,设计者任意地指定数据长度并且大部分时间降低相 关风险总是期望的。在现实中,由于整个预留空间可能根本不会被使 用,因此浪费了空间和资源;以及

商业现货供应的产品(COTS)具有预定义的数据表;理想地, 将单独使用各子集域和相关的表。例如,用于库存管理的COTS应 用将具有预定管理功能和相关的数据库表,这些可能根本不会被企业 使用。

在上述所有情况下,额外的能量被用于维持空的未使用的存储 器,即没有最佳地利用存储器资源。事实上,众所周知,现代的1太 字节驱动器每兆字节消耗大约38毫瓦。根据这个度量,1字节将消 耗0.036毫微瓦。在包括多个应用的大生态系统中,未使用存储器的 比例越大,接下来导致使用多得多的能量消耗。

发明内容

在本发明的第一方面中,在包括硬件和软件的组合的计算机基 础结构中实现了方法。方法包括确定空间在具有模式定义的一个或者 多个表内可用,该模式定义带有具有预定长度的字符串字段。方法进 一步包括创建虚拟表和将可用空间映射至虚拟表以用于由一个或多个 记录来填充。

在本发明的另一个方面中,系统在硬件中实现并且包括计算机 基础结构,可操作用于:跟踪一个或者多个定义表的字段内的空间; 创建一个或者多个定义表内所有可用空间的跟踪器表;创建虚拟表; 以及将可用空间映射至虚拟表。

在本发明的另一方面中,计算机程序产品包括具有体现在存储 介质中的可读程序代码的计算机可用存储介质。计算机程序产品包括 至少一个组件,可操作用于监控具有模式定义的一个或者多个表的字 段内的空间,该模式定义具有第一空间分配。计算机程序产品进一步 包括至少一个组件,可操作用于确定一个或者多个字段内需要的额外 空间。计算机程序产品进一步包括至少一个组件,可操作用于增加一 个或者多个字段内的值以提供额外空间。

在本发明的进一步方面中,方法包括提供计算机基础结构,可 操作用于确定空间在具有模式定义的一个或者多个表内可用,该模式 定义带有具有预定长度的字符串字段。计算机基础结构进一步可操作 用于将可用空间映射至虚拟表以用于由一个或多个记录来填充,并且 根据需要释放映射至用于一个或者多个表内的虚拟表的任何空间。

在本发明的另一个方面中,计算机系统存储管理包括CPU、计 算机可读存储器和计算机可读存储介质。所述系统包括第一程序指 令,用以确定空间在具有模式定义的一个或者多个表内可用,该模式 定义带有具有预定长度的字符串字段。系统包括第二程序指令,用以 创建虚拟表。系统包括第三程序指令,用以将可用空间映射至虚拟表 以用于由一个或多个记录来填充。系统包括第四程序指令,用以根据 需要释放映射至用于一个或者多个表内的虚拟表的任何空间。第一至 第四程序指令存储在所述计算机可读存储介质上由所述CPU通过所 述计算机可读存储器执行。

附图说明

参考提到的多个附图,通过本发明的示例性实施例的非限制性 示例,在随后的详细说明中描述了本发明。

图1描绘了根据本发明实施例的云计算节点;

图2描绘了根据本发明实施例的云计算环境;

图3描绘了根据本发明实施例的抽象模型层;

图4示出了根据本发明的各方面的实现框图;

图5示出了为了实现本发明的各方面,针对一段时间利用的实 际空间和能量的显示;

图6示出了为了实现本发明的各方面,保留(和/或可用)的存 储器与实际使用的存储器的显示;

图7描绘了根据本发明的各方面,在一个或者多个定义表中使 用可用空间的示例性流程图;

图8示出了根据本发明的各方面,动态授权处理的示例性流程 图;以及

图9示出了根据本发明的各方面固定利用水平的处理的示例性 流程图。

具体实施方式

本发明一般地涉及计算系统,并且更具体,涉及用于使用使用 分析在云环境和传统环境中管理存储器使用的方法和系统。根据本发 明的各方面,有利地可操作、构造和/或设计本发明的方法和系统以 有效地利用分配存储器和/或外部存储设备的空间(例如,存储 器),这反过来将允许高效管理功率消耗。例如,通过实现本发明, 现在有可能使用定义模式内的所有可用空间,例如,通过创建虚拟表 并且将可用空间映射至虚拟表。

在一个使用示例中,提供实用程序(例如,存储管理引擎)作 为数据库系统的一部分,以更高效和更有效地管理数据库内使用和未 使用的空间。示例性地,在实施例中,实用程序管理数据库系统中的 空间,在该数据库系统中,数据库管理员用具有一定长度的字符串字 段定义模式,并且并非所有分配的长度(按照每个模式定义的长度) 都被记录中的每个条目使用。基于用户的许可,这可以在传统环境或 者基于云的环境内实现。

在更具体的实施例中,空间的管理可以以在使用端提供所有空 间(按照每个模式的定义)这种方式执行。这可以通过指定定义表内 的可用空间用于虚拟表,并且当表再次需要的时候在虚拟表内释放这 种空间来完成。例如,本发明的实用程序可以跟踪数据库内的可用 (未使用)空间,并且将可用空间指定或映射至虚拟表。当需要时, 可用空间可以接着按照原始模式定义释放和使用,从而确保按照定义 模式的所有空间可以由终端用户使用,例如,终端用户可以使用原始 模式定义中定义的字符串的全部或者一部分。相应地,在实现中,当 用户没有按照允许的模式定义占据所有空间时,本发明的实用程序将 释放空间至虚拟表,例如,以便可以更高效地使用空间,然后当在后 来的时间需要时,从虚拟表释放该空间返回至原始表。

在实施例中,本发明的实用程序可以是数据库系统的组件。以 这种方式,数据库系统管理员可以利用针对他们选择的模式的实用程 序,从而确认针对具体模式的空间的管理。对于数据库的终端用户, 该功能的使用将是透明的。也就是说,终端用户仍将按照模式定义获 得可用空间;然而,实用程序将维持管理模式的空间的实际使用的跟 踪,并将使用未使用的空间满足其它需求。

云计算

首先应当理解,尽管本公开包括关于云计算的详细描述,但其 中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已 知或以后开发的任何其它类型的计算环境而实现。

为了方便起见,详细描述包括从2009年10月7日Peter Mell和 Tim Grance的“Draft NIST Working Definition of Cloud  Computing”获得的下列定义,其在随附提交的IDS中引用,并且 其副本被附加于此。

云计算是一种服务交付模式,用于对共享的可配置计算资源池 进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成 本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如 可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机 和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至 少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交 互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等 的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取, 这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台 (例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi- tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟 资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不 知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置 (例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能 力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来, 用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获 取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处 理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制 和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供 者和消费者双方提供透明度。

服务模型如下:

软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础 架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如 基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定 于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务 器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(PaaS):向消费者提供的能力是在云基础架构上部 署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语 言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系 统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用 托管环境配置可能也具有控制权。

基础架构即服务(IaaS):向消费者提供的能力是消费者能够 在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网 络和其他基础计算资源。消费者既不管理也不控制底层的云基础架 构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网 络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由 该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系 (例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同 体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同 体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务 的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共 同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据 和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平 衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、 模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础 架构。

现在参照图1,示出了云计算节点示例的示意图。云计算节点 10仅仅是适当云计算节点的一个示例,并且不旨在就此处描述的本 发明实施例的功能或者使用范围提出任何限制。无论如何,云计算节 点10能够被实现和/或执行如前所述的功能中的任何一个。图1也可 以表示能够执行和/或实现此处描述的方法的任务和/或功能的计算基 础结构。

云计算节点10具有计算机系统/服务器12,其可与众多其它通 用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系 统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限 于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手 持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产 品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任 意系统的分布式云计算技术环境,等等。

计算机系统/服务器12可以在由计算机系统执行的计算机系统可 执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以 包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目 标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通 过通信网络链接的远程处理设备执行任务的分布式云计算环境中实 施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地 或远程计算系统存储介质上。

如图1中所示,云计算节点10中的计算机系统/服务器12以通 用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不 限于:一个或者多个处理器或者处理单元16、系统存储器28以及将 包括系统存储器28的各种系统组件耦合至处理器16的总线18。在 实施例中,如此处更为详细的描述,计算机系统/服务器12包括存储 管理引擎80(也称为“存储器能量优化器”(EOFM))或者与其 通信。

总线18表示几类总线结构中的一种或多种,包括存储器总线或 者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总 线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括 但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及 外围组件互连(PCI)总线。

计算机系统/服务器12典型地包括多种计算机系统可读介质。这 些介质可以是能够被计算机系统/服务器12访问的任意可获得的介 质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介 质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计 算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性 /非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于 读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱 动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘 (例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘 (例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。 在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总 线18相连。存储器28可以包括至少一个程序产品,该程序产品具有 一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明 各实施例的功能。

与操作系统、一个或者多个应用程序、其它程序模块和程序数 据一样,具有一组(至少一个)程序模块42的程序/实用程序40可 以通过示例而并非限制的方式存储在存储器28中。操作系统、一个 或者多个应用程序、其它程序模块和程序数据或者其某种组合可以包 括网络环境的实现。程序模块42通常完成如此处描述的本发明的实 施例的功能和/或方法。例如,可以将存储管理引擎80的一些或者全 部功能实现为程序模块42中的一个或者多个。另外,可以将存储管 理引擎80实现为单独的专用处理器或者单个或若干处理器以提供此 处描述的功能。作为示例,可以在例如图1中示出的驻留于任何计算 系统中的图形用户接口(GUI)(例如,显示器24)中实现存储管理 引擎80。显示器24可以包括例如键盘、鼠标和/或触摸屏的用户接 口。

在实施例中,存储管理引擎80使用利用率分析在云环境和传统 环境中管理存储器利用率。在实施例中,存储管理引擎80可以驻留 于存储系统34中;例如,(在美国和/或世界范 围内,IBM和Blue Stack是国际商用机器的商标)或者独立软件供 应商(ISV)数据库服务器。在实现中,存储管理引擎80在存储系 统中管理空间,其中开发者和/或管理员使用具有一定长度的字符串 字段定义模式,并且并非所有分配长度(按照模式定义的长度)都被 记录中的每个条目使用。可选地,如此处更详细地讨论的,当必要 时,存储管理引擎80可以将额外空间分配至字符串字段。

在实施例中,存储管理引擎80可以基于用户的许可管理未使用 的空间。这通过维持管理模式的空间的实际利用率的跟踪(至少部分 地)来完成。更具体地,在实现中,存储管理引擎80包括内部映射 器,该内部映射器以基于范围的格式(例如,起始位置、长度等)维 持关于未使用空间的信息并且将该信息映射至虚拟表。以这种方式, 存储管理引擎80可以以动态方式使用虚拟表中的可用空间。在进一 步的实施例中,存储管理引擎80可以创建可变长度字符字段以更有 效地在定义模式内使用空间。

在更具体的实施例中,可操作、构建和/或设计存储管理引擎80 用以提供下列功能:

跟踪相对于保留空间的实际使用的存储器空间,并且当需要 时,将未使用的空间分配至一个或者多个虚拟表,或者从一个或者多 个虚拟表分配未使用的空间;

当由用户触发时,显示针对一段时间利用的实际空间和能量 (参见例如,图5);

允许用户选择节省的百分比和内部补充未使用空间,从而节省 空间和成本;

允许用户定义哪个字段和/或特定字段内的空间可以或者不可以 被释放用以在其它地方利用;以及

容易看出实际的预留的存储器和/或未使用的存储器(参见,例 如,附图6)。

相应地,通过实现本发明的存储管理引擎80,现在有可能克服 在维持这种未使用存储器和/或存储空间时低效的存储器利用和相关 的能量耗费的基本问题。就能量消耗而言,由于存储系统(例如,数 据库)不再需要被消耗用以在存储器或外部存储设备中保持那些未使 用的空间,因此将节省大量的能量(即,电力)。

计算机系统/服务器12还可以与一个或者多个外部设备14(例 如键盘、指示设备、显示器24等)、使用户能够与计算机系统/服务 器12交互的一个或者多个设备、和/或使计算机系统/服务器12能够 与一个或者多个其它计算设备通信的任何设备(例如网卡、调制解调 器等)通信。这种通信可以通过I/O接口22发生。而且,计算机系 统/服务器12可以通过网络适配器20与一个或者多个网络(例如局 域网(LAN)、一般广域网(WAN)和/或公共网络(例如,因特 网))通信。如所描绘的,网络适配器20通过总线18与计算机系统 /服务器12的其它组件通信。应当理解,尽管未示出,其它硬件和/或 软件组件可以与计算机系统/服务器12结合使用。示例包括,但不限 于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、 RAID(廉价磁盘冗余阵列或者独立磁盘冗余阵列)系统、磁带驱动 器和数据存档存储系统等。

下面将参照根据本发明实施例的方法、装置(系统)和计算机 程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框 图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算 机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用 计算机或其它可编程数据处理装置的处理器,从而生产出一种机器, 使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行 时,创建了实现流程图和/或框图中的一个或多个方框中规定的功能/ 动作的装置。

也可以把这些计算机程序指令存储在计算机可读介质中,这些 指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式 工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程 图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造 品。

也可以将计算机程序指令加载至计算机、其它可编程数据处理 装置或者其它设备上以使得在计算机、其它可编程装置或者其它设备 上执行一系列操作步骤,以产生计算机实现过程,从而在计算机或者 其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一 个或者多个方框中规定的功能/动作的过程。

现在参考图2,其中显示了示例性的云计算环境50。如图所 示,云计算环境50包括云计算消费者使用的本地计算设备可以与其 相通信的一个或者多个云计算节点10,本地计算设备例如可以是个 人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑 54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。 可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云 或者它们的组合的一个或者多个网络中将云计算节点10进行物理或 虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上 维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、 平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显 示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计 算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的 计算设备(例如使用网络浏览器)通信。

现在参考图3,其中显示了云计算环境50(图2)提供的一组功 能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示 意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应 功能:

硬件和软件层60包括硬件和软件组件。硬件组件的例子包括: 主机,例如系统;基于RISC(精简指令集计算机) 体系结构的服务器,例如IBM系统;IBM系统; IBM系统;存储设备;网络和网络组件。软件组件的 例子包括:网络应用服务器软件,例如IBM应用服务 器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries, pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器 公司在全世界各地的注册商标)。

虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例 子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟 应用和操作系统,以及虚拟客户端。

在一个示例中,管理层64可以提供下述功能:资源供应功能: 提供用于在云计算环境中执行任务的计算资源和其它资源的动态获 取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪, 并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许 可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资 源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环 境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满 足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据 SLA预测的对云计算资源未来需求提供预先安排和供应。

工作负载层66提供可以利用云计算环境的功能的示例。可以由 该层提供的工作负载和功能的示例包括:映射和导航、软件开发和生 命周期管理、虚拟教室教育传送、数据分析处理、交易处理和未使用 空间的管理。根据本发明的各方面,未使用空间工作负载/功能的管 理操作以执行此处描述的过程中的一个或多个,包括但不限于:

跟踪相对于保留和/或未使用空间实际使用的存储器空间,并且 当需要时,将未使用的空间分配至一个或者多个虚拟表,或者从一个 或者多个虚拟表分配未使用的空间;

当由用户触发时,显示针对一段时间利用的实际空间和能量;

允许用户选择节省的百分比和内部利用未使用空间,从而节省 空间和成本;

允许用户定义哪个字段和/或特定字段内的空间可以或者不可以 被释放用以在其它地方利用;以及

容易形象化实际相对预留的存储器。

本领域的技术人员应当理解,本发明的方面(包括此处提供的 存储管理引擎80和功能)可以体现为系统、方法或者计算机程序产 品。相应地,本发明的方面可以采用全部硬件实施例、全部软件实施 例(包括固件、驻留软件、微代码等)或者组合软件和硬件方面的实 施例的形式,它们全部在此可以通称为“电路”、“模块”或“系 统”。此外,本发明的方面可以采用体现在一个或者多个计算机可读 介质中的计算机程序产品的形式,所述计算机可读介质具有体现在其 中的计算机可读程序代码。

可以采用一个或多个计算机可读介质的任意组合。计算机可读 介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可 读存储介质例如可以是——但不限于——电、磁、光、电磁、红外 线、或半导体的系统、装置或器件,或者上述的任意的合适组合。计 算机可读存储介质的更具体的例子(非穷举的列表)包括以下:具有 一条或多条导线的电连接、便携式计算机磁盘、硬盘、随机存取存储 器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器 (EPROM或闪存)、光纤、便携式光盘只读存储器(CD-ROM)、光存 储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计 算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可 以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括例如在基带中或者作为载波一 部分传播的数据信号,其中承载了被体现的计算机可读的程序代码。 这种传播的数据信号可以采用多种形式,包括——但不限于——电磁 信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以 是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介 质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用 或者与其结合使用的程序。

体现在计算机可读介质上的程序代码可以用任何适当的介质传 输,包括——但不限于——无线、有线、光缆、RF等等,或者上述 的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行为 本发明的方面操作的计算机程序代码,所述程序设计语言包括面向对 象的程序设计语言—诸如Java、Smalltalk、C++等,以及常规的过 程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代 码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作 为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上 执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的 情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN) 或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机 (例如利用因特网服务提供商来通过因特网连接)。

图4示出了实现本发明的各方面的框图。具体地,在图4中, 示出了在存储系统34中实现的存储管理引擎80。例如,存储系统34 可以是任何数据库系统。存储管理引擎80的功能可以与包括任何类 型用户接口(例如,键盘、鼠标和/或触摸屏实现)的显示设备24相 连接。

在非限制性示例性实施例中,存储管理引擎80将监控由数据库 管理者或者管理员创建的表100a、100b和100c。尽管示出了三个 表,如由数据库管理员针对特定的数据库配置定义的,本领域的技术 人员应当理解数据库可以包括任何数量的表,具有任何数量字符长度 的任何数量字段。在实施例中,表100a为用户信息定义了字段,例 如:除标识符(identifier)之外,还有名字(first name)、中间名 (middle name)和姓氏(last name)。在实施例中,根据数据库管 理者的定义,定义字段中的每一个可以包括一定字符长度。例如在表 100a中,first name=30、middle name=30、last name=50以及 identifier=40。表100b为用户信息定义字段,其包括,例如,driver  license(驾照)=50、passport(护照)=30、social security number (社会保险号)=50以及senior citizen number(老年市民号)=40。 表100c为用户地址定义字段,其包括,例如,door number(门牌 号)=50、street first(街道名1)=30、street middle(街道名2) =50、city(城市)=40、postcode(邮编)=10以及country(国家) =50。

本领域的技术人员应当理解,可以设计每一个表的每一个字段 以提供足够的空间给数据条目;然而,数据库管理员为了降低风险为 这些字段中的每一个提供比典型地需要的空间更多的空间是很常见 的。同样地,数据库将具有可用(例如,未使用的)空间是常见的, 该可用空间现在可以通过实现如下面进一步描述的本发明被分配给其 它需要。具体地,仍然参照图4,存储管理引擎80将创建将从表 100a-100c(例如,100a-100n)收集信息的跟踪表110。更具体地, 跟踪表110将跟踪所有使用的(或者未使用的)空间(例如,表 100a-100c的输入记录),包括用于每个字段的字符量。例如,在所 示的图示中,跟踪表110记录了下列空间(例如,字符长度)可用于 用户信息(表100a):first name=15、middle name=5、last  name=30以及identifier=20。还示出了可用于表100b和100c的额外 空间。

通过减法,存储管理引擎80将确定存在可用于从表100a再分 配的未使用空间;也就是说,基于表100a中定义的原始字符长度, 下列是使用的空间:first name=15、middle name=25、last name=20 以及identifier=20。在实施例中,显示器24可以在视觉上表示相对 于保留的存储器的未使用空间,以及针对一段时间利用的实际空间和 能量。(参见,例如图5和6)

在实施例中,使用显示器和附随的用户接口,用户现在可以为 了管理表100a-100c的未使用的空间选择某些选项。例如,用户可以 选择选项以使用表100a-100c的一定比例的未使用空间。在图4的说 明性示例中,例如,基于用户选择的选项,存储管理引擎80可以从 可用空间创建虚拟表115。为了做到这一点,内部映射器120将把表 100a-100c中的未使用的空间映射至虚拟表115(例如,标记为客户 联系方式(Customer Contact))。因此,可以定义虚拟表115以包 括虚拟地映射至表100a-100c内的可用空间的字段。在实施例中,内 部映射器120可以通过分割机构映射需要的空间,例如,合并两个可 用空间以满足一个记录需要。本领域的技术人员应当理解,为了更有 效地使用能量,可以在每个时间表的非高峰时间期间或者当峰值负荷 降低时创建虚拟表。

在进一步的实施例中,本发明的处理可以通过动态授权处理自 动操作。在动态授权处理中,可以为表100a-100c中的任何一个的某 些字段配置最小值和增量值。例如,对于表中的每个字段,管理员可 以为字段设置大小的上限和下限,其允许系统通过动态创建/更改处 理动态地改变字段的大小。这允许数据库管理员基于由数据库管理员 (或者开发者)定义的参数首先创建具有最小长度的字段和增加字段 的大小。可以为存储器的分配扩展该类型的处理(例如算法)以变得 复杂,并且因此节省更多的能量。

作为非限制性说明性示例:

CREATE TABLE CustomerAddress

(

DoorNumber varchar(255)lower(50)increment(25),

StreetFirst varchar(255)lower(30)increment(2),

StreetMiddle varchar(255)lower(50)increment(10),

City varchar(255)lower(40)increment(10),

PostCode(varcharl0),

Country varchar(50)

)

在上述示例中,将首先创建大小为50的DoorNumber(门牌 号)。当针对Doornumber字段的插入请求到来时,数据库可以更改 其自身以使字段的大小增加25或者它可以创建称为 CustomerAddressTMP的临时表,其允许数据库具有带有 DoorNumber varchar(75)或者DoorNumber(255)的临时表。这 将允许数据库或者分配全字段或者增加字段。数据库还可以在每个时 间表的非高峰时间期间或者当峰值负荷降低时合并表格。在实施例 中,一些字段可以不是可变的,例如,PostCode(邮编)和Country (国家)字段。相反,由于具有预设的、不可变的字段长度可以是有 利的,因此这些字段是硬集合并且不能更改。

动态授权处理也可以与虚拟表的使用一起实现。例如,在扩容 某个字段之后,跟踪表可以用于确定是否有任何可用空间,并且内部 映射器120可以映射定义模式内的可用(例如,未使用的)空间至虚 拟表。以这种方式,由于通过本发明的扩容处理的增加,可以通过分 配这种空间至虚拟表来使用任何未使用的空间。这将最小化需要维持 未使用空间的任何能量消耗。

相应地,在本发明的实施例中,现在可以由云(通过分布式和 网格计算)提供和/或利用资源共享以有效和高效地管理资源利用。 例如,使用本发明的处理,现在有可能以上述处理指定的动态方式分 配数据空间。相应的,这导致了存储器和/或存储装置和相关维持功 率的适当利用,以及允许更改基于现货供应的产品,该基于现货供应 的产品默认配备不能高效管理和使用的预定义数据库表,从而影响有 效资源利用和相关功率。

图5示出了针对一段时间利用的实际空间和能量的显示。更具 体地,图5表示如何能再使用利用水平值和存储器,以及如何随时间 线波动。应当理解,图5的显示可以用于允许用户选择节省的百分 比,以使得本发明的系统和处理可以在内部利用未使用的空间,从而 节省空间和成本。该显示还可以用于确定在每个时间表的非高峰时间 期间或者当峰值负荷降低时何时合并表格。

在一个实现中,图5可以表示随运行时间的值;定义的表需要 的存储器,以及利用率水平是多少。在实施例中,利用率水平将提供 关于未使用存储器的多少百分比被利用于其它需求的管理员信息。作 为示例,0%的利用率水平可以指基本上禁用的EOFM以及100%意 味着所有未使用的存储器都由本发明所利用。在实施例中,EOFM 将从内部跟踪器收集关于存储器(如下面提到的)的各种值的数据。 例如,可以跟踪下列信息:

(i)定义的表需要的存储器;

(ii)实际上由EOFM利用以满足其它需要的存储器;以及

(iii)在其它地方仍然可以被再次使用的存储器。

在实施例中,用户可以使用本发明的图形用户接口(GUI) (例如显示器24)以改变利用率水平(例如,从0%-100%),其中 0表示未使用的存储器不用于虚拟表,以及100表示可以从定义的表 使用所有未使用的存储器。因此,根据本发明的各方面,管理员可以 为EOFM设置存储器利用率水平是可能的。

图6示出了保留的存储器(例如,在图4中,可以分配至如图 所示虚拟表的存储器)与实际使用的存储器的显示。应当理解,图6 的显示可以用于允许用户选择应当和不应当映射至虚拟表的百分比或 者具体未使用的分配区域。该显示也可以用于确定在每个时间表的非 高峰时间期间或者当峰值负荷降低时何时合并表格。

更具体地,在图6中,非阴影区域表示可以分配给任何数量的 表和/或功能的存储器区域。另一方面,浅阴影区域表示分配给具体 表(例如,图4中示出的customer address(客户地址)表)并且在 使用中的存储器区域;然而,深阴影区域表示分配给具体表(例如, 图4中示出的customer address(客户地址)表)并且没有在使用中 的存储器区域。在实施例中,这些未使用的分配区域可以表示全部未 使用的字段或者字段内的若干字符,这些字符没有被使用并且现在可 以由存储管理引擎分配和映射至虚拟表。以这种方式,本发明的系统 和处理现在可以管理和高效使用未使用的分配区域。当确定在一个或 多个特定表的特定字段内需要额外空间时,该表也可以用于增加值。

流程图

图7-9示出了用于执行本发明的方面的示例性流程。例如,图 7-9的步骤可以在图1-4的环境中的任何一个中实现。图中的流程图 和框图图示了根据本发明的各种实施例的系统、方法和计算机程序产 品可能实现的架构、功能和操作。就此而言,流程图或者框图中的每 个框可以表示模块、代码段或者部分代码,其包括一个或多个用于实 现(一个或者多个)指定逻辑功能的可执行指令。还应当注意,在一 些可替换的实现中,框中标注的功能可以不按图中标注的顺序发生。 例如,实际上可基本上同时地执行连续示出的两个框,或者取决于所 包含的功能,有时可以相反的顺序执行所述框。还应注意,框图和/ 或流程图图示的每个框以及框图和/或流程图图示的框的组合,可通 过执行指定功能或动作的基于专用硬件的系统或者专用硬件和计算机 指令的组合来实现。

此外,本发明可以采用计算机程序产品的形式,所述计算机程 序产品可从计算机可用的或计算机可读的介质访问,所述介质提供由 计算机或者任何指令执行系统使用或与其结合使用的程序代码。软件 和/或计算机程序产品可以在图1-4的环境中实现。出于此描述的目 的,计算机可用或者计算机可读介质可以是任何装置,其可以包含、 存储、通信、传播或传送程序以用于由指令执行系统、装置或设备使 用或者结合指令执行系统、装置或设备来使用。介质可以是电、磁、 光、电磁、红外或半导体系统(装置或设备)或传播介质。计算机可 读介质的例子包括半导体或固态存储器、磁带、可移除计算机磁盘、 随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。 光盘当前的例子包括光盘-只读存储器(CD-ROM)、光盘-读/写 (CD-R/W)和DVD。

根据本发明的各方面,图7描绘了用于在一个或多个定义的表 中使用可用空间的示例性流程。在步骤700处,本发明的处理监控或 者跟踪具有定义模式的一个或者多个表的一个或者多个定义字段内的 空间。在步骤705处,处理创建一个或多个表内的所有可用空间的跟 踪器表。在步骤710处,本发明的处理确定每一个表的字段内哪些空 间是可用的(例如未使用的)并且映射这些可用空间至虚拟表。在 715处,虚拟表可以用记录来填充。在720处,做出关于在(一个或 者多个)原始定义的表中是否需要任何空间的判断。如果需要,那么 在步骤725处,本发明的处理将从虚拟表中释放空间,以用于(一个 或者多个)原始定义的表中。如果在步骤720处判断是否定的,那么 处理可以回到步骤700。在可选步骤730处,本发明的处理可以在每 个时间表的非高峰时间期间或者当峰值负荷降低时合并表。处理接着 可以回到步骤700。

图8示出了根据本发明的各方面的动态授权处理的流程图。在 步骤800处,本发明的处理监控或者跟踪一个或多个定义的表(其具 有空间的第一提供值)的字段内的空间。在步骤805处,做出关于一 个或多个表内是否需要额外空间的判断。如果不需要,那么处理将在 步骤810处结束。可选地,处理可以继续至图7的步骤710。如果在 一个或多个表的任何字段中需要额外空间,那么在步骤815处,处理 将以预定的字符长度(例如,提供额外的25个字符)增加定义字段 内的值。在步骤820处,可以在可用空间内用记录填充表。步骤805- 820可以重复。在可选步骤825处,本发明的处理可以在每个时间表 的非高峰时间期间或者当峰值负荷降低时合并表。

图9示出了根据本发明的各方面固定利用率水平的处理的示例 性流程图。更具体地,可以为实现本发明的EOFM的数据库管理员 提供图9中示出的处理以固定利用率水平。在实施例中,可以在 EOFM组件的前端上提供处理。在步骤900处,处理开始。在步骤 905处,做出关于利用率是否将要改变的决定。如果不改变,那么处 理在步骤910处结束。如果将要改变,那么在步骤915处,本发明的 处理将提供利用率水平值。在步骤920处,做出关于利用率是否在预 定的值的集合内(例如1和100)的判断。如果是,利用率水平值将 被传递到管理引擎,在步骤925处知道正在利用多少存储器,以及多 少存储器仍然未使用并且可以利用。在实施例中,根据哪个管理引擎 将试图再使用未使用的存储器,利用率水平值将作为参数。如果该值 不在预定的值的集合之间,那么处理返回至步骤915。

在实施例中,服务提供商(例如解决方案集成商)可以提议执 行此处描述的处理。在该情况下,服务提供商可以创建、维护、部 署、支持等计算机基础结构,该计算机基础结构为一个或多个客户执 行本发明的处理步骤。例如,这些客户可以是使用技术并且提供或者 利用服务的任何企业。作为回报,服务提供商可以根据订阅和/或费 用协议向(一个或者多个)客户收取费用,和/或服务提供商可以从 广告内容出售给一个或者多个第三方中收取费用。

以上已经描述了本发明的各实施例,上述说明是示例性的,并 非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各 实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说 许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好 地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使 本技术领域的其它普通技术人员能理解本文披露的各实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号