管理对存储在输入块中的数据待执行的分析函数制造技术

技术编号:10931939 阅读:130 留言:0更新日期:2015-01-21 12:44
在示例中,通过框架的接口来管理对存储在输入块中的数据待执行的分析函数,用户通过该接口定义分析函数。当用户定义的分析函数被执行时,通过对存储在输入块中的数据实施读取器、写入器、预读器和预写器,该框架将多批数据缓冲到存储器中,且其中读取器、写入器、预读器和预写器在输入块中相对于彼此单独地可移动。此外,通过该接口接收用户定义的分析函数。

【技术实现步骤摘要】
【国外来华专利技术】管理对存储在输入块中的数据待执行的分析函数
技术介绍
分析函数常常被执行,以分析存储在相对大的输入块中的数据。例如当读取器和写入器推进以及与缓冲数据相关的规则被分析时,编程员为分析函数的各种方面编程。各种规则之一包括当数据存储在磁盘(例如硬盘驱动器磁盘)而不是存储器(例如随机存取存储器(RAM))上时,例如当在读取器和写入器之间的距离超过缓冲器尺寸时编程。各种规则中的另一个包括当存储器被释放用于当前批数据时编程。当待缓冲的数据的量相对大时,如可在各种分析函数的执行下发生,分析函数的编程常常相对难且耗时。 【附图说明】 本公开的特征作为示例被示出且并不被限制在下面的附图中,其中相似的数字指示相似的元件,其中: 图1A-1C分别示出根据本公开示例的本文公开的框架的状态的图; 图2示出根据本公开示例的机器的块图; 图3描绘根据本公开示例的用于管理对存储在输入块中的数据待执行的分析函数的方法的流程图; 图4A-4B共同描绘根据本公开另一示例的用于管理对存储在输入块中的数据待执行的分析函数的方法的流程图;以及 图5示出根据本公开示例的可用于执行在图2中描绘的机器的各种功能的计算设备的示意性表示。 详细描述 为了简单和例证性目的,本公开通过主要参考其示例而被描述。在下面的描述中,阐述了很多特定的细节,以便提供对本公开的彻底理解。然而将容易明白显,本公开可被实施而没有对这些特定细节的限制。在其它实例中,未详细描述一些方法和结构,以便不必要地使本公开难理解。在本公开中,术语“包括”意指包括但不限于此。术语“基于”意指至少部分地基于。此外,术语“一个”意欲表示至少一个特定元件。 针对用户定义的分析函数的现有框架一般使在输出块中产生需要完整传送数据同时将滚存信息复制到输出块中的输出行变得很难。用户定义的分析函数的示例是“NthValue”函数,其将每整行输出在块中,后面是第η行。当N增长得太大而不能装入存储器中时,现有的框架在降低的性能下操作,或需要由用户进行相对麻烦的编程以继续操作。用户定义的分析函数的另一示例是“滞后(Lag)”函数,其对于块中的每行,输出当前行,后面是位于当前行之前的第N行。当滞后偏移增长得太大时,在当前行之前的N行数据可能不再存储在存储器中。现有的框架常常试图通过将数据暂时写到硬盘驱动磁盘来解决这个问题。然而,访问被写到硬盘驱动磁盘上的数据常常是低效的。 本文公开一种用于管理对存储在输入块中的数据待执行的分析函数的方法,其允许独立和/或单独的读取器和写入器通过输入块移动。此外本文公开了用于实施该方法的装置和非临时计算机可读介质,该非临时计算机可读介质上存储有用于实施该方法的计算机可读指令。 在本文公开的方法和装置中,读取器和写入器指向输入块中的不同位置,同时只在被请求时才使必要的数据具体化。这使数据的缓冲能够对用户例如编程员隐藏,同时也充分地优化缓冲的效率。特别地,本文公开的接口实施两个未暴露的存取器——预读器和预写器,以及使读取器和写入器能够在输入块中独立地和/或单独地被推进的上下文切换。这也向用户提供整个输入块适应存储器的错觉。 此外,本文公开的接口实施自动缓冲机制,其中缓冲被执行而不需要用户输入关于缓冲如何被执行的指令。特别地,预读器和预写器被编程,以在对存储在大输入块中的数据实施分析函数时执行各种功能,其中分析函数的实施包括自动缓冲。一般来说,预写器是控制来自写入器的批数据的边界的存取器,写入器也是存取器,该批数据被复制到存储器中并当写入器到达预写器时自动(例如没有用户干预)移动到用于限定将被存储在存储器中的下批数据的边界的位置。此外,预写器将下批数据从输入块移动到存储器中,将滚存信息复制到输出块,并释放存储器的、将这批数据缓冲回到例如操作系统的部分。 同样,预读器是控制来自读取器的批数据的边界的存取器,读取器也是存取器,该批数据被复制到存储器中并当读取器到达预读器时自动移动到用于限定将被存储在存储器中的下批数据的边界的位置。此外,预读器将下批数据从输入块移动到存储器中,将滚存信息复制到输出块,并释放存储器的、将这批数据缓冲回到例如操作系统的部分。特别地,例如由预读器或预写器划界的这批数据被放置到存储器中,使得这批数据可被快速访问。当读取器(或写入器)推进而超出由预读器(或预写器)定义的边界时,用户不再需要快速访问这批数据。因此,存储器的、缓冲这批数据的部分被释放,使得存储器的那个部分可用于存储期望和/或需要快速访问的其它数据。 通过本文公开的方法和装置的实施,提供框架的接口,用户例如编程员或其它类型的用户可通过该接口定义分析函数,而不必也定义在分析函数的实施或调用期间,何时以及哪些数据块应被缓冲在存储器中,以及在各种实例中被写到磁盘和从磁盘读取。这可通常简化分析函数的编程。 首先参考图1A,示出了根据示例的本文公开的框架的状态的图100。如本文所示的,包含在大输入块102中的数据被写到输出块104。一般来说,大输入块102包括稳定存储装置例如硬盘、固态驱动器、基于磁带的存储装置等的一部分。此外,输出块104包括存储器(未示出)中的区域,数据块被存储在该区域中,用于由用户例如对存储在大数据块102中的数据执行分析函数的用户访问。存储器包括RAM、动态随机存取存储器(DRAM)、磁阻随机存取存储器(MRAM)、忆阻器、闪存等中的任一个。根据示例,大输入块102比存储器相对更大,使得存储器不能够一次存储包含在大数据块102中的所有数据。 输出块104代表已经从大输入块102复制的滚存数据。数据被滚存到输出块104,例如以维持在大输入块102中的数据的状态。在任何方面中,随着对包含在大输入块102中的数据操作分析函数,多批数据110和120被缓冲到存储器并然后写到输出块104。特别地,当读取器领先写入器一段与比可存储在存储器中的更大量的数据相应的距离时,相应于在读取器112和预读器114的当前位置之间的特定批数据的批数据110可存储在存储器的一个区域中,且相应于在写入器124和预写器126的当前位置之间的特定批数据的批数据120可存储在存储器的另一区域中。然而,当写入器122赶上读取器112时,读取器缓冲的这批数据I1和写入器缓冲的这批数据120可存储在存储器的同一区域中。因此根据示例,本文公开的框架使用智能缓冲,其实质上最小化在存储器中的保存读取器缓冲的这批数据110和写入器缓冲的这批数据120所需的空间的量。 此外,读取器缓冲的这批数据110和写入器缓冲的这批数据120能够存储在存储器的分开的区域中,且读取器112能够相对于写入器122独立地移动,数据不需要与一般在常规框架中所需的一样容易写到磁盘。因此在一个方面中,本公开的框架通常相对于将数据写到输出块104实施更大的效率,因为从存储器写一般比从磁盘写明显更快。 作为示例,分析函数包括关于存储在大输入块102中的特定数据(目标)如何与存储在大输入块102中的其它数据比较的查询。在这个示例中,读取器112逐行推进,直到读取器112到达目标。写入器122然后推进,以比较大输入块102中的其余数据与目标。这样的功能的特定示例包括确定顶尖生产者的销售额与组织中的所有其它销售人员。在这个示本文档来自技高网...

