CN1422403A - 迅速完成网络上分布的数据处理任务的系统及方法 - Google Patents

迅速完成网络上分布的数据处理任务的系统及方法 Download PDF

Info

Publication number
CN1422403A
CN1422403A CN01807736A CN01807736A CN1422403A CN 1422403 A CN1422403 A CN 1422403A CN 01807736 A CN01807736 A CN 01807736A CN 01807736 A CN01807736 A CN 01807736A CN 1422403 A CN1422403 A CN 1422403A
Authority
CN
China
Prior art keywords
data
file
task
cpu
routine
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
Application number
CN01807736A
Other languages
English (en)
Other versions
CN1262915C (zh
Inventor
J·J·卡拉斯科
S·多利奥夫
F·B·埃伦弗里德
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.)
Fly Upward Management Co Ltd
Original Assignee
Overture Services Inc
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 Overture Services Inc filed Critical Overture Services Inc
Publication of CN1422403A publication Critical patent/CN1422403A/zh
Application granted granted Critical
Publication of CN1262915C publication Critical patent/CN1262915C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

一种用于在网络上运行任务方法,包括:从所有数据中建立(200)至少一个数据分组;用标题标识(202)数据分组,所述标题包含可执行代码;将数据分组发送给(204)可用的处理器,以及利用可用处理器执行(206)任务,以利用数据分组和标题的可执行代码中包含的指令来获取结果数据。

Description

迅速完成网络上分布的数据处理任务的系统及方法
附录参考
附录A包括计算机例行程序清单。总页数为40页。背景
许多商业企业要求在尽可能短的时间帧内处理大量数据。近年来,需要处理这种大量数据的企业已经购买了非常昂贵的专用多处理器硬件,通常称作主计算机、巨型计算机或大规模并行计算机。这种硬件的费用通常为数百万美元,同时还伴随有支持合同以及聘用专业人员维护这些系统所产生的费用。这种超级计算能力不仅昂贵,而且在任何给定任务如何在多处理器之间进行分配方面,没有为用户提供太多控制权。任何计算任务如何得以分配成为这种巨型计算机的操作系统的功能。
在数据处理领域中,经常会对不同数据组执行极为相似的操作。例如,可能希望计算几个不同类中的某个类、如一组数据的唯一分类样品;了解给定类的算术平均值是多少;或了解两类的交集可能是什么。在超级计算环境中,人们必需依靠操作系统来合理地决定如何在多个中央处理器(CPU)之间分配任务的各个部分。然而,今天的操作系统还不能够在数据处理环境中作出这种决策。
因此,需要一种克服这些缺陷的系统及方法。本发明最佳实施例的概述
根据最佳实施例,最佳实施例描述的是一种提供多处理器的系统及方法,例如,计算机的中央处理器(CPU),在网络上执行变化数量和类型的数据处理任务。将数据处理任务提供给网络上为本系统和方法所配备的任何可用CPU。所述系统和方法选择第一可用CPU来执行数据处理任务。所述系统和方法为执行任务的CPU提供完成任务所需的最小数据量以及完成任务所需的软件指令。
更具体地说,在费用和时间两个方面,最佳系统及方法改善了数据处理效率。软件用户考虑给定的数据处理任务,对各任务所需的数据类型提供一组定义,并为任务指定给定数据组。然后,所述系统和方法将输入文件分为若干子任务数据文件,并将给定的数据和任务规范发送给网络上任一可用的计算机。CPU执行该任务,并将完成结果返回给请求该任务的计算机。
这样,大量数据由运行诸如Windows NT或Unix的传统操作系统的普通日用个人计算机进行快速处理。运行最佳实施例软件的例如十二台双处理器计算机或二十四台单处理器计算机的小群集即使没有超过具有等量CPU的巨型计算机的性能,也能够与其性能相同。
附图概述
图1说明根据最佳实施例执行本发明的方法的示例系统。
图2给出了根据最佳实施例的本方法的概观。
图3给出了根据最佳实施例所述方法如何构建工作队列的过程流程。
图4说明了根据最佳实施例向网络上的计算机发送任务数据和任务指令的过程。
图5说明了根据最佳实施例用于在工作例程完成其任务之后重新组合文件结果的过程。最佳实施例的详细说明
本系统及方法的最佳实施例包括两个主要部分:网络上执行数据处理的多个处理单元以及软件,软件用于控制若干计算机中的各个计算机针对也被称作主任务的较大任务中的一个分立任务来工作。任务是例程,如抓取例程、工作例程以及重组例程,稍后将对所有这些进行详细描述。下面说明网络硬件和软件的最佳实施例。本系统可以与搜索引擎配合使用。一个适用的搜索引擎在共同未决申请序列号09/322677中进行了说明,该申请于1999年5月28日提交,题为“用于影响计算机网络搜索引擎所产生的搜索结果列表中的位置的系统及方法”,在此通过引用结合于本文中。
参照附图,首先参考图1,作为概览,给出处理器102组成的网络,一般地用100表示,它执行本系统中所用的例程。本领域的技术人员知道,除网络之外,处理器102还能够连接在LAN上、通过因特网进行连接等。处理器102可以是日用计算机、巨型计算机、膝上型计算机等的CPU。处理器102中的至少一个作为主处理器104。主处理器104可以是任何处理器102。
参照图2,上述系统可以用来执行本方法。本方法获取大量数据,并将数据分成任务相关的较小数据组(框200)。换句话说,较小的数据组设计成仅包括特定任务所需的数据。例如,用户可以准备任务队列和任务数据队列。任务队列定义要执行的任务以及执行任务的顺序。任务数据队列定义完成数据处理任务所需的数据元素,以及定义数据处理任务的数据如何在文件中分布,从而可以顺利执行各子任务。此后,用标题标识分组(框202)。将在下面对所述标题进行详细说明。再将数据分组发送给可用的处理器(框204)。然后,可用的处理器可以对数据分组执行所需任务(框206)。
参照图3,位于CPU被称作monkeyGrab(猴子抓取)的抓取例程执行抓取任务,它接收有关从之前建立的任务数据文件中抓取哪些数据元素的指令(框300)。任务数据文件由例程所使用的文件标题和数据的组合进行定义。抓取例程创建描述输出数据的文件标题,使工作例程能够作用于数据文件中的元素(框302)。抓取例程保证只有数据文件中的数据元素才是后续工作任务所需的那些(框304)。抓取例程将在下面进行更详细地说明。
参照图4,图中所示的是将任务发送给远程主机的过程。例如,软件搜索可用CPU的存储器数据库以及可用CPU的状态(框400)。最好是将任务指令文件(框402)和任务数据文件(程序404)发送给处于可用状态的第一CPU。任务指令包括诸如monkeyCount(猴子计数)的工作例程,这一点将在下面进行更详细说明。任务数据文件可以是下面描述的比如monkeyDeJournal的例程的结果。控制例程最好创建数据文件和存储条目,以便记住哪个可用主机在执行任务(框406)。一旦完成任务,任务例程就使结果数据对控制例程是可用的(框408)。控制例程等待任务例程来指示完成。一旦顺利完成,控制例程更新可用主机的存储器数据文件(框410)。但在未成功完成时,控制例程则更新数据文件和存储条目,并将任务重新指定给另一可用CPU。
如图5所示,完成任务所产生的数据文件被回送给请求计算机,即主处理器,该数据文件将与其它完成了的任务所产生的数据文件一起进行重新组合(框500)。主处理器构建重组命令来指定将被重组到一个文件中的子任务数据文件(框502)。对于每个子任务,例如下面将说明的monkeyJoin(猴子组合)的重组代码读取并评估文件标题,以便标识定义关键字和数据的数据列(框504)。在读取各子任务的结果文件标题之后,重组例程从每个文件中读取数据行,并在关键字匹配时输出数据行中关键字的数据值(框506)。如果关键字不匹配,重组例程则读取用于如何表示及处理丢失数据值的文件标题。所有任务结果文件最好来自同一输入数据文件,从而不需要处理重复关键字。任务结果数据文件将仅包含一个给定的关键字。同样,最好是写入任务例程以便按照排序顺序输出关键字,从而不再需要进行排序。此后,数据被重新组合(框508)。
I.硬件和网络
现在来看硬件更具体的实例,硬件的最佳实施例是一组日用个人计算机。从而用户在熟悉的环境中工作,每台计算机最好包含当前的CPU型号、相同存储量以及至少一个高速网络接口卡。当然也可以使用其它组合。为了便于说明,最佳实施例包括十二台双CPU计算机、1GB的随机存取存储器以及两个100BaseT以太网适配卡,其中,每个CPU以500MHz的时钟速度运行。群集中的各计算机均运行RedHat Linux操作系统。本领域的技术人员知道,可以使用其它操作系统,如Microsoft Windows和Window NT,Sun Solaris以及Machintosh。十二台计算机经高速网络转接相互连接。每台计算机还配备了例如SCSI II接口和9GB的硬盘驱动器。更多的计算机当然可以加入该组中,并不有损于性能。
II.软件
软件的最佳实施例包括若干独立的计算机程序,通过在运行时解释的一种语言来实现,如Perl编程语言。本领域的技术人员知道,还可以使用其它运行时解释的编程语言,如Java、PHP3、Python以及Tcl/Tk。
作为概述,称作数据预处理例程的第一计算机例程读取输入数据文件,读取任务数据队列控制文件,执行任务数据队列文件中指定的任何数量的任意指令,并建立文件标题和数据文件。第二计算机例程从第一例程创建的数据文件中仅提取特定数据处理任务所需的数据字段。抓取例程创建一个文件,该文件包括工作例程使用的文件标题段以及数据段。输出数据文件的文件标题段包括可执行或可评估代码。第三例程即工作例程对抓取例程创建的数据文件执行计算。工作例程最好对抓取例程创建的文件标题进行分析,然后再对文件中文件标题之后的数据部分执行所要求的操作。分析包括读取文件标题以及评估程序代码,以便生成定义随后的数据结构的散列表。散列表是一种利用映射为数据值的关键字的数据结构。
由于软件执行的许多任务都是与某种聚集有关的任务,例如计算给定类的示例数量,本发明的最佳实施例包括第四软件例程,它允许混合各种任务文件。对任务文件进行混合,从而,对于给定类,所有聚集测量均在一个数据行中,使加载数据库成为一项容易的任务。四个软件例程中的每个例程都将在下面进行更详细地说明。
A.数据预处理例程
在附录中称作monkeyDeJournal的数据预处理例程对用户选择的数据进行格式化,使该数据易于译成处理所需的分立部分。数据预处理例程的最佳实施例读取输入数据文件和控制文件,返回控制文件中指定的数据组,并输出将由本发明的其它例程来读取的新文件。
经抽象机制对读输入数据文件进行处理—数据预处理例程指向现有的数据文件分析例程。有关数据文件分析例程仅有的两个假设是:它能够1)标识数据组,以及2)返回散列表数据结构的这种数据分组。例如,如果输入数据文件包含网站中用户点击的数据组(组:userClick(用户点击))和搜索引擎执行搜索的数据组(组:search(搜索)),‘userClick’和‘search’则是输入数据文件所有已知数据组的散列表中的关键字。这两个组关键字中的每一个又需要指向另一散列表。该散列表中关键字的名称应是数据元素的名称,其值应是组的特定示例中该数据元素的实际数据值。组‘userClick’可以包含例如命名为‘timeStamp(时间标记)’、‘IPAddress(IP地址)’、‘rank(等级)’以及‘AccountID(账号ID)’的数据元素;命名为‘search’的分组可以包含例如命名为‘query(队列)’、‘timeStamp’以及‘resultsFound(找到结果)’的数据元素。数据文件是以组读取的,并且其各个元素是根据数据预处理例程必须读取的控制文件中的数据来返回的。
控制文件的读取以及对其数据的操作由数据预处理例程的代码处理的。控制文件被指定为运行时可评估的散列表。该散列表中的关键字是任意名称,其中每个名称表示一个任务队列。这些关键字的值也是散列表。这个嵌套散列表具有三个所需关键字以及任何数量的可选关键字。所需关键字命名为‘event(事件)’、‘column(列)’以及‘delimiter(定界符)’。可选关键字将在稍后进行说明。命名为‘事件’的关键字的值在包含相关数据元素的输入文件中指定数据组。输入数据文件分析程序标识组名称。例如,命名为‘event’的关键字的值可以是‘userClick’。命名为column的关键字指向另一散列表。这个嵌套散列表的关键字是任何随后的数据处理任务可能需要的任意指定的列名称。列名称关键字的值是一个最内部散列表,它允许用户指定如何为数据处理任务构造相关列。它经两个关键字来进行,一个名为‘source_args(源参数)’,另一个名为‘source_routine(源例程)’。‘source_args’关键字从用于构造所需输出字段的数据组中指定数据元素;‘source_routine’被指定为有效Perl子例程。最后,命名为‘定界符’的关键字指定相关数据列如何在输出文件的数据段中被划分。在最佳实施例中,这个控制文件将至少按以下形式提供:
    {

    ′AdvertiserQueue′=>{

    ′event′=>'userClick′,

    ′columns′=>{

    ′AdListingX′=>{

          ′source_args′=>[′AccountlD′,′rank′,],

          ′source_routine′=>′sub{

                  my($ald)=shift@$_;

                  my($rank)=shift@$_;

                  my($x)=‘$ald###$rank′;

                  return$x;

                  ′},

          },

    ′IP_address′=>{

          ′source_args′=>[′clientlP′,],

          ′source_routine′=>′sub{

                  return shift@S_;

                 ‘},
				
				<dp n="d7"/>
             },

    },

    ′delimiter′=>′\t′,

    },

    }
