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: 7761663Abstract: 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: GrantFiled: February 16, 2006Date of Patent: July 20, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James M. Reuter, James Perry Jackson
-
Patent number: 7725655Abstract: 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: GrantFiled: February 16, 2006Date of Patent: May 25, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James M. Reuter, James Perry Jackson
-
Patent number: 7647454Abstract: 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: GrantFiled: June 12, 2006Date of Patent: January 12, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Marcos K. Aguilera, Christos Karamanolis, Arif Merchant, Mehul A. Shah, Alistair Veitch
-
Patent number: 7644308Abstract: 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: GrantFiled: March 6, 2006Date of Patent: January 5, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Douglas L. Voigt, James P. Jackson, Alistair Veitch, James M. Reuter
-
Publication number: 20080270450Abstract: 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: ApplicationFiled: April 30, 2007Publication date: October 30, 2008Inventors: Alistair Veitch, Karl Anders Gyllstrom, Henri J. Suermondt, Pankaj Mehra
-
Publication number: 20080183973Abstract: 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: ApplicationFiled: January 31, 2007Publication date: July 31, 2008Inventors: Marcos K. Aguilera, Alistair Veitch, Susan Spence
-
Patent number: 7380081Abstract: 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: GrantFiled: June 6, 2003Date of Patent: May 27, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Minwen Ji, Alistair Veitch, John Wilkes
-
Publication number: 20080069098Abstract: 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: ApplicationFiled: September 15, 2006Publication date: March 20, 2008Inventors: Mehul A. Shah, Marcos K. Aguilera, Christos Karamanolis, Arif Merchant, Alistair Veitch
-
Publication number: 20080046779Abstract: 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: ApplicationFiled: July 13, 2007Publication date: February 21, 2008Inventors: Arif Merchant, Svend Frolund, Yasusuhi Saito, Susan Spence, Alistair Veitch
-
Publication number: 20070288587Abstract: 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: ApplicationFiled: June 12, 2006Publication date: December 13, 2007Inventors: Marcos K. Aguilera, Christos Karamanolis, Arif Merchant, Mehul A. Shah, Alistair Veitch
-
Patent number: 7287137Abstract: 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: GrantFiled: June 6, 2003Date of Patent: October 23, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Minwen Ji, Alistair Veitch, John Wilkes
-
Publication number: 20070208839Abstract: 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: ApplicationFiled: March 6, 2006Publication date: September 6, 2007Inventors: Douglas Voigt, James Jackson, Alistair Veitch, James Reuter
-
Publication number: 20070208760Abstract: 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: ApplicationFiled: March 6, 2006Publication date: September 6, 2007Inventors: James M. Reuter, James Jackson, Douglas L. Voigt, Alistair Veitch
-
Publication number: 20070208790Abstract: 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: ApplicationFiled: March 6, 2006Publication date: September 6, 2007Inventors: James Reuter, James Jackson, Douglas Voigt, Alistair Veitch
-
Publication number: 20070192542Abstract: 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: ApplicationFiled: February 16, 2006Publication date: August 16, 2007Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James Reuter, James Jackson
-
Publication number: 20070192544Abstract: 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: ApplicationFiled: February 16, 2006Publication date: August 16, 2007Inventors: Svend Frolund, Arif Merchant, Alistair Veitch, James Reuter, James Jackson
-
Patent number: 7203621Abstract: 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: GrantFiled: June 6, 2002Date of Patent: April 10, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Alistair Veitch, Eric Anderson, John Wilkes
-
Patent number: 7178055Abstract: 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: GrantFiled: June 6, 2003Date of Patent: February 13, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Minwen Ji, Alistair Veitch, John Wilkes
-
Patent number: 7165187Abstract: 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: GrantFiled: June 6, 2003Date of Patent: January 16, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Minwen Ji, Alistair Veitch, John Wilkes
-
Patent number: 7152077Abstract: 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: GrantFiled: May 16, 2003Date of Patent: December 19, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Alistair Veitch, Svend Frolund, Arif Merchant, Susan Spence, Yasusuhi Saito