Patents by Inventor Brian W. O'Krafka

Brian W. O'Krafka 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: 8954385
    Abstract: Approaches for recovering a node of a distributed transactional system. When a recovering node is being brought on-line, a copy of at least a portion of a first data store maintained by an existing node is created without ceasing to process transactions against the first data store at the existing node. The recovering node creates a second data store based on the copy of the first data store. While the recovering node creates the second data store, the recovering node stores committed transaction data received from a plurality of nodes. The committed transaction data describes transactions committed against data stores maintained by the sender of the committed transaction data. The recovering node may thereafter replay, against the second data store, any transactions identified by the committed transaction data that are associated with a global transaction number that is more recent than is a reference commit number.
    Type: Grant
    Filed: June 28, 2011
    Date of Patent: February 10, 2015
    Assignee: SanDisk Enterprise IP LLC
    Inventors: Johann George, Darpan Dinker, Manavalan Krishnan, Brian W. O'Krafka
  • Patent number: 8868487
    Abstract: Approaches for processing an event in an objects store, such as an MySQL database management system or a memcached caching system, that are maintained on one or more solid state devices. A plurality of threads may be instantiated. Each of the threads may be configured to retrieve items from a queue of items. Each item in the queue of items may be associated with a particular event occurring within the object store. Each event is a message that indicates an activity requiring work has occurred within the object store. When a particular thread retrieves an item from the queue of items, the particular thread processes the particular event associated with the item retrieved by the particular thread. In this way, event handling in object stores such as MySQL and memcached may be performed more efficiently on a solid state device.
    Type: Grant
    Filed: April 11, 2011
    Date of Patent: October 21, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Manavalan Krishnan, Darpan Dinker, Brian W. O'Krafka
  • Patent number: 8793531
    Abstract: Approaches for recovering nodes and adding new nodes to object stores maintained on one or more solid state devices. At a surviving node, in a cluster of nodes, replicating, to a recovering node in the cluster of nodes, all requests to modify data stored in a first data store thereon that are received by the surviving node. The surviving node performing a bulk copy operation to copy data, stored in the first data store, to a second data store maintained on the recovering node. The surviving node (a) replicates all requests to modify data received by the surviving node and (b) performs a bulk copy operation in parallel.
    Type: Grant
    Filed: April 11, 2011
    Date of Patent: July 29, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Johann George, Brian W. O'Krafka
  • Patent number: 8666939
    Abstract: Approaches for replicating data in a distributed transactional system. At a first node of a cluster, a per-transaction write set that comprises a plurality of write operations that are performed against a first data store maintained by the first node is committed. The per-transaction write set is replicated from the first node to a second node of the cluster. At the second node, the plurality of write operations, specified by the per-transaction write set, may be performed in parallel against a second data store maintained by the second node. At the second node, two or more threads may perform a portion of the plurality of write operations against data blocks stored within an in-memory buffer.
    Type: Grant
    Filed: June 28, 2011
    Date of Patent: March 4, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Brian W. O'Krafka, Darpan Dinker, Manavalan Krishnan, Johann George
  • Patent number: 8396937
    Abstract: A method and system for increasing programmability and scalability of a multi-processor network. A system includes two or more nodes coupled via a network with each node comprising a processor unit and memory. The processor unit includes one or more processors and a wiretap unit. The wiretap unit is configured to monitor memory accesses of the processors. A transaction may execute a number of read and/or write operations to memory. The nodes are configured to replicate one or more portions of memory; detect data conflicts to memory; and restore memory to pre-transaction state if needed.
    Type: Grant
    Filed: April 30, 2007
    Date of Patent: March 12, 2013
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Darpan Dinker, Michael J. Koster
  • Patent number: 8346087
    Abstract: Embodiments of a system that includes an array of chip modules (CMs) is described. In this system, a given CM in the array includes a semiconductor die that is configured to communicate data signals with one or more adjacent CMs through electromagnetic proximity communication using proximity connectors. Note that the proximity connectors are proximate to a surface of the semiconductor die. Moreover, the given CM is configured to communicate optical signals with other CMs through an optical signal path using optical communication, and the optical signals are encoded using wavelength-division multiplexing (WDM).
    Type: Grant
    Filed: September 28, 2007
    Date of Patent: January 1, 2013
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Ashok V. Krishnamoorthy, John E. Cunningham, Xuehze Zheng, Ilya A. Sharapov, Ronald Ho
  • Patent number: 8320761
    Abstract: Embodiments of a bidirectional 3-way optical splitter are described. This bidirectional 3-way optical splitter includes an optical splitter having: a first external node, a second external node, a third external node, and a fourth external node. In one mode of operation, the optical splitter may be configured to receive an external input optical signal on the first external node and to provide external output optical signals on the other external nodes. Moreover, in another mode of operation, the optical splitter may be configured to receive the external input optical signal on the third external node and to provide the external output optical signals on the other external nodes.
    Type: Grant
    Filed: December 21, 2007
    Date of Patent: November 27, 2012
    Assignee: Oracle America, Inc.
    Inventors: Xuezhe Zheng, Brian W. O'Krafka, Ashok V. Krishnamoorthy, John E. Cunningham
  • Publication number: 20120230695
    Abstract: Embodiments of a system that includes an array of chip modules (CMs) is described. In this system, a given CM in the array includes a semiconductor die that is configured to communicate data signals with one or more adjacent CMs through electromagnetic proximity communication using proximity connectors. Note that the proximity connectors are proximate to a surface of the semiconductor die. Moreover, the given CM is configured to communicate optical signals with other CMs through an optical signal path using optical communication, and the optical signals are encoded using wavelength-division multiplexing (WDM).
    Type: Application
    Filed: September 28, 2007
    Publication date: September 13, 2012
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Brian W. O'Krafka, Ashok V. Krishnamoorthy, John E. Cunningham, Xuehze Zheng, Ilya A. Sharapov, Ronald Ho
  • Patent number: 8180968
    Abstract: The invention relates to a method for reducing cache flush time of a cache in a computer system. The method includes populating at least one of a plurality of directory entries of a dirty line directory based on modification of the cache to form at least one populated directory entry, and de-populating a pre-determined number of the plurality of directory entries according to a dirty line limiter protocol causing a write-back from the cache to a main memory, where the dirty line limiter protocol is based on a number of the at least one populated directory entry exceeding a pre-defined limit.
    Type: Grant
    Filed: March 28, 2007
    Date of Patent: May 15, 2012
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Roy S. Moore, Pranay Koka
  • Patent number: 8151057
    Abstract: A shared cache is point-to-point connected to a plurality of point-to-point connected processing nodes, wherein the processing nodes may be integrated circuits or multiprocessing systems. In response to a local cache miss, a requesting processing node issues a broadcast for requested data which is observed by the shared cache. If the shared cache has a copy of the requested data, the shared cache forwards the copy of the requested data to the requesting processing node.
    Type: Grant
    Filed: July 15, 2004
    Date of Patent: April 3, 2012
    Assignee: Oracle America, Inc.
    Inventors: Michael J. Koster, Shailendra Deva, Brian W. O'Krafka
  • Patent number: 8108631
    Abstract: A method, including: initiating a memory operation at a first node including a first memory controller (MC) and a transaction table configured to store a list of nodes affected by the memory operation, transmitting a store request signal to a second node including a second MC and an access table (AT) where the store request signal includes data from the first MC, storing data to the AT in entries corresponding to memory address(es) (MAs) affected by the memory operation, identifying a memory conflict with one or more nodes in the list of nodes when the MAs affected by the memory operation are also affected by one or more conflicting transactions listed in the AT, transmitting an abort signal from the second node to each of the nodes corresponding to the memory conflict, and transmitting an intent to commit signal from the first node to the second node.
    Type: Grant
    Filed: July 18, 2008
    Date of Patent: January 31, 2012
    Assignee: Oracle America, Inc.
    Inventors: Pranay Koka, Brian W. O'Krafka
  • Patent number: 8103165
    Abstract: A method of detecting transmission collisions in an optical data interconnect system. The method includes initiating a data transmission of a data signal from a transmitting node over the optical data channel, transmitting a first collision detect signal from the transmitting node throughout a duration of the data transmission where the first collision detect signal is transmitted over an optical detection channel corresponding to the transmitting node, monitoring at the transmitting node of the optical data interconnect system for a predetermined period of time, where the optical data interconnect system further includes optical collision detection channels corresponding to each of a plurality of receiving nodes and one or more remaining nodes, and identifying a transmission collision when a second collision signal is received through one of the optical collision detection channels at the transmitting node during the predetermined period of time.
    Type: Grant
    Filed: July 18, 2008
    Date of Patent: January 24, 2012
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Pranay Koka, John E. Cunningham, Ashok Krishnamoorthy, Xuezhe Zheng
  • Publication number: 20120005154
    Abstract: Approaches for recovering a node of a distributed transactional system. When a recovering node is being brought on-line, a copy of at least a portion of a first data store maintained by an existing node is created without ceasing to process transactions against the first data store at the existing node. The recovering node creates a second data store based on the copy of the first data store. While the recovering node creates the second data store, the recovering node stores committed transaction data received from a plurality of nodes. The committed transaction data describes transactions committed against data stores maintained by the sender of the committed transaction data. The recovering node may thereafter replay, against the second data store, any transactions identified by the committed transaction data that are associated with a global transaction number that is more recent than is a reference commit number.
    Type: Application
    Filed: June 28, 2011
    Publication date: January 5, 2012
    Inventors: Johann George, Darpan Dinker, Manavalan Krishnan, Brian W. O'Krafka
  • Publication number: 20110320403
    Abstract: Approaches for replicating data in a distributed transactional system. At a first node of a cluster, a per-transaction write set that comprises a plurality of write operations that are performed against a first data store maintained by the first node is committed. The per-transaction write set is replicated from the first node to a second node of the cluster. At the second node, the plurality of write operations, specified by the per-transaction write set, may be performed in parallel against a second data store maintained by the second node. At the second node, two or more threads may perform a portion of the plurality of write operations against data blocks stored within an in-memory buffer.
    Type: Application
    Filed: June 28, 2011
    Publication date: December 29, 2011
    Inventors: Brian W. O'Krafka, Darpan Dinker, Manavalan Krishnan, Johann George
  • Publication number: 20110307654
    Abstract: Approaches for improving writing to solid state devices. An object cache or store, maintained on one or more flash storage devices, comprises two or more slabs. A slab is an allocated amount of memory for storing objects of a particular size. A request to write requested data to a slab is received. The size of the requested data is less than the maximum capacity of objects stored in the slab. After writing the requested data to the slab, unrequested data is written up to the maximum capacity of an object in the slab in the same write operation. Writing the unrequested data to the particular slab is performed for purposes of reducing the time required to write the requested data to the SSD.
    Type: Application
    Filed: April 11, 2011
    Publication date: December 15, 2011
    Inventors: XIAONAN MA, BRIAN W. O'KRAFKA
  • Publication number: 20110307736
    Abstract: Approaches for recovering nodes and adding new nodes to object stores maintained on one or more solid state devices. At a surviving node, in a cluster of nodes, replicating, to a recovering node in the cluster of nodes, all requests to modify data stored in a first data store thereon that are received by the surviving node. The surviving node performing a bulk copy operation to copy data, stored in the first data store, to a second data store maintained on the recovering node. The surviving node (a) replicates all requests to modify data received by the surviving node and (b) performs a bulk copy operation in parallel.
    Type: Application
    Filed: April 11, 2011
    Publication date: December 15, 2011
    Inventors: Johann GEORGE, Brian W. O'KRAFKA
  • Publication number: 20110283045
    Abstract: Approaches for processing an event in an objects store, such as an MySQL database management system or a memcached caching system, that are maintained on one or more solid state devices. A plurality of threads may be instantiated. Each of the threads may be configured to retrieve items from a queue of items. Each item in the queue of items may be associated with a particular event occurring within the object store. Each event is a message that indicates an activity requiring work has occurred within the object store. When a particular thread retrieves an item from the queue of items, the particular thread processes the particular event associated with the item retrieved by the particular thread. In this way, event handling in object stores such as MySQL and memcached may be performed more efficiently on a solid state device.
    Type: Application
    Filed: April 11, 2011
    Publication date: November 17, 2011
    Inventors: Manavalan KRISHNAN, Darpan Dinker, Brian W. O'Krafka
  • Patent number: 7961990
    Abstract: Embodiments of a system are described. This system includes an array of chip modules (CMs) and a baseplate, where the baseplate is configured to communicate data signals via optical communication. Moreover, the array includes first CMs mechanically coupled to first alignment features on the baseplate, and adjacent second CMs mechanically coupled to second alignment features on the baseplate. In this array, a given first CM is electrically coupled to a given set of electrical proximity connectors. Additionally, the array includes bridge components, wherein a given bridge component is electrically coupled to the second SCM and another set of electrical proximity connectors, which is electrically coupled to the set of electrical proximity connectors, thereby facilitating communication of other data signals between adjacent first CMs and second CMs via electrical proximity communication.
    Type: Grant
    Filed: December 21, 2007
    Date of Patent: June 14, 2011
    Assignee: Oracle America, Inc.
    Inventors: Ashok V. Krishnamoorthy, James G. Mitchell, John E. Cunningham, Brian W. O'Krafka
  • Patent number: 7929526
    Abstract: A system and method for sending a cache line of data in a single message is described. An instruction issued by a processor in a multiprocessor system includes an address of a message payload and an address of a destination. Each address is translated to a physical address and sent to a scalability interface associated with the processor and in communication with a system interconnect. Upon translation the payload of the instruction is written to the scalability interface and thereafter communicated to the destination. According to one embodiment, the translation of the payload address is accomplished by the processor while in another embodiment the translation occurs at the scalability interface.
    Type: Grant
    Filed: September 28, 2007
    Date of Patent: April 19, 2011
    Assignee: Oracle America, Inc.
    Inventors: Robert J. Kroeger, Brian W. O'Krafka, Pranay Koka
  • Patent number: 7895400
    Abstract: Multiprocessor systems conducting operations utilizing global shared memory must ensure that the memory is coherent. A hybrid system that combines hardware memory transactions with that of direct messaging provides memory coherence with minimal overhead requirement or bandwidth demands. Memory access transactions are intercepted and converted to direct messages which are then communicated to a target and/or remote node. Thereafter the message invokes a software handler which implements the cache coherence protocol. The handler uses additional messages to invalidate or fetch data in other caches, as well as to return data to the requesting processor. These additional messages are converted to appropriate hardware transactions by the destination system interface hardware.
    Type: Grant
    Filed: September 28, 2007
    Date of Patent: February 22, 2011
    Assignee: Oracle America, Inc.
    Inventors: Brian W. O'Krafka, Pranay Koka, Robert J. Kroeger