在本例示中,‘AdvertiserQueue(广告商队列)’是指定给任务数据队列的任意名称。相关数据组来自组‘userClick’。需要两个输出列:一个被称作‘AdListingX’,另一个被称作‘IP_Address’。输出列‘AdListingX’应包括数据元素‘AccontID’和‘rank’,它们是‘userClick’数据组的组成部分。‘AdListingX’数据列的最终表示应是ABC###3的形式,其中假定广告商ID是‘ABC’而‘等级’为‘3’。输出列‘ID_Address’应仅包含来自数据组‘userClick’示例的数据单元‘clientIP’所具有的数据值。本领域的技术人员知道,任何有效的Perl语法可以被用于‘source routine’值,以便对相关输入数据字段创建派生和修改。具有值‘\t’名为‘定界符’的关键字表示输出字段应当用标记字符来分隔。
在本发明的这个示例中,控制文件可以包括三个附加可选关键字。这些可选关键字具有以下名称:‘deltaT’、‘restriction_args(限制参数)’以及‘restriction(限制)’。‘deltaT’向数据预处理例程提供有关数据预处理文件的输出应包含数据的一个小时中的最早时刻的信息。该关键字的合法值是0和59之间的数字(含0和59);单数字之前加零(即,如果该值是1,则拼写为‘01’)。‘restriction_ergs,关键字正如上述的‘source_args’关键字一样工作。该关键字的值对用户定义功能提供输入参数。该列表的元素必须是相关数据组中数据元素的名称。‘restriction’关键字值是有效Perl子例程,例如,
{
′deltaT′=>′09′,
′restriction_args′=>[′bid′,],
′restriction′=>′sub{
        my($x)=shift@$_;
        return($x>0);
        }′,…
}指定包括在输出文件中的第一相关数据组应在文件分析例程遇见数据第一小时之后的九分钟就出现。要返回的唯一数据组示例是那些‘bid’元素具有大于零的值的数据组示例。‘bid’元素被传递给经‘restriction’关键字指定的用户定义功能。
一旦数据预处理例程读取了控制文件并评估了内容,它便创建一个以文件标题段开始的输出文件。文件标题段被写成Perl可评估散列表的形式。该文件标题段包含四个所需的关键字以及三个可选关键字,它们将在下一节(B.抓取例程)进行说明。在输出了文件标题之后,数据预处理例程在下一输出行输入名为‘EndOfHeader(标题结尾)’的标志。这时,满足任何限制条件的数据分组的任何示例都按照控制文件中指定的规则进行组合,然后再写到输出文件的数据部分,其中的列由控制文件中指定的定界字符进行定界。
B.抓取例程
根据称作monkeyGrab的抓取例程的最佳实施例,预处理器例程使用用户希望进行计算的数据,并将这些数据放入一个文件。此后,其它能够读取含可执行代码的文件标题并执行该代码的例程可以读取要进行操作的数据。这样,抓取例程的要求是能够读取由预处理例程所创建的文件标题,使其提取相应的数据元素。由于抓取例程还将给定任务所需的最小量数据写到任务文件中,所以抓取例程可以写出文件标题,它由类似于预处理例程的文件标题的规则来限定。
抓取例程根据列名称来抓取数据列,其中,列名称是通过传送给抓取例程的输入参数提供的。例如,数据文件可包括含有诸如搜索结果投标列的价格值的列,以及含有类描述符的列,可能包括一个或多个字段的关键字字段。在这种情况下,抓取例程可以按如下所述进行调用:‘grab-g price-g myKeyField’。抓取例程工作的数据文件在其文件标题中包含用于名为‘price(价格)’和’myKeyField(我的关键字字段)’的列的条目。来自预处理例程的文件标题应包含适当的标题条目,即用于描述数据列的散列表的关键字名称。抓取例程从数据文件中读取标题信息,以便获得有关数据文件中列位置的位置、界定数据列的字符以及诸如如何处理或评估空的列位置的任何特殊处理规则的信息。一旦抓取例程确定了列位置以及给定列所需的处理规则,抓取例程则加载相关的那些列,并将其放入输出文件。
由抓取例程写的输出文件包含与所提取列有关的标题信息。为了便于说明,标题为含有四个关键字的Perl散列表的形式。四个关键字对应于包含在预处理例程的输出中的七个关键字中的四个。这四个关键字用于数据列,它们可以是数据列或列的组,使给定数据行唯一、数据列标签、以及输出数据字段定界符。数据列的关键字指向第二个散列表。第二散列表具有作为其关键字的列名以及作为其值的含两个关键字的散列表。最内层散列表的第一个关键字描述文件的数据部分中数据列的位置,其中,最内层的散列表是一系列散列表中嵌入最深的散列表。最内层散列表的第二个关键字描述如何表示空零据值。
唯一描述任何给定数据行的列的关键字必须具有描述数据行的列名。该名称是列散列表中的关键字。数据列标签的关键字具有Perl列表的值。最后,描述列定界符的关键字具有对应于列定界符的值。如果该列定界符包含Perl中换码顺序的任何字符,则在这些换码字符之前加上反斜线-‘\’-字符。最佳实施例在文件标题末端放置一个标志,使软件知道完成读取标题信息的时间以及它可以开始读取数据的时间。
C.工作例程
称作monkeyCount的工作例程的最佳实施例与预处理器和抓取例程的最佳实施例极为相似,它读取数据文件标题,并且也输出这类文件标题。类似于抓取例程,工作例程读取文件标题,以确定它读取的列、这些列出现在输入文件数据的数据段中的顺序以及那些输入数据列组成类或关键字定义。在读取了该信息时,工作例程对输入数据执行所需操作。如果工作例程是计数例程,那么它将为每个类输出属于该类的行数的计数,以及类的描述符。例如,如果输入数据包括七行两列,则关键字以及为该关键字进行计数的项如下所述:
关键字    搜索条件
Adv01    狗
Adv03    猫
Adv05    房子
Adv03    老鼠
Adv01    旅行
Adv05    音乐
Adv01    声音
输出文件包含以下数据行:
关键字  #搜索
Adv01    3
Adv03    2
Adv05    2
同样,如果工作例程是加法程序,那么它将对相关关键字的相关列中的数据值进行相加。
在文件输入/输出以及复杂性方面,工作例程都将任何给定任务减少到最低程度,例如,如果请求计数,则工作例程仅接收一个关键字和要计数的数据元素的列。这就允许在任意数量的机器上出现多个工作分配。一个工作例程可以对各广告商总的搜索进行计数;另一个工作例程可以对特定时间段内在列出的任何给定广告商上点击的唯一IP地址的数量进行计数。当工作例程完成其分配时,它采用与输入文件相同的标题格式写出一个文件,然而,在描述列的散列表中的值将是来自输入文件和所作用数据名称的关键字描述符。例如,如果输入数据文件具有关键字‘广告商ID’和列‘搜索项’,并且设置该工作例程对返回给定广告商的搜索次数进行计数,则输出文件应具有关键字‘广告商ID’和列‘搜索计数’。
D.数据重建例程
根据称作monkeyJoin(猴子组合)的数据重建例程的最佳实施例,所有字段被重建到一个文件中,由关键字进行组织。在要处理的数据已经被预处理之后、即分为较小工作单元之后,并且这些较小工作单元被发送给网络上的机器进行处理之后开始重建。数据重建有助于便捷的数据库载入。要完成数据重建,为数据重建例程提供有关哪些数据文件需要被混合到一个数据文件的输入。将成为数据库加载文件的组成部分的每个数据文件作为参数以列表形式提供给数据重建例程。例如,数据重建例程,如monkeyJoin按如下所述方式进行调用:
reconstruct(重建)文件1文件2文件3…文件N
对于作为输入参数提供的每个文件,重建例程读取文件标题信息,并将该标题信息及数据储存在散列表中。一旦读取了所有标题和数据,每个关键字值均进行循环。对于具有匹配关键字的每个输入文件,写入相应的输出列。如果一个输入文件没有关键字条目或值,则调用丢失或未定义值的处理,并且重建例程按照输入文件标题散列表中的记号提供适当值。该文件作为其它文件写出,其中的标题信息为Perl散列表格式。散列表包含与抓取和工作例程提供的散列表标题相同的四个关键字。该散列表中关键字的值包括该应用所需的相同的四个基本关键字:列散列表、关键字散列表、列定界符说明以及列标签的散列表。
E.调度例程
根据称作monkeyDispatcher(猴子调度程序)的工作负荷分配例程的最佳实施例,CPU和计算机存储器的密集工作发生在执行相关操作的工作例程中,例如对某一类中的唯一示例进行计数。在理论上,CPU和存储器密集工作被分配给多台计算机。本系统及方法最好根据网络上计算机的分配软件的已知使用负荷量,对网络上可用计算机进行工作调度。调度例程允许一个工作或抓取例程在连接到网络的计算机的每个CPU上运行。例如,如果有二十四个计数操作要执行,并且有十二台计算机,各配备两个CPU,则两个工作操作可以分派给十二台计算机中的每一台进行同时处理,以确保计数任务可能的最快完成。同样,调度例程需要有关哪些任务或任务部分可以同时进行以及哪些任务首先要求某一其它任务部分的完成的信息。
这样,调度例程需要与能够接收工作指令的机器及其它们一次可接收多少工作指令有关的数据。例如,四个CPU的机器一次可以接收四条指令,而一个CPU的机器则只能接收一条。该例程还储存与以下各项有关的数据:1)哪台机器在任何给定时间点正在执行多少任务,以及2)这些机器中的任何一台在任何给定的时间点正在执行哪个任务。最后,调度例程可以开始装入用于在远程机器上处理数据的代码。
最佳实施例以数据文件开始,该数据文件以Perl散列表写成,它指定网络上可用机器的名称以及给定机器中CPU的总数。同时它还指定给定机器上每个CPU的最后了解的‘忙/闲’状态、最后了解的开始时间。例如,在整数格式中,整数表示任务已在某个CPU上开始,无用值则表示当前在给定机器的CPU中没有运行任何工作。网络上的每台机器在散列表中具有一个关键字。该散列表中的每个关键字指向第二散列表,第二散列表具有给定机器已知的CPU数量及该机器当前被占用进行工作的CPU数量的关键字条目。在散列表的第一构造中,当前占用进行工作的CPU的值为零。
在数据文件中还指定了任务队列。该组任务散列表中最外层关键字指向一个或多个散列表,这一个或多个散列表指定任务的组件以及这些子任务是否可以同时执行。这个最外层任务散列表的关键字是简单的整数,以数字1开始,每个任务组加1。这些编号的任务中的每个任务指向另一散列表,该散列表包含表示该任务的一些方面的关键字(如数据预处理、数据抓取/计数、数据组合等)。最佳实施例将这些单独的任务关键字包含在散列表中,该散列表单一的当前关键字被命名为例如‘parms’。关键字‘parms’指向具有四个关键字条目的散列表:‘key’、‘name(名称)’、‘tasks(任务)’以及‘masterTaskFile(主任务文件)’。这些关键字具有相应的值,组成类等级关键字的列的描述符,例如广告商ID,标记了的、也就是预定义表示的数据处理任务(例如,dejournal.lineads表示与互联网搜索引擎中广告商列表的减少有关的任务列表),可同时执行的成对的“抓取”和“计数”任务的列表,以及数据预处理例程的输出文件的名称。
根据最佳实施例,调度例程读入控制文件,以便标识网络上可用的机器以及机器的可用性。当某个任务调度给某台机器时,调度软件更新其机器可用性散列表的存储副本。这样,如果机器具有两个CPU,并且调度例程将任务发送给具有两个CPU的机器,调度软件则会将忙CPU的数量从0增加到1,以表示一项工作已经发送给网络上的那台机器。当执行工作例程任务的机器完成该任务时,调度程序对执行该任务的机器将忙CPU值减一。
采用这个机制,将任务分配给网络上的机器之前,调度软件根据当前分配给机器的任务对可用机器进行排序。如果网络上的机器X具有0个忙CPU同时机器Y具有1个忙CPU,以及两台机器X和Y都具有两个CPU,那么调度软件最好是首先将任务分配给机器X。这是因为在调度软件能够确定的范围内机器X都没有忙CPU。机器X可以在调度例程不知道的情况下运行某个CPU密集软件。较好的方法是,具有这些CPU的计算机仅运行必需的操作系统软件,以防以下问题的发生:工作被发送给一台计算机,该计算机的处理器正在处理非相关任务,如文字处理任务。在最佳实施例中,必要时,计算机仅包括一个操作系统、一个诸如Perl解释器的程序解释器、以及安全复制程序。如果网络上所有机器都同样忙,调度软件则根据机器名对可用机器堆栈进行排序并以这种方式指定任务。如果机器全部被占用,调度软件则从可用机器堆栈中移去该机器,直到该忙机器报告它已完成至少一个指定任务。
如果所有机器均忙,调度软件则等待第一时间段,如几分钟,以便重试任务调度。如果调度软件对任务进行了排队,但在第二时间段之后,例如十五分钟之后,仍无法找到可用的机器,则调度软件建立警告消息。这种情况可表示较大的系统故障,通常要求复位软件系统和任务。本发明的最佳实施例在网络上提供足够的硬件,使该网络上的所有硬件不大可能在任何给定的十五分钟内全忙。
一旦调度软件标识已分配给定任务的机器,调度软件则开始组合将在远程计算机中执行的一组命令。软件组合的命令集是针对某一任务的,由调度软件的控制文件中所提供的信息进行指导。按如下所述指定这些命令的结构。机器创建一个唯一标识任务以及运行该任务的机器的名称。然后,将该名称用作目录项标记,软件将该标记用作任务正在运行或已完成的指示。在构造唯一名称之后,调度软件使用免费可用的安全外壳实用程序(又称作ssh)的语法来创建将在远程计算机中装入程序的命令。本领域的技术人员将知道,可以方便地使用其它现有的实用程序,如远程外壳执行(又称作rsh)。
在当前形式中,最佳实施例允许网络上的计算机访问共享盘空间,以便使远程计算机访问程序代码和数据的共享盘空间。本领域的技术人员同样知道,使用现有网络和远程执行工具,程序代码和数据都可以被复制到远程计算机的专用盘中。此后,远程执行实用程序可以将工作计算机指向程序代码和数据的新位置。最后,调度软件增加命令的语法以移去该文件,并在远程执行任务完成时将它标记为已建立。一旦构造了该语法,调度例程即建立其自身的副本(称作分支),并用对构造命令的调用来重写该副本(称作分支-执行组合(fork-exec combination))。伪码被用来说明该过程:
    $task=″NumUniqueUsers″;

    $machineToUse=″machine07′;

    $programToLaunch=″monkeyGrab″;

    $dataFileToUse=″AdvertiserReport″

    $programArguments=″-g AdvertiserlD-g$task″;

    $programLocation=″/shared/disk/space/code″;

    $dataLocation=″/shared/disk/space/data″;

    $dirEntryFileMark=″$task.$machineToUse.system(\″date\″)″;

    $remoteExecutionTool=″ssh″;

    $remoteExToolArgs=″-secret/secrets/myKeyFile″;

    $commandSet=″touch$dirEntryMark;x=′$remoteExecutionTool

    $remoteExToolArgs$machineToUse′$programToLaunch

    $programArguments $dataFileToUse″;if[$x eq 0];then rm
