Patents by Inventor Edmund B. Nightingale

Edmund B. Nightingale 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: 20130346669
    Abstract: A computer system includes one or more field programmable gate arrays as a coprocessor that can be shared among processes and programmed using hardware libraries. Given a set of hardware libraries, an update process periodically updates the libraries and/or adds new libraries. One or more update servers can provide information about libraries available for download, either in response to a request or by notifying systems using such libraries. New available libraries can be presented to a user for selection and download. Requests for updated libraries can arise in several ways, such as through polling for updates, exceptions from applications attempting to use libraries, and upon compilation of application code.
    Type: Application
    Filed: June 20, 2012
    Publication date: December 26, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Brian LaMacchia, Paul Barham
  • Patent number: 8543863
    Abstract: Dynamically replicated memory is usable to allocate new memory space from failed memory pages by pairing compatible failed memory pages to reuse otherwise unusable failed memory pages. Dynamically replicating memory involves detecting and recording memory faults, reclaiming failed memory pages for later use, recovering from detected memory faults, and scheduling access to replicated memory pages.
    Type: Grant
    Filed: November 18, 2009
    Date of Patent: September 24, 2013
    Assignee: Microsoft Corporation
    Inventors: Engin Ipek, Thomas Moscibroda, Douglas C. Burger, Edmund B. Nightingale, Jeremy P. Condit
  • Patent number: 8533299
    Abstract: A system including a plurality of servers, a client, and a metadata server is described herein. The servers each store tracts of data, a plurality of the tracts comprising a byte sequence and being distributed among the plurality of servers. To locate the tracts, the metadata server generates a table that is used by the client to identify servers associated with the tracts, enabling the client to provide requests to the servers. The metadata server also enables recovery in the event of a server failure. Further, the servers construct tables of tract identifiers and locations to use in responding to the client requests.
    Type: Grant
    Filed: April 19, 2010
    Date of Patent: September 10, 2013
    Assignee: Microsoft Corporation
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell, Galen C. Hunt
  • Patent number: 8533404
    Abstract: Implementations of a file system that is supported by a non-volatile memory that is directly connected to a memory bus, and placed side by side with a dynamic random access memory (DRAM), are described.
    Type: Grant
    Filed: July 15, 2009
    Date of Patent: September 10, 2013
    Assignee: Microsoft Corporation
    Inventors: Jeremy P. Condit, Edmund B. Nightingale, Benjamin Lee, Engin Ipek, Christopher Frost, Doug Burger
  • Patent number: 8447833
    Abstract: A client device configured to write to both a growth server and a live server replica that the growth server is replacing during a growth phase is described herein. The client device first determines the growth server designated to replace a corresponding live server replica of a set of server replicas associated with a storage index. The client device then transmits a write request associated with the storage index to the set of server replicas and to the growth server. The client device may perform the determining based on storage assignment mappings. The storage assignment mappings are provided to the client device by a metadata server while the growth server retrieves data associated with the storage index from the live server replica.
    Type: Grant
    Filed: March 6, 2012
    Date of Patent: May 21, 2013
    Assignee: Microsoft Corporation
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell
  • Patent number: 8438244
    Abstract: A system including at least one storage node and at least one computation node connected by a switch is described herein. Each storage node has one or more storage units and one or more network interface components, the collective bandwidths of the storage units and the network interface components being proportioned to one another to enable communication to and from other nodes at the collective bandwidth of the storage units. Each computation node has logic configured to make requests of storage nodes, an input/output bus, and one or more network interface components, the bandwidth of the bus and the collective bandwidths of the network interface components being proportioned to one another to enable communication to and from other nodes at the bandwidth of the input/output bus.
    Type: Grant
    Filed: April 23, 2010
    Date of Patent: May 7, 2013
    Assignee: Microsoft Corporation
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell, Galen C. Hunt, David A. Maltz
  • Publication number: 20120278400
    Abstract: The creation of an effective circuit between a sender device and a receiver device over the packet-switched network is described herein. To establish the effective circuit, the sender device sends a request to the receiver device through the packet-switched network. The request is associated with a bandwidth reservation from the receiver device for reception of a message from the sender device. The receiver device receives multiple requests from multiple sender devices and reserves bandwidth for at least one of the sender devices. The receiver device then sends a response to the at least one sender device providing clearance to send the message to the receiver device using the reserved bandwidth, the request and response establishing the effective circuit. The receiver device may also decline the requests of the other sender devices, causing the other sender devices to send other requests to other receiver devices.
    Type: Application
    Filed: April 28, 2011
    Publication date: November 1, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Jeremy E. Elson, Edmund B. Nightingale
  • Patent number: 8255742
    Abstract: Dynamically replicated memory is usable to allocate new memory space from failed memory pages by pairing compatible failed memory pages to reuse otherwise unusable failed memory pages. Dynamically replicating memory involves detecting and recording memory faults, reclaiming failed memory pages for later use, recovering from detected memory faults, and scheduling access to replicated memory pages.
    Type: Grant
    Filed: November 18, 2009
    Date of Patent: August 28, 2012
    Assignee: Microsoft Corporation
    Inventors: Engin Ipek, Jeremy P. Condit, Edmund B. Nightingale, Douglas C. Burger, Thomas Moscibroda
  • Publication number: 20120197958
    Abstract: A plurality of servers configured to receive a plurality of requests associated with a plurality of byte sequences are described herein. The requests for each byte sequence are received by a single one of the servers. Each server is further configured to serially process the requests it receives while the other servers also perform serial processing of requests in parallel with the server. Also, the requests for each byte sequence are transmitted to the single one of the servers by a plurality of clients, each client independently identifying the single one of the servers for the byte sequence based on system metadata.
    Type: Application
    Filed: January 31, 2011
    Publication date: August 2, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Jeremy E. Elson
  • Patent number: 8219741
    Abstract: Implementations of a file system that is supported by a non-volatile memory that is directly connected to a memory bus, and placed side by side with a dynamic random access memory (DRAM), are described.
    Type: Grant
    Filed: June 16, 2009
    Date of Patent: July 10, 2012
    Assignee: Microsoft Corporation
    Inventors: Jeremy P. Condit, Engin Ipek, Edmund B. Nightingale, Benjamin C Lee, Christopher Frost, Doug Burger
  • Publication number: 20120166590
    Abstract: A client device configured to write to both a growth server and a live server replica that the growth server is replacing during a growth phase is described herein. The client device first determines the growth server designated to replace a corresponding live server replica of a set of server replicas associated with a storage index. The client device then transmits a write request associated with the storage index to the set of server replicas and to the growth server. The client device may perform the determining based on storage assignment mappings. The storage assignment mappings are provided to the client device by a metadata server while the growth server retrieves data associated with the storage index from the live server replica.
    Type: Application
    Filed: March 6, 2012
    Publication date: June 28, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell
  • Publication number: 20120137167
    Abstract: A system and method for mitigating memory errors in a computer system. Faulty memory is identified and tested by a memory manager of an operating system. The memory manager may perform diagnostic tests while the operating system is executing on the computer system. Regions of memory that are being used by software components of the computer system may also be tested. The memory manager maintains a stored information about faulty memory regions. Regions are added to the stored information when they are determined to be faulty by a diagnostic test tool. Memory regions are allocated to software components by the memory manager after checking the stored information about faulty memory regions. This ensures a faulty memory region is never allocated to a software component of the computer system.
    Type: Application
    Filed: November 30, 2010
    Publication date: May 31, 2012
    Applicant: Microsoft Corporation
    Inventors: Garrett Leischner, Andrew J. Lagattuta, Matthew Jeremiah Eason, Landy Wang, John R. Douceur, Baskar Sridharan, Edmund B. Nightingale
  • Patent number: 8181061
    Abstract: A system including a plurality of servers, a client, and a metadata server is described herein. The servers each store tracts of data, a plurality of the tracts comprising a byte sequence and being distributed among the plurality of servers. To locate the tracts, the metadata server generates a table that is used by the client to identify servers associated with the tracts, enabling the client to provide requests to the servers. The metadata server also enables recovery in the event of a server failure. Further, the servers construct tables of tract identifiers and locations to use in responding to the client requests.
    Type: Grant
    Filed: April 19, 2010
    Date of Patent: May 15, 2012
    Assignee: Microsoft Corporation
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell, Galen C. Hunt
  • Patent number: 8140646
    Abstract: A speculative web browser engine may enable providing transmission of content between a server and a client prior to a user-initiated request for the content hidden in imperative code (event handlers), which may reduce user-perceived latency when the user initiates the imperative code. In some aspects, a speculative browser state may be created from an actual browser state and used to run the event handlers. The event handlers may be modified to direct actions of the event handler to update the speculative browser state. Speculative content may be transmitted between the server and the client in response to an execution of the modified code. The speculative content may be stored in a cache and made readily available for use when the user initiates the event handler and finds that the desired content has already been fetched.
    Type: Grant
    Filed: June 4, 2009
    Date of Patent: March 20, 2012
    Assignee: Microsoft Corporation
    Inventors: James W. Mickens, Jonathan R. Howell, Jacob R. Lorch, Jeremy E. Elson, Edmund B. Nightingale
  • Publication number: 20110258290
    Abstract: A system including at least one storage node and at least one computation node connected by a switch is described herein. Each storage node has one or more storage units and one or more network interface components, the collective bandwidths of the storage units and the network interface components being proportioned to one another to enable communication to and from other nodes at the collective bandwidth of the storage units. Each computation node has logic configured to make requests of storage nodes, an input/output bus, and one or more network interface components, the bandwidth of the bus and the collective bandwidths of the network interface components being proportioned to one another to enable communication to and from other nodes at the bandwidth of the input/output bus.
    Type: Application
    Filed: April 23, 2010
    Publication date: October 20, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell, Galen C. Hunt, David A. Maltz
  • Publication number: 20110258488
    Abstract: A metadata server configured to maintain storage assignment mappings in non-persistent storage is described herein. The tract storage assignment mappings associate servers with storage assignments, the storage assignments representing the data stored on the servers. Responsive to a failure, the metadata server receives the storage assignments from the servers and rebuilds the storage assignment mappings from the storage assignments. The metadata server is also configured to enable clients to operate during a recovery process for a failed server by providing the storage assignment mappings to the clients during the recovery process. Also during the recovery process, the replacement server for the failed server conditionally overwrites stored data with other data received from other servers as part of the recovery process.
    Type: Application
    Filed: May 26, 2011
    Publication date: October 20, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Jeremy E. Elson
  • Publication number: 20110258297
    Abstract: A system including a plurality of servers, a client, and a metadata server is described herein. The servers each store tracts of data, a plurality of the tracts comprising a byte sequence and being distributed among the plurality of servers. To locate the tracts, the metadata server generates a table that is used by the client to identify servers associated with the tracts, enabling the client to provide requests to the servers. The metadata server also enables recovery in the event of a server failure. Further, the servers construct tables of tract identifiers and locations to use in responding to the client requests.
    Type: Application
    Filed: April 19, 2010
    Publication date: October 20, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell, Galen C. Hunt
  • Publication number: 20110258482
    Abstract: A system including a plurality of servers, a client, and a metadata server is described herein. The servers each store tracts of data, a plurality of the tracts comprising a byte sequence and being distributed among the plurality of servers. To locate the tracts, the metadata server generates a table that is used by the client to identify servers associated with the tracts, enabling the client to provide requests to the servers. The metadata server also enables recovery in the event of a server failure. Further, the servers construct tables of tract identifiers and locations to use in responding to the client requests.
    Type: Application
    Filed: April 19, 2010
    Publication date: October 20, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Edmund B. Nightingale, Jeremy E. Elson, Jonathan R. Howell, Galen C. Hunt
  • Publication number: 20110258483
    Abstract: A Metadata server described herein is configured to generate a metadata table optimized for data durability and recovery. In generating the metadata table, the metadata server associates each possible combination of servers with one of the indices of the table, thereby ensuring that each server participates in recovery in the event of a server failure. In addition, the metadata server may also associate one or more additional servers with each index to provide added data durability. Upon generating the metadata table, the metadata server provides the metadata table to clients or servers. Alternatively, the metadata server may provide rules and parameters to clients to enable those clients to identify servers storing data items. The clients may use these parameters and an index as inputs to the rules to determine the identities of servers storing or designated to store data items corresponding to the index.
    Type: Application
    Filed: May 20, 2011
    Publication date: October 20, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Jeremy E. Elson, Edmund B. Nightingale, John R. Douceur, Stuart Schechter, Peter L. Montgomery
  • Publication number: 20110119538
    Abstract: Dynamically replicated memory is usable to allocate new memory space from failed memory pages by pairing compatible failed memory pages to reuse otherwise unusable failed memory pages. Dynamically replicating memory involves detecting and recording memory faults, reclaiming failed memory pages for later use, recovering from detected memory faults, and scheduling access to replicated memory pages.
    Type: Application
    Filed: November 18, 2009
    Publication date: May 19, 2011
    Applicant: Microsoft Corporation
    Inventors: Engin Ipek, Jeremy P. Condit, Edmund B. Nightingale, Douglas C. Burger, Thomas Moscibroda