Patents by Inventor Andrew James Edwards

Andrew James Edwards 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).

  • Publication number: 20160173599
    Abstract: In various embodiments, methods and systems for implementing multiple transaction logs in a distributed storage system are provided. A log stream component detects performance metrics of a plurality of log streams. The performance metrics are associated with requests from partitions in the distributed storage system. A transaction component receives a request to execute a transaction using a log stream. The request is received from a partition of the distributed storage system. The performance metrics of the plurality of log streams can be referenced, where the performance metrics indicate a performance capacity of a selected log stream to process the request. A log stream for executing the transaction is determined based on the performance capacity. The log stream selected can also factor request attributes of the request. The transaction component communicates the request to be executed, using the log stream to perform the transaction.
    Type: Application
    Filed: December 12, 2014
    Publication date: June 16, 2016
    Inventors: MANISH CHABLANI, JEGAN DEVANRAJU, YIKANG XU, JUNAID J. SHAHID, ANDREW JAMES EDWARDS, BRADLEY G. CALDER, JU WANG, AARON W. OGUS, SHANE MAINALI, KRISHNAN VARADARAJAN, PRADEEP SEELA
  • Publication number: 20150350316
    Abstract: In various embodiments, methods and systems for transferring data using a storage medium are provided. A storage medium may be shipped by a customer to a datacenter such that the data on the storage medium is copied to a storage associated with the datacenter or data in the storage is copied to the storage medium. The datacenter may support a cloud computing infrastructure that provides a storage account to the customer that is associated with the data copied from or copied to the storage medium. The storage medium further corresponds to a data transfer manifest that includes at least in part data mapping between storage service infrastructure and data in the storage medium. It is contemplated that embodiments of the present invention may further be implemented with data transfer service components that support a client component, storage service component, and a data transfer management component.
    Type: Application
    Filed: May 30, 2014
    Publication date: December 3, 2015
    Inventors: BRADLEY G. CALDER, ANDREW JAMES EDWARDS, SHUITAO FAN, CHUN YUAN, JAIDEN HARIDAS, MATTHEW DOUGLAS HENDEL, AUNG MAW OO, PHILLIP TARON
  • Publication number: 20150324386
    Abstract: In various embodiments, methods and systems for providing access to file systems are provided. An SFA-based operation having an operation modifier for a file in a file system is received. The SFA-based operation is defined based on a file-representational state transfer (REST) interface. The SFA-REST interface comprises integrated functionality of an SFA protocol and REST protocol. The SFA-based operation is executed using the operation modifier. A REST-based operation for the file in the distributed file storage is received. The REST-based operation is defined based on the SFA-REST interface. The operation modifier is referenced in order to execute the REST-based operation. The REST-based operation based on the SFA-REST interface. A schema can be implemented for accessing the file system. The schema includes tables to store files, the table comprises fields corresponding to elements of a SFA-REST interface. A snapshot component can be implemented to backup file shares in the file system.
    Type: Application
    Filed: May 10, 2015
    Publication date: November 12, 2015
    Inventors: BRADLEY GENE CALDER, ANDREW JAMES EDWARDS, ISHAI BEN AROYA, DAVID ALLEN GOEBEL, JIESHENG WU, JAIDEN HARIDAS, SHUVABRATA GANGULY, MATTHEW DOUGLAS HENDEL, OZAN DEMIR, Jean Ghanem
  • Patent number: 8924969
    Abstract: A system that includes multiple hosts, each having physical resources, a hypervisor, and a host agent that causes the virtual machines to operate above the hypervisor so as to be abstracted from the physical resources. A host fabric reviews requests to instantiate or upgrade a virtual machine, identifies a corresponding virtual machine image to instantiate the virtual machine from in order to honor the request, and determines whether the virtual machine to be instantiated has a valid lease on the virtual machine image. If the requestor does not have a valid lease, the request is blocked. If the requestor does have a valid lease, the host fabric facilitates the instantiation of the virtual machine from the virtual machine image. This prevents or eliminates the chances of multiple instances of the same virtual machine image writing to the virtual machine image at the same time.
    Type: Grant
    Filed: June 7, 2012
    Date of Patent: December 30, 2014
    Assignee: Microsoft Corporation
    Inventors: Maxim Khutornenko, Corey M. Sanders, Karthik Raman, Pavel A. Dournov, Saad Syed, Andrew James Edwards
  • Patent number: 8904019
    Abstract: Certain implementations of the disclosed technology may include systems and methods for computing device communications. According to an example implementation of the disclosed technology, a method is provided that can include determining a status and capability of at least one selected computing device, and sending a generated message to the at least one selected computing device. The at least one selected computing device is configured to retrieve content from a source identified by a uniform resource identifier in the message, and the at least one selected computing device is further configured to present the retrieved content.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: December 2, 2014
    Assignee: Google Inc.
    Inventors: Yuan Yuan, Timothy Kilbourn, Kareem Aladdin Nassar, Andrew James Edward Mutton, Christopher McKillop, Manuel Roman Cuesta
  • Publication number: 20140201278
    Abstract: Certain implementations of the disclosed technology may include systems and methods for computing device communications. According to an example implementation of the disclosed technology, a method is provided that can include determining a status and capability of at least one selected computing device, and sending a generated message to the at least one selected computing device. The at least one selected computing device is configured to retrieve content from a source identified by a uniform resource identifier in the message, and the at least one selected computing device is further configured to present the retrieved content.
    Type: Application
    Filed: March 14, 2013
    Publication date: July 17, 2014
    Applicant: GOOGLE INC.
    Inventors: Yuan Yuan, Timothy Kilbourn, Kareem Aladdin Nassar, Andrew James Edward Mutton, Christopher McKillop, Manuel Roman Cuesta
  • Publication number: 20130332921
    Abstract: A system that includes multiple hosts, each having physical resources, a hypervisor, and a host agent that causes the virtual machines to operate above the hypervisor so as to be abstracted from the physical resources. A host fabric reviews requests to instantiate or upgrade a virtual machine, identifies a corresponding virtual machine image to instantiate the virtual machine from in order to honor the request, and determines whether the virtual machine to be instantiated has a valid lease on the virtual machine image. If the requestor does not have a valid lease, the request is blocked. If the requestor does have a valid lease, the host fabric facilitates the instantiation of the virtual machine from the virtual machine image. This prevents or eliminates the chances of multiple instances of the same virtual machine image writing to the virtual machine image at the same time.
    Type: Application
    Filed: June 7, 2012
    Publication date: December 12, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Maxim Khutornenko, Corey M. Sanders, Karthik Raman, Pavel A. Dournov, Saad Syed, Andrew James Edwards
  • Publication number: 20130305005
    Abstract: Cloud computing platforms having computer-readable media that perform methods for facilitating communications with storage. A request having a first-interface format to access storage is intercepted. The first interface format of the request supports access to a virtual hard drive (VHD). The request is translated to a blob request having a blob interface format. The blob interface format of the blob request supports access to a plurality of blobs of data in a blob store. The blob request is communicated to a blob interface such that the blob request is executed in managing the plurality of blobs.
    Type: Application
    Filed: July 17, 2013
    Publication date: November 14, 2013
    Inventors: BRADLEY GENE CALDER, ANDREW JAMES EDWARDS, JU WANG, SAMER ARAFEH, ANU ENGINEER, YUE ZUO
  • Patent number: 8516137
    Abstract: Cloud computing platforms having computer-readable media that perform methods to manage virtual hard drives as blobs are provided. The cloud computing platform includes fabric computers and blob stores. The fabric computers execute virtual machines that implement one or more applications that access virtual hard drives. The data in the virtual hard drives is accessed, via a blob interface, from blobs in the blob stores. The blob stores interface with a driver that translates some application input/output (I/O) requests destined to the virtual hard drives to blob commands when accessing data in the virtual hard drives.
    Type: Grant
    Filed: November 16, 2009
    Date of Patent: August 20, 2013
    Assignee: Microsoft Corporation
    Inventors: Bradley Gene Calder, Andrew James Edwards, Ju Wang, Samer Arafeh, Anu Engineer, Yue Zuo
  • Publication number: 20110119668
    Abstract: Cloud computing platforms having computer-readable media that perform methods to manage virtual hard drives as blobs are provided. The cloud computing platform includes fabric computers and blob stores. The fabric computers execute virtual machines that implement one or more applications that access virtual hard drives. The data in the virtual hard drives is accessed, via a blob interface, from blobs in the blob stores. The blob stores interface with a driver that translates some application input/output (I/O) requests destined to the virtual hard drives to blob commands when accessing data in the virtual hard drives.
    Type: Application
    Filed: November 16, 2009
    Publication date: May 19, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: BRADLEY GENE CALDER, ANDREW JAMES EDWARDS, JU WANG, SAMER ARAFEH, ANU ENGINEER, YUE ZUO
  • Patent number: 7861118
    Abstract: An apparatus, method and computer-readable medium provide for detecting and filtering potential race conditions. In one example, potential race conditions may be detected by determining overlap of memory accesses (e.g., read, write). Potential race conditions may be filtered as potentially benign or harmful race conditions using, for example, heuristics, comparison of output states from execution of instructions or operations in differing sequences or identifying of associated output bugs corresponding to the execution of operations in different sequences.
    Type: Grant
    Filed: March 30, 2007
    Date of Patent: December 28, 2010
    Assignee: Microsoft Corporation
    Inventors: Andrew James Edwards, James Jordan Tigani, Zhenghao Wang, Bradley Calder, Satish Narayanasamy
  • Patent number: 7707566
    Abstract: A software development architecture is provided for constructing a wide range of software development tools. A software development tool can be created by integrating a specification specifying functionality specific to a set of software development scenarios into a software development scenario-independent framework. The integrated specification can then be compiled to create the software development tool. Alternatively, integration can be achieved at runtime without access to source code. The architecture can use any combination of the following: a software scenario independent intermediate representation format, one or more exception handling models capable of supporting a plurality of programming language specific exception handling models, a type system capable of representing the type representations of a plurality of source languages, and a code generator capable of generating code targeted for a plurality of execution architectures.
    Type: Grant
    Filed: July 25, 2003
    Date of Patent: April 27, 2010
    Assignee: Microsoft Corporation
    Inventors: Vinod K. Grover, Charles L. Mitchell, David Mitford Gillies, Mark Leslie Roberts, Mark Ronald Plesko, David Read Tarditi, Jr., Andrew James Edwards, Julian Burger, Andrew Edward Ayers, Akella V. S. Sastry
  • Patent number: 7620938
    Abstract: Program execution can be monitored and recorded for later playback. Certain state changes that can be predicted via a virtual processor during playback need not be recorded, so a compressed recording can be stored. To facilitate random access with respect to time during playback, key frames can be stored within the compressed recording. An index mechanism can associate key frames with particular memory addresses. Additionally, a snapshot of values for memory addresses can be used to further facilitate determining the value of a memory address without having to simulate execution. Multiprocessor executions can be supported, and playback can be done on a machine type different from that on which recording took place.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: November 17, 2009
    Assignee: Microsoft Corporation
    Inventors: Andrew James Edwards, Darek Mihocka, Ho-Yuen Chau, Ronald C. Murray, Sanjay Bhansali, Stuart D. de Jong, Wen-Ke Chen, Kenneth Bryant Pierce
  • Patent number: 7500230
    Abstract: Ambiguous stack references in low level software instructions can be resolved when raising a representation of low level software instructions, such as native code. The number of parameters passed to a function can be determined by heuristics, including direct call and indirect call heuristics. Indirect call heuristics can include dataflow-to-target-function, dataflow-to-target-type, import name, and cleanup instructions heuristics. A control flow heuristic can use an alternating direction propagation of seed points to determine the stack height at basic block boundaries. Interpolation can be used within the basic blocks as needed. The raised representation can be used for static analysis of the low level software instructions.
    Type: Grant
    Filed: March 25, 2005
    Date of Patent: March 3, 2009
    Assignee: Microsoft Corporation
    Inventors: Andrew James Edwards, Ronnie I. Chaiken, Dzmitry Suponau, S. Craig Schertz
  • Publication number: 20080244332
    Abstract: An apparatus, method and computer-readable medium provide for detecting and filtering potential race conditions. In one example, potential race conditions may be detected by determining overlap of memory accesses (e.g., read, write). Potential race conditions may be filtered as potentially benign or harmful race conditions using, for example, heuristics, comparison of output states from execution of instructions or operations in differing sequences or identifying of associated output bugs corresponding to the execution of operations in different sequences.
    Type: Application
    Filed: March 30, 2007
    Publication date: October 2, 2008
    Applicant: Microsoft Corporation
    Inventors: Andrew James Edwards, James Jordan Tigani, Zhenghao Wang, Bradley Calder, Satish Naravanasamy
  • Patent number: 7392514
    Abstract: Existing systems use interprocedural data flow to analyze the source code of an entire program thereby requiring significant resources. Instead forward and backward chase components reference data structures (e.g., state machines) that identify instructions within a intraprocedural data flow graph. Based on how states of the state machine correspond to instructions in the data flow, the state machines direct the data flow chase to other procedures in a call graph, to instructions indicated in a global reference list, to instructions indicated in a field reference list, to instructions indicated by a pointer dereference, or to another instruction in the present procedure. Then, the chase continues in the data flow graph of the procedure containing the instruction.
    Type: Grant
    Filed: June 26, 2003
    Date of Patent: June 24, 2008
    Assignee: Microsoft Corporation
    Inventor: Andrew James Edwards
  • Publication number: 20040264367
    Abstract: Existing systems use interprocedural data flow to analyze the source code of an entire program thereby requiring significant resources. Instead forward and backward chase components reference data structures (e.g., state machines) that identify instructions within a intraprocedural data flow graph. Based on how states of the state machine correspond to instructions in the data flow, the state machines direct the data flow chase to other procedures in a call graph, to instructions indicated in a global reference list, to instructions indicated in a field reference list, to instructions indicated by a pointer dereference, or to another instruction in the present procedure. Then, the chase continues in the data flow graph of the procedure containing the instruction.
    Type: Application
    Filed: June 26, 2003
    Publication date: December 30, 2004
    Applicant: Microsoft Corporation
    Inventor: Andrew James Edwards
  • Publication number: 20040268309
    Abstract: A software development architecture is provided for constructing a wide range of software development tools. A software development tool can be created by integrating a specification specifying functionality specific to a set of software development scenarios into a software development scenario-independent framework. The integrated specification can then be compiled to create the software development tool. Alternatively, integration can be achieved at runtime without access to source code. The architecture can use any combination of the following: a software scenario independent intermediate representation format, one or more exception handling models capable of supporting a plurality of programming language specific exception handling models, a type system capable of representing the type representations of a plurality of source languages, and a code generator capable of generating code targeted for a plurality of execution architectures.
    Type: Application
    Filed: July 25, 2003
    Publication date: December 30, 2004
    Applicant: Microsoft Corporation
    Inventors: Vinod K. Grover, Charles L. Mitchell, David Mitford Gillies, Mark Leslie Roberts, Mark Ronald Plesko, David Read Tarditi, Andrew James Edwards, Julian Burger, Andrew Edward Ayers, Akella V.S. Sastry