Patents by Inventor Alistair Veitch

Alistair Veitch 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: 7761663
    Abstract: A unit of data is read from memory of a replicated cache. The replicated cache comprises a plurality of independent computing devices. Each independent computing device comprises a processor and a portion of the memory. Confirmations are received from at least a majority of the independent computing devices that a flush operation for the unit of data was initiated no later than a time indicated by the timestamp and that a more recent version of the unit of data has not been flushed. The unit of data is provided to storage.
    Type: Grant
    Filed: February 16, 2006
    Date of Patent: July 20, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James M. Reuter, James Perry Jackson
  • Patent number: 7725655
    Abstract: Data blocks are read from a distributed cache. The distributed cache comprises m replicated caches, each replicated cache including a plurality of independent computing devices. Each independent computing device of the replicated caches holds a replica of a particular one of the m data blocks in memory. The m data blocks and p parity blocks are stored across m plus p independent computing devices. Each of the m plus p independent computing devices stores a single block selected from the m data blocks and the p parity blocks.
    Type: Grant
    Filed: February 16, 2006
    Date of Patent: May 25, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James M. Reuter, James Perry Jackson
  • Patent number: 7647454
    Abstract: A transactional shared memory system has a plurality of discrete application nodes; a plurality of discrete memory nodes; a network interconnecting the application nodes and the memory nodes, and a controller for directing transactions in a distributed system utilizing the shared memory. The memory nodes collectively provide an address space of shared memory that is provided to the application nodes via the network. The controller has instructions to transfer a batched transaction instruction set from an application node to at least one memory node. This instruction set includes one or more write, compare and read instruction subsets, and/or combinations thereof. At least one subset has a valid non null memory node identifier and memory address range. The memory node identifier may be indicated by the memory address range.
    Type: Grant
    Filed: June 12, 2006
    Date of Patent: January 12, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Marcos K. Aguilera, Christos Karamanolis, Arif Merchant, Mehul A. Shah, Alistair Veitch
  • Patent number: 7644308
    Abstract: Embodiments of the present invention are directed to digitally encoded hierarchical timestamps that are stored in computer readable mediums. The hierarchical timestamps of the present invention include a first field that stores a timestamp value and a second field that stores a processing-level indication that indicates the scope of the timestamp within a hierarchical processing system.
    Type: Grant
    Filed: March 6, 2006
    Date of Patent: January 5, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Douglas L. Voigt, James P. Jackson, Alistair Veitch, James M. Reuter
  • Publication number: 20080270450
    Abstract: Various embodiments are directed to using interface events to group files. One embodiment, collects user interface events, uses the user interface events to generate a group of files that are related to a task, and enhances a query to discover files associated with the task.
    Type: Application
    Filed: April 30, 2007
    Publication date: October 30, 2008
    Inventors: Alistair Veitch, Karl Anders Gyllstrom, Henri J. Suermondt, Pankaj Mehra
  • Publication number: 20080183973
    Abstract: Embodiments include methods, apparatus, and systems for snapshots in distributed storage systems. One method of software execution includes using a version tree to determine what data blocks are shared between various storage nodes in the version tree in order to create a clone or a snapshot of a storage volume in a distributed storage system that uses quorum-based replication.
    Type: Application
    Filed: January 31, 2007
    Publication date: July 31, 2008
    Inventors: Marcos K. Aguilera, Alistair Veitch, Susan Spence
  • Patent number: 7380081
    Abstract: A primary copy of data is held at a primary storage facility, while data that is redundant of the primary copy is held at a secondary storage facility. To inhibit propagation of errors from the primary copy to the redundant data, write transactions to the redundant data are queued at the second storage facility, until a specified time elapses or until a specified event occurs (or until combination hereof occurs). Write transactions may be collected in groups at the primary facility prior to forwarding to the secondary facility and may also be batched at the secondary facility prior to being applied to the redundant data. Overwrites may be allowed within a group at the primary facility to conserve communication bandwidth between the primary and secondary storage facilities. Overwrites may be allowed within a batch at the secondary facility to conserve space occupied by the transactions at the secondary facility.
    Type: Grant
    Filed: June 6, 2003
    Date of Patent: May 27, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Minwen Ji, Alistair Veitch, John Wilkes
  • Publication number: 20080069098
    Abstract: Provided is a system and method for directing group communication in a system environment that has a plurality of discrete application nodes networked with at least one discrete memory node, establishing a shared memory providing a passive message queue. A code library permits an application node member of a group to assemble a message selected from the group of send, join, leave, or read. The send, join and leave messages permit a first application node to add a message to the queue for all members of a group including the first application node at the time the message was added. The instruction set permitting the addition of the message is executed atomically.
    Type: Application
    Filed: September 15, 2006
    Publication date: March 20, 2008
    Inventors: Mehul A. Shah, Marcos K. Aguilera, Christos Karamanolis, Arif Merchant, Alistair Veitch
  • Publication number: 20080046779
    Abstract: The present invention provides techniques for assignment and layout of redundant data in data storage system. In one aspect, the data storage system stores a number M of replicas of the data. Nodes that have sufficient resources available to accommodate a requirement of data to be assigned to the system are identified. When the number of nodes is greater than M, the data is assigned to M randomly selected nodes from among those identified. The data to be assigned may include a group of data segments and when the number of nodes is less than M, the group is divided to form a group of data segments having a reduced requirement. Nodes are then identified that have sufficient resources available to accommodate the reduced requirement. In other aspects, techniques are providing for adding a new storage device node to a data storage system having a plurality of existing storage device nodes and for removing data from a storage device node in such a data storage system.
    Type: Application
    Filed: July 13, 2007
    Publication date: February 21, 2008
    Inventors: Arif Merchant, Svend Frolund, Yasusuhi Saito, Susan Spence, Alistair Veitch
  • Publication number: 20070288587
    Abstract: A transactional shared memory system has a plurality of discrete application nodes; a plurality of discrete memory nodes; a network interconnecting the application nodes and the memory nodes, and a controller for directing transactions in a distributed system utilizing the shared memory. The memory nodes collectively provide an address space of shared memory that is provided to the application nodes via the network. The controller has instructions to transfer a batched transaction instruction set from an application node to at least one memory node. This instruction set includes one or more write, compare and read instruction subsets, and/or combinations thereof. At least one subset has a valid non null memory node identifier and memory address range. The memory node identifier may be indicated by the memory address range.
    Type: Application
    Filed: June 12, 2006
    Publication date: December 13, 2007
    Inventors: Marcos K. Aguilera, Christos Karamanolis, Arif Merchant, Mehul A. Shah, Alistair Veitch
  • Patent number: 7287137
    Abstract: A sequence of write transactions are performed at a first storage facility. The write transactions are arranged into a sequence of send batches forwarded to a second storage facility where the write transactions are arranged into a sequence of receive batches. At the first storage facility or at the second storage facility, a first write transaction is replaced with a second write transaction wherein the second write transaction overwrites data written by the first write transaction. A receive batch includes all write transactions between the first write transaction and the second write transaction. The write transactions are applied to a redundant data copy at the second storage facility in which all of the write transactions for the receive batch are applied as a whole to the redundant copy of the data.
    Type: Grant
    Filed: June 6, 2003
    Date of Patent: October 23, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Minwen Ji, Alistair Veitch, John Wilkes
  • Publication number: 20070208839
    Abstract: Embodiments of the present invention are directed to digitally encoded hierarchical timestamps that are stored in computer readable mediums. The hierarchical timestamps of the present invention include a first field that stores a timestamp value and a second field that stores a processing-level indication that indicates the scope of the timestamp within a hierarchical processing system.
    Type: Application
    Filed: March 6, 2006
    Publication date: September 6, 2007
    Inventors: Douglas Voigt, James Jackson, Alistair Veitch, James Reuter
  • Publication number: 20070208760
    Abstract: Various method and system embodiments of the present invention are directed to data and data-state-describing data structures employed in storage components of a distributed data-storage system. In one embodiment of the present invention, a hierarchical data structure stores the data state of a component data-storage system of a distributed data-storage system. In another embodiment of the present invention, a data-block address, stored in a computer-readable memory within a component data-storage system of a distributed data-storage system, includes a block identifier and additional data fields that serve to uniquely specify the addressed data block when multiple copies of the data block are stored in the component data-storage system under different redundancy schemes.
    Type: Application
    Filed: March 6, 2006
    Publication date: September 6, 2007
    Inventors: James M. Reuter, James Jackson, Douglas L. Voigt, Alistair Veitch
  • Publication number: 20070208790
    Abstract: Various embodiments of the present invention provide methods, in distributed data-storage systems that associate one or more timestamps with each data block in each data-storage-component, for deciding whether or not a data block has been written. In certain embodiments of the present invention, a sparse database of timestamps associated with data blocks is maintained, each timestamp having a field that contains one of an indication of a time or sequence and a sentinel value indicating that the timestamp is garbage collected. When a timestamp is not found associated with a data block in a timestamp database, the data block is associated with a garbage-collected-timestamp state. In various embodiments of the present invention, data structures are maintained that store status information indicating whether or not any of a number of data blocks in each of a number of data-block-allocation units have been written.
    Type: Application
    Filed: March 6, 2006
    Publication date: September 6, 2007
    Inventors: James Reuter, James Jackson, Douglas Voigt, Alistair Veitch
  • Publication number: 20070192542
    Abstract: An embodiment of a method of operating a distributed storage system includes reading m data blocks from a distributed cache. The distributed cache comprises memory of a plurality of independent computing devices that include redundancy for the m data blocks. The m data blocks and p parity blocks are stored across m plus p independent computing devices. Each of the m plus p independent computing devices stores a single block selected from the m data blocks and the p parity blocks.
    Type: Application
    Filed: February 16, 2006
    Publication date: August 16, 2007
    Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James Reuter, James Jackson
  • Publication number: 20070192544
    Abstract: An embodiment of a method of operating a replicated cache includes generating a timestamp. A unit of data is read from memory of the replicated cache. The replicated cache comprises a plurality of independent computing devices. Each independent computing device comprises a processor and a portion of the memory. Confirmations are received from at least a majority of the independent computing devices that a flush operation for the unit of data was initiated no later than a time indicated by the timestamp and that a more recent version of the unit of data has not been flushed. The unit of data is provided to storage.
    Type: Application
    Filed: February 16, 2006
    Publication date: August 16, 2007
    Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James Reuter, James Jackson
  • Patent number: 7203621
    Abstract: A technique of workload characterization for a computer system. Records of activity in the system are generated and identified as corresponding to each of a plurality of selected time periods. The records of activity for each selected time period are processed to form a characterization of the activity within each corresponding time period. Further, whether little or no activity occurs during a time period can be indicated by a binary representation. Periods of simultaneous activity of processes can then be determined by applying simple logical operations to the binary representations. Resources of the system may be reallocated based on the characterizations of the activity.
    Type: Grant
    Filed: June 6, 2002
    Date of Patent: April 10, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Alistair Veitch, Eric Anderson, John Wilkes
  • Patent number: 7178055
    Abstract: Methods and apparatus for obtaining consistency of redundant data after a failover event. In one aspect, a redundant data storage system has a first data storage facility that initially acts as a primary facility for storage requests and a second data storage facility that initially acts as a secondary facility for the storage requests. The second data storage facility is conditioned to assume the role of the primary facility in response to a failover event. The first data storage facility is conditioned to assume the role of the secondary facility, which includes sending a copy of data committed at the second data storage facility to the first data storage facility. The copy of data includes a version of data committed at the second storage facility.
    Type: Grant
    Filed: June 6, 2003
    Date of Patent: February 13, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Minwen Ji, Alistair Veitch, John Wilkes
  • Patent number: 7165187
    Abstract: Techniques for performing data redundancy operations in a distributed manner. A primary data storage facility stores a primary copy of data and a secondary facility stores data that is redundant of the primary copy of the data. The primary facility includes a first redundancy appliance that receives a first sequence of write requests and stores data for the first sequence of write requests in mass storage associated with the first redundancy appliance. A second redundancy appliance receives a second sequence of write requests and stores data for the second sequence of write requests in mass storage associated with the second redundancy appliance. Thus, a workload is shared among the first and second redundancy appliances by dividing the workload into the first and second sequences of write requests, where each sequence is handled by a different redundancy appliance.
    Type: Grant
    Filed: June 6, 2003
    Date of Patent: January 16, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Minwen Ji, Alistair Veitch, John Wilkes
  • Patent number: 7152077
    Abstract: Data structure and timestamp management techniques for redundant storage. A plurality of storage devices are interconnected by a communication medium. At least two of the storage devices are designated devices for storing a block of data. Each designated device stores a version of the data and a first timestamp that is indicative of when the version of data was last updated. A second timestamp is indicative of a pending update to the block of data. When the update to the block of data is completed at one of the designated devices, the device discards the second timestamp. A storage device acting as coordinator instructs the device to discard the second timestamp. The designated storage devices store a plurality of blocks of data and corresponding timestamps according to a data structure. At least some of the entries in the data structure correspond to a range of data blocks that share a common timestamp. Entries in the data structure are arranged such that the ranges do not overlap.
    Type: Grant
    Filed: May 16, 2003
    Date of Patent: December 19, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Alistair Veitch, Svend Frolund, Arif Merchant, Susan Spence, Yasusuhi Saito