Patents by Inventor John R. Douceur

John R. Douceur 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: 20110289232
    Abstract: The described implementations relate to collaborative speed determination in distributed systems. One method estimates upload speeds of a plurality of hosts. The method sends a first bandwidth probe from a first host to a second host. The method receives, at the first host, a second bandwidth probe sent from the second host. The method determines which of the first and second bandwidth probes was relatively slower. The method designates either of the first or second hosts that sent the relatively slower bandwidth probe as a loser and takes a speed of the bandwidth probe of the loser as a first estimate of the loser's upload speed.
    Type: Application
    Filed: August 3, 2011
    Publication date: November 24, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: John R. Douceur, James W. Mickens, Thomas Moscibroda, Debmalya Panigrahi
  • Publication number: 20110288934
    Abstract: Techniques are described to mitigate ad stalking and other user concerns resulting from user-targeted advertising. A user may be informed of advertising information by a process in which an advertising server receives a request for an ad. The request may have been generated in response to a user request for a landing web page. An ad may be selected based on user information available to the advertising server, where the user information is associated with the user and describes behavior and/or attributes and/or preferences associated with the user. Text about how the ad was selected may be incorporated into the ad. Such text may describe the user information used to select the ad. The selection-disclosing text may be incorporated in the ad in a form that is displayable to the user by a browser. The ad may then be transmitted for display in the landing web page.
    Type: Application
    Filed: May 24, 2010
    Publication date: November 24, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: John R. Douceur, Jacob R. Lorch, James Mickens, Thomas Moscibroda, David Levin
  • Publication number: 20110282837
    Abstract: A logical file system is described that distributes copies of files across various different physical storage resources yet provides a consistent view to the user of his or her data, regardless of which machine the user is accessing the files from, and even when the user's computer is offline. The distributed file system uses smart data redundancy to enable a virtually infinite amount of storage as long as additional storage resources are made available to the distributed file system. The result is a reliable storage system that does not necessarily tie the user's data to the user's particular computer. Instead, the user's data is associated with the user—for life—or for however long the user would like the data to be maintained, regardless of whether the user's computer or data storage components are replaced or destroyed.
    Type: Application
    Filed: July 25, 2011
    Publication date: November 17, 2011
    Applicant: Microsoft Corporation
    Inventors: Alexander G. Gounares, Ashok Kuppusamy, Dan Teodosiu, Raymond E. Endres, William J. Bolosky, John R. Douceur
  • Patent number: 8046413
    Abstract: Synchronized devices comprising a distributed system attempt to agree on a compatible sequence of commands to execute. Each device in the distributed system may act as a proposer, acceptor, or a learner. Each proposer proposes a command for each device to execute. The acceptors either accept or reject the proposed commands. The learners keep track of the proposed commands and determine, using a transactional substrate, whether the acceptors have a accepted sequences of commands that commute with respect to one another. Once the learners have determined that a quorum of acceptors have accepted sequences of commands that commute with respect to one another the accepted commands are executed by each device in the distributed system.
    Type: Grant
    Filed: February 14, 2005
    Date of Patent: October 25, 2011
    Assignee: Microsoft Corporation
    Inventors: Jonathan R. Howell, Jacob R. Lorch, John R. Douceur, Leslie B. Lamport
  • 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
  • Patent number: 8019862
    Abstract: The described implementations relate to collaborative speed determination in distributed systems. One method estimates upload speeds of a plurality of hosts. The method sends a first bandwidth probe from a first host to a second host. The method receives, at the first host, a second bandwidth probe sent from the second host. The method determines which of the first and second bandwidth probes was relatively slower. The method designates either of the first or second hosts that sent the relatively slower bandwidth probe as a loser and takes a speed of the bandwidth probe of the loser as a first estimate of the loser's upload speed.
    Type: Grant
    Filed: March 17, 2009
    Date of Patent: September 13, 2011
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, James W. Mickens, Thomas Moscibroda, Debmalya Panigrahi
  • Patent number: 8010498
    Abstract: A logical file system that distributes copies of files across various different physical storage resources yet provides a consistent view to the user of his or her data, regardless of which machine the user is accessing the files from, and even when the user's computer is offline. The distributed file system uses smart data redundancy to enable a virtually infinite amount of storage as long as additional storage resources are made available to the distributed file system. The result is a reliable storage system that does not necessarily tie the user's data to the user's particular computer. Instead, the user's data is associated with the user—for life—or for however long the user would like the data to be maintained, regardless of whether the user's computer or data storage components are replaced or destroyed.
    Type: Grant
    Filed: April 8, 2005
    Date of Patent: August 30, 2011
    Assignee: Microsoft Corporation
    Inventors: Alexander G. Gounares, Ashok Kuppusamy, Dan Teodosiu, Raymond E. Endres, William J. Bolosky, John R. Douceur
  • Patent number: 7958261
    Abstract: Domain name caching is controlled by adding a nonce to a domain name to force propagation of lookup to an authoritative server or service. Desired caching behavior is dictated by controlling when a new and unique nonce-bearing name is created. For example, caching can be completely eliminated by generating a new nonce-bearing name for every request. While a nonce can simply correspond to a random or pseudo random value, it can also be time based. Furthermore, nonces can be phase or time shifted to limit authoritative server load as well as improve response time.
    Type: Grant
    Filed: February 14, 2008
    Date of Patent: June 7, 2011
    Assignee: Microsoft Corporation
    Inventors: Jonathan Ryan Howell, John R. Douceur, Jeremy Eric Elson
  • Patent number: 7958176
    Abstract: Techniques for identifying coefficients are described. A technique collects sample input values to the filter and identifies desired output values from the filter for the collected sample input values. The technique then generates a power spectrum of the collected sample input values and a power spectrum of the identified desired output values. The technique then calculates the difference between the generated power spectra. Finally, the technique identifies coefficients that yield a filter transfer function that closely approximates the calculated differences. A technique identifies coefficients for a finite impulse response filter. The technique collects sample input values for a function and identifies desired output values for the filter for the collected sample input values. The technique then approximates the output values from the input values using a linear fitting technique. Finally, the technique sets the coefficients to values obtained from the linear-fitting technique.
    Type: Grant
    Filed: April 20, 2006
    Date of Patent: June 7, 2011
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Robert P. Fitzgerald, John W. Miller
  • Patent number: 7925601
    Abstract: Techniques enable the reduction of bandwidth requirements for peer-to-peer gaming architectures. In some embodiments, these techniques allow differentiation among players to decide which players should receive continuous updates and which should receive periodic updates. For those gaming systems receiving periodic updates, guided artificial intelligence is employed to simulate activity of a game object based on guidance provided by the periodic updates. Conversely, for those gaming systems receiving continuous updates, the continuous updates may be employed to update the activity of the game object rather than simulating the activity.
    Type: Grant
    Filed: October 19, 2009
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Jacob R. Lorch, Jeffrey Anson Pang, Frank Christopher Uyeda
  • Patent number: 7886364
    Abstract: A file that has been encrypted using a symmetric key and that has a corresponding access control entry with the symmetric key encrypted using the public key of a public/private key pair can be accessed. An encrypted key cache is also accessed to determine whether an access control entry to symmetric key mapping exists in the cache for the access control entry corresponding to the file. If such a mapping exists in the cache, then the mapped-to symmetric key is obtained form the cache, otherwise the encrypted symmetric key is decrypted using the private key of the public/private key pair. The encrypted key cache itself can also be encrypted and stored as an encrypted file.
    Type: Grant
    Filed: August 18, 2005
    Date of Patent: February 8, 2011
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Atul Adya, William J. Bolosky, Marvin M. Theimer
  • Patent number: 7868786
    Abstract: A location history is a collection of locations over time for an object. A stay is a single instance of an object spending some time in one place, and a destination is any place where one or more objects have experienced a stay. Location histories are parsed using stays and destinations. In a described implementation, each location of a location history is recorded as a spatial position and a corresponding time at which the spatial position is acquired. Stays are extracted from a location history by analyzing locations thereof with regard to a temporal threshold and a spatial threshold. Specifically, two or more locations are considered a stay if they exceed a minimum stay duration and are within a maximum roaming distance. Each stay includes a location, a starting time, and an ending time. Destinations are produced from the extracted stays using a clustering operation and a predetermined scaling factor.
    Type: Grant
    Filed: October 19, 2004
    Date of Patent: January 11, 2011
    Assignee: Microsoft Corporation
    Inventors: Kentaro Toyama, Ramaswamy Hariharan, Ross G. Cutler, John R. Douceur, Nuria M. Oliver, Eric K. Ringger, Daniel C. Robbins, Matthew T. Uyttendaele
  • Patent number: 7865618
    Abstract: Domain name caching mechanisms are provided to address cache-defeating approaches. Domain name lookup requests are processed and cached information associated with a non-identical domain name returned in response. Cache-defeating behavior including nonce injection can be detected or inferred and employed to map domain name requests to previously cached information thereby exposing the benefits of caching.
    Type: Grant
    Filed: February 22, 2008
    Date of Patent: January 4, 2011
    Assignee: Micorsoft Corporation
    Inventors: Jonathan Ryan Howell, John R. Douceur, Jeremy Eric Elson
  • Publication number: 20100318630
    Abstract: Techniques for enabling client computing devices to leverage remote server pools for increasing the effectiveness of applications stored on the client computing device are described herein. In some instances, the server pools comprise a “cloud”, “cluster” or “data center” that comprises hundreds or thousands of servers connected together by a network that has an extremely low latency and high bandwidth relative to the network through which the client computing device connects to the server pool. The client computing device may request that the server pool perform a certain task for an application whose canonical state resides on the client. After computation of a result of the task, a server of the server pool then provides the result to the client. By doing so, the techniques dramatically increase the amount of resources working on the request of the client and, hence, dramatically increase the speed and effectiveness of the client-side application.
    Type: Application
    Filed: June 15, 2009
    Publication date: December 16, 2010
    Applicant: Microsoft Corporation
    Inventors: Jonathan R. Howell, Jeremy E. Elson, John R. Douceur, Jacob R. Lorch
  • Publication number: 20100318786
    Abstract: Techniques for utilizing trusted hardware components for mitigating the effects of equivocation amongst participant computing devices of a distributed system are described herein. For instance, a distributed system employing a byzantine-fault-resilient protocol—that is, a protocol intended to mitigate (e.g., tolerate, detect, isolate, etc.) the effects of byzantine faults—may employ the techniques. To do so, the techniques may utilize a trusted hardware component comprising a non-decreasing counter and a key. This hardware component may be “trusted” in that the respective participant computing device cannot modify or observe the contents of the component in any manner other than according to the prescribed procedures, as described herein. Furthermore, the trusted hardware component may couple to the participant computing device in any suitable manner, such as via a universal serial bus (USB) connection or the like.
    Type: Application
    Filed: June 12, 2009
    Publication date: December 16, 2010
    Applicant: Microsoft Corporation
    Inventors: John R. Douceur, David M. Levin, Jacob R. Lorch, Thomas Moscibroda
  • Patent number: 7836170
    Abstract: A handle administration system is described in which software agents receive handles to various resources that they can use to obtain the resources. The described embodiments provide multiple states that can be assumed by the handles. An unassigned state is provided in which handles are not assigned to a particular resource, nor can they be dereferenced to obtain pointers to any resources. An assigned state is provided in which handles are assigned to a particular resource and can be dereferenced to obtain a pointer to the resource. A suspended state is provided in which the handles are assigned to a particular resource but cannot be dereferenced to obtain a pointer to that resource.
    Type: Grant
    Filed: March 22, 2007
    Date of Patent: November 16, 2010
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet
  • Publication number: 20100287618
    Abstract: Techniques for leveraging legacy code to deploy native-code desktop applications over a network (e.g., the Web) are described herein. These techniques include executing an application written in native code within a memory region that hardware of a computing device enforces. For instance, page-protection hardware (e.g., a memory management unit) or segmentation hardware may protect this region of memory in which the application executes. The techniques may also provide a narrow system call interface out of this memory region by dynamically enforcing system calls made by the application. Furthermore, these techniques may enable a browser of the computing device to function as an operating system for the native-code application. These techniques thus allow for execution of native-code applications on a browser of a computing device and, hence, over the Web in a resource-efficient manner and without sacrificing security of the computing device.
    Type: Application
    Filed: May 11, 2009
    Publication date: November 11, 2010
    Applicant: Microsoft Corporation
    Inventors: Jonathan R. Howell, Jacob R. Lorch, Jeremy E. Elson, John R. Douceur
  • Publication number: 20100241742
    Abstract: The described implementations relate to collaborative speed determination in distributed systems. One method estimates upload speeds of a plurality of hosts. The method sends a first bandwidth probe from a first host to a second host. The method receives, at the first host, a second bandwidth probe sent from the second host. The method determines which of the first and second bandwidth probes was relatively slower. The method designates either of the first or second hosts that sent the relatively slower bandwidth probe as a loser and takes a speed of the bandwidth probe of the loser as a first estimate of the loser's upload speed.
    Type: Application
    Filed: March 17, 2009
    Publication date: September 23, 2010
    Applicant: Microsoft Corporation
    Inventors: John R. Douceur, James W. Mickens, Thomas Moscibroda, Debmalya Panigrahi
  • Patent number: 7783664
    Abstract: Disclosed are “black-box leases” that protect information consistency and that allow for information sharing in a distributed file system while hiding from a client information about other clients' use of the file system. This information hiding also allows greater concurrency because changes to the file system are permitted as long as they do not affect the leases as observed by the clients. For each data field protected by a black-box lease, a client has a two-value data structure: SelfValue represents the client's intended use of the data field, and OtherValue is an aggregation of the other clients' intended uses of that data field. Knowing only this aggregate OtherValue, but without knowing any specifics of the other clients' usage patterns, the client knows how it may use the data field without adversely affecting the consistency of data in the distributed file system.
    Type: Grant
    Filed: December 17, 2004
    Date of Patent: August 24, 2010
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Jonathan R. Howell
  • Patent number: 7779253
    Abstract: Cryptographic protocols and methods of employing the same are described. The described protocols advantageously enable two or more identical encryptable objects that are coded for encryption with different keys to be identified as identical without access to either the unencrypted objects or the keys that are used in the encryption process. Additionally, the protocols enable two or more identical encryptable objects to be processed with different encryption keys, yet be stored in a manner so that the total required storage space is proportional to the space that is required to store a single encryptable object, plus a constant amount for each distinct encryption key. In various embodiments, the encryptable objects comprise files and the cryptographic protocols enable encrypted files to be used in connection with single instance store (SIS) systems.
    Type: Grant
    Filed: May 26, 2004
    Date of Patent: August 17, 2010
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Marvin M. Theimer, William J. Bolosky