$dirEntryMark;fi″;

    fork()

    exec(″$commandSet″);
如果调度例程的控制文件表示特定过程或过程对可以同时执行,那么它便循环上述步骤,以便装入控制文件所需的、现有网络能够处理的尽可能多的过程。如果控制文件表示某个过程必须在一个或多个其它过程必须开始之前就完成,调度程序则在任务队列中装入更多串行或并行任务之前,等待这个串行任务的完成。
F.特例和通用扩展性
最佳实施例包括称作monkeyLoad(猴子加载)的工作例程的特例。与能够在本发明的系统及方法的框架中创建的所有其它工作例程相似,monkeyLoad具有分析Perl可评估代码形式的文件标题的能力。该monkeyLoad例程获取文件标题信息,并建立一组SQL(结构化查询语言)语句,将跟随文件标题的数据插入数据库。通过一组Perl语言的标准化及免费可用数据库接口,该例程可以读取输出文件中的数据行,并将其作为行插入数据库。本领域的技术人员知道,工作例程也可以读取并评估文件标题,以便例如产生另一例程的控制文件,它可能与诸如Oracle的SQL加载例程(sqlldr)的数据库例程的交互作用更为有效。该例程的特殊要求是:数据库列与文件标题中提供的列标签相匹配。这个部分在过程开始时在用户建立并可以指定任意数据列标签的初始文件中进行。任何给定工作例程通过读入文件标题信息、对其进行评估以及在输出时建立另一文件标题来运行,其中,所建立的另一文件标题包含最少量的关键字,如任何工作例程工作所需的四个关键字。
工作例程的一个特殊示例证明本发明的系统及方法可以进行推广。由于工作例程能够分析文件标题信息,所以工作例程能够完成许多有用的工作。大家可以容易地知道,工作例程不是被指示来对唯一示例进行计数,而是能够将工作例程写成加、减、除、乘、计算标准偏差等等。任何这类例程所要求的唯一功能是评估数据文件中作为可执行代码的标题信息的能力,转换为具有最小量的关键字的散列表。
尽管结合特定的说明性实施例对本发明进行了说明,但并无意将本发明限于这些说明性实施例。本领域的技术人员会知道,可以进行各种变化和修改,并不背离下面的权利要求书所定义的本发明的真正范围和精神。因此,本发明应将所有这些落在所附权利要求及其等效物的范围内的变化和修改包含在本发明内。

