CN104731838A - 用于对数据库中的存储器利用进行优化的系统和方法 - Google Patents
用于对数据库中的存储器利用进行优化的系统和方法 Download PDFInfo
- Publication number
- CN104731838A CN104731838A CN201410088319.4A CN201410088319A CN104731838A CN 104731838 A CN104731838 A CN 104731838A CN 201410088319 A CN201410088319 A CN 201410088319A CN 104731838 A CN104731838 A CN 104731838A
- Authority
- CN
- China
- Prior art keywords
- tuple
- difference
- quantitative values
- epoch
- values
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
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)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开通常涉及数据库管理,并且更具体而言,涉及用于对数据库的存储器利用进行优化的系统和方法。在一个实施例中,公开了用于对数据库中的存储器利用进行优化的方法。该方法包括:将多个定量值中的第一定量值指定为与第一元组相关联的第一历元;确定在多个定量值中的第二定量值与第一历元之间的第一差值;当第一差值的绝对值小于阈值时,将第一差值存储为与第二元组相关联的第二德尔塔值;当第一差值的绝对值大于或者等于阈值时,将第二定量值指定为与第二元组相关联的第二历元;并且生成主元组。
Description
优先权声明
本申请要求于2013年12月23日提交的印度申请No.4013/MUM/2013的优先权。通过引用方式将上述申请的全部内容并入本文中。
技术领域
概括而言,本公开涉及数据库管理,并且更具体而言,涉及用于对数据库的存储器利用进行优化的系统和方法。
背景技术
考虑数据库是用于以数据形式存储并且管理信息的常见机制。在今天的信息技术(IT)环境中,数据的数量正在每天递增。因此,管理数据库中递增数量的数据在数据管理系统中变成了一个挑战。在数据库中存储的数据可以用于执行信息分析。例如,在执行监视期间,可能需要大量的数据用于执行分析,例如趋势分析、预测分析以及其它类型的数据分析。当执行这些分析时,在IT环境中流过网络的大量数据可能被需要,以安全地将其存储在数据库中并且在数据库中对其进行管理。根据性能监视,该数据可以包括:例如在任何点都是活动的大量进程、中央处理单元(CPU)利用、空闲的虚拟存储器以及其它类型的监视数据。
有时,数据的数量可能处于吉字节(GB)和太字节(TB)范围,或者更高范围。而且,可以在数据库中连续地接收来自各种源的数据。因此,在数据库中实时地管理这种连续的数据变成了另一个挑战。数据就比特和字节而言占用存储空间,并且存储空间不足情况可能导致以下的数据库,该数据库中存在被连续地接收的大量数据。因此,可能需要在不妥协数据完整性的情况下对用于存储最大量数据的数据库的存储器利用进行优化。
发明内容
提供该概要以引入与用于对数据库中的存储器利用进行优化的系统和方法有关的方面。在下面详细说明中进一步描述这些概念。该概要不旨在标识所要求主题的基本特征,也不旨在用于确定或者限制所要求主题的范围。
在一个实施例中,提供了一种用于对能够存储多个定量值的数据库中的存储器利用进行优化的方法。该方法可以包括:由执行存储器中存储的编程指令的一个或多个处理器来将多个定量值(quantitive value)中的第一定量值指定为与第一元组(tuple)相关联的第一历元(epoch)。该第一元组还可以包括第一德尔塔值(delta value)。该方法还可以包括:由一个或多个处理器确定在多个定量值中的第二定量值与第一历元之间的第一差值,并且如果该第一差值的绝对值小于阈值,则由一个或多个处理器将该第一差值存储为与第二元组相关联的第二德尔塔值。该第二元组可以与第二定量值对应。该方法还可以包括:如果该第一差值的绝对值大于或者等于阈值,则将第二定量值指定为与第二元组相关联的第二历元,并且基于第一元组和第二元组来生成主元组。该主元组可以存储在数据库中。
在一个实施例中,提供了一种用于对能够存储多个定量值的数据库中的存储器利用进行优化的系统。该系统可以包括:一个或多个处理器和存储处理器可执行指令的存储器,其中,该处理器可执行指令当由一个或多个处理器执行时配置一个或多个处理器,以执行:将多个定量值中的第一个定量值指定为与第一元组相关联的第一历元。该第一元组还可以包括第一德尔塔值。该系统还可以包括配置一个或多个处理器的指令,以执行:确定在多个定量值中的第二定量值与第一历元之间的第一差值,并且如果该第一差值的绝对值小于阈值,则将该第一差值存储为与第二元组相关联的第二德尔塔值。该第二元组可以与第二定量值对应。该系统还可以包括配置一个或多个处理器的指令,以执行:如果该第一差值的绝对值大于或者等于阈值,则将第二定量值指定为与第二元组相关联的第二历元,并且基于第一元组和第二元组来生成主元组。该主元组可以存储在数据库中。
在一个实施例中,提供了一种非瞬态的计算机程序产品,该计算机程序产品具有在其上体现的用于对能够存储多个定量值的数据库中的存储器利用进行优化的计算机程序指令。该计算机程序指令可以包括用于配置处理器执行以下操作的指令,该操作包括:将多个定量值中的第一定量值指定为与第一元组相关联的第一历元。该第一元组还可以包括第一德尔塔值。该计算机程序指令还可以包括用于配置处理器执行以下操作的指令,该操作包括:确定在多个定量值中的第二定量值与第一历元之间的第一差值,并且如果该第一差值的绝对值小于阈值,则将该第一差值存储为与第二元组相关联的第二德尔塔值。第二元组可以与第二定量值对应。该计算机程序指令可以包括用于配置处理器执行以下操作的指令,该操作包括:如果该第一差值的绝对值大于或者等于阈值,则将第二定量值指定为与第二元组相关联的第二历元,并且基于第一元组和第二元组来生成主元组。该主元组可以存储在数据库中。
附图说明
并入到本公开并且构成本公开一部分的附图示出了示例性实施例,并且与说明书一起用于解释所公开的原理。
图1示出根据本主题的实施例的包括用于对数据库中的存储器利用进行优化的系统的示例性网络环境。
图2示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的示例性系统。
图3是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的示例性方法的流程图。
图4是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的系统的示例性操作的图解。
图5是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的示例性方法的流程图。
图6是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的系统的示例性操作的图解。
图7示出根据本主题的实施例的用于对能够存储多个定量值的数据库中的存储器利用进行优化的示例性方法。
图8示出根据本主题的实施例的用于对剩余的定量值进行比较的示例性方法。
图9示出根据本主题的另一个实施例的用于对剩余的定量值进行比较的示例性方法。
具体实施方式
描述了用于对数据库中的存储器利用进行优化的系统和方法。该数据库可以能够存储网络上的大量数据流并且对该数据流进行管理。由于大量数据,所以可以在数据库中创建空间不足情况。为了管理这种空间不足情况,本公开提供一种用于存储一个或多个德尔塔值而不是数据的示例性机制。为了实现数据库中的存储器利用的目的,可以定义阈值,以用于比较并且存储流入到数据库中的数据集合。此外,根据本公开的一个或多个示例性实施例,阈值可以为预定值。根据本公开的一些方面,数据集合的第一数据可以设置为第一历元。一旦设置了第一历元,就可以在流入第一数据之后将可能流入到数据库中的数据集合的剩余数据与第一历元进行比较。可以执行该比较,以用于确定在剩余数据的内容与第一历元的内容之间的差值。
基于该比较,如果确定该差值的绝对值小于阈值,则可以将该差值存储在与数据(例如,与第一历元进行比较的数据)相关联的元组中。此外,如果确定该差值的绝对值等于或者大于该阈值,则可以将该数据指定为下一个历元。可以针对可能流入到数据库中的剩余数据中的每个数据执行该比较。另外,在每个比较处,可以针对数据集合中的每个数据创建元组。创建的元组可以包括差值(例如,德尔塔值)、参考值(例如,历元)和时间戳。因此,在执行比较之后,可以创建多个元组。可以进一步处理多个元组,以用于优化数据库。
为了进一步优化数据库,可以将多个元组互相比较。根据本主题的一些方面,可以将多个元组中的每个元组与其连续的元组进行比较。在比较期间,可以将两个连续元组的差值(例如,德尔塔值)和参考值(例如,历元)进行比较。如果确定在两个连续元组的德尔塔值之间以及历元之间没有差值,则可以比较多个元组中的下一个连续元组。此外,如果在下一个连续元组的德尔塔值之间和/或历元之间找到差值,则可以创建主元组,并且将该主元组存储在数据库中。创建的主元组可以通过避免数据库中的重复值的存储来可以使能数据库的存储器利用的优化。根据本主题的一些实施例,可以从多个元组中顺序地或者随机地选择两个连续元组以用于比较。
尽管所描述的用于对数据库中的存储器利用进行优化的系统和方法的方面可以以任何数量的不同计算系统、环境和/或配置来实现,但是实施例被描述在下面的示例性系统的上下文中。
图1示出根据本主题的实施例的包括用于对数据库中的存储器利用进行优化的系统102的示例性网络环境100。数据库可以能够存储多个定量值。在一个实施例中,系统102可以将多个定量值中的第一定量值指定为第一历元。在一个实施例中,系统102可以定义用于将剩余定量值与第一历元进行比较的阈值。剩余定量值排除被指定为第一历元的第一定量值。在一个实施例中,系统102可以提供剩余定量值与第一历元的比较,以确定差值。基于该比较,当确定差值的绝对值小于阈值时,系统102可以将差值存储为德尔塔值。
根据本主题的一些实施例,在将剩余定量值与第一历元进行比较期间,可以考虑差值的绝对值代替差值本身。在一些实施例中,在将差值存储为元组中的德尔塔值期间,可以考虑差值本身以代替差值的绝对值。此外,系统102可以被配置为:如果确定差值的绝对值等于或者大于阈值,则将剩余定量值的定量值指定为下一个历元。在一些实施例中,针对每个比较,可以针对多个定量值中的每个定量值来创建元组。元组可以包括:被确定为德尔塔值的差值、参考值(例如,历元)和时间戳。因此,基于该比较,可以创建与多个定量值对应的多个元组。
根据本主题的一些实施例,系统102还可以提供多个元组的互相比较。例如,系统102可以提供多个元组中的两个连续元组之间的彼此比较。可以执行该比较,以确定两个连续元组的德尔塔值之间以及历元之间的差值。此外,如果在比较期间找到在两个连续元组的德尔塔值之间和/或历元之间的差值,则可以创建主元组并且将该主元组存储在数据库中。一旦创建了主元组,就可以从数据库中删除多个元组。主元组可以通过避免将重复值存储到数据库中来有助于对数据库的存储器利用进行优化。
虽然使用在服务器上实现的系统102来解释本主题,但是应当明白的是,系统102还可以实现在多种计算系统(例如,膝上型计算机、台式计算机、笔记本、工作站、大型计算机、服务器、网络服务器等)中。在一个实施例中,系统102可以实现在基于云的环境中。还应当明白的是,可以由多个用户通过一个或多个用户设备104-1,104-2,...104-N(在下文中共同地称为用户设备104)或者在用户设备104上驻留的应用来访问系统102。用户设备104的示例可以包括但不限于便携式计算机、个人数字助理、手持式设备和工作站。用户设备104可以通过网络106可通信地耦合到系统102。
在一个实施例中,网络106可以为无线网络、有线网络或其组合。网络106可以实现为不同类型网络之一,例如,企业内部网、局域网(LAN)、广域网(WAN)、互联网等。网络106可以是专用网络或者共享网络。共享网络可以表示不同类型网络的联合,不同类型的网络使用各种协议(例如,超文本传输协议(HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等)以彼此进行通信。此外,网络106可以包括各种网络设备(包括路由器、网桥、服务器、计算设备、存储设备等)。
现在参考图2,根据本主题的实施例示出了系统102。在一个实施例中,系统102可以包括一个或多个处理器202、输入/输出(I/O)接口204和存储器206。该一个或多个处理器202可以实现为一个或多个微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元、状态机、逻辑电路和/或基于操作指令来操控信号的任何设备。在其它功能之中,至少一个处理器202可以被配置为提取并且执行存储器206中存储的计算机可读指令。
I/O接口204可以包括各种软件和硬件接口,例如,网页接口、图形用户接口等。I/O接口204可以允许系统102与用户直接或者通过用户设备104进行交互。此外,I/O接口204可以使系统102能够与其它计算设备(例如,网页服务器和外部数据服务器(未示出))进行通信。I/O接口204可以有助于各种网络和协议类型(包括有线网络,例如LAN、电缆等和无线网络,例如,WLAN、移动电话或卫星)之内的多路通信。I/O接口204可以包括用于将多个装置彼此连接或者将多个装置连接到另一个服务器的一个或多个端口。
存储器206可以包括任何非瞬态的计算机可读介质,包括例如易失性存储器(例如,静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM))和/或非易失性存储器(例如,只读存储器(ROM)、可擦除编程ROM、闪速存储器、硬盘、光盘和磁带)。存储器206可以包括数据208。
数据208可以用作用于存储由处理器202处理、接收并且/或者生成的数据的储存库。数据208还可以包括主元组210和其它数据212。其它数据212可以包括例如作为一个或多个处理器202的执行的结果而生成的数据。
在一个实施例中,用户可以使用用户设备104来经由I/O接口204来访问系统102。用户可以经由I/O接口204注册以使用系统102。下面可以结合图3、图4、图5和图6来进一步解释系统102的操作。系统102可以用于对数据库中的存储器利用进行优化。
图3是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的示例性方法300的流程图。图4是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的系统的示例性操作的图解400。在一个实施例中,系统102可以用于对优化数据库316中的存储器利用进行优化。数据库316可以能够存储多个定量值(步骤302)。根据本主题的示例性实施例,多个定量值可以为{90,88,50,93,51和5},如图4所示。在步骤304处,可以将多个定量值中的第一定量值(例如,90)指定为第一历元(例如,E1)。此外,在一些实施例中,多个定量值可以以每个定量值具有对应元组的方式来与多个元组相关联。每个元组可以包括德尔塔值(DV)、历元(Ep)和时间戳(t)。例如,多个元组中的元组402(元组T1)可以与第一定量值(例如,90)对应。元组402可以包括例如德尔塔值=0、历元(例如,Ep=90)和时间戳t=t1。
此外,在下一个步骤306中,可以将多个定量值中的第二定量值(例如,88)与第一历元E1(即,90)进行比较。为了比较第二定量值,可以定义阈值。在本方案中,阈值可以被定义为例如“5”。在将阈值定义为“5”之后,可以执行比较,以用于确定差值D1,即第二定量值(即,88)和第一历元E1(即,90)之间的差值。
在步骤308处,可以基于第二定量值(例如,“88”)和第一历元(例如,“90”)之间的比较来确定差值D1。如图4所示,可以将差值D1确定为“-2”(即,88和90之间的差值为-2)。根据本主题的一些实施例,如果差值的绝对值小于阈值,则可以将差值存储为定量值的对应元组的德尔塔值。
在步骤310处,如果差值D1的绝对值(例如,2)小于阈值(例如,5),则可以将差值D1存储为与第二定量值(例如,88)对应的元组(元组404,或者元组T2)中的德尔塔值(DV)。因此,在可以与第二定量值对应的元组404处,可以将差值D1存储为德尔塔值(例如,DV=-2)、历元如E1和时间戳t如t2。因此,元组T2={DV=-2,Ep=E1,t=t2}。在该示例中,因为当将第二定量值与第一历元E1进行比较时,确定差值D1的绝对值小于阈值,所以将用于第二定量值的历元存储为E1(例如,第一历元)。此外,根据本主题的另一个实施例,如果确定差值D1的绝对值等于或者大于阈值,则可以将第二定量值指定为下一个历元(例如,第二历元)。在上述示例中,差值D1(例如,-2)的绝对值小于阈值。因此,将差值D1(例如,-2)存储在与第二定量值相关联的元组T2中。
根据本主题的一个实施例,如果不满足在步骤308处的条件(即,如果确定差值的绝对值小于阈值),则可以将多个定量值中剩余定量值与第一历元E1进行比较。剩余定量值可以排除第一定量值和第二定量值(例如,分别为90和88)。基于剩余定量值与第一历元E1的比较,可以确定差值D2到Dn。差值Dn可以指示第n个定量值和第一历元E1之间的变化。根据本主题的一些实施例,多个定量值可以实时地流入到数据库316中。此外,如果差值D2到Dn的绝对值小于阈值,则可以将差值D2到Dn存储为与剩余定量值对应的元组中的德尔塔值(DV)。
此外,根据本主题的一些实施例,如果满足步骤308处的条件(即,如果确定差值的绝对值等于或者大于阈值),则将剩余定量值与第一历元E1和第二历元E2进行比较。基于剩余定量值与第一历元E1和第二历元E2的比较,可以分别确定第一差值和第二差值。基于所确定的第一差值和第二差值,可以执行下面步骤中的任何一个或多个:如果第一差值的绝对值小于阈值并且小于第二差值的绝对值,则将第一差值存储为与剩余定量值中的定量值Qn对应的元组Tn中的德尔塔值;如果第二差值的绝对值小于阈值并且小于第一差值的绝对值,则将第二差值存储为与剩余定量值中的定量值Qn对应的元组Tn中的德尔塔值;或者如果第一差值的绝对值和第二差值的绝对值等于或者大于阈值,则将剩余定量值中的定量值指定为下一个历元。
因此,在一些实施例中,在步骤314处,可以比较多个定量值中的剩余定量值。作为一个示例,如图4所示,剩余定量值可以包括{50,93,51,和5}。在下一个步骤中,可以比较剩余定量值中的每个定量值。因此,可以将多个定量值中的第三定量值(例如,50)(其为剩余定量值中的第一定量值)与第一历元E1进行比较,以用于确定差值D2。如图4所示,可以将差值D2确定为“-40”(即,50和90之间的差值为-40)。在该示例中,差值D2的绝对值因此为“40”,其大于阈值“5”。因此,在步骤312处,可以将第三定量值(例如,50)指定为第二历元E2(即,下一个历元)。与第三阈值“50”对应,可以创建元组406(元组T3),并且T3={DV=0,Ep=50(E2),t=t3}。
在一些实施例中,可以使用第一历元(例如,E1=90)并且使用第二历元(例如,E2=50)来执行剩余定量值的其它定量值的比较。例如,可以将下一个定量值(例如,第四定量值“93”)与第一历元(例如,90)和第二历元(例如,50)进行比较。在第四定量值与第一历元进行比较之后,可以将差值D3(例如,第一差值)确定为“3”(即,93和90之间的差值为3)。此外,在与第二历元进行比较之后,可以将差值D3(例如,第二差值)确定为“43”(即,93和50之间的差值为43)。因此,如上所讨论的,在一些实施例中,如果第一差值的绝对值(例如,3)小于阈值(例如,5)并且小于第二差值的绝对值(例如,43),则可以将第一差值(例如,D3=3)存储为与第四定量值对应的元组408中的德尔塔值(DV)。在该示例中,因为在将第四定量值与第一历元E1进行比较之后,确定差值D3的绝对值小于阈值,所以可以将用于第四定量值的历元存储为第一历元E1。因此,元组408(即,元组T4)可以包括德尔塔值如“3”、历元如E1和时间戳t如t4。
同理,可以将下一个定量值(例如,第五定量值“51”)与第一历元(例如,90)和第二历元(例如,50)进行比较。基于该比较,可以将差值D4(例如,第一差值)确定为“-39”(即,51和90之间的差值为-39)。此外,在将第五定量值与第二历元进行比较之后,可以将差值D4(例如,第二差值)确定为“1”(即,51和50之间的差值为1)。如上所述,在一些实施例中,如果第二差值的绝对值(例如,1)小于阈值(例如,5)并且小于第一差值的绝对值(例如,39),则可以将第二差值(例如,D4=1)存储为与第五定量值对应的元组T5中的德尔塔值(DV)连同第二历元E2和时间戳t如t5。在一些实施例中,基于第一差值的绝对值和第二差值的绝对值之间的最小值,如果第一差值的绝对值和第二差值的绝对值都小于阈值,则可以将第一差值和第二差值存储为元组中的德尔塔值。例如,元组410(例如,元组T5)可以包括{DV=1,Ep=E2,t=t5}。在上述示例中,因为基于第五定量值与第二历元E2的比较来确定差值D4的绝对值小于阈值,所以将用于第五定量值的历元存储为E2(即,第二历元)。
此外,可以将第六定量值(例如,“5”)与第一历元(例如,90)和第二历元(例如,50)进行比较。基于与第一历元的比较,可以将差值D5(例如,第一差值)确定为“-85”(即,5和90之间的差值为-85)。同理,基于与第二历元的比较,可以将差值D5(例如,第二差值)确定为“-45”(即,5和50之间的差值为-45)。在该示例中,第一差值的绝对值为“85”,并且第二差值的绝对值为“45”。因此,如上所讨论的,在一些实施例中,如果第一差值的绝对值(例如,85)和第二差值的绝对值(例如,45)都大于阈值(例如,5),则可以将第六定量值“5”指定(步骤312)为第三历元E3(即,下一个历元)。针对第六定量值“5”,可以创建元组412,并且元组412(即,元组T6)可以包括{DV=0,Ep=5(E3),t=t6}。因此,在该示例中,可以在数据库316中将从402到412的所有元组(即,T1到T6)存储为多个元组(如图4所示)。另外,可以进一步处理多个元组,以用于对数据库316中的存储器利用进行优化。
图5是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的示例性方法500的流程图。图6是示出根据本主题的实施例的用于对数据库中的存储器利用进行优化的系统的示例性操作的图解600。根据本主题的一些实施例,示出了多个元组1中的另一个集合。如图6所示,多个元组1可以包括元组602到元组612。元组602到元组612可以不同于与图4有关的所讨论的多个元组。在步骤502处,多个元组1(例如,元组602到612)可以用于对数据库316的存储器利用进行优化。
在步骤504处,可以成对地比较元组,以生成与一个或多个元组对应的主元组。此外,可以通过以相继次序比较元组以使得以相继次序将第n个元组和随后的元组进行比较(例如,与第(n+1)个元组等进行比较),来生成主元组。因此,针对图6中示出的多个元组1,可以将每个元组与该元组的连续元组进行比较。例如,可以将元组602与元组604进行比较,可以将元组604与元组606进行比较,可以将元组606与元组608进行比较,可以将元组608与元组610进行比较,并且可以将元组610与元组612进行比较。
在步骤506处,在一些实施例中,可以验证所指定的条件,以用于创建主元组。例如,基于成对地比较元组,如果满足下列条件中的任何一个,则可以创建主元组:如果德尔塔值相同并且历元不相同(在下文中称为条件1);如果德尔塔值不相同并且历元相同(在下文中称为条件2);或者如果德尔塔值不相同并且历元不相同(在下文中称为条件3)。
作为一个示例,参考图6,如果将元组602与元组604进行比较,则可以在德尔塔值之间和历元之间没有找到差值。因此,该比较可以顺序地移动到随后的元组。随后可以将元组602和元组606进行比较。再次,可以基于元组602和元组606的比较来确定在德尔塔值之间和历元之间没有差值。此外,可以将元组602和元组608进行比较。基于元组602和元组608的比较,可以确定德尔塔值相同但是历元值不相同(即,与上述所讨论的条件1对应)。因此,在步骤508处,可以创建主元组614,并且该主元组614可以包括德尔塔值(DV)如0、历元如E1和时间戳t如t1到t3。因此,在主元组614中存储与元组602到元组606有关的信息。
在下一个步骤中,可以将元组608和元组610进行比较。基于该比较,可以确定德尔塔值不相同但是历元相同(即,与上述所讨论的条件2对应)。因此,在步骤508处,可以创建主元组616,并且该主元组616可以包括德尔塔值如0、历元如E2和时间戳t如t4到t4。此外,可以将元组610和612进行比较。基于该比较,可以确定德尔塔值之间没有差值并且历元之间没有差值。因此,可以创建主元组618,并且该主元组618可以包括德尔塔值如1、历元如E2和时间戳t如t5到t6。因此,与六个元组602到612对应,可以创建三个主元组(614到618),并且将该三个主元组存储在数据库316中。以这样一种方式,可以使系统102能够对数据库316的存储器利用进行优化。
本主题的一些实施例可以通过避免数据库中的重复值的存储来使系统102和方法能够减少数据库中空间有限的情况。本主题的一些实施例可以使系统102和方法能够对数据库的存储器利用进行优化。
图7是示出根据本主题的实施例的用于对能够存储多个定量值的数据库中的存储器利用进行优化的示例性方法700的流程图。可以在计算机可执行指令的通用上下文中描述该方法700。通常,计算机可执行指令可以包括例程、程序、对象、组件、数据结构、规程、模块、函数等,其执行特定函数或者实现特定的抽象数据类型。该方法700还可以在由通过通信网络链接的远程处理设备执行函数的分布式计算环境中实施。在分布式计算环境中,计算机可执行指令可以位于包括存储器存储设备的本地计算机存储介质和远程计算机存储介质中。
描述方法700的顺序不旨在解释为一个限制,并且可以任何顺序组合上述方法的任何步骤,以实现方法700或者替换方法。此外,可以在不脱离本文所描述主题的精神和范围的情况下从方法700中删除个别的步骤。而且,本方法可以实现在任何合适的硬件、软件、固件或者其组合中。然而,为了便于理解,在下面描述的实施例中,方法700可以考虑为实现在上述系统102中。
在步骤702处,可以将多个定量值中的第一定量值指定为第一历元。可以以每个定量值具有对应元组的方式来将多个定量值与多个元组相关联。此外,多个元组中的每个元组可以包括德尔塔值、历元和时间戳。
在步骤704处,可以将阈值限定为多个定量值中的第二定量值。
在步骤706处,可以将第二定量值与第一历元进行比较,以确定在第二定量值和第一历元之间的差值。
在步骤708处,当差值的绝对值小于阈值时,可以存储在第二定量值和第一历元之间所确定的差值。此外,可以将差值存储为与第二定量值对应的元组中的德尔塔值(DV)。
在步骤710中,当确定差值的绝对值等于或者大于阈值时,可以将第二定量值指定为第二历元。
图8是示出根据本主题的实施例的用于基于例如如图7所示的步骤708来对剩余定量值进行比较的示例性方法800的流程图。
在步骤802处,可以将剩余定量值与第一历元进行比较,以确定差值D2到Dn。差值Dn可以指示第n个定量值与第一历元之间的变化。此外,剩余定量值可以排除第一定量值和第二定量值。
在步骤804处,当差值D2到Dn的绝对值小于阈值时,可以将差值D2到Dn存储为与剩余定量值对应的元组中的德尔塔值。
图9是示出根据本主题的实施例的用于基于例如如图7所示的步骤710来对剩余定量值进行比较的示例性方法900的流程图。
在步骤902处,可以将剩余定量值与第一历元和第二历元进行比较。此外,剩余定量值可以排除第一定量值和第二定量值。
在步骤904处,基于该比较,可以确定第一差值和第二差值。第一差值可以与剩余定量值中的每个定量值与第一历元之间的差值对应,并且第二差值可以与剩余定量值中的每个定量值与第二历元之间的差值对应。
在步骤906处,如果第一差值的绝对值小于阈值并且小于第二差值的绝对值,则可以将第一差值存储为德尔塔值。此外,可以将第一差值存储为与剩余定量值中的定量值Qn对应的元组Tn中的德尔塔值。
在步骤908处,如果第二差值的绝对值小于阈值并且小于第一差值的绝对值,则可以将第二差值存储为德尔塔值。此外,可以将第二差值存储为与剩余定量值中的定量值Qn对应的元组Tn中的德尔塔值。
在步骤910处,如果第一差值的绝对值和第二差值的绝对值都等于或者大于阈值,则可以将剩余定量值中的定量值指定为下一个历元。
此外,在基于步骤706、802和902处执行的比较来将德尔塔值存储在多个元组(例如,“n”个数量的元组)中之后,可以进一步处理多个元组,以用于对数据库316的存储器利用进行优化。为了优化存储器利用,可以依次比较元组,以生成主元组210。可以通过以相继次序比较元组以使得将第n个元组和多个元组中的第(n+1)个元组进行比较,来生成主元组210。根据本发明的实施例通过将多个元组1作为示例结合图5和图6来描述主元组210的创建的详细解释。如图6所示,多个元组1可以包括六个元组602到612。针对六个元组602到612,可以创建三个主元组(元组614到元组618),并且将该三个主元组存储在数据库316中。此外,在创建主元组210并且将其存储在数据库316中之后,可以从数据库316中删除多个元组。因此,以这样的方式,可以通过避免在主元组210中的重复值的存储来使系统102能够对数据库316的存储器利用进行优化。
虽然以特定于结构特征和/或方法的语言描述了用于对能够存储多个定量值的数据库中的存储器利用进行优化的方法和系统的实现方式。但是应当明白的是,所附权利要求不必限制到所描述的具体特征或者方法。相反,将具体特征和方法公开作为用于对数据库中的存储器利用进行优化的实现方式的示例。
Claims (17)
1.一种用于对能够存储多个定量值的数据库中的存储器利用进行优化的方法,所述方法包括:
由执行存储器中存储的编程指令的一个或多个处理器将所述多个定量值中的第一定量值指定为与第一元组相关联的第一历元,其中,所述第一元组包括第一德尔塔值;
由所述一个或多个处理器确定在所述多个定量值中的第二定量值与所述第一历元之间的第一差值;
当所述第一差值的绝对值小于阈值时,由所述一个或多个处理器将所述第一差值存储为与第二元组相关联的第二德尔塔值,所述第二元组与所述第二定量值对应;
当所述第一差值的绝对值大于或者等于所述阈值时,将所述第二定量值指定为与所述第二元组相关联的第二历元;并且
基于所述第一元组和所述第二元组来生成主元组,其中,所述主元组用于对所述数据库中的所述存储器利用进行优化。
2.根据权利要求1所述的方法,其中,所述多个定量值与包括至少所述第一元组和所述第二元组的多个元组相关联,所述多个定量值中的每个定量值与所述多个元组中的对应元组相关联,并且所述多个元组中的每个元组包括德尔塔值、历元和时间戳。
3.根据权利要求1所述的方法,还包括:
当所述第一差值的所述绝对值小于所述阈值时,基于所述多个定量值中的剩余定量值与所述第一历元来确定多个差值,
其中,所述多个差值包括至少第二差值,其中,所述多个差值中的至少一个差值表示所述对应定量值与所述第一历元之间的变化,并且其中,所述剩余定量值与所述第一定量值和所述第二定量值分离;并且
如果所述多个差值的绝对值小于所述阈值,则将所述多个差值存储为与对应的多个元组相关联的德尔塔值,其中,所述多个元组与所述剩余定量值对应。
4.根据权利要求1所述的方法,还包括:
当所述第一差值的所述绝对值大于或者等于所述阈值时,基于所述多个定量值中的所述剩余定量值和所述第一历元来确定一个或多个第一剩余差值,所述剩余定量值与所述第一定量值和所述第二定量值分离;
基于所述多个定量值中的所述剩余定量值和所述第二历元来确定一个或多个第二剩余差值;
当所述第一剩余差值的绝对值小于所述阈值并且小于所述对应的第二剩余差值的绝对值时,将所述第一剩余差值存储为多个元组中的对应的剩余元组中的德尔塔值,所述剩余元组与所述剩余定量值对应,并且所述多个元组包括所述第一元组、所述第二元组和所述剩余元组;
如果所述第二剩余差值的所述绝对值小于所述阈值并且小于所述对应的第一剩余差值的所述绝对值,则将所述第二剩余差值存储为所述多个元组中的对应的剩余元组中的德尔塔值;并且
当所述第一剩余差值的所述绝对值和所述第二剩余差值的所述绝对值都等于或者大于所述阈值时,将所述剩余定量值中的第三定量值指定为第三历元。
5.根据权利要求1所述的方法,其中,生成所述主元组包括以相继次序比较所述多个元组中的两个或更多个元组,所述多个元组包括至少所述第一元组和所述第二元组。
6.根据权利要求5所述的方法,还包括基于多个元组来生成一个或多个额外的主元组,所述多个元组包括所述第一元组、所述第二元组和所述一个或多个额外的元组。
7.根据权利要求5所述的方法,其中,当满足下列条件时生成所述主元组:
所述第一德尔塔值和所述第二德尔塔值相同并且所述第一历元和所述第二历元不相同,
所述第一德尔塔值和所述第二德尔塔值不相同并且所述第一历元和所述第二历元相同,或者
所述第一德尔塔值和所述第二德尔塔值不相同并且所述第一历元和所述第二历元不相同。
8.根据权利要求6所述的方法,其中,基于对应元组中的德尔塔值比较和历元比较来生成所述一个或多个额外的主元组。
9.一种用于对能够存储多个定量值的数据库中的存储器利用进行优化的系统,所述系统包括:
一个或多个处理器,以及
存储处理器可执行指令的存储器,其中,所述处理器可执行指令当由所述一个或多个处理器执行时配置所述一个或多个处理器,以执行:
将所述多个定量值中的第一定量值指定为与第一元组相关联的第一历元,其中,所述第一元组包括第一德尔塔值;
确定在所述多个定量值中的第二定量值与所述第一历元之间的第一差值;
当所述第一差值的绝对值小于阈值时,将所述第一差值存储为与第二元组相关联的第二德尔塔值,所述第二元组与所述第二定量值对应;
当所述第一差值的绝对值大于或者等于所述阈值时,将所述第二定量值指定为与所述第二元组相关联的第二历元;并且
基于所述第一元组和所述第二元组来生成主元组,其中,所述主元组用于对所述数据库中的所述存储器进行优化。
10.根据权利要求9所述的系统,其中,所述多个定量值与包括至少所述第一元组和所述第二元组的多个元组相关联,所述多个定量值中的每个定量值与所述多个元组中的对应元组相关联,并且所述多个元组中的每个元组包括德尔塔值、历元和时间戳。
11.根据权利要求9所述的系统,还包括配置所述一个或多个处理器的指令,以执行:
当所述第一差值的所述绝对值小于所述阈值时,基于所述多个定量值中的剩余定量值和所述第一历元来确定多个差值,
其中,所述多个差值包括至少第二差值,其中,多个差值中的至少一个差值表示在所述对应定量值与所述第一历元之间的变化,并且其中,所述剩余定量值与所述第一定量值和所述第二定量值分离;并且
如果所述多个差值的绝对值小于所述阈值,则将所述多个差值存储为与对应的多个元组相关联的德尔塔值,其中,所述多个元组与所述剩余定量值对应。
12.根据权利要求9所述的系统,还包括配置所述一个或多个处理器的指令,以执行:
当所述第一差值的所述绝对值大于或者等于所述阈值时,基于所述多个定量值中的所述剩余定量值和所述第一历元来确定一个或多个第一剩余差值,所述剩余定量值与所述第一定量值和所述第二定量值分离;
基于所述多个定量值中的所述剩余定量值和所述第二历元来确定一个或多个第二剩余差值;
当所述第一剩余差值的绝对值小于所述阈值并且小于所述对应的第二剩余差值的绝对值时,将所述第一剩余差值存储为多个元组中的对应的剩余元组中的德尔塔值,所述剩余元组与所述剩余定量值对应,并且所述多个元组包括所述第一元组、所述第二元组和所述剩余元组;
如果所述第二剩余差值的所述绝对值小于所述阈值并且小于所述对应的第一剩余差值的所述绝对值,则将所述第二剩余差值存储为所述多个元组中的对应的剩余元组中的德尔塔值;并且
当所述第一剩余差值的所述绝对值和所述第二剩余差值的所述绝对值都等于或者大于所述阈值时,将所述剩余定量值的第三定量值指定为第三历元。
13.根据权利要求9所述的系统,其中,生成所述主元组的指令包括以相继次序比较所述多个元组中的两个或更多个元组的指令,所述多个元组包括至少所述第一元组和所述第二元组。
14.根据权利要求13所述的系统,还包括配置所述一个或多个处理器的指令,以执行:基于多个元组来生成一个或多个额外的主元组,所述多个元组包括所述第一元组、所述第二元组和所述一个或多个额外的主元组。
15.根据权利要求13所述的系统,其中,当满足下列条件时生成所述主元组:
所述第一德尔塔值和所述第二德尔塔值相同并且所述第一历元和所述第二历元不相同,
所述第一德尔塔值和所述第二德尔塔值不相同并且所述第一历元和所述第二历元相同,或者
所述第一德尔塔值和所述第二德尔塔值不相同并且所述第一历元和所述第二历元不相同。
16.根据权利要求14所述的系统,其中,基于对应元组中的德尔塔值比较和历元比较来生成所述一个或多个额外的主元组。
17.一种非瞬态的计算机程序产品,所述计算机程序产品具有在其上体现的用于对能够存储多个定量值的数据库中的存储器利用进行优化的计算机程序指令,所述计算机程序指令包括用于配置处理器执行以下操作的指令,所述操作包括:
将所述多个定量值中的第一定量值指定为与第一元组相关联的第一历元,其中,所述第一元组包括第一德尔塔值;
确定在所述多个定量值中的第二定量值与所述第一历元之间的第一差值;
当所述第一差值的绝对值小于阈值时,将所述第一差值存储为与第二元组相关联的第二德尔塔值,所述第二元组与所述第二定量值对应;
当所述第一差值的绝对值大于或者等于所述阈值时,将所述第二定量值指定为与第二元组相关联的第二历元;并且
基于所述第一元组和所述第二元组来生成主元组,其中,所述主元组用于对所述数据库中的所述存储器利用进行优化。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN4013/MUM/2013 | 2013-12-23 | ||
IN4013MU2013 IN2013MU04013A (zh) | 2013-12-23 | 2013-12-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731838A true CN104731838A (zh) | 2015-06-24 |
CN104731838B CN104731838B (zh) | 2018-11-30 |
Family
ID=50189601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410088319.4A Active CN104731838B (zh) | 2013-12-23 | 2014-03-11 | 用于对数据库中的存储器利用进行优化的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9411837B2 (zh) |
EP (1) | EP2887235B1 (zh) |
CN (1) | CN104731838B (zh) |
AU (1) | AU2014201155B2 (zh) |
IN (1) | IN2013MU04013A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11500825B2 (en) * | 2018-08-20 | 2022-11-15 | Intel Corporation | Techniques for dynamic database access modes |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110047084A1 (en) * | 2008-04-14 | 2011-02-24 | Antonio Manzalini | Distributed service framework |
US8447730B1 (en) * | 2012-01-31 | 2013-05-21 | Yahoo! Inc. | Probe system for replication monitoring |
CN103279542A (zh) * | 2013-06-05 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | 数据导入处理方法及数据处理装置 |
US8538922B2 (en) * | 2010-10-11 | 2013-09-17 | International Business Machines Corporation | Nondisruptive overflow avoidance of tuple validity timestamps in temporal database systems |
CN103403699A (zh) * | 2011-02-17 | 2013-11-20 | 国际商业机器公司 | 估算流数据库应用中的负荷削减数据 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560615B1 (en) | 1999-12-17 | 2003-05-06 | Novell, Inc. | Method and apparatus for implementing a highly efficient, robust modified files list (MFL) for a storage system volume |
US7748034B2 (en) * | 2005-10-12 | 2010-06-29 | Cisco Technology, Inc. | Strong anti-replay protection for IP traffic sent point to point or multi-cast to large groups |
US7487184B1 (en) | 2008-05-09 | 2009-02-03 | International Business Machines Corporation | Method, system, and computer program product for improved round robin for time series data |
WO2010000323A1 (en) | 2008-07-03 | 2010-01-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Management of performance data |
US8447740B1 (en) * | 2008-11-14 | 2013-05-21 | Emc Corporation | Stream locality delta compression |
US8918358B2 (en) * | 2011-10-15 | 2014-12-23 | Hewlett-Packard Development Company, L.P. | Information integration flow freshness cost |
-
2013
- 2013-12-23 IN IN4013MU2013 patent/IN2013MU04013A/en unknown
-
2014
- 2014-03-03 EP EP14157522.5A patent/EP2887235B1/en active Active
- 2014-03-03 US US14/195,342 patent/US9411837B2/en active Active
- 2014-03-04 AU AU2014201155A patent/AU2014201155B2/en active Active
- 2014-03-11 CN CN201410088319.4A patent/CN104731838B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110047084A1 (en) * | 2008-04-14 | 2011-02-24 | Antonio Manzalini | Distributed service framework |
US8538922B2 (en) * | 2010-10-11 | 2013-09-17 | International Business Machines Corporation | Nondisruptive overflow avoidance of tuple validity timestamps in temporal database systems |
CN103403699A (zh) * | 2011-02-17 | 2013-11-20 | 国际商业机器公司 | 估算流数据库应用中的负荷削减数据 |
US8447730B1 (en) * | 2012-01-31 | 2013-05-21 | Yahoo! Inc. | Probe system for replication monitoring |
CN103279542A (zh) * | 2013-06-05 | 2013-09-04 | 中国电子科技集团公司第十五研究所 | 数据导入处理方法及数据处理装置 |
Non-Patent Citations (1)
Title |
---|
丁祥武: "《列存储系统的若干关键技术研究》", 《中国博士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
US20150178334A1 (en) | 2015-06-25 |
EP2887235B1 (en) | 2020-11-04 |
AU2014201155A1 (en) | 2015-07-09 |
US9411837B2 (en) | 2016-08-09 |
AU2014201155B2 (en) | 2016-04-14 |
IN2013MU04013A (zh) | 2015-08-07 |
CN104731838B (zh) | 2018-11-30 |
EP2887235A1 (en) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9922137B2 (en) | Dynamic window adjustments in a streaming environment | |
US20150012639A1 (en) | Systems, Methods and Media for Collaborative Caching of Files in Cloud Storage | |
US11200231B2 (en) | Remote query optimization in multi data sources | |
US11196633B2 (en) | Generalized correlation of network resources and associated data records in dynamic network environments | |
US11126503B2 (en) | Pre-filtering of join execution over multi-column range summaries and other synopses | |
US11797534B2 (en) | Efficient SQL-based graph random walk | |
US10579603B2 (en) | Removing sets of tuples in a streaming environment | |
US11249885B2 (en) | Test case generator and user interface | |
US10691764B2 (en) | Search engine optimization techniques | |
US20150067097A1 (en) | Managing data distribution to networked client computing devices | |
US10726017B2 (en) | Limiting tuple creation at the tuple level | |
CN104731838A (zh) | 用于对数据库中的存储器利用进行优化的系统和方法 | |
US10824432B2 (en) | Systems and methods for providing multiple console sessions that enable line-by-line execution of scripts on a server application | |
US10621153B2 (en) | Preview data aggregation | |
CN113220501A (zh) | 用于数据备份的方法、设备和计算机程序产品 | |
US20200084098A1 (en) | Techniques and Architectures for Managing Configuration of Network Devices | |
Aydin et al. | Distributed log analysis on the cloud using mapreduce | |
US20190129632A1 (en) | Determining identifying information from enterprise storage platform | |
CN115203228A (zh) | 数据处理方法、装置、介质以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |