Patents by Inventor Darrin P. Johnson

Darrin P. Johnson 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: 7894463
    Abstract: One embodiment of the present invention provides a system that facilitates improved resource allocation in a network. During operation, the system determines one or more metrics value for a node based on a characteristic of the node and assigns nodes within the network to access groups based on each node's characteristic-metric value and a grouping policy. The system further constructs a logical hierarchy of access groups based on the characteristic-metric values of the nodes within each access group. Additionally, the system allows a node to forward traffic to a next-hop node identified within an access group on a logical hierarchy level, thereby facilitating better resource allocation in the network.
    Type: Grant
    Filed: November 21, 2006
    Date of Patent: February 22, 2011
    Assignee: Oracle America, Inc.
    Inventors: Samita Chakrabarti, Darrin P. Johnson, Eric C. Saxe
  • Patent number: 7882319
    Abstract: A method for memory management that includes receiving a request for memory space, identifying a first memory module from a plurality of memory modules based on a first memory power management policy, wherein the first memory power management policy specifies how to allocate memory space in the plurality of memory modules to satisfy a power consumption criteria, and allocating the memory space on the first memory module.
    Type: Grant
    Filed: September 27, 2007
    Date of Patent: February 1, 2011
    Assignee: Oracle America Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe, Sherry Q. Moore
  • Publication number: 20100333113
    Abstract: A computer readable storage medium including executable instructions for heuristics-based task scheduling. Instructions include receiving a first event notification associated with a first event, where the first event is determined from the first event notification. Instructions further include determining whether a predicate for an action is satisfied by the first event, where the action predicate, the action, and an action parameter are associated with a task object in a task pool. Instructions further include obtaining the action parameter when the action predicate is satisfied by the first event, where a priority is assigned using a heuristics policy to the task object based on the action parameter. Instructions further include inserting the task object into a task queue using the assigned priority. The action associated with the task object is performed by an execution thread. The performance of the action is a second event associated with a second event notification.
    Type: Application
    Filed: June 29, 2009
    Publication date: December 30, 2010
    Applicant: Sun Microsystems, Inc.
    Inventors: Darrin P. Johnson, Eric C. Saxe
  • Publication number: 20100332883
    Abstract: A system for dispatching a thread to a resource obtains a thread and utilization data for all resources. The system determines if there is a thread-resource affinity. The system uses thread-resource affinity to identify a resource and a timestamp for when the thread last completed executing on the resource. The system determines if the resource qualifies under a dispatch policy. The system uses utilization data to determine a timestamp for when the resource last transitioned to a not powered state. When the second timestamp precedes the first timestamp, the system dispatches the thread to the resource and generates a power management event. The system determines if the power management event satisfies a throttle policy. The system discards the power management event when throttle policy is unsatisfied and determines whether to adjust the current power state of the resource based on the power management event when throttle policy is satisfied.
    Type: Application
    Filed: June 30, 2009
    Publication date: December 30, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Eric C. Saxe, Darrin P. Johnson, William D. Holler
  • Publication number: 20100333097
    Abstract: A computer readable storage medium including executable instructions for managing a task. Instructions include receiving a request. Instructions further include determining a task corresponding with the request using a request-to-task mapping. Instructions include obtaining a task entry corresponding with the task from a task store, where the task entry associates the task with an action and a predicate for performing the action. Instructions further include creating a task object in a task pool using the task entry. Instructions further include receiving an event notification at the task engine, where the event notification is associated with an event. Instructions further include determining whether the predicate for performing the action is satisfied by the event. Instructions further placing the task object in a task queue when the predicate for performing the action is satisfied by the event.
    Type: Application
    Filed: June 29, 2009
    Publication date: December 30, 2010
    Applicant: SUN MICROSYSTEMS, INC.
    Inventors: Darrin P. Johnson, Eric C. Saxe
  • Patent number: 7840657
    Abstract: A method for power-managing storage devices in a storage pool involves monitoring the storage pool to determine whether a storage management policy is satisfied, where the storage pool comprises a first storage device that is powered up and a second storage device that is powered down, powering up the second storage device after the storage management policy is satisfied, and making the second storage device available for use in the storage pool after the second storage device is powered up.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: November 23, 2010
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, Tabriz I. Holtz
  • Patent number: 7801046
    Abstract: A method for bandwidth control on a network interface card (NIC), the method that includes initiating a current time period, receiving a plurality of incoming packets for a receive ring, populating, by a NIC, the receive ring with the plurality of incoming packets according to a size of the receive ring during the current time period, wherein the size of the receive ring is based on an allocated bandwidth for the receive ring, and sending, by the NIC, the plurality of incoming packets to a host when a duration of the current time period elapses, wherein the duration is based on the allocated bandwidth for the receive ring.
    Type: Grant
    Filed: April 28, 2008
    Date of Patent: September 21, 2010
    Assignee: Oracle America, Inc.
    Inventors: Anders D. Persson, Cesar A. C. Marcondes, Darrin P. Johnson, Kais Belgaied
  • Patent number: 7792882
    Abstract: A method for priority-based allocation in a storage pool, involving receiving a first request to write a first data item in the storage pool, wherein the storage pool includes a first hybrid drive including a first plurality of metaslabs associated with a first storage type and a second plurality of metaslabs associated with a second storage type, selecting a first target metaslab from the first and second plurality of metaslabs based on a first plurality of allocation priorities, wherein the first plurality of allocation priorities are determined using a storage and power management policy, a storage characteristic, and a power characteristic associated with the first storage type and the second storage type in the first hybrid drive, allocating a first block to the first target metaslab, and writing the first block to the first target metaslab, wherein the first block includes a first portion of the first data item.
    Type: Grant
    Filed: September 27, 2007
    Date of Patent: September 7, 2010
    Assignee: Oracle America, Inc.
    Inventors: William H. Moore, Darrin P. Johnson, George R. Wilson
  • Publication number: 20100223390
    Abstract: A method for using offloaded transport layer protocols involves signaling a network interface controller (NIC) with a signal to use one of multiple transport layer protocols embedded in the NIC, and transmitting a data packet via the NIC using the transport layer protocol.
    Type: Application
    Filed: May 14, 2010
    Publication date: September 2, 2010
    Applicant: ORACLE AMERICA, INC.
    Inventors: Cesar A. C. Marcondes, Anders D. Persson, Darrin P. Johnson
  • Patent number: 7783847
    Abstract: A method for reallocating blocks in a storage pool involves copying multiple source blocks to multiple replacement blocks, where the source blocks are stored on a source disk in the storage pool, and where the replacement blocks are stored on one or more replacement disks in the storage pool, and generating an indirection object, where the indirection object includes a mapping of locations of the source blocks to locations of the replacement blocks.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: August 24, 2010
    Assignee: Oracle America Inc.
    Inventors: William H. Moore, Darrin P. Johnson, Jeffrey S. Bonwick, Tabriz I. Holtz
  • Patent number: 7782870
    Abstract: Computing resources available on multiple computing devices are consolidated by an intermediate computing system and provided to other computing systems when those computing systems need additional bandwidth and processing power they cannot provide by themselves.
    Type: Grant
    Filed: April 22, 2005
    Date of Patent: August 24, 2010
    Assignee: Oracle America, Inc.
    Inventors: Sunay Tripathi, Jonathan I. Schwartz, Darrin P. Johnson
  • Patent number: 7779132
    Abstract: One embodiment of the present invention provides a system for communicating data using a socket interface with multiple transport layer implementations. During operation the system creates a socket which can be used with a set of transport layer implementations. Next, the system binds the socket to a local port without specifying a particular transport layer implementation. The system then receives a request to connect to a target port that is associated with a target address. Next, the system selects a protocol implementation from the set of transport layer implementations using the target port and the target address. The system then sends a connection request to the target port using the selected protocol implementation. Note that the present invention does not require changing a networking application because the transport layer implementation is selected automatically by the system, instead of requiring the application to possess the knowledge to select the appropriate transport layer implementation.
    Type: Grant
    Filed: November 14, 2005
    Date of Patent: August 17, 2010
    Assignee: Oracle America, Inc.
    Inventors: Hsiao-Keng J. Chu, Darrin P. Johnson, Eric T. Cheng
  • Patent number: 7764678
    Abstract: A computer system that forwards data packets is described. During operation, the system receives a data packet on a first interface and classifies the data packet to determine a corresponding destination. This classification is based on dynamically configured classification rules that include multiple attributes corresponding to multiple layers in an Open System Interconnect (OSI) Reference model. Then, the system provides the data packet on a second interface corresponding to the destination.
    Type: Grant
    Filed: October 10, 2006
    Date of Patent: July 27, 2010
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Kais Belgaied
  • Patent number: 7756888
    Abstract: One embodiment of the present invention provides a system that provides heterogeneous resources for client systems. During operation, the system maintains a stateful resource database that tracks heterogeneous resources in a given environment. The system receives requests from client systems, and in response to the requests searches for a heterogeneous resource in the stateful resource database that matches the request. If the system finds an available heterogeneous resource that matches the request, it proceeds to submit the request to the resource. Maintaining and using the stateful resource database facilitates efficiently sharing scarce heterogeneous resources across a number of client systems.
    Type: Grant
    Filed: July 3, 2007
    Date of Patent: July 13, 2010
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Kais Belgaied
  • Patent number: 7751401
    Abstract: A method for processing packets. The method includes receiving a first packet by a first socket on a host, determining by the first socket to process the first packet using a first virtual Transmission Control Protocol offload engine (VTOE), transmitting the first packet to the first VTOE, wherein transmitting the first packet to the first VTOE bypasses a first virtual network stack interposed between the first socket and first VTOE, transmitting the first packet to a HW TOE operatively connected to the host, processing the first packet, using the HW TOE, to obtain a first processed packet; and transmitting the first processed packet to a network operatively connected to the HW TOE, where the HW TOE is associated with the first VTOE and a second VTOE in the host.
    Type: Grant
    Filed: June 30, 2008
    Date of Patent: July 6, 2010
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Kais Belgaied
  • Patent number: 7746901
    Abstract: A method for using offloaded transport layer protocols involves signaling a network interface controller (NIC) with a signal to use one of multiple transport layer protocols embedded in the NIC, and transmitting a data packet via the NIC using the transport layer protocol.
    Type: Grant
    Filed: December 14, 2006
    Date of Patent: June 29, 2010
    Assignee: Oracle America, Inc.
    Inventors: Cesar A. C. Marcondes, Anders D. Persson, Darrin P. Johnson
  • Patent number: 7733795
    Abstract: A method for testing a network topology. The method includes obtaining the network topology, where the network topology includes a number of nodes connected by at least one link. The method further includes instantiating a number of containers corresponding to the nodes, instantiating a number of virtual network stacks, and instantiating at least one virtual switch corresponding to the at least one link. The containers are subsequently connected to the virtual network stacks using the at least one virtual switch. At least one of the virtual network stacks is then configured to send and receive packets. Finally, the network topology is tested by sending a packet through at least one of the plurality of virtual network stacks and the at least one virtual switch, wherein a result of the testing is used to validate the network topology.
    Type: Grant
    Filed: November 28, 2006
    Date of Patent: June 8, 2010
    Assignee: Oracle America, Inc.
    Inventors: Darrin P. Johnson, Erik Nordmark, Kais Belgaied
  • Patent number: 7701856
    Abstract: A method for managing a network connection includes establishing the network connection between an application and a packet destination, wherein the network connection comprises a plurality of paths, receiving a plurality of packets from the application on the network connection, wherein the plurality of packets is associated with the network connection, and wherein the plurality of packets comprises data from the application, obtaining a distribution of the plurality of packets among the plurality of paths by a master transport protocol module, wherein each of the plurality of paths is associated with one of a plurality of transport protocol modules, and transmitting, based on the distribution, the plurality of packets over the plurality of paths using the plurality of transport protocol modules, wherein each of the plurality of transport protocol modules implements one of a plurality of congestion control algorithms, wherein the plurality of packets are received at the packet destination.
    Type: Grant
    Filed: December 14, 2006
    Date of Patent: April 20, 2010
    Assignee: Oracle America, Inc.
    Inventors: Cesar A. C. Marcondes, Anders D. Persson, Darrin P. Johnson
  • Patent number: 7702799
    Abstract: A method for securing a commercial grid network over non-trusted routes involves receiving, by an administrative node in the commercial grid network, a lease request from a client to lease one of multiple resource nodes in the commercial grid network, wherein the client is separated from the resource node by a non-trusted route. The method further involves transmitting, by the administrative node, a network security key associated with the client to the resource node, storing, by the resource node, the network security key in a network security key repository specific to the resource node, establishing, by the resource node, a secure network tunnel over the non-trusted route using the network security key, transmitting a network packet securely between the client and the resource node over the secure network tunnel, and destroying, by the resource node, the secure network tunnel when a lease term associated with the client and the resource node expires.
    Type: Grant
    Filed: June 28, 2007
    Date of Patent: April 20, 2010
    Assignee: Oracle America, Inc.
    Inventors: Kais Belgaied, Darrin P. Johnson
  • Patent number: 7672240
    Abstract: A method for optimizing a network stack includes inputting network information into a transport protocol algorithm selector, inputting a first transport protocol algorithm into the transport protocol algorithm selector, analyzing a result of the transport protocol algorithm selector, selecting the first transport protocol algorithm based on the result, receiving a first packet in the network stack, and processing the first packet using the first transport protocol algorithm.
    Type: Grant
    Filed: December 14, 2006
    Date of Patent: March 2, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Darrin P. Johnson, Cesar A. C. Marcondes, Anders D. Persson