Claims (80)

1.一种用于在网络上运行任务的方法,所述方法包括:
从所有数据中建立至少一个数据分组;
用标题标识所述数据分组,所述标题包含可执行代码;
将所述数据分组发送给可用的处理器;以及
利用所述可用处理器执行任务,以使用所述数据分组以及包含在所述标题的所述可执行代码中的指令来获取结果数据。
2.如权利要求1所述的方法,其特征在于还包括将每个数据分组的所述结果数据文件返回给主处理器,以便进行可能的进一步处理。
3.如权利要求2所述的方法,其特征在于:重建返回的结果数据,以形成包括多个单独结果数据文件的单一结果数据文件。
4.一种用于预处理数据的方法,所述方法包括:
读取输入数据文件;
将所述输入数据放入数据结构;
从所述数据结构选择数据元素;
将描述所述所选数据元素的文件标题输出到文件;以及
将所述所选数据元素输出到所述文件。
5.如权利要求4所述的方法,其特征在于:所述数据结构是散列表。
6.如权利要求4所述的方法,其特征在于:所选的所述数据元素是通过在运行时评估诸如散列数据的程序代码块来选择的。
7.如权利要求4所述的方法,其特征在于:所述文件标题是可以在运行时进行评估的的散列表。
8.一种用于提取数据的方法,所述方法包括:
读取包含可执行代码的文件标题;
执行所述代码,以确定要从所有数据中提取的数据;以及
从数据结构中获得要提取的所述数据。
9.如权利要求8所述的方法,其特征在于还包括将所述提取的数据加载到输出文件。
10.如权利要求8所述的方法,其特征在于:所述数据结构是散列表。
11.一种用于处理数据的方法,所述包括:
读取包含可执行代码的文件标题;
执行所述可执行代码;
从所述可执行代码确定所需操作;以及
对数据执行所述所需操作。
12.如权利要求11所述的方法,其特征在于还包括在执行所述所需操作之后,输出结果数据。
13.如权利要求11所述的方法,其特征在于:所述所需操作是用运行时执行的语言写成的。
14.如权利要求13所述的方法,其特征在于:所述所需操作是从下述操作的组中所选的任何一种操作:加、减、乘、除,计算某类中示例的总数,列举某类的唯一示例,计算描述统计,例如标准偏差、标准平均误差、中值、算术平均值、方差、协方差、相关系数以及优势率。
15.一种用于将任务和数据调度给位于网络上的中央处理单元的方法,所述方法包括:
执行放置在文件标题中的代码;
确定网络上是否有至少一个中央处理单元(如果有的话)是可用的;以及
根据可用性将所述任务调度给所述中央处理单元。
16.如权利要求15所述的方法,其特征在于:通过读取控制文件确定所述中央处理单元的所述可用性。
17.如权利要求16所述的方法,其特征在于:所述控制文件为了在运行时进行评估而格式化成散列表。
18.如权利要求16所述的方法,其特征在于还包括通过重写表示所述中央处理单元的状态的新控制文件来更新所述控制文件。
19.如权利要求16所述的方法,其特征在于还包括:
组合至少一条由所述中央处理单元执行的命令;以及
将所述至少一条命令发送给所述中央处理单元以便执行。
20.如权利要求19所述的方法,其特征在于:所述至少一条命令包括建立名称来标识所述任务。
21.如权利要求15所述的方法,其特征在于还包括标记所述任务的状态。
22.如权利要求21所述的方法,其特征在于:所述任务的所述状态是正在运行或者已完成。
23.如权利要求15所述的方法,其特征在于还包括:如果所有中央处理单元都忙,则在经过某一时间段之后,进行重试以确定所述至少一个中央处理单元的所述可用性。
24.如权利要求23所述的方法,其特征在于:所述时间段可以由用户指定。
25.如权利要求24所述的方法,其特征在于:所述时间段为15分钟。
26.一种用于加载数据的方法,所述包括:
读取包含可执行代码的文件标题;
执行所述代码以获取文件标题信息;以及
根据所述文件标题信息来建立结构化询问语言语句。
27.一种用于在网络上运行任务的方法,所述方法包括:
从所有数据中建立至少一个数据分组;
用标题标识所述数据分组,所述标题包含可执行代码;
将所述数据分组发送给可用的处理器;
采用所述可用处理器执行任务,以便使用所述数据分组以及包含在所述标题的所述可执行代码中的指令来获取结果数据;以及
将所述结果数据返回给主处理器,其中,返回的结果数据经重建以形成结果。
28.一种用于在网络上运行任务的方法,所述方法包括:
读取输入数据文件;
将所述输入数据放入数据结构;
从所述数据结构中选择数据元素;
将描述所述所选数据元素的文件标题输出到文件;
将所述所选数据元素输出到所述文件;
读取包含可执行代码的所述文件标题;以及
执行所述代码,以确定从所有数据中提取的数据。
29.如权利要求28所述的方法,其特征在于还包括将所述提取的数据加载到输出文件。
30.如权利要求28所述的方法,其特征在于:所述数据结构是散列表。
31.一种用于在网络上运行任务的方法,所述包括:
读取包含可执行代码的文件标题;
执行所述可执行代码;
从所述执行代码中确定所需操作;
对数据执行所述所需操作;
在执行所述操作之后输出结果数据。
32.如权利要求31所述的方法,其特征在于:所述所需操作是用在运行时执行的语言写成的。
33.如权利要求32所述的方法,其特征在于:所述所需操作是从下述操作的组中所选的任何一种操作:加、减、乘、除,计算某类中示例的总数,列举某类的唯一示例,计算描述统计,例如标准偏差、标准平均误差、中值、算术平均值、方差、协方差、相关系数以及优势率。
34.一种用于将任务和数据调度给位于网络上的中央处理单元的方法,所述包括:
执行放置在文件标题中的代码;
确定网络上是否有至少一个中央处理单元(如果有的话)是可用的;
如果所有中央处理单元都忙,则在经过一个时间段之后,进行重试以确定所述至少一个中央处理单元的可用性;
根据可用性将所述任务调度给所述中央处理单元;以及
组合将由所述中央处理单元执行的至少一条命令,其中,所述至少一条命令包括创建名称以标识所述任务。
35.如权利要求34所述的方法,其特征在于:通过读取控制文件确定所述中央处理单元的所述可用性。
36.如权利要求35所述的方法,其特征在于还包括更新所述控制文件的步骤。
37.如权利要求34所述的方法,其特征在于还包括标记所述任务的状态。
38.如权利要求37所述的方法,其特征在于:所述任务的所述状态是正在运行或者已经完成。
39.如权利要求34所述的方法,其特征在于:所述时间段可以由用户确定。
40.如权利要求39所述的方法,其特征在于:所述时间段为15分钟。
41.一种用于在网络上运行任务的系统,所述包括:
数据预处理例程,从所有数据中建立至少一个数据分组;
数据标题,它包含标识所述数据分组的可执行代码;以及
调度例程,将所述数据分组发送给可用的处理器,其中,所述可用处理器使用所述数据分组以及包含在所述标题的所述可执行代码中的指令执行操作,以获取结果数据。
42.如权利要求41所述的系统,其特征在于还包括主处理器,收集每个数据分组的所述结果数据文件。
43.如权利要求42所述的系统,其特征在于还包括数据重建例程,重建所述结果数据以产生结果。
44.一种用于预处理数据的系统,所述系统包括:
处理器,读取输入数据文件;以及
预处理例程,将所述输入数据放入数据结构,从所述数据结构中选择数据元素,将描述所述所选数据元素的文件标题输出到文件,以及将所述所选数据元素输出到所述文件。
45.如权利要求44所述的系统,其特征在于:所述数据结构是散列表。
46.如权利要求45所述的系统,其特征在于:所选的所述数据元素是通过评估诸如散列表的程序代码块来选择的。
47.如权利要求41所述的系统,其特征在于:所述文件标题是能够在运行时评估的散列表。
48.一种用于提取数据的系统,所述系统包括:
处理器,读取包含可执行代码的文件标题,其中,所述处理器执行所述代码,以确定要从所有数据中提取的数据;以及
数据抓取例程,从数据结构中获取要提取的所述数据。
49.如权利要求48所述的系统,其特征在于还包括调度例程,将所述提取的数据加载到输出文件。
50.如权利要求48所述的系统,其特征在于:所述数据结构是散列表。
51.一种用于处理数据的系统,所述系统包括:
处理器,读取包含可执行代码的文件标题;以及
操作系统,支持执行所述可执行代码的解释语言,其中,所述处理器从所述执行代码确定所需操作,并对数据执行所需操作。
52.如权利要求51所述的系统,其特征在于:所述处理器在执行所述所需操作之后,输出结果数据。
53.如权利要求51所述的系统,其特征在于:所述所需操作是用在运行时执行的语言写成的。
54.如权利要求53所述的系统,其特征在于:所述所需操作是从下述操作的组中所选的任何一种操作:加、减、乘、除,计算某类中示例的总数,列举某类的唯一示例,计算描述统计,例如标准偏差、标准平均误差、中值、算术平均值、方差、协方差、相关系数以及优势率。
55.一种用于将任务和数据调度给位于网络上的中央处理单元的系统,所述系统包括:
操作系统,支持执行放置在文件标题中的代码的解释语言;以及
调度例程,确定至少一个中央处理单元(如果有的话)在所述网络上可用,并且根据可用性将所述任务调度给所述中央处理单元。
56.如权利要求55所述的系统,其特征在于:通过读取控制文件确定所述中央处理单元的所述可用性。
57.如权利要求56所述的系统,其特征在于:所述控制文件为在运行时进行评估而格式化成散列表。
58.如权利要求56所述的系统,其特征在于:所述调度例程通过重写表示所述中央处理单元的所述状态的新控制文件来更新所述控制文件。
59.如权利要求55所述的系统,其特征在于:所述调度例程组合至少一条由所述中央处理单元执行的命令,并将所述至少一条命令发送给所述中央处理单元以便执行。
60.如权利要求59所述的系统,其特征在于:所述命令包括创建名称来标识所述任务。
61.如权利要求55所述的系统,其特征在于:所述调度例程标记所述任务的状态。
62.如权利要求61所述的系统,其特征在于:所述任务的所述状态是正在运行或者已经完成。
63.如权利要求55所述的系统,其特征在于:如果所有中央处理单元都忙,则所述调度例程在经过某个时间段之后,进行重试以确定所述至少一个中央处理单元的可用性。
64.如权利要求63所述的系统,其特征在于:所述时间段可以由用户确定。
65.如权利要求64所述的系统,其特征在于:所述时间段为15分钟。
66.一种用于加载数据的系统,所述包括:
处理器,读取包含可执行代码的文件标题,并执行所述代码以获取文件标题信息;以及
预处理例程,根据所述文件标题信息来建立结构化询问语言。
67.一种用于在网络上运行任务的系统,所述系统包括:
预处理例程,从所有数据中建立至少一个数据分组;
数据标题,包含标识所述数据分组的可执行代码;以及
调度例程,将所述数据分组发送给可用的处理器,其中,所述可用处理器使用所述数据分组以及包含在所述标题的所述可执行代码中的指令进行工作,以获取结果数据;以及
主处理器,收集返回的结果数据,其中,返回的结果数据经重建以形成结果。
68.一种用于在网络上运行任务的系统,所述系统包括:
处理器,读取输入数据文件;
预处理例程,将所述输入数据放入数据结构,从所述数据结构中选择数据元素,将描述所述所选数据元素的文件标题输出到文件,以及将所述所选数据元素输出到所述文件,所述处理器读取包含可执行代码的所述文件标题,其中,所述处理器执行所述代码以确定要从所有数据中提取的数据;以及
数据抓取例程,从表中获取要提取的所述数据。
69.如权利要求68所述的系统,其特征在于还包括调度例程,将所述提取的数据加载到输出文件。
70.如权利要求68所述的系统,其特征在于:所述数据结构是散列表。
71.一种用于在网络上运行任务的系统,所述系统包括:
处理器,读取包含可执行代码的文件标题;以及
操作系统,支持执行所述可执行代码的解释语言,其中,所述处理器从所述所执行代码确定所需操作,并对数据执行所述所需操作,所述处理器在执行所述操作之后输出结果数据。
72.如权利要求71所述的系统,其特征在于:所述所需操作是用运行时执行的语言写成的。
73.如权利要求72所述的系统,其特征在于:所述所需操作是从下述操作的组中所选的任何一种操作:加、减、乘、除,计算某类中示例的总数,列举某类的唯一示例,计算描述统计,例如标准偏差、标准平均误差、中值、算术平均值、方差、协方差、相关系数以及优势率。
74.一种用于将任务和数据调度给位于网络上的中央处理单元的系统,包括:
操作系统,支持执行放置在文件标题中的代码的解释语言;以及
调度例程,确定至少一个中央处理单元(如果有的话)在所述网络上可用,并且根据可用性将所述任务调度给所述中央处理单元,其中,如果所有中央处理单元都忙,则所述调度例程在经过一个时间段之后,进行重试以便确定所述至少一个中央处理的所述可用性。
75.如权利要求74所述的系统,其特征在于:通过读取控制文件确定所述中央处理单元的所述可用性。
76.如权利要求75所述的系统,其特征在于:所述调度例程更新所述控制文件。
77.如权利要求74所述的系统,其特征在于:所述调度例程标记所述任务的状态。
78.如权利要求77所述的系统,其特征在于:所述任务的所述状态是正在运行或者已经完成。
79.如权利要求74所述的系统,其特征在于:所述时间段可以由用户确定。
80.如权利要求79所述的系统,其特征在于:所述时间段为15分钟。
CNB018077366A 2000-02-11 2001-02-06 迅速完成网络上分布的数据处理任务的系统及方法 Expired - Lifetime CN1262915C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/502,692 2000-02-11
US09/502,692 US6775831B1 (en) 2000-02-11 2000-02-11 System and method for rapid completion of data processing tasks distributed on a network