【技术保护点】
一种用于管理对存储在输入块中的数据待执行的分析函数的方法,所述方法包括:通过处理器提供框架的接口,用户通过所述接口定义对存储在所述输入块中的所述数据待执行的所述分析函数,其中当用户定义的分析函数被执行时,通过对存储在所述输入块中的所述数据实施读取器、写入器、预读器和预写器,所述框架将多批数据缓冲到存储器中,并且其中所述读取器、所述写入器、所述预读器和所述预写器在所述输入块中相对于彼此单独地可移动;以及通过所述接口接收所述用户定义的分析函数。

【技术特征摘要】
【国外来华专利技术】1.一种用于管理对存储在输入块中的数据待执行的分析函数的方法,所述方法包括: 通过处理器提供框架的接口,用户通过所述接口定义对存储在所述输入块中的所述数据待执行的所述分析函数,其中当用户定义的分析函数被执行时,通过对存储在所述输入块中的所述数据实施读取器、写入器、预读器和预写器,所述框架将多批数据缓冲到存储器中,并且其中所述读取器、所述写入器、所述预读器和所述预写器在所述输入块中相对于彼此单独地可移动;以及 通过所述接口接收所述用户定义的分析函数。2.如权利要求1所述的方法,进一步包括: 响应于所述用户定义的分析函数被调用,来将所述多批数据缓冲到所述存储器中,而无需从所述用户接收关于所述多批数据如何被缓冲的指令。3.如权利要求2所述的方法,其中在所述读取器到达所述预读器之前,所述预读器控制被复制到所述存储器中的来自所述读取器的批数据的预定边界,并且其中在所述写入器到达所述预写器之前,所述预写器控制被复制到所述存储器中的来自所述写入器的批数据的预定边界。4.如权利要求3所述的方法,其中所述框架基于所述读取器和所述写入器相对于彼此的位置,以智能方式缓冲来自所述读取器的批数据和来自所述写入器的批数据。5.如权利要求3所述的方法,进一步包括: 推进所述写入器,直到所述写入器的位置到达所述预写器的位置为止; 接收用于推进所述写入器的呼叫; 调用上下文切换;以及 将所述预写器移动到用于限定将被存储在所述存储器中的下批数据的边界的位置。6.如权利要求5所述的方法,进一步包括: 通过所述预写器: 将所述下批数据从所述输入块移动到所述存储器中; 将滚存信息复制到输出块; 将所述批数据释放回到操作系统;以及 将控制返回到所述写入器。7.如权利要求3所述的方法,进一步包括: 推进所述读取器,直到所述读取器的位置到达所述预读器的位置为止; 接收用于推进所述读取器的呼叫; 调用上下文切换;以及 将所述预读器移动到用于限定将被存储在所述存储器中的下批数据的边界的位置。8.如权利要求7所述的方法,进一步包括: 通过所述预读器: 将所述下批数据从所述输入块移动到所述存储器中; 将滚存信息复制到输出块; 将所述批数据释放回到操作系统;以及 将控制返回到所述写入器。9.如权利要求1所述的方法,其中通过所述接口接收所述用户定义的分析函数进一步包括:接收关于在所述用户定义的分析函数的实施期间何时移动所述读取器和所述写入器的指令,而无需接收关于如何缓冲所述数据的指令。10.一种用于管理对存储在输入块中的数据待执行的分析函数的装置,所述装置包括: 至少一个模块,用于: 提供框架的接口,用户通过所述接口定义对存储在所述输入块中的所述数据执行的所述分析函数,其中当用户定义的分析函数被执行时,通过对存储在所述输入块中的所述数据实施读取器、写入器、预读器和预写器,所述框架将多批...

【专利技术属性】
技术研发人员:尼尔·欧内斯特·沙范宏民
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1