×

Fast and linearizable concurrent priority queue via dynamic aggregation of operations

  • US 8,387,057 B2
  • Filed: 12/16/2010
  • Issued: 02/26/2013
  • Est. Priority Date: 12/16/2010
  • Status: Active Grant
First Claim
Patent Images

1. A computer implemented system, comprising:

  • a processor coupled to memory, the processor configured to execute multi-threaded application programs;

    a multi-threaded application executing on the processor, the multi-threaded application program configured to utilize a concurrent entity, and wherein a plurality of threads of the multi-threaded application are configured to generate a plurality of operation nodes to operate upon the concurrent entity concurrently with other threads;

    a synchronization and aggregation logic component coupled to the multi-threaded application and configured to accept operation nodes from the plurality of threads, each operation node corresponding to a single thread, the accepted operation nodes to be placed in a temporary list, the operation nodes defining an operation to perform on the concurrent entity, wherein only one thread, known as a handler thread, is permitted to operate on the temporary list to perform the operations on the concurrent entity, and wherein each thread is permitted to provide only one operation node to the temporary list and waits until the corresponding operation node has been processed by the handler thread before being permitted to provide another operation node to a second temporary list; and

    the concurrent entity stored in the memory accessible to the multi-threaded application program, wherein the concurrent entity comprises a concurrent priority queue configured to accept enqueue and dequeue operations, and wherein each operation node comprises one of either an enqueue or dequeue operation.

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