Publications (2)

Publication Number Publication Date
CN1422403A true CN1422403A (zh) 2003-06-04
CN1262915C CN1262915C (zh) 2006-07-05

Family

ID=23998951

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018077366A Expired - Lifetime CN1262915C (zh) 2000-02-11 2001-02-06 迅速完成网络上分布的数据处理任务的系统及方法

Country Status (10)

Country Link
US (1) US6775831B1 (zh)
EP (1) EP1277108A4 (zh)
JP (1) JP2003523010A (zh)
KR (1) KR100502878B1 (zh)
CN (1) CN1262915C (zh)
AU (2) AU2001241453B2 (zh)
CA (1) CA2400216C (zh)
DE (1) DE10195549T1 (zh)
GB (1) GB2392997B (zh)
WO (1) WO2001059561A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729250A (zh) * 2012-10-11 2014-04-16 国际商业机器公司 用于选择被配置为满足一组要求的数据节点的方法和系统
CN113660530A (zh) * 2021-07-27 2021-11-16 中央广播电视总台 节目流数据抓取方法、装置、计算机设备及可读存储介质

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233942B2 (en) * 2000-10-10 2007-06-19 Truelocal Inc. Method and apparatus for providing geographically authenticated electronic documents
US7685224B2 (en) * 2001-01-11 2010-03-23 Truelocal Inc. Method for providing an attribute bounded network of computers
US20020174244A1 (en) * 2001-05-18 2002-11-21 Telgen Corporation System and method for coordinating, distributing and processing of data
US8024395B1 (en) 2001-09-04 2011-09-20 Gary Odom Distributed processing multiple tier task allocation
US8590013B2 (en) 2002-02-25 2013-11-19 C. S. Lee Crawford Method of managing and communicating data pertaining to software applications for processor-based devices comprising wireless communication circuitry
US7010596B2 (en) * 2002-06-28 2006-03-07 International Business Machines Corporation System and method for the allocation of grid computing to network workstations
US7127446B1 (en) * 2002-10-30 2006-10-24 Advanced Micro Devices, Inc. File system based task queue management
US7243098B2 (en) * 2002-12-19 2007-07-10 International Business Machines Corporation Method, system, and program for optimizing aggregate processing
US20050149507A1 (en) * 2003-02-05 2005-07-07 Nye Timothy G. Systems and methods for identifying an internet resource address
US7953667B1 (en) * 2003-02-07 2011-05-31 Britesmart Corp. Method and system to detect invalid and fraudulent impressions and clicks in web-based advertisement systems
US7325002B2 (en) * 2003-04-04 2008-01-29 Juniper Networks, Inc. Detection of network security breaches based on analysis of network record logs
US7613687B2 (en) * 2003-05-30 2009-11-03 Truelocal Inc. Systems and methods for enhancing web-based searching
US7849452B2 (en) * 2004-04-23 2010-12-07 Waratek Pty Ltd. Modification of computer applications at load time for distributed execution
US20050257219A1 (en) * 2004-04-23 2005-11-17 Holt John M Multiple computer architecture with replicated memory fields
US7844665B2 (en) * 2004-04-23 2010-11-30 Waratek Pty Ltd. Modified computer architecture having coordinated deletion of corresponding replicated memory locations among plural computers
US20050262513A1 (en) * 2004-04-23 2005-11-24 Waratek Pty Limited Modified computer architecture with initialization of objects
US7707179B2 (en) * 2004-04-23 2010-04-27 Waratek Pty Limited Multiple computer architecture with synchronization
US20060095483A1 (en) * 2004-04-23 2006-05-04 Waratek Pty Limited Modified computer architecture with finalization of objects
US20060253844A1 (en) * 2005-04-21 2006-11-09 Holt John M Computer architecture and method of operation for multi-computer distributed processing with initialization of objects
US7512626B2 (en) * 2005-07-05 2009-03-31 International Business Machines Corporation System and method for selecting a data mining modeling algorithm for data mining applications
US7516152B2 (en) * 2005-07-05 2009-04-07 International Business Machines Corporation System and method for generating and selecting data mining models for data mining applications
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8433297B2 (en) 2005-11-05 2013-04-30 Jumptag, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8156128B2 (en) 2005-09-14 2012-04-10 Jumptap, Inc. Contextual mobile content placement on a mobile communication facility
US9471925B2 (en) 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US8311888B2 (en) 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US8364521B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US7603360B2 (en) 2005-09-14 2009-10-13 Jumptap, Inc. Location influenced search results
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US7769764B2 (en) 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US8364540B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US8131271B2 (en) 2005-11-05 2012-03-06 Jumptap, Inc. Categorization of a mobile user profile based on browse behavior
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US7548915B2 (en) 2005-09-14 2009-06-16 Jorey Ramer Contextual mobile content placement on a mobile communication facility
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US8666376B2 (en) 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US7860871B2 (en) 2005-09-14 2010-12-28 Jumptap, Inc. User history influenced search results
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US9201979B2 (en) 2005-09-14 2015-12-01 Millennial Media, Inc. Syndication of a behavioral profile associated with an availability condition using a monetization platform
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US8302030B2 (en) 2005-09-14 2012-10-30 Jumptap, Inc. Management of multiple advertising inventories using a monetization platform
US8832100B2 (en) 2005-09-14 2014-09-09 Millennial Media, Inc. User transaction history influenced search results
US9076175B2 (en) 2005-09-14 2015-07-07 Millennial Media, Inc. Mobile comparison shopping
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US8027879B2 (en) 2005-11-05 2011-09-27 Jumptap, Inc. Exclusivity bidding for mobile sponsored content
US7577665B2 (en) 2005-09-14 2009-08-18 Jumptap, Inc. User characteristic influenced search results
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US8290810B2 (en) 2005-09-14 2012-10-16 Jumptap, Inc. Realtime surveying within mobile sponsored content
US8238888B2 (en) 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US7660960B2 (en) * 2005-10-25 2010-02-09 Waratek Pty, Ltd. Modified machine architecture with partial memory updating
US20070100828A1 (en) * 2005-10-25 2007-05-03 Holt John M Modified machine architecture with machine redundancy
US7761670B2 (en) * 2005-10-25 2010-07-20 Waratek Pty Limited Modified machine architecture with advanced synchronization
US7849369B2 (en) * 2005-10-25 2010-12-07 Waratek Pty Ltd. Failure resistant multiple computer system and method
US7958322B2 (en) * 2005-10-25 2011-06-07 Waratek Pty Ltd Multiple machine architecture with overhead reduction
US8015236B2 (en) * 2005-10-25 2011-09-06 Waratek Pty. Ltd. Replication of objects having non-primitive fields, especially addresses
US7581069B2 (en) * 2005-10-25 2009-08-25 Waratek Pty Ltd. Multiple computer system with enhanced memory clean up
US8175585B2 (en) 2005-11-05 2012-05-08 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8571999B2 (en) 2005-11-14 2013-10-29 C. S. Lee Crawford Method of conducting operations for a social network application including activity list generation
JP4402051B2 (ja) * 2006-01-16 2010-01-20 株式会社ソニー・コンピュータエンタテインメント データ処理システムおよびデータ処理方法
US7682961B2 (en) * 2006-06-08 2010-03-23 International Business Machines Corporation Methods of forming solder connections and structure thereof
WO2008040068A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Advanced synchronization and contention resolution
US20080126322A1 (en) * 2006-10-05 2008-05-29 Holt John M Synchronization with partial memory replication
US20080133690A1 (en) * 2006-10-05 2008-06-05 Holt John M Contention detection and resolution
US20100121935A1 (en) * 2006-10-05 2010-05-13 Holt John M Hybrid replicated shared memory
US20080155127A1 (en) * 2006-10-05 2008-06-26 Holt John M Multi-path switching networks
US20080114962A1 (en) * 2006-10-05 2008-05-15 Holt John M Silent memory reclamation
US8086805B2 (en) * 2006-10-05 2011-12-27 Waratek Pty Ltd. Advanced contention detection
US20080130631A1 (en) * 2006-10-05 2008-06-05 Holt John M Contention detection with modified message format
WO2008040085A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Network protocol for network communications
WO2008040083A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Adding one or more computers to a multiple computer system
US20080126703A1 (en) * 2006-10-05 2008-05-29 Holt John M Cyclic redundant multiple computer architecture
US7958329B2 (en) * 2006-10-05 2011-06-07 Waratek Pty Ltd Hybrid replicated shared memory
US20080133869A1 (en) * 2006-10-05 2008-06-05 Holt John M Redundant multiple computer architecture
US20080151902A1 (en) * 2006-10-05 2008-06-26 Holt John M Multiple network connections for multiple computers
US7849151B2 (en) * 2006-10-05 2010-12-07 Waratek Pty Ltd. Contention detection
WO2008040082A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Multiple computer system with dual mode redundancy architecture
US20080134189A1 (en) * 2006-10-05 2008-06-05 Holt John M Job scheduling amongst multiple computers
US20080114899A1 (en) * 2006-10-05 2008-05-15 Holt John M Switch protocol for network communications
US20080140863A1 (en) * 2006-10-05 2008-06-12 Holt John M Multiple communication networks for multiple computers
US20080126506A1 (en) * 2006-10-05 2008-05-29 Holt John M Multiple computer system with redundancy architecture
US20080120478A1 (en) * 2006-10-05 2008-05-22 Holt John M Advanced synchronization and contention resolution
US20080133691A1 (en) * 2006-10-05 2008-06-05 Holt John M Contention resolution with echo cancellation
WO2008040074A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Contention detection with data consolidation
WO2008040070A1 (en) * 2006-10-05 2008-04-10 Waratek Pty Limited Asynchronous data transmission
US20080250221A1 (en) * 2006-10-09 2008-10-09 Holt John M Contention detection with data consolidation
US8316190B2 (en) * 2007-04-06 2012-11-20 Waratek Pty. Ltd. Computer architecture and method of operation for multi-computer distributed processing having redundant array of independent systems with replicated memory and code striping
US20080277314A1 (en) * 2007-05-08 2008-11-13 Halsey Richard B Olefin production utilizing whole crude oil/condensate feedstock and hydrotreating
GB0714394D0 (en) * 2007-07-24 2007-09-05 Keycorp Ltd Graphic user interface parsing
US8682875B2 (en) * 2007-10-24 2014-03-25 International Business Machines Corporation Database statistics for optimization of database queries containing user-defined functions
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US10558581B1 (en) * 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US9448742B2 (en) * 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
CN107133086B (zh) 2016-02-29 2020-09-04 阿里巴巴集团控股有限公司 基于分布式系统的任务处理方法、装置和系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3913070A (en) 1973-02-20 1975-10-14 Memorex Corp Multi-processor data processing system
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US5146559A (en) * 1986-09-29 1992-09-08 Hitachi, Ltd. System for recognizing program constitution within a distributed processing system by collecting constitution messages generated by different processors
CA1322422C (en) * 1988-07-18 1993-09-21 James P. Emmond Single-keyed indexed file for tp queue repository
US5025369A (en) * 1988-08-25 1991-06-18 David Schwartz Enterprises, Inc. Computer system
JP2785455B2 (ja) * 1990-07-03 1998-08-13 株式会社日立製作所 コンピュータの制御命令実行方法
JP3200932B2 (ja) * 1992-03-24 2001-08-20 株式会社日立製作所 電子対話システム
WO1993020511A1 (en) * 1992-03-31 1993-10-14 Aggregate Computing, Inc. An integrated remote execution system for a heterogenous computer network environment
JPH0695986A (ja) * 1992-06-19 1994-04-08 Westinghouse Electric Corp <We> リアルタイムデータ・イメージングネットワークシステム及びその操作方法
US5495618A (en) * 1992-08-26 1996-02-27 Eastman Kodak Company System for augmenting two dimensional data sets in a two dimensional parallel computer system
JP3003440B2 (ja) 1993-01-19 2000-01-31 株式会社日立製作所 負荷分散制御方法および分散処理システム
US5995996A (en) 1993-06-15 1999-11-30 Xerox Corporation Pipelined image processing system for a single application environment
US5394394A (en) * 1993-06-24 1995-02-28 Bolt Beranek And Newman Inc. Message header classifier
EP0694838A1 (en) * 1994-07-25 1996-01-31 International Business Machines Corporation Step level recovery
US5687372A (en) * 1995-06-07 1997-11-11 Tandem Computers, Inc. Customer information control system and method in a loosely coupled parallel processing environment
US5794210A (en) 1995-12-11 1998-08-11 Cybergold, Inc. Attention brokerage
US5778367A (en) 1995-12-14 1998-07-07 Network Engineering Software, Inc. Automated on-line information service and directory, particularly for the world wide web
AU1522797A (en) 1995-12-15 1997-07-03 Softpages, Inc. (Delaware Corporation), The Method for computer aided advertisement
US5812793A (en) * 1996-06-26 1998-09-22 Microsoft Corporation System and method for asynchronous store and forward data replication
US5944779A (en) * 1996-07-02 1999-08-31 Compbionics, Inc. Cluster of workstations for solving compute-intensive applications by exchanging interim computation results using a two phase communication protocol
US5946463A (en) * 1996-07-22 1999-08-31 International Business Machines Corporation Method and system for automatically performing an operation on multiple computer systems within a cluster
US5862223A (en) 1996-07-24 1999-01-19 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically-assisted commercial network system designed to facilitate and support expert-based commerce
US6285987B1 (en) 1997-01-22 2001-09-04 Engage, Inc. Internet advertising system
CA2209549C (en) * 1997-07-02 2000-05-02 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for loading data into a database in a multiprocessor environment
US6185698B1 (en) * 1998-04-20 2001-02-06 Sun Microsystems, Incorporated Method and apparatus using ranking to select repair nodes in formation of a dynamic tree for multicast repair
US6151633A (en) * 1998-04-20 2000-11-21 Sun Microsystems, Inc. Method and apparatus for routing and congestion control in multicast networks
US6009455A (en) * 1998-04-20 1999-12-28 Doyle; John F. Distributed computation utilizing idle networked computers
US6078866A (en) 1998-09-14 2000-06-20 Searchup, Inc. Internet site searching and listing service based on monetary ranking of site listings
US6336118B1 (en) * 1998-12-03 2002-01-01 International Business Machines Corporation Framework within a data processing system for manipulating program objects
US6292888B1 (en) * 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
US6269373B1 (en) * 1999-02-26 2001-07-31 International Business Machines Corporation Method and system for persisting beans as container-managed fields
US6269361B1 (en) 1999-05-28 2001-07-31 Goto.Com System and method for influencing a position on a search result list generated by a computer network search engine
US20020004735A1 (en) 2000-01-18 2002-01-10 William Gross System and method for ranking items

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729250A (zh) * 2012-10-11 2014-04-16 国际商业机器公司 用于选择被配置为满足一组要求的数据节点的方法和系统
CN103729250B (zh) * 2012-10-11 2017-04-12 国际商业机器公司 用于选择被配置为满足一组要求的数据节点的方法和系统
CN113660530A (zh) * 2021-07-27 2021-11-16 中央广播电视总台 节目流数据抓取方法、装置、计算机设备及可读存储介质
CN113660530B (zh) * 2021-07-27 2024-03-19 中央广播电视总台 节目流数据抓取方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
AU2001241453B2 (en) 2004-10-14
CA2400216C (en) 2012-08-28
WO2001059561A9 (en) 2002-02-07
CA2400216A1 (en) 2001-08-16
KR20020079849A (ko) 2002-10-19
JP2003523010A (ja) 2003-07-29
GB0219491D0 (en) 2002-10-02
DE10195549T1 (de) 2003-03-13
GB2392997A (en) 2004-03-17
EP1277108A1 (en) 2003-01-22
CN1262915C (zh) 2006-07-05
GB2392997B (en) 2005-03-30
WO2001059561A1 (en) 2001-08-16
US6775831B1 (en) 2004-08-10
EP1277108A4 (en) 2007-01-03
KR100502878B1 (ko) 2005-07-21
AU4145301A (en) 2001-08-20

