CN103392169A - 排序 - Google Patents

排序 Download PDF

Info

Publication number
CN103392169A
CN103392169A CN2012800092873A CN201280009287A CN103392169A CN 103392169 A CN103392169 A CN 103392169A CN 2012800092873 A CN2012800092873 A CN 2012800092873A CN 201280009287 A CN201280009287 A CN 201280009287A CN 103392169 A CN103392169 A CN 103392169A
Authority
CN
China
Prior art keywords
data
impact damper
data element
data elements
boundary condition
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
CN2012800092873A
Other languages
English (en)
Other versions
CN103392169B (zh
Inventor
C.W.斯坦菲尔
C.R.范曼
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.)
Ab Initio Technology LLC
Ab Initio Software LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of CN103392169A publication Critical patent/CN103392169A/zh
Application granted granted Critical
Publication of CN103392169B publication Critical patent/CN103392169B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/226Priority queue, i.e. 1 word in, 1 word out sorter; Output word, i.e. min or max of words in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开一种系统和技术,其包括:在一个方面中,一种计算机实现的方法,所述方法包括在缓冲器中存储接收到的数据元素流,在接收到数据元素流的每个单个数据元素之后(404),将边界条件应用于在缓冲器中存储的数据元素(406),以及基于边界条件从缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流(408)。

Description

