Patents by Inventor Kenneth W. Shirriff

Kenneth W. Shirriff 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: 9426102
    Abstract: A first method includes, at a server, receiving a new message in a message thread, identifying quoted text (e.g., text from a previous message in the message thread) in the new message, replacing the quoted text with a token that includes information uniquely associated with the previous message to produce a modified incoming message, and sending the modified incoming message to a client. Optionally, the token includes information identifying the previous message in the message thread. Optionally, the token identifies a range of text in the previous message, and the text replaced by the token corresponds to the range of text in the previous message identified by the token. Optionally, the token comprises a tag having text to be displayed by the client. In some embodiments, the method includes sending to the client all messages in the message thread, including the modified incoming message.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: August 23, 2016
    Assignee: Google Inc.
    Inventors: Cynthia Wong, Debajit Ghosh, Kenneth W. Shirriff
  • Patent number: 7921199
    Abstract: A method and system for event notification is disclosed. In one implementation, the system includes at least one node, an event buffer, and a remote computing system. The node is configured to detect situations of interest on that node, and to generate events in response thereto. The node sends the events to the event buffer to be stored therein. The remote computing system is used to monitor the status of the node. The remote computing system obtains from a server a set of status information for the node, and displays the status information. The remote computing system then polls the event buffer for new events, and in response to detecting one or more new events, the remote computing system obtains from the server a set of updated status information for the node. The updated status information is then displayed to show the updated status of the node.
    Type: Grant
    Filed: September 15, 2003
    Date of Patent: April 5, 2011
    Assignee: Oracle America, Inc.
    Inventors: Kenneth W. Shirriff, Alexander G. Vul, Michael B. Goff
  • Patent number: 7016946
    Abstract: One embodiment of the present invention provides a system that facilitates establishing a quorum for a cluster of computers that are geographically distributed. The system operates by detecting a change in membership of the cluster. Upon detecting the change, the system forms a potential new cluster by attempting to communicate with all other computers within the cluster. The system accumulates votes for each computer successfully contacted. The system also attempts to gain control of a quorum server located at a site separate from all computers within the cluster. If successful at gaining control, the system accumulates the quorum server's votes as well. If the total of accumulated votes is a majority of the available votes, the system forms a new cluster from the potential new cluster.
    Type: Grant
    Filed: July 5, 2001
    Date of Patent: March 21, 2006
    Assignee: Sun Microsystems, Inc.
    Inventor: Kenneth W. Shirriff
  • Patent number: 6925492
    Abstract: One embodiment of the present invention provides a system that facilitates configuring the network interfaces coupling together a group of computers. The system operates by receiving a request at a computer to configure the group of computers into a cluster of computers that function in concert as a single unit. Next, the system establishes whether each network interface within the computer is private or public, wherein a private network interface is used for intercommunications within the cluster of computers and a public network interface is used for communications with client computers. Using the private interconnects, the system determines the connectivity among the plurality of computers. Next, the system calculates a configuration for the cluster of computers. This configuration is presented to an administrator, which allows the administrator to edit the configuration to establish a more desirable configuration. Finally, the cluster of computers is installed using the configuration.
    Type: Grant
    Filed: June 25, 2001
    Date of Patent: August 2, 2005
    Assignee: Sun Microsystems, Inc
    Inventor: Kenneth W. Shirriff
  • Patent number: 6735220
    Abstract: One embodiment of the present invention provides a system that uses a centralized server to coordinate assigning identifiers in a distributed computing system. The system operates by receiving a request for a block of identifiers at the centralized server from a requesting node in the distributed computing system. In response to this request, the system selects a block of identifiers from a global pool of identifiers, and then marks the global pool of identifiers to indicate that the selected block of identifiers has been assigned. The system sends the selected block of identifiers to the requesting node in order to allow the requesting node to assign identifiers from the selected block of identifiers without having to communicate with the centralized server.
    Type: Grant
    Filed: August 1, 2000
    Date of Patent: May 11, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Kenneth W. Shirriff
  • Patent number: 6662213
    Abstract: A system and method are provided for ensuring delivery of a communication from one computer system or node to another. A first node includes an object handler, such as an ORB (Object Request Broker), that receives object references from higher-level services operating on the first node, wherein the referenced object resides on a second node. The first node's object handler generates a message to an object handler on the second node and attempts to send the message to the second node through a transport module. The message is assigned a unique identifier, such as a sequence number. If the first object handler receives an uncertain status concerning the message (e.g., other than a certain success or failure), it issues a query to the second node to determine if the message was received. If the query is received by the second object handler before the message itself is received, the message is considered lost or rescinded by the first node.
    Type: Grant
    Filed: January 10, 2000
    Date of Patent: December 9, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Ying Xie, Madhusudhan K. Talluri, Skef F. Iterum, Kenneth W. Shirriff
  • Publication number: 20030103310
    Abstract: Described is a technique for testing a user interface of a clustered computer system consisting of one or more cluster nodes, which are controlled by a cluster management program coupled with an administrative web server providing a user interface for the cluster management program. The testing program pre-records a sequence of requests to be sent to the administrative web server of the cluster at a later time; sends the pre-recorded sequence of requests to the administrative web server; and receives a sequence of responses of the administrative web server of the cluster to the sent pre-recorded sequence of requests. The sequence of the received responses indicates the correctness of operation of the cluster user interface. Specifically, the sequence of the received responses is compared to a sequence of expected responses corresponding to the sequence of the requests sent. The testing may also include communicating with the nodes of the cluster directly and performing direct examination of the nodes.
    Type: Application
    Filed: December 3, 2001
    Publication date: June 5, 2003
    Inventor: Kenneth W. Shirriff
  • Publication number: 20030023680
    Abstract: One embodiment of the present invention provides a system that facilitates establishing a quorum for a cluster of computers that are geographically distributed. The system operates by detecting a change in membership of the cluster. Upon detecting the change, the system forms a potential new cluster by attempting to communicate with all other computers within the cluster. The system accumulates votes for each computer successfully contacted. The system also attempts to gain control of a quorum server located at a site separate from all computers within the cluster. If successful at gaining control, the system accumulates the quorum server's votes as well. If the total of accumulated votes is a majority of the available votes, the system forms a new cluster from the potential new cluster.
    Type: Application
    Filed: July 5, 2001
    Publication date: January 30, 2003
    Inventor: Kenneth W. Shirriff
  • Publication number: 20020198968
    Abstract: One embodiment of the present invention provides a system that facilitates configuring the network interfaces coupling together a group of computers. The system operates by receiving a request at a computer to configure the group of computers into a cluster of computers that function in concert as a single unit. Next, the system establishes whether each network interface within the computer is private or public, wherein a private network interface is used for intercommunications within the cluster of computers and a public network interface is used for communications with client computers. Using the private interconnects, the system determines the connectivity among the plurality of computers. Next, the system calculates a configuration for the cluster of computers. This configuration is presented to an administrator, which allows the administrator to edit the configuration to establish a more desirable configuration. Finally, the cluster of computers is installed using the configuration.
    Type: Application
    Filed: June 25, 2001
    Publication date: December 26, 2002
    Inventor: Kenneth W. Shirriff
  • Patent number: 6298390
    Abstract: In a computer system having a kernel supporting an interface definition language, a file system composed of an object framework. The object framework includes a set of proxy vnodes, a set of memcache vnodes, and a set of storage vnodes. The set of proxy vnodes and the set of memcache vnodes are linked to the set of storage vnodes through the use of the interface definition language, and the set of proxy vnodes are linked to the set of memcache vnodes through the use of a set of pointers. Each proxy vnode of said set of proxy vnodes is typed so as to differentiate between a set of file system objects such as files, directories and devices. The set of memcache vnodes forms an interface to a virtual memory system while the set of storage vnodes forms an interface to an underlying file system. The file system also uses a set of file paging interfaces that support extensions to the file system while providing full coherence of data.
    Type: Grant
    Filed: March 26, 1996
    Date of Patent: October 2, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Vladimir Matena, Yousef A. Khalidi, Jose Bernabeu-Auban, Moti N. Thadani, Kenneth W. Shirriff
  • Patent number: 6145094
    Abstract: One embodiment of the present invention provides a method and an apparatus that ensures proper semantics for operations when operations are restarted on a secondary server in the event of a failure of a primary server. This embodiment keeps a record on the secondary server of which operation currently has exclusive access to a shared resource. The method operates by receiving a message from the primary server indicating that a first operation on the primary server has acquired exclusive access to the shared resource. In response to this message, the system updates state information, at the secondary server, to indicate that the first operation has exclusive access to the shared resource and that any prior operations have completed their exclusive accesses to the shared resource. Upon receiving notification that the primary server has failed, the secondary server is configured to act as a new primary server.
    Type: Grant
    Filed: May 12, 1998
    Date of Patent: November 7, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Kenneth W. Shirriff, Declan J. Murphy
  • Patent number: 6094185
    Abstract: An apparatus to automatically adjust, in accordance with a set of user preferences, a computer display parameter, such as brightness or contrast, in response to ambient light conditions is described. The apparatus includes an ambient light sensor to obtain an ambient light signal. A mapping mechanism, connected to the ambient light sensor, maps the ambient light signal to a user preference value in a user preference table. Computer display control circuitry, connected to the mapping mechanism, then adjusts the selected computer display parameter of the computer display in response to the user preference value. A preferable embodiment of the invention includes colored light sensors that produce colored ambient light signals. The colored ambient light signals are mapped into colored preference tables. By adjusting the values in the colored preference tables, the image appearing on the computer display can be matched to a replica of the image printed on paper.
    Type: Grant
    Filed: May 7, 1997
    Date of Patent: July 25, 2000
    Assignee: Sun Microsystems, Inc.
    Inventor: Kenneth W. Shirriff
  • Patent number: 5860153
    Abstract: A bit map is maintained by a provider object of a name server to keep track of names cached by a cache object of the client. The bit map is indexed by performing a hash of the name. When a name is looked up by the server on behalf of a client, the server hashes the name, and sets the bit in the bit map indexed by the result of the hash modulo the size of the bit map. The result of the hash is returned to the client and is stored with the entry in the cache. A bit "set" in the bit map indicates that the client caches at least one name that hashes into the bit. When the server invalidates a name, a hash of the name to be invalidated is used to find the corresponding bit in the bit mask. If the bit is set, the server sends an invalidation request to the client. The invalidation request includes the result of the hash, and the size of the provider's bit map. The client invalidates all entries that hash into the specified bit in the bitmap on the server.
    Type: Grant
    Filed: November 22, 1995
    Date of Patent: January 12, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Vladimir Matena, Jose M. Bernabeu-Auban, Yousef A. Khalidi, Kenneth W. Shirriff, Moti N. Thadani
  • Patent number: 5805572
    Abstract: Transparent routing within the cluster is achieved (without changing the networking code on each node of the cluster) by using a pair of modules interposed appropriately on the networking stack. In a "clustered" system built out of several computers, using the present invention, the networking subsystem appears to applications as if the applications are running on a single computer. In addition, no modifications to the networking code is needed. The present invention is extensible to a variety of networking protocols, not just TCP/IP as the packet filter allows the routing within the cluster to be done dynamically. No modifications to the applications is needed (same binaries will work). A packet filter and remote communication between the modules through IDL enable the modules to do their job. A name server that maintains the port name space is used.
    Type: Grant
    Filed: November 22, 1995
    Date of Patent: September 8, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Jose M. Bernabeu-Auban, Yousef A. Khalidi, Vladimir Matena, Kenneth W. Shirriff
  • Patent number: 5648965
    Abstract: A packet filter can be programmed by a remote controller to detect packets meeting a particular criterion and to report detection of these packets to the controller. The reports from the packet filter are collected and analyzed by the remote controller. A streams module that incorporates the packet filter is used within a Solaris operating system environment that has been enhanced to support an object framework. The streams module exports a programming interface to the packet filter defined in an interface definition language (IDL). The streams module can be pushed onto a network device in a similar fashion to other streams modules. The streams module responds to requests from one remote controller or to requests from more than one remote controller. These remote controller requests arrive as remote procedure call (RPC) requests on the IDL object references exported by the module.
    Type: Grant
    Filed: July 7, 1995
    Date of Patent: July 15, 1997
    Assignee: Sun Microsystems, Inc.
    Inventors: Moti N. Thadani, Jose M. Bernabeu-Auban, Yousef A. Khalidi, Vladimir Matena, Kenneth W. Shirriff