×

Hash partitioning streamed data

  • US 8,276,154 B2
  • Filed: 12/18/2009
  • Issued: 09/25/2012
  • Est. Priority Date: 12/18/2009
  • Status: Active Grant
First Claim
Patent Images

1. At a computer system including one or more processors and system memory, a computer-implemented method for distributing data elements from an input data stream across a plurality of output data streams to facilitate parallel processing of the distributed data elements, the computer-implemented method comprising the following acts:

  • receiving at a computing system an input data stream comprised of a plurality of data elements for distribution among a plurality of worker threads, with each worker thread providing a separate output data stream for those data elements output by it, and each worker thread having a storage buffer for receiving data elements from other worker threads;

    at each worker thread that accesses data elements from the input data stream, performing the following acts;

    prior to acquiring a lock on the input data stream when accessing data elements, each worker thread first checking its storage buffer to determine whether a data element has been assigned to it for output on that worker thread'"'"'s output data stream;

    if a data element has been stored in its storage buffer, outputting any data elements stored in its storage buffer to its own output data stream prior to acquiring the lock on the input data stream;

    if a data element has not been stored in its storage buffer, then acquiring the lock and using an equivalence function to identify a plurality of data elements that are essentially equivalent in terms of processing requirements; and

    distributing at least some of the essentially equivalent data elements to one or more storage buffers of one or more other worker threads so that the at least some essentially equivalent data elements are output on separate output data streams corresponding to the one or more other worker threads so as to facilitate parallel processing of the distributed data elements.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×