Similar Documents

Publication Publication Date Title
CN1262915C (zh) 迅速完成网络上分布的数据处理任务的系统及方法
US20230126005A1 (en) Consistent filtering of machine learning data
US10402424B1 (en) Dynamic tree determination for data processing
US10713589B1 (en) Consistent sort-based record-level shuffling of machine learning data
US11100420B2 (en) Input processing for machine learning
US9996593B1 (en) Parallel processing framework
US7996838B2 (en) System and program storage device for facilitating workload management in a computing environment
EP1544753A1 (en) Partitioned database system
AU2001241453A1 (en) System and method for rapid completion of data processing tasks distributed on a network
GB2327787A (en) Data classification and retrieval system
KR100538371B1 (ko) 분산데이터처리환경에 레거시 어플리케이션을 통합시키기위한 방법 및 시스템
US9389913B2 (en) Resource assignment for jobs in a system having a processing pipeline that satisfies a data freshness query constraint
CN1924915A (zh) 基于数据仓库技术的图书馆智能管理系统
Khalid et al. A comparative analysis of big data frameworks: An adoption perspective
Skluzacek et al. A serverless framework for distributed bulk metadata extraction
MAALA et al. Cluster trace analysis for performance enhancement in cloud computing environments
Sarkar et al. MapReduce: A comprehensive study on applications, scope and challenges
Monostori et al. Parallel overlap and similarity detection in semi-structured document collections
Ma et al. Load and storage balanced posting file partitioning for parallel information retrieval
EP3910499A1 (en) Methods and systems for cloud computing
Karau et al. Scaling Python with Dask
Kumar Technology Review-Big Data, Hadoop, and MapReduce
Pandey et al. Data-Lake: Requirement to Deployment
Furtado Scalability and realtime on big data, MapReduce, NoSQL and Spark
Thakur et al. Comparative Analyses of Scheduler

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20090306

Address after: American California

Patentee after: Yahoo Corp.

Address before: American California

Patentee before: Overture Services Inc.

ASS Succession or assignment of patent right

Owner name: YAHOO| CO.,LTD.

Free format text: FORMER OWNER: WAFUL TOURS SERVICES

Effective date: 20090306

ASS Succession or assignment of patent right

Owner name: FEIYANG MANAGEMENT CO., LTD.

Free format text: FORMER OWNER: YAHOO CORP.

Effective date: 20150331

TR01 Transfer of patent right

Effective date of registration: 20150331

Address after: The British Virgin Islands of Tortola

Patentee after: Fly upward Management Co., Ltd

Address before: American California

Patentee before: Yahoo Corp.

CX01 Expiry of patent term

Granted publication date: 20060705

CX01 Expiry of patent term