排序
相关申请的交叉引用
本申请对2011年2月18日提交的、名称为“Sorting”的美国申请序列No.13/031,056要求优先权,所述美国申请的全部内容通过引用合并于此。
技术领域
本公开涉及排序。
背景技术
与各种数据处理技术类似,排序技术可以在许多应用中起重要作用。例如,在查看者被呈现排序的数据列表(基于一个或多个排序参数)时可以由查看者快速识别数据趋势和差异。通过将列表排序为例如递增或递减顺序,可以直观地辨别数据边界、范围和其他量。可以通过许多方法评估排序算法的效率,例如通过产生排序的列表需要执行的数据元素比较和数据元素移动的数量的函数。
发明内容
在一个方面中,通常,一种计算机实现的方法包括在缓冲器中存储接收到的数据元素流,在接收到数据元素流的每个单个数据元素之后,将边界条件应用于缓冲器中存储的数据元素,以及基于边界条件从缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
多个方面可以包括下列内容中的一个或多个。
从缓冲器产生一个或多个数据元素可以包括从缓冲器产生至少最小数据元素。从缓冲器产生一个或多个数据元素可以包括从缓冲器产生至少最大数据元素。每个接收到的数据可以表示数据记录产生时间。可以根据反向时间顺序将数据元素的输出流排序。可以将接收到的数据元素流的数据元素部分排序。接收到的数据元素流的数据元素可以基本上异步到达缓冲器。在缓冲器中存储接收到的数据元素流可以包括在缓冲器中由缓冲器的排序顺序确定的位置处插入接收到的数据元素流的每个单个元素。
将边界条件应用于缓冲器中存储的数据元素可以包括从在缓冲器中存储的数据元素识别最小数据元素,以及确定最小数据元素和接收到的单个数据元素之间的差是否超过阈值。基于边界条件从缓冲器产生一个或多个数据元素可以包括如果一个或多个数据元素超过阈值,则从缓冲器产生一个或多个数据元素。将边界条件应用于在缓冲器中存储的数据元素可以包括确定是否超过缓冲器的最大大小。基于边界条件从缓冲器产生一个或多个数据元素可以包括如果超过缓冲器的最大大小,则从缓冲器产生一个或多个数据元素。
将边界条件应用于在缓冲器中存储的数据元素可以包括确定新接收到的数据元素是否超过临界值(cutoff value)。所述方法还可以包括如果元素不超过临界值,则缓冲新接收到的数据元素。基于边界条件从缓冲器产生一个或多个数据元素可以包括如果新接收到的数据元素不超过阈值,则产生新接收到的数据元素作为从缓冲器产生的一个或多个数据元素。可以通过跳跃列表数据结构实现缓冲器。可以通过二叉树堆数据结构实现缓冲器。接收到的数据元素流中的各个数据元素中的一个或多个可以从输入到基于图的计算系统中的组件的数据记录导出。
在另一方面中,通常,一种计算机实现的方法可以包括在接收到数据元素流的每个单个数据元素之后将边界条件应用于接收到的数据元素,基于边界条件的第一结果存储数据元素流的一个或多个数据元素,以及基于边界条件的第二结果产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
在另一方面中,通常,一种存储用于将数据元素排序的计算机程序的计算机可读存储介质可以包括这样的指令,所述指令使得计算系统在缓冲器中存储接收到的数据元素流,以及处理接收到的数据元素流。处理接收到的数据元素流可以包括在接收到数据元素流的每个单个数据元素之后将边界条件应用于在缓冲器中存储的数据元素,以及基于边界条件从缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
在另一方面中,通常,一种用于将数据元素排序的计算系统可以包括:数据存储系统,其用于在缓冲器中存储接收到的数据元素流;以及至少一个处理器,其被配置为处理接收到的数据元素流。所述处理可以包括在接收到数据元素流的每个单个数据元素之后将边界条件应用于在缓冲器中存储的数据元素,以及基于边界条件从缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
在另一方面中,通常,一种用于将数据元素排序的计算系统可以包括用于存储接收到的数据元素流的装置,以及用于处理接收到的数据元素流的装置。所述处理可以包括在接收到数据元素流的每个单个数据元素之后将边界条件应用于在缓冲器中存储的数据元素,以及基于边界条件从缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
多个方面可以包括下列优点中的一个或多个。
在涉及大部分排序的接收到的数据元素流的某些实现方式中,除了不与大多数元素一样按适当顺序的少数元素以外,对于大部分元素可以按排序顺序。现有技术可能消耗大量计算资源和处理时间来将元素排序。在某些示例中,在这里描述的技术可以利用大多数数据元素按适当顺序到达的事实,从而可以节约计算资源和处理时间。通过在接收到流的每个单个数据元素之后将边界条件应用于在缓冲器中存储的数据元素,可以产生根据预定的顺序排序的数据元素的输出流。
根据下列描述和根据权利要求,本发明的其他特征和优点将变得明显。
附图说明
图1是窗口排序系统的框图。
图2图示通过一系列的窗口排序操作的排序缓冲器。
图3是用于管理基于图的计算的计算系统的框图。
图4是窗口排序过程的流程图。
具体实施方式
参考图1,示例排序系统100包括在计算机系统104(例如,诸如服务一个或多个客户端系统的Web服务器的服务器)上执行的数据源应用102,所述数据源应用102向排序模块108(在这种布置中由另一计算机系统108执行)提供数据元素或项目106a-n(总地106)的流。可以在某个时间段上(例如,24小时时段)由源应用102生成元素106,并且在所述元素106从存储器(例如,存储设备)产生或检索时可以发送所述元素106。元素106可以表示各种类型的信息,例如分配到由源应用102生成的数据记录(未示出)的一个或多个属性的值。在某些实现方式中,元素106可以表示根据由源应用102生成的一个或多个数据记录计算的值。可以由元素106表示的其他信息可以包括时间戳,例如当由源应用102创建数据记录时的相应的时间。例如,源应用102可以创建电话数据记录来记录关于在特定时间段期间进行的电话呼叫的信息。在这种情况下,每个时间戳数据元素可以表示当对应的电话呼叫结束时的精确时间。
在另一实现方式中,每个时间戳数据元素可以表示当对应的电话呼叫开始时的精确时间。可以通过从当呼叫结束时的时间减去呼叫的长度来计算当呼叫开始时的时间。为了使这种计算更容易,可以在由源应用生成的电话记录中存储关于呼叫的长度的信息。
在某些布置中,流106内的数据元素的单个定位可以采用各种形式。例如,数据元素的顺序可以是完全随机或稍微确定的(例如,部分排序、大部分或几乎完全排序等)。对于将元素大部分排序的情况,仅相对较小百分比的元素可能是未排序的或乱序的。这样,在具有相对大量数据元素(例如,百万)的流中,大约0.1%-10%的元素可能是乱序的。通过示例的方式,在当源应用102生成表示电话呼叫的终止时间的时间戳数据元素时的情况下,元素可以基本上异步到达排序模块108并偶尔乱序到达。例如,由源应用102在第一时间段期间产生的数据可以在另一时间段期间(迟于第一时间段)产生的数据之后到达排序模块108。
在大部分排序的流中,除了不与大多数元素一样按适当顺序的少数元素以外,对于大部分元素可以按排序顺序。为了将这样的离群元素插入流内的适当位置中,现有排序技术通常处理接收到的流的所有数据元素。这样,这些技术可能消耗大量计算资源和处理时间来将元素排序,并且可能产生可以与数据元素的数量成比例增长的计算耗费(drain)。然而,通过利用大多数元素按适当顺序到达的事实,可以开发排序技术来节约计算资源和处理时间。
在示例排序技术中,排序模块108通过将输入元素临时存储在排序缓冲器中并在适当时间从缓冲器驱出元素118a-c(总地118),而将几乎完全排序的输入流排序。元素驱出可以根据驱出优先级顺序(例如,递增顺序、递减顺序等)发生。此外,当违反施加于元素上的条件(例如,在缓冲器中存储的任何两个元素之间的最大可允许差)时驱出发生。一旦被驱出,驱出元素118可以被用于形成排序的元素的输出流。
在某些示例中,可以通过将已经按排序顺序的输入元素直接转发到输出流,同时在排序缓冲器中临时存储乱序元素,并将所述乱序元素在适当时间释放到输出流中,来产生排序的输出流。
排序模块108可以被实现为例如在计算机系统110上执行的软件应用,并且可以提供用于控制排序缓冲器112(或多个排序缓冲器)的指令。所述指令可以被存储在存储设备114(例如,硬盘驱动存储器、随机存取存储器等)中。存储设备可以被实现为计算机系统110的部分或单独的独立存储器设备。
在示例中,根据优先级顺序,例如从缓冲器驱出元素的顺序,将排序缓冲器112中存储的元素116排序。优先级顺序可以基于元素的预定的特性(例如,元素的数值)。这样,如果根据数值的递增顺序将元素排序,则可以首先驱出较小的元素,而稍后可以驱出较大的元素。如果根据递减顺序将元素排序,则可以首先驱出较大的元素,而稍后可以驱出较小的元素。当在排序缓冲器中接收到元素时,可以根据优先级顺序将所述元素排序。在涉及时间戳数据元素的情况下,可以根据时间顺序或反向时间顺序将元素排序。例如,可以按反向时间顺序布置表示电话呼叫的终止时间的元素。
驱出的数据元素118可以是排序缓冲器中存储的元素的最小值(或最大值,取决于优选的输出)元素。利用时间戳元素,驱出的元素可以是排序缓冲器中存储的元素的最近值(或最早,取决于优选的输出)元素。可以向正在另一计算设备(例如,计算机系统122)上执行的一个或多个模块、应用(例如,接收应用120)等提供驱出的元素。接收应用120可以是用于接收和处理基本上排序的输出流的任意软件应用。
在一种布置中,排序缓冲器的一端可以被配置为接收新到达的元素。在传播通过排序缓冲器(从该特定端)时,可以由排序模块108处理接收到的数据元素(与其他元素一起),使得在所述元素接近缓冲器的另一端(最终从所述另一端驱出所述元素)时使所述元素位于适当的数据元素之间。
因为输入元素是大部分或几乎完全排序的,插入排序缓冲器112中通常发生在缓冲器的端部。这样的插入操作可以被认为花费O(1)时间的时段。只要按排序顺序接收元素,就将元素逐步加入到排序缓冲器的连续存储器位置。然而,如果元素乱序到达,则所需的插入时间可能更长来容纳找到适当的存储器位置来插入元素所需的时间。例如,如果用于接收乱序元素的位置离排序缓冲器的端部是距离“k”,识别适当的位置可能需要O(log(k))时间的时段。一旦被识别,插入元素所需的时间可以被认为是常数。如果在排序缓冲器中已经存在“n”个存储的数据元素,则插入位置可以被认为离排序缓冲器的端部不超过“n”个位置。因此,最坏情况下的插入时间可以是O(log(n))时间。
可以通过被配置为按排序顺序接收和存储数据元素的数据结构(例如,优先级队列数据结构)来实现排序缓冲器112。当新的数据元素到达时,排序模块108可以将元素插入如由排序缓冲器中的现行排序顺序(实现为优先级队列)确定的适当的位置中。此外,排序模块108可以基于驱出优先级顺序识别将驱出的一个或多个数据元素(例如,缓冲器中最小或最大数据元素)。一旦被识别,排序模块就可以开始从排序缓冲器驱出所识别的元素。
在某些实现方式中,排序缓冲器112可以是平衡二叉树数据结构(例如,堆二叉树数据结构)。堆二叉树数据结构(通常仅被称为堆)通常被认为满足两个条件。第一个条件是子节点的优先级至少与父节点的优先级一样大。因此,在树顶端的节点(即,根节点)可以被认为具有最小优先级。第二个条件是从根节点到叶节点的路径在高度上有最多一级节点的不同。
在一个实现方式中,可以通过跳跃列表数据结构实现排序缓冲器。跳跃列表数据结构及其相关联的算法是线性链表的变体,并且可以在需要频繁插入带键的数据元素的情况下改进排序性能。跳跃列表数据结构包括数据元素(或节点)的顺序线性链表,其中某些元素具有跳过中间数据元素的附加的指针,从而增加数据元素的搜索速度和效率。
通过将排序缓冲器实现为跳跃列表数据结构,从缓冲器检索例如最小数据元素所需的时间可以是用于检索最小数据元素的O(1)时间。插入时间可以是O(1)时间来适当地插入数据元素(例如,相邻于最近插入的元素插入所述元素)。如果插入位置与最近元素不相邻,则插入时间可以是O(log N)时间。驱出时间可以是用于读出“k”个元素(例如,具有最大值的元素)的O(k)。在William Pugh的、名称为“Skip lists:A probabilistic alternative to Balancedtrees”,Communications of the ACM,June1990,pp.668-676的论文中进一步描述了跳跃列表数据结构,所述论文的内容通过引用整体合并于此。
在某些示例中,可以通过“二叉树堆”数据结构实现排序缓冲器112。二叉树堆数据结构是每个节点具有随机分配的优先级属性以及键的二叉搜索树。如在典型的二叉搜索树中一样节点按关于它们的键的顺序。即,关于键,节点的左子树仅包含具有小于节点的键的键的节点,而节点的右子树仅包含具有大于或等于节点的键的键的节点。此外,关于节点的优先级属性节点按“堆顺序”,使得每个子节点具有至少与父节点的优先级属性一样大的优先级属性。在Aragon、Cecilia R.和Seidel,Raimund的、名称为“Randomized SearchTrees”,Proc.30th Symp.Foundations of Computer Science(FOCS1989)中描述了二叉树堆数据结构,所述论文的内容通过引用整体合并于此。
在实现方式中,排序模块108使得边界条件被应用在排序缓冲器112上,其被用于确定是否从排序缓冲器驱出元素或何时从排序缓冲器驱出元素。边界条件可以定义在排序缓冲器中允许的“窗口”的值。例如窗口可以表示排序缓冲器中任何两个存储的数据元素之间的最大可允许差。像这样,窗口的“宽度”表示在排序缓冲器中允许的值的范围。例如,窗口宽度可以是排序缓冲器中最小和最大元素之间的差。
边界条件可以具有至少两个结果。例如,第一结果可以意指满足边界条件,并且不同的第二结果可以指示违反边界条件(即,不满足)。在一种情况下,只要提供的输入元素未使得超过窗口宽度,就可以视为满足边界条件。相反,如果输入元素使得超过窗口宽度,则可以认为违反边界条件。在违反边界条件时,根据驱出优先级顺序驱出缓冲器中的一个或多个元素。
通过示例的方式,假设排序缓冲器具有作为存储的元素的数值的情况(按递增顺序)。对于排序缓冲器15的值的窗口宽度指示缓冲器中最小和最大存储的元素之间的差不超过15。这样,如果缓冲器中当前的最小元素是3,并且新的输入元素是19,则最小和最大元素之间的差现在是16,其超过窗口宽度并且认为违反边界条件。由于所述违反,驱出排序缓冲器中一个或多个元素(例如,最小或最大数据元素)。
在某些示例中,排序模块108如由窗口宽度确定的跟踪排序缓冲器112中最小和最大元素。当输入元素超过最大元素时,认为违反边界条件,并且排序模块使得排序缓冲器驱出例如最小数据元素。
可以从各种源提供窗口宽度,例如由用户指定。在一个实现方式中,窗口宽度基于排序所需的具体应用的常识。在某些上下文中,窗口宽度与“乱序”的测度对应,例如元素可以乱序到怎样的程度的测度。例如,考虑涉及时间戳数据元素的上下文。窗口宽度指示相对于当前缓冲器中的时间戳元素(例如,最小或最大时间戳元素)可以向排序缓冲器提供多晚的时间戳元素。例如,如果窗口宽度(以时间为单位)是四小时,则排序缓冲器112将缓冲(即存储)相对于排序缓冲器中的最小时间戳元素的四小时窗口内的所有时间戳元素。可以丢弃、或单独处理四小时以外到达的时间戳元素。
虽然在图示的示例中使用单个缓冲器,也可以使用多个缓冲器架构。例如,第二缓冲器(未示出)可以用于缓冲在某个时间段期间(例如,24小时时段)到达的时间戳元素。一旦24小时时段结束,就可以拒绝、丢弃、或单独处理时间戳元素。在实现方式中,属于24小时时段内的时间戳元素可能在24小时时段之后到达。通过小心选择临界时间戳值,可以降低拒绝大量合法元素的可能性。在某些情况下,在窗口排序技术提供计算资源的高效使用和较低的处理时间的应用中少数合法元素的丢失可能是可容忍的。
图2是在窗口排序过程的操作期间排序缓冲器(例如,排序缓冲器112)的状态202-218的图解表示。为每个状态202-218提供关于排序缓冲器的各个内容、窗口宽度(利用标签W标记)、最小元素(利用标签S标记)和当前输出数据元素的信息。在该示例中,按递增顺序存储数据元素并且几乎按递增顺序将输入流排序。在窗口排序过程结束时,提供基本上按递增顺序排序的输出流。虽然图2示出在仅八个元素的流上操作的示例窗口排序过程,但所述过程可以在包括实质上更多元素的输入流上连续执行。
在状态202中,窗口宽度被定义为具有15的值(即,缓冲器中元素的最小和最大值之间的差不超过或等于15)。在初始化时,排序缓冲器中当前的最小元素是值0(S=0)。此外,当前输出被示出为“NIL”,即不存在输出数据元素。
在状态204中,在排序缓冲器中插入值3的第一输入元素。基于排序缓冲器中元素的当前顺序(即,递增顺序)确定缓冲器中3的位置。如所示相邻于0插入值3的元素。在排序缓冲器中元素的最小和最大值之间的差现在是3,其小于窗口宽度15。因此,不违反边界条件,并且不需要驱出数据元素。在该点处,不存在输出数据元素。
在状态206和208中,将输入流的值5和7的元素在适当位置处插入排序缓冲器。在状态208结束时排序缓冲器中的最小和最大元素之间的差是7,其仍然小于窗口宽度15。这样,不违反边界条件,并且不需要驱出数据元素。因此,仍然不存在输出数据元素。
在状态210中,当将值15的元素插入排序缓冲器中时,缓冲器中最小和最大元素之间的差现在是15,其等于窗口宽度15。违反边界条件。因此,驱出作为排序缓冲器112中的最小元素的值0的元素作为输出流的第一元素。此外,排序缓冲器中的最小元素S现在是3。
在状态212中,在排序缓冲器中在值15和7之间插入值8的元素。缓冲器中元素的最小和最大值之间的差是12,其小于窗口宽度15。因此,不违反边界条件,并且不驱出数据元素。
在状态214中,当将值21的元素插入到排序缓冲器中时,缓冲器中元素的最小和最大值之间的差是21-3=18,其超过窗口宽度15。驱出具有窗口宽度以外的值的所有数据元素。即,如所示驱出值3、5、和7的元素。排序缓冲器中新的最小数据元素S现在是值8的元素。
在状态216中,当将值11的元素插入排序缓冲器中时,缓冲器中元素的最小和最大值之间的差是21-8=13,其小于窗口宽度15。因此,不违反边界条件,并且不驱出数据元素。
在状态218中,当将值7的元素插入排序缓冲器中时,排序缓冲器112中最小元素是值7。这样,缓冲器中元素的最小和最大值之间的差是21-7=14,其小于窗口宽度15。因此,再次不违反边界条件,并且不驱出数据元素。
可以在计算图中使用窗口排序过程的实现方式。现在参考图3,示出用于管理计算图302的系统300的部分的相互关系。图形开发环境(GDE)304向用户提供用于指定可执行计算图302和定义包括计算图302中的窗口排序组件308的一个或多个图组件306a-c的参数的接口。可以例如在美国专利7,164,422,PARAMETERIZED GRAPHS WITH CONDITIONALCOMPONENTS中描述GDE304,所述专利的内容通过引用整体合并于此。
计算图302可以用于表示复杂的计算。在美国专利5,966,072,EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS中描述了实现这样的基于图的计算的系统,所述专利的内容通过引用整体合并于此。在某些实现方式中,计算图包括通过顶点之间的有向链接(表示作业元素流)连接的顶点(表示组件和数据集)。在某些情况下,计算图302被配置为接收输入数据记录流并处理数据记录以便无限期地提供来自组件306的结果直到关闭计算为止。在某些情况下,计算图302被配置为接收一批输入数据记录,并且处理该批数据记录以便提供对于该批数据记录的结果,然后在已处理该批数据记录之后关闭或返回到空闲状态。
通过表示组件306a-c和308之间的数据流的有向弧或线将组件306a-c和308链接到一起。组件306a-c和308可以包括一个或多个数据源组件(例如,组件306a)、数据处理组件(例如,组件306b)和数据接收器组件(例如,306d)。数据源组件306a可以表示在产生例如以数据记录的形式的数据的一个或多个计算机系统上实现的源应用(例如图1的源应用102)。数据处理组件306b处理由数据源组件306a产生的数据记录。数据接收器组件306d使用数据处理组件306b的结果。来自数据处理组件306b的结果可以以大部分排序的数据元素流的形式。这样,可以引入窗口排序组件308来将来自数据处理组件306b的结果流排序并向接收器组件306c提供基本上排序的数据流。
在示例情况下,数据源组件306a可以产生两个相同的排序的数据流310a和310b并将一个流(例如,流310b)发送到组件306b中。组件306b处理流310b以便产生具有存储数据记录的存储器位置的地址的地址流310c。已知存储器位置是连续的并且被连续布置如下:a0、a0+1、a0+2、……、a0+n(其中a0是初始存储器位置的地址)。这样,地址流中的单个地址也被期望是连续顺序的。然而,有时组件306b中的处理延迟可以使得一个或多个地址被晚输出到地址流。因此,单个地址不再与排序流310a中的数据记录正确地对应。为了纠正这种情况,排序组件308可以用于将地址排序回到原始顺序(其被产生为新的地址流310d)。
在典型的应用中,地址流中单个地址的位置离其原始位置不是非常远。可以由排序组件利用该特性来将地址重新存储回到其原始位置。在具有边界条件的排序缓冲器中以在每个输入地址和/或驱出每个输出地址之后改变的动态重新调整的临界地址的形式接收地址流。最初,临界地址被初始化为地址流中最早的地址。其后,如果输入地址比临界地址大一,则临界地址被改变为输入地址。当地址到达排序组件时,以排序方式直接输出整理(collate)为小于或等于临界值的地址。另一方面,在排序缓冲器中存储整理为大于临界地址值的地址。
现在参考图4,示出用于将几乎或大部分排序的数据元素流排序的示例窗口排序过程400。在实现方式中,可以通过在计算机系统上执行的软件应用进行在下面概述的步骤。例如,可以由排序系统100实现过程400(如图1中所示)。初始化用于缓冲输入数据元素的排序缓冲器(步骤402)。所示初始化可以包括指定用于存储输入元素的存储区域,例如多个连续存储器地址。作为初始化的部分,可以在排序缓冲器上指定边界条件。例如,可以定义变量保持与排序缓冲器的窗口宽度对应的值。窗口宽度可以表示排序缓冲器中任何两个存储的数据元素值之间的最大可允许差。在某些示例中,边界条件可以被表示为动态调整的临界值。
在定义排序缓冲器上的边界条件之后,排序缓冲器准备好接收数据元素的输入流(步骤404)。可以采用一种或多种技术和方法来接收输入数据元素。在实现方式中,接收输入元素并且将输入元素插入到排序缓冲器中。最初,当排序缓冲器为空时,默认将第一元素选择为具有预定的特征(例如,可以将第一元素选择为具有最高驱出优先级)。例如,第一元素可以被认为是排序缓冲器中最小的元素。当接收到随后的更大的元素时,基于移除或驱出优先级(即,按递增顺序与第一元素相邻)将其插入适当的位置。在实现方式中,每次将元素插入到缓冲器中时,重新计算最高优先级元素(或最小元素)。
边界条件被应用于确定元素是否违反边界条件(步骤406)。对于边界条件应用可以实现一种或多种技术。例如,进行是否超过排序缓冲器的窗口宽度的确定。如果不违反边界条件(例如,不超过排序缓冲器的窗口宽度),则接收输入流中的下一个数据元素用于处理。
如果违反边界条件(例如,超过窗口宽度),则根据驱出优先级顺序驱出一个或多个元素(步骤408)。例如,驱出的元素包括至少最小元素和也导致超过排序缓冲器的窗口宽度的一个或多个其他元素。此外,识别不导致超过窗口宽度的新的最小元素。这样,可以实现一种或多种技术用于基于边界条件从缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
只要存在输入元素,就对于每个输入元素重复过程400。
在实现方式中,例如因为可能超过物理存储器大小,所以排序缓冲器可以达到最大容量,在这种情况下,可以实现溢出机制。溢出机制涉及从排序缓冲器将一个或多个数据元素转移到次级存储器存储区域(未示出)。可以在排序缓冲器中插入“键(key)”元素或项目来参考次级存储器存储区域中的数据元素。在共同未决的美国专利申请No.13/031,034中更详细地描述了溢出机制,所述申请的内容通过引用整体合并于此。
在某些实现方式中,可以由预定的排序缓冲器的最大可允许大小(例如,在缓冲器中允许的元素的最大数量)表示边界条件。在实现方式中,还可以由窗口宽度限制以及最大大小限制两者表示边界条件。在该实现方式中,排序模块可以导致响应于接收到导致超过缓冲器的窗口宽度或最大大小的元素而驱出元素。
在某些示例中,可以在处理结束时按排序顺序输出处理时段结束时排序缓冲器中剩余的数据元素。在某些示例中,可以与其余的数据元素不同地和单独地处理剩余元素。在某些实现方式中,例如当排序缓冲器存储大于预定数量的元素或存储任何元素时,应用可以警告用户应用的计算逻辑的错误或故障。
在示例中,可以警告用户导致违反排序缓冲器上的边界条件的数据元素存在。例如,在向用户呈现按例如反向时间顺序的数据记录列表的实现方式中,可以警告用户一个或多个乱序数据记录的存在。基于确定与记录对应的数据元素是否满足边界条件,例如数据元素是否在由用户指定的窗口宽度内,来识别乱序数据记录。例如,可以突出一个或多个乱序数据记录来吸引用户的注意。在某些示例中,可以从数据元素流提取一个或多个乱序数据记录以用于单独处理。
可以使用用于在计算机上执行的软件来实现上面描述的技术。例如,所述软件在一个或多个编程或可编程计算机系统(其可以是例如分布式、客户端/服务器、或网格的各种架构)上执行的一个或多个计算机程序中形成过程,每个所述计算机系统包括至少一个处理器,至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口、以及至少一个输出设备或端口。所述软件可以形成例如提供与数据流图的设计和配置有关的其他服务的更大的程序中的一个或多个模块。图的节点和元素可以被实现为在计算机可读介质中存储的数据结构,或符合在数据储存库中存储的数据模型的其他有组织的数据。
可以在例如CD-ROM的可以由通用或专用可编程计算机读取的存储介质上提供所述软件,或可以经由到执行所述软件的计算机的网络的通信介质递送(被编码在传播信号中)所述软件。可以在专用计算机上、或使用例如协处理器的专用硬件执行所有功能。可以以由不同的计算机执行由所述软件指定的计算的不同部分的分布式的方式实现所述软件。每个这样的计算机程序被优选地存储在或下载到可以由通用或专用可编程计算机读取的存储介质或设备(例如,固态存储器或介质、或磁性或光学介质),用于当由计算机系统读取存储介质或设备时,配置和操作计算机,以便执行在这里描述的过程。本发明系统还可以被认为被实现为使用计算机程序配置的计算机可读存储介质,其中这样配置存储介质使得以具体和预定方式操作计算机系统以便执行在这里描述的功能。
已描述了本发明的许多实施例。然而,将理解可以进行各种修改而不背离本发明的精神和范围。例如,上面描述的步骤中的某些可以是顺序无关的,从而可以以不同于描述的顺序的顺序执行。
应理解上述描述意图图示并不限制本发明的范围,本发明的范围由所附权利要求的范围定义。例如,可以以不同的顺序执行上面描述的许多功能步骤,而不实质上影响整体处理。其他实施例在下列权利要求的范围内。

