Patents by Inventor Paul A. Martin
Paul A. Martin has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 8768889Abstract: One embodiment of the present invention provides a system that performs a lock-free update to one or more fields in an existing node in a linked list. To perform the update, the system first obtains a new node to be added to the linked list, wherein other processes do not possess references to the new node and therefore cannot initially access the new node. Next, the system copies a snapshot of the existing node to the new node, and then updates one or more fields in the new node that correspond to the one or more fields in the existing node. Next, in a single atomic operation the system modifies a next pointer of the existing node to point to the new node and also marks the next pointer to indicate that the existing node is deleted. In this way, the new node becomes part of the linked list and the existing node is deleted in a single atomic operation.Type: GrantFiled: April 7, 2004Date of Patent: July 1, 2014Assignee: Oracle America, Inc.Inventor: Paul A. Martin
-
Patent number: 7895129Abstract: An integrated shipping scheme enables seller users of a third-party payment service to facilitate shipping transactions in connection with payment transactions for items sold by the sellers. Shipping information is automatically gathered and/or entered by the seller via a computer interface hosted by the third-party payment service and sent “behind the scenes” to a selected shipping vendor. The shipping vendor processes the shipping information, and returns shipment data, including data to generate a shipping label. A web page containing the shipping label is then generated and served to a client operated by the seller and displayed on a browser screen, enabling the shipping label to be printed out by the seller. At the same time, electronic payment transfer operations are performed to effectively transfer payment from the seller directly to the shipping vendor via the third-party payment service in a manner that is transparent to both the seller and the shipping vendor.Type: GrantFiled: June 18, 2003Date of Patent: February 22, 2011Assignee: eBay Inc.Inventors: Brian A. Phillips, Chad M. Hurley, Greg Cervelli, Ki Ching Wong, Paul A. Martin, Steve Chen, Yu Pan
-
Patent number: 7805467Abstract: A methodology has been discovered for transforming garbage collection-dependent algorithms, shared object implementations and/or concurrent software mechanisms into a form that does not presume the existence of an independent, or execution environment provided, garbage collector. Algorithms, shared object implementations and/or mechanisms designed or transformed using techniques described herein provide explicit reclamation of storage using lock-free pointer operations. Transformations can be applied to lock-free algorithms and shared object implementations and preserve lock-freedom of such algorithms and implementations. As a result, existing and future lock-free algorithms and shared object implementations that depend on a garbage-collected execution environment can be exploited in environments that do not provide garbage collection.Type: GrantFiled: January 30, 2006Date of Patent: September 28, 2010Assignee: Oracle America, Inc.Inventors: Mark S. Moir, David L. Detlefs, Simon Doherty, Maurice P. Herlihy, Victor M. Luchangco, Paul A. Martin, Guy L. Steele, Jr.
-
Patent number: 7702628Abstract: One embodiment of the present invention provides a system that performs operations on a hash table that is fully dynamic and lock-free. This hash table is implemented with a linked list containing data nodes and a bucket array containing bucket pointers, wherein the bucket pointers point to portions of the linked list that function as hash buckets, and wherein the linked list contains only data nodes and no dummy nodes.Type: GrantFiled: June 30, 2004Date of Patent: April 20, 2010Assignee: Sun Microsystems, Inc.Inventors: Victor Luchangco, Paul A. Martin, Jan-Willem Maessen
-
Patent number: 7583687Abstract: One embodiment of the present invention provides a system that facilitates performing operations on a lock-free double-ended queue (deque). This deque is implemented as a doubly-linked list of nodes formed into a ring, so that node pointers in one direction form an inner ring, and node pointers in the other direction form an outer ring. The deque has an inner hat, which points to a node next to the last occupied node along the inner ring, and an outer hat, which points to a node next to the last occupied node along the outer ring. The system uses a double compare-and-swap (DCAS) operation while performing pop and push operations onto either end of the deque, as well as growing and shrinking operations to change the number of nodes that are in the ring used by the deque.Type: GrantFiled: January 3, 2006Date of Patent: September 1, 2009Assignee: Sun Microsystems, Inc.Inventors: Paul A. Martin, Guy L. Steele, Christine H. Flood
-
Patent number: 7539849Abstract: An array-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, the array-based algorithm allows uninterrupted concurrent access to both ends of the deque, while returning appropriate exceptions in the boundary cases when the deque is empty or full. An interesting characteristic of the concurrent deque implementation is that a processor can detect these boundary cases, e.g., determine whether the array is empty or full, without checking the relative locations of the two end pointers in an atomic operation.Type: GrantFiled: April 11, 2000Date of Patent: May 26, 2009Assignee: Sun Microsystems, Inc.Inventors: Nir N. Shavit, Ole Agesen, David L. Detlefs, Christine H. Flood, Alexander T. Garthwaite, Paul A. Martin, Guy L. Steele, Jr.
-
Patent number: 7533138Abstract: One embodiment of the present invention provides a system that supports inserting or deleting nodes at any location within a doubly-linked list which is lock-free, wherein lock-free means that the doubly-linked list can be simultaneously accessed by multiple processes without requiring the processes to perform locking operations (non-blocking) and furthermore that a finite number of steps performed by a process will guarantee progress by at least one process (lock-free). During operation, the system receives a reference to a target node to be deleted from the doubly-linked list. Next, the system atomically marks a forward pointer in the target node to indicate that the target node is deleted, wherein the forward pointer contains the address of an immediately following node in the doubly-linked list, and wherein the marking operation does not destroy the address of the immediately following node. Additional cleanup steps are then done by this or any other process.Type: GrantFiled: May 10, 2005Date of Patent: May 12, 2009Assignee: Sun Microsystems, Inc.Inventor: Paul A. Martin
-
Patent number: 7424477Abstract: A set of structures and techniques are described herein whereby an exemplary concurrent shared object, namely a shared skip list, can be implemented in a lock-free manner. Indeed, we have developed a number of interesting variants of a lock-free shared skip-list, including variants that may be employed to provide a lock-free shared dictionary. In some variants, a key-value dictionary is implemented.Type: GrantFiled: September 3, 2003Date of Patent: September 9, 2008Assignee: Sun Microsystems, Inc.Inventors: Paul A. Martin, Guy L. Steele, Jr., Nir N. Shavit, Steven K. Heller, Mark S. Moir, Victor M. Luchangco
-
Patent number: 7370054Abstract: One embodiment of the present invention provides a system that implements a hash table that is fully dynamic and lock-free. During a lookup in the hash table the system first uses a hash key to lookup a bucket pointer in a bucket array. Next, the system follows the bucket pointer to a data node within a linked list that contains all of the data nodes in the hash table, wherein the linked list contains only data nodes and at most a constant number of dummy nodes. The system then searches from the data node through the linked list to locate a node that matches the hash key, if one exists.Type: GrantFiled: June 29, 2004Date of Patent: May 6, 2008Assignee: Sun Microsystems, IncInventors: Paul A. Martin, Victor Luchangco, Jan-Willem Maessen
-
Patent number: 7308448Abstract: One embodiment of the present invention provides a system that supports concurrent accesses to a skip list that is lock-free, which means that the skip list can be simultaneously accessed by multiple processes without requiring the processes to perform locking operations. During a node deletion operation, the system receives reference to a target node to be deleted from the skip list. The system marks a next pointer in the target node to indicate that the target node is deleted, wherein next pointer contains the address of an immediately following node in the skip list. This marking operation does not destroy the address of the immediately following node, and furthermore, the marking operation is performed atomically and thereby without interference from other processes.Type: GrantFiled: March 19, 2004Date of Patent: December 11, 2007Assignee: SUN Microsystems, IncInventor: Paul A. Martin
-
Patent number: 7287131Abstract: One embodiment of the present invention provides a system that implements a hash table that is fully dynamic and lock-free. During a lookup in the hash table the system first uses a hash key to lookup a bucket pointer in a bucket array. Next, the system follows the bucket pointer to a data node within a linked list that contains all of the data nodes in the hash table, wherein the linked list contains only data nodes and at most a constant number of dummy nodes. The system then searches from the data node through the linked list to locate a node that matches the hash key, if one exists.Type: GrantFiled: September 29, 2003Date of Patent: October 23, 2007Assignee: Sun Microsystems, Inc.Inventors: Paul A. Martin, Victor Luchangco, Jan-Willem Maessen
-
Patent number: 7017160Abstract: The Hat Trick deque requires only a single DCAS for most pushes and pops. The left and right ends do not interfere with each other until there is one or fewer items in the queue, and then a DCAS adjudicates between competing pops. By choosing a granularity greater than a single node, the user can amortize the costs of adding additional storage over multiple push (and pop) operations that employ the added storage. A suitable removal strategy can provide similar amortization advantages. The technique of leaving spare nodes linked in the structure allows an indefinite number of pushes and pops at a given deque end to proceed without the need to invoke memory allocation or reclamation so long as the difference between the number of pushes and the number of pops remains within given bounds. Both garbage collection dependent and explicit reclamation implementations are described.Type: GrantFiled: April 18, 2001Date of Patent: March 21, 2006Assignee: Sun Microsystems, Inc.Inventors: Paul A. Martin, David L. Detlefs, Alexander T. Garthwaite, Guy L. Steele, Jr., Mark S. Moir
-
Patent number: 7000234Abstract: A linked-list-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, the linked-list-based algorithm allows non-blocking completion of access operations without restricting concurrency in accessing the deque's two ends. The new implementation is based at least in part on a new technique for splitting a pop operation into two steps, marking that a node is about to be deleted, and then deleting it. Once marked, the node logically deleted, and the actual deletion from the list can be deferred. In one realization, actual deletion is performed as part of a next push or pop operation performed at the corresponding end of the deque.Type: GrantFiled: April 11, 2000Date of Patent: February 14, 2006Assignee: Sun Microsystems, Inc.Inventors: Nir N. Shavit, Paul A. Martin, Guy L. Steele, Jr.
-
Patent number: 6993770Abstract: We present a methodology for transforming concurrent data structure implementations that depend on garbage collection to equivalent implementations that do not. Assuming the existence of garbage collection makes it easier to design implementations of concurrent data structures, particularly because it eliminates the well-known ABA problem. However, this assumption limits their applicability. Our results demonstrate that, for a significant class of data structures, designers can first tackle the easier problem of an implementation that does depend on garbage collection, and then apply our methodology to achieve a garbage-collection-independent implementation. Our methodology is based on the well-known reference counting technique, and employs the double compare-and-swap operation.Type: GrantFiled: April 18, 2001Date of Patent: January 31, 2006Assignee: Sun Microsystems, Inc.Inventors: David L. Detlefs, Paul A. Martin, Mark S. Moir, Guy L. Steele, Jr.
-
Publication number: 20040260615Abstract: An integrated shipping scheme enables seller users of a third-party payment service to facilitate shipping transactions in connection with payment transactions for items sold by the sellers. Shipping information is automatically gathered and/or entered by the seller via a computer interface hosted by the third-party payment service and sent “behind the scenes” to a selected shipping vendor. The shipping vendor processes the shipping information, and returns shipment data, including data to generate a shipping label. A web page containing the shipping label is then generated and served to a client operated by the seller and displayed on a browser screen, enabling the shipping label to be printed out by the seller. At the same time, electronic payment transfer operations are performed to effectively transfer payment from the seller directly to the shipping vendor via the third-party payment service in a manner that is transparent to both the seller and the shipping vendor.Type: ApplicationFiled: June 18, 2003Publication date: December 23, 2004Inventors: Brian A. Phillips, Chad M. Hurley, Greg Cervelli, Ki Ching Wong, Paul A. Martin, Steve Chen, Yu Pan
-
Patent number: 6826757Abstract: A novel linked-list-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, non-blocking completion of access operations is achieved without restricting concurrency in accessing the deque's two ends. In various realizations in accordance with the present invention, the set of values that may be pushed onto a shared object is not constrained by use of distinguishing values. In addition, an explicit reclamation embodiment facilitates use in environments or applications where automatic reclamation of storage is unavailable or impractical.Type: GrantFiled: April 18, 2001Date of Patent: November 30, 2004Assignee: Sun Microsystems, Inc.Inventors: Guy L. Steele, Jr., Alexander T. Garthwaite, Paul A. Martin, Nir N. Shavit, Mark S. Moir, David L. Detlefs
-
Patent number: 6738797Abstract: A distributed computing system used for controlling a telecommunications network includes a number of computers interconnected by a data communications network each computer storing a plurality of data records. The computers are programmed to access records held on other computers and are programmed to move the record to another computer. Each computer is further arranged to store a table of data indicating the computer on which that record may currently be stored, and to update that table when the record is moved. Each computer is further programmed to store a log of the identities of the other computers which have accessed the record, and the computers are further programmed so that after moving the record, the computer sends a location updating message to at least one further computer determined in accordance with the log.Type: GrantFiled: September 24, 1999Date of Patent: May 18, 2004Assignee: British Telecommunications Public Limited CompanyInventor: Paul A Martin
-
Patent number: 6438746Abstract: A compiler is provided for a distributed object system in which functional requirements on system performance criteria can be entered as comment fields in an object-oriented language (e.g., C++) which are ignored by a conventional compiler (to allow compilation of a single processor version of the program for debugging) but which are interpreted by a pre-compiler to take into account system data when compiling code for host computers of the distributed system. The system is preferably a telecommunications system.Type: GrantFiled: June 5, 1996Date of Patent: August 20, 2002Assignee: British Telecommunications public limited companyInventor: Paul A. Martin
-
Patent number: 6343374Abstract: A compiler for a distributed object system in which functional requirements on system performance criteria can be entered as comments fields in an object oriented language (e.g. C++) which are ignored by a conventional compiler (to allow compilation of a single processor version of the program for debugging) but are interpreted by a pre-compiler to take into account system data when compiling code for the host computers of the distributed system. The system may be a telecommunications system.Type: GrantFiled: March 6, 1998Date of Patent: January 29, 2002Assignee: British Telecommunications public limited companyInventor: Paul A Martin
-
Publication number: 20010056420Abstract: A novel linked-list-based concurrent shared object implementation has been developed that provides non-blocking and linearizable access to the concurrent shared object. In an application of the underlying techniques to a deque, non-blocking completion of access operations is achieved without restricting concurrency in accessing the deque's two ends. In various realizations in accordance with the present invention, the set of values that may be pushed onto a shared object is not constrained by use of distinguishing values. In addition, an explicit reclamation embodiment facilitates use in environments or applications where automatic reclamation of storage is unavailable or impractical.Type: ApplicationFiled: April 18, 2001Publication date: December 27, 2001Applicant: Sun Microsystems, Inc.Inventors: Guy L. Steele, Alexander T. Garthwaite, Paul A. Martin, Nir N. Shavit, Mark S. Moir, David L. Detlefs