Claims (22)

1.一种计算机实现的方法,包括:
在缓冲器中存储接收到的数据元素流;
在接收到所述数据元素流的每个单个数据元素之后,将边界条件应用于在所述缓冲器中存储的数据元素;以及
基于所述边界条件从所述缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
2.如权利要求1所述的方法,其中从所述缓冲器产生所述一个或多个数据元素包括:
从所述缓冲器产生至少最小数据元素。
3.如权利要求1所述的方法,其中从所述缓冲器产生所述一个或多个数据元素包括:
从所述缓冲器产生至少最大数据元素。
4.如权利要求1所述的方法,其中每个接收到的数据表示数据记录产生时间。
5.如权利要求4所述的方法,其中根据反向时间顺序将所述数据元素的输出流排序。
6.如权利要求1所述的方法,其中将所述接收到的数据元素流的数据元素部分排序。
7.如权利要求1所述的方法,其中所述接收到的数据元素流的数据元素基本上异步到达所述缓冲器。
8.如权利要求1所述的方法,其中在缓冲器中存储接收到的数据元素流包括:
在缓冲器中由所述缓冲器的排序顺序确定的位置处插入所述接收到的数据元素流的每个单个元素。
9.如权利要求1所述的方法,其中将边界条件应用于在所述缓冲器中存储的数据元素包括:
从在所述缓冲器中存储的数据元素识别最小数据元素;以及
确定最小数据元素和所述接收到的单个数据元素之间的差是否超过阈值。
10.如权利要求4所述的方法,其中基于所述边界条件从所述缓冲器产生一个或多个数据元素包括:
如果所述一个或多个数据元素超过所述阈值,则从所述缓冲器产生所述一个或多个数据元素。
11.如权利要求1所述的方法,其中将边界条件应用于在所述缓冲器中存储的数据元素包括:
确定是否超过所述缓冲器的最大大小。
12.如权利要求11所述的方法,其中基于所述边界条件从所述缓冲器产生一个或多个数据元素包括:
如果超过所述缓冲器的最大大小,则从所述缓冲器产生所述一个或多个数据元素。
13.如权利要求1所述的方法,其中将边界条件应用于在所述缓冲器中存储的数据元素包括:
确定新接收到的数据元素是否超过临界值。
14.如权利要求13所述的方法,还包括:
如果所述元素不超过所述临界值,则缓冲所述新接收到的数据元素。
15.如权利要求13所述的方法,其中基于所述边界条件从所述缓冲器产生一个或多个数据元素包括:
如果所述新接收到的数据元素不超过所述阈值,则产生所述新接收到的数据元素作为从所述缓冲器产生的一个或多个数据元素。
16.如权利要求1所述的方法,其中通过跳跃列表数据结构实现所述缓冲器。
17.如权利要求1所述的方法,其中通过二叉树堆数据结构实现所述缓冲器。
18.如权利要求1所述的方法,其中所述接收到的数据元素流中的各个数据元素中的一个或多个从输入到基于图的计算系统中的组件的数据记录导出。
19.一种计算机实现的方法,包括:
在接收到数据元素流的每个单个数据元素之后,将边界条件应用于接收到的数据元素;
基于所述边界条件的第一结果存储所述数据元素流的一个或多个数据元素;以及
基于所述边界条件的第二结果产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
20.一种存储用于将数据元素排序的计算机程序的计算机可读存储介质,所述计算机程序包括这样的指令,所述指令使得计算系统:
在缓冲器中存储接收到的数据元素流;以及
处理所述接收到的数据元素流,所述处理包括:
在接收到所述数据元素流的每个单个数据元素之后,将边界条件应用于在所述缓冲器中存储的数据元素;以及
基于所述边界条件从所述缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
21.一种用于将数据元素排序的计算系统,所述计算系统包括:
数据存储系统,其用于在缓冲器中存储接收到的数据元素流;以及
至少一个处理器,其耦接到所述数据存储系统,并被配置为处理所述接收到的数据元素流,所述处理包括:
在接收到所述数据元素流的每个单个数据元素之后,将边界条件应用于在所述缓冲器中存储的数据元素;以及
基于所述边界条件从所述缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
22.一种用于将数据元素排序的计算系统,所述计算系统包括:
用于存储接收到的数据元素流的装置;以及
用于处理所述接收到的数据元素流的装置,所述处理包括:
在接收到所述数据元素流的每个单个数据元素之后,将边界条件应用于在所述缓冲器中存储的数据元素;以及
基于所述边界条件从所述缓冲器产生一个或多个数据元素作为根据预定的顺序排序的数据元素的输出流。
CN201280009287.3A 2011-02-18 2012-02-16 排序方法和系统 Active CN103392169B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/031,056 2011-02-18
US13/031,056 US9003084B2 (en) 2011-02-18 2011-02-18 Sorting
PCT/US2012/025375 WO2012112744A2 (en) 2011-02-18 2012-02-16 Sorting

Publications (2)

Publication Number Publication Date
CN103392169A true CN103392169A (zh) 2013-11-13
CN103392169B CN103392169B (zh) 2016-06-01

Family

ID=45755583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280009287.3A Active CN103392169B (zh) 2011-02-18 2012-02-16 排序方法和系统

Country Status (9)

Country Link
US (2) US9003084B2 (zh)
EP (1) EP2676189B1 (zh)
JP (1) JP6060094B2 (zh)
KR (2) KR20150042874A (zh)
CN (1) CN103392169B (zh)
AU (1) AU2012217617B2 (zh)
CA (1) CA2826280C (zh)
HK (1) HK1187428A1 (zh)
WO (1) WO2012112744A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109949378A (zh) * 2019-03-26 2019-06-28 中国科学院软件研究所 图像灰度值排序方法、装置、电子设备及计算机可读介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447901B2 (en) 2011-02-18 2013-05-21 Ab Initio Technology Llc Managing buffer conditions through sorting
CN103780692B (zh) * 2014-01-13 2017-01-11 中国科学院计算技术研究所 一种键值存储的数据访问方法及其系统
CH709742A1 (de) * 2014-06-05 2015-12-15 Swisstradingbox Ag Börsenhandelssystem.
US10523596B1 (en) * 2015-02-06 2019-12-31 Xilinx, Inc. Circuits for and methods of merging streams of data to generate sorted output data
US10073877B2 (en) 2015-06-11 2018-09-11 International Business Machines Corporation Data processing flow optimization
US20190050199A1 (en) * 2018-03-30 2019-02-14 Richard Allen Localized grid sort
EP4049421B1 (en) * 2019-10-29 2023-11-29 Huawei Technologies Co., Ltd. Systems and methods for sorting data elements with approximation to o(1)
US11899579B2 (en) * 2020-06-22 2024-02-13 StockX LLC Systems and methods for normalizing data from multiple sources

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1464451A (zh) * 2002-06-26 2003-12-31 联想(北京)有限公司 一种数据记录的排序方法
US6842800B2 (en) * 2001-08-30 2005-01-11 Marconi Intellectual Property (Ringfence) Inc. System and method for managing configurable buffer sizes
US20060120405A1 (en) * 2002-11-25 2006-06-08 Antonius Engbersen Method and apparatus for intermediate buffer segmentation and reassembly
US20080104313A1 (en) * 1999-09-24 2008-05-01 Tam-Anh Chu Multiple-Buffer Queueing of Data Packets with High Throughput Rate
US20090327372A1 (en) * 2008-06-26 2009-12-31 Tatu Ylonen Oy Ltd Garbage Collection via Multiobjects

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6446830A (en) * 1987-08-17 1989-02-21 Nippon Telegraph & Telephone Data selection system
US5218670A (en) 1990-08-31 1993-06-08 Texas Instruments Incorporated Apparatus and methods for the handling of banded frame buffer overflows
US6088736A (en) 1995-07-19 2000-07-11 Fujitsu Network Communications, Inc. Joint flow control mechanism in a telecommunications network
US5966072A (en) 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US5996031A (en) * 1997-03-31 1999-11-30 Ericsson Inc. System and method for the real time switching of an isochronous data stream
US6088716A (en) 1997-04-28 2000-07-11 Ab Initio Software Corporation Method for preventing buffer deadlock in dataflow computations
JP3544127B2 (ja) 1997-10-24 2004-07-21 キヤノン株式会社 画像形成装置および画像形成装置の制御方法
JPH11175281A (ja) 1997-12-15 1999-07-02 Hitachi Information Technology Co Ltd 印刷データバッファ制御方式
US6161155A (en) * 1998-07-20 2000-12-12 Hewlett-Packard Company Apparatus and method for storing retrievable boundary information into a buffer memory of a receiving device
AU9240598A (en) 1998-11-16 2000-05-18 Ericsson Australia Pty Ltd Method and system for scheduling packets in a telecommunications network
US6401147B1 (en) 1999-05-24 2002-06-04 Advanced Micro Devices, Inc. Split-queue architecture with a first queue area and a second queue area and queue overflow area having a trickle mode and an overflow mode based on prescribed threshold values
US7164422B1 (en) 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US7213087B1 (en) 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
US7162546B2 (en) 2001-12-27 2007-01-09 Intel Corporation Reordering unrelated transactions from an ordered interface
US6925539B2 (en) 2002-02-06 2005-08-02 Seagate Technology Llc Data transfer performance through resource allocation
US6877048B2 (en) * 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US7003597B2 (en) * 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
US20050165985A1 (en) * 2003-12-29 2005-07-28 Vangal Sriram R. Network protocol processor
JP2007532053A (ja) * 2004-03-16 2007-11-08 スノーシヨア・ネツトワークス・インコーポレーテツド ジッター・バッファーの管理
US7958292B2 (en) 2004-06-23 2011-06-07 Marvell World Trade Ltd. Disk drive system on chip with integrated buffer memory and support for host memory access
JP4561240B2 (ja) * 2004-08-26 2010-10-13 ソニー株式会社 データ処理装置およびデータ処理方法並びにデータ送受信システム
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
JP4687320B2 (ja) * 2005-08-11 2011-05-25 ソニー株式会社 画像処理装置および方法、記録媒体、並びに、プログラム
JP2007179183A (ja) * 2005-12-27 2007-07-12 Fujifilm Corp メディアンフィルタおよびメディアンフィルタプログラム
KR20070076726A (ko) * 2006-01-19 2007-07-25 삼성전자주식회사 엔드포인트 제어 장치 및 방법
JP4347322B2 (ja) * 2006-07-14 2009-10-21 ソニー株式会社 受信装置および方法、並びにプログラム
US7496707B2 (en) * 2006-08-22 2009-02-24 International Business Machines Corporation Dynamically scalable queues for performance driven PCI express memory traffic
US8024498B2 (en) * 2008-12-15 2011-09-20 International Business Machines Corporation Transitions between ordered and ad hoc I/O request queueing
US8725819B2 (en) * 2009-03-23 2014-05-13 Sony Corporation Chat system, server device, chat method, chat execution program, storage medium stored with chat execution program, information processing unit, image display method, image processing program, storage medium stored with image processing program
JP5235800B2 (ja) * 2009-06-24 2013-07-10 日本電信電話株式会社 Ipストリーム送受信システム、ipストリーム送受信方法、ipストリーム送受信プログラムおよびそのプログラムを記録した記録媒体
US8447901B2 (en) 2011-02-18 2013-05-21 Ab Initio Technology Llc Managing buffer conditions through sorting

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104313A1 (en) * 1999-09-24 2008-05-01 Tam-Anh Chu Multiple-Buffer Queueing of Data Packets with High Throughput Rate
US6842800B2 (en) * 2001-08-30 2005-01-11 Marconi Intellectual Property (Ringfence) Inc. System and method for managing configurable buffer sizes
CN1464451A (zh) * 2002-06-26 2003-12-31 联想(北京)有限公司 一种数据记录的排序方法
US20060120405A1 (en) * 2002-11-25 2006-06-08 Antonius Engbersen Method and apparatus for intermediate buffer segmentation and reassembly
US20090327372A1 (en) * 2008-06-26 2009-12-31 Tatu Ylonen Oy Ltd Garbage Collection via Multiobjects

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HAIFENG XU ET AL: "Client Architecture for MPEG-4 Streaming", 《IEEE COMPUTER SOCIETY》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109949378A (zh) * 2019-03-26 2019-06-28 中国科学院软件研究所 图像灰度值排序方法、装置、电子设备及计算机可读介质
CN109949378B (zh) * 2019-03-26 2021-06-08 中国科学院软件研究所 图像灰度值排序方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
AU2012217617A1 (en) 2013-05-02
CA2826280A1 (en) 2012-08-23
EP2676189A2 (en) 2013-12-25
JP2014511526A (ja) 2014-05-15
US9128686B2 (en) 2015-09-08
KR101857510B1 (ko) 2018-05-14
KR20140014125A (ko) 2014-02-05
KR20150042874A (ko) 2015-04-21
WO2012112744A3 (en) 2013-02-28
CN103392169B (zh) 2016-06-01
AU2012217617B2 (en) 2015-09-03
US20120215992A1 (en) 2012-08-23
HK1187428A1 (zh) 2014-04-04
WO2012112744A2 (en) 2012-08-23
US20150212796A1 (en) 2015-07-30
EP2676189B1 (en) 2014-10-29
JP6060094B2 (ja) 2017-01-11
CA2826280C (en) 2018-07-31
US9003084B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
CN103392169A (zh) 排序
CN103370691B (zh) 管理缓冲器溢出状况
CN103218176A (zh) 数据处理方法及装置
CN107291720B (zh) 一种实现批量数据处理的方法、系统和计算机集群
CN110704438B (zh) 一种区块链中布隆过滤器的生成方法及装置
EP3018581A1 (en) Data staging management system
CN110727700A (zh) 多源流式数据整合成事务型流数据的方法及系统
CN109800074A (zh) 任务数据并发执行方法、装置以及电子设备
CN116089414B (zh) 基于海量数据场景的时序数据库写入性能优化方法及装置
CN109725852B (zh) 一种限流计数的优化方法及终端
CN107911484B (zh) 一种消息处理的方法及装置
CN116263717A (zh) 基于事件的订单业务处理方法及装置
CN110321358A (zh) 一种用户数据整编的方法及装置
CN113792043A (zh) 一种实时数据的存储方法及系统
CN104462479A (zh) 跨节点的晚期物化方法和装置
CN113918307A (zh) 一种任务处理方法、装置、设备及介质
CN116645151A (zh) 数据投放方法、装置、设备和介质
US20170161267A1 (en) Method and system for database processing units

Legal Events

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