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).

  • Patent number: 6163777
    Abstract: The present invention is embodied in a system and method for reducing the likelihood of the location conflicts in a system with a database of records having an initial size. A logical location of each record is dependent upon data contained in each record and the database size and wherein a change in the database size by a resizing factor creates a likelihood of a location conflict between two records. The present invention reduces the likelihood of the location conflict by maintaining a first list of unused records, wherein the first list contains unused records that, if used, would not have location conflicts with any record currently used and would not have location conflicts with any other records contained in the first list. Also, a second list of unused records is maintained, wherein the second list contains unused records that are not contained in the first list.
    Type: Grant
    Filed: June 23, 1998
    Date of Patent: December 19, 2000
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet, Ofer Bar
  • Patent number: 6134596
    Abstract: A continuous media file server system has a controller connected to multiple data servers. Each data server supports at least one storage disk. Data files are distributed across the data servers so that data blocks of the data files are stored on each of the storage disks. The data files have different data transmission rates at which they are served over a network to clients in the form of data streams. A scheduling unit maintains a network schedule that provides a relative ordering of transmission times of requested data streams. The transmission times indicate when the data servers are to transmit corresponding data blocks of the requested data files over the network to stream the data to clients. The block play times for all data files have a fixed duration, with the size of the data blocks from data file to data file varying according to the data transmission rates of the files.
    Type: Grant
    Filed: September 18, 1997
    Date of Patent: October 17, 2000
    Assignee: Microsoft Corporation
    Inventors: William J. Bolosky, John R. Douceur
  • Patent number: 6105039
    Abstract: The present invention is embodied in a system and method for generating and validating reference handles for consumers requiring access to resources in a computer system. The system of the present invention includes a resource manager having a handle administrator, a plurality of consumers, and a plurality of resources. The handle administrator includes an assignment routine, a release routine, and a dereference routine. The assignment routine issues new handles, the release routine releases handles that are no longer required (thus rendering the handle invalid), and the dereference routine dereferences handles into a pointer to a resource, which entails verifying that the handle is valid.
    Type: Grant
    Filed: June 23, 1998
    Date of Patent: August 15, 2000
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet, Ofer Bar
  • Patent number: 6105038
    Abstract: The present invention is embodied in a system and method for generating and validating reference handles for consumers requiring access to resources in a computer system. The system of the present invention includes a resource manager having a handle administrator, a plurality of consumers, and a plurality of resources. The handle administrator includes an assignment routine, a release routine, and a dereference routine. The assignment routine issues new handles, the release routine releases handles that are no longer required (thus rendering the handle invalid), and the dereference routine dereferences handles into a pointer to a resource, which entails verifying that the handle is valid.
    Type: Grant
    Filed: June 23, 1998
    Date of Patent: August 15, 2000
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet, Ofer Bar
  • Patent number: 6067547
    Abstract: Hash tables are used to index an internal database--one that resides in primary memory. The hash tables are segmented into a sequence of segments that increase geometrically in size. To expand a table, an additional segment is allocated which is twice as large as the previously allocated segment. This most recently allocated segment is referred to as an expansion segment, while the previously existing segments are referred to as base segments. As records are added, entries from the base segments are gradually split, and some of the records referenced by these entries are assigned to new entries in the expansion segment. This distributes address recalculations over time, while also using memory quite efficiently.
    Type: Grant
    Filed: August 12, 1997
    Date of Patent: May 23, 2000
    Assignee: Microsoft Corporation
    Inventor: John R. Douceur
  • Patent number: 6041053
    Abstract: A technique, specifically apparatus and accompanying methods, which utilizes a trie-indexed hierarchy forest ("rhizome") that accommodates wildcards for retrieving, given a specific input key, a pattern stored in the forest that is identical to or subsumes the key. The rhizome contains a binary search trie and a hierarchy forest. The search trie provides an indexed path to each unique, most specific, pattern stored in a lowest level of the hierarchy forest and also possibly to increasingly general patterns at higher levels in the pattern hierarchy. The hierarchy forest organizes the patterns into nodal hierarchies of strictly increasing generality. For use as a packet classifier, the rhizome stores wildcard-based packet classification patterns at separate corresponding pattern nodes, along with, corresponding "reference" fields associated therewith. Operationally, as each different queue is established or removed, a corresponding classification pattern is either inserted into or removed from the rhizome.
    Type: Grant
    Filed: September 18, 1997
    Date of Patent: March 21, 2000
    Assignee: Microsfot Corporation
    Inventors: John R. Douceur, Ofer Bar, Yoram Bernet
  • Patent number: 6021203
    Abstract: A protocol is provided for transmitting low security messages and high security messages with one-time-pad cryptosystem. In one implementation of the present invention, low security messages are encrypted using random bit strings in accordance with a one-time-pad encryption scheme. A high security message and a decoy message are embedded within a set of encryption keys and cyphertexts that is to be transmitted from a sender to a receiver. The encryption keys are transmitted over a secure channel from the sender to the receiver, and the cyphertexts are transmitted over a publicly accessible channel from the sender to the receiver. The receiver uses the encryption keys and knowledge regarding keys for a high security message and a decoy message to decrypt the low security messages, extract the high security message and/or decoy message, and decrypt the high security message and/or decoy message.
    Type: Grant
    Filed: December 11, 1996
    Date of Patent: February 1, 2000
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Michael P. Calligaro, Matthew W. Thomlinson
  • Patent number: 5995971
    Abstract: A technique, specifically apparatus and accompanying methods, which utilizes a trie-indexed hierarchy forest ("rhizome") that accommodates wildcards for retrieving, given a specific input key, a pattern stored in the forest that is identical to or subsumes the key. The rhizome contains a binary search trie and a hierarchy forest. The search trie provides an indexed path to each unique, most specific, pattern stored in a lowest level of the hierarchy forest and also possibly to increasingly general patterns at higher levels in the pattern hierarchy. The hierarchy forest organizes the patterns into nodal hierarchies of strictly increasing generality. For use as a packet classifier, the rhizome stores wildcard-based packet classification patterns at separate corresponding pattern nodes, along with, corresponding "reference" fields associated therewith. Operationally, as each different queue is established or removed, a corresponding classification pattern is either inserted into or removed from the rhizome.
    Type: Grant
    Filed: September 18, 1997
    Date of Patent: November 30, 1999
    Assignee: Micdrosoft Corporation
    Inventors: John R. Douceur, Ofer Bar, Yoram Bernet
  • Patent number: 5956721
    Abstract: A method and computer program product for classifying network communication packets being processed in a network stack. The computer program product is a centralized packet classifier that receives classification requests from drivers or other clients according to a defined interface. This reduces the cost for producing a driver since less code is required initially at development time as well as a corresponding reduction in maintenance costs. The present invention groups drivers or other clients that utilize a certain body of classification information into classification families. Further, reference patterns used to make classifications are stored in separate databases depending on whether they are specific or general.
    Type: Grant
    Filed: September 19, 1997
    Date of Patent: September 21, 1999
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Yoram Bernet, Ofer Bar
  • Patent number: 5907685
    Abstract: Described herein is a distributed computer system having a plurality of computer nodes arranged logically adjacent to each other in a communications ring. Each computer node receives communications from a preceding computer node and sends communications to a succeeding computer node. The computer nodes maintain individual local clocks with local time values c. The clocks are synchronized to each other through a sequence of distributed processing steps. The steps include a step of measuring an approximate local offset d of the local time value of each computer node relative to the local time value of a logically adjacent computer node in the communications ring. A subsequent step includes passing a plurality of collation variables from a lead computer node, through the computer nodes forming the communications ring, and back to the lead computer node in a single pass. The collation variables are processed at each computer node as they are passed around the communications ring.
    Type: Grant
    Filed: August 4, 1995
    Date of Patent: May 25, 1999
    Assignee: Microsoft Corporation
    Inventor: John R. Douceur
  • Patent number: 5903917
    Abstract: A computer system and method for aligning blocks within source program image in accordance with alignment constraints. The source program image is divided in pages. The alignment system receives an indication of which of the blocks are accessed during each time interval while the source program image is executed. The alignment system determines from the received indications which of the pages are accessed during each time interval. The alignment system then identifies the first block of the source program image that has an alignment constraint and repeats the following until all blocks have been aligned. The alignment system identifies a group of contiguous blocks that are adjacent to the identified block such that the identified blocks can be rearranged without increasing the number of pages that are accessed during each time interval. The alignment system then determines an arrangement of the blocks that tends to minimize the amount of padding that is needed to satisfy the alignment constraints.
    Type: Grant
    Filed: February 7, 1997
    Date of Patent: May 11, 1999
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, Robert P. Fitzgerald, John W. Miller
  • Patent number: 5838893
    Abstract: A method and system for remapping physical memory that is malfunctioning. The physical memory has memory locations with addresses. The addresses are ordered from a lowest to a highest address, and each address has bits ordered from a highest-order bit to a lowest-order bit. The system scans physical memory to determine which memory locations are malfunctioning. The system identifies a lowest address and a highest address of the memory locations that are malfunctioning. The system then identifies the highest-order, contiguous bits of the lowest address that are the same as the highest-order, contiguous bits of the highest address. The system generates a remapping value whose highest-order bits are equal to the inverse of the identified highest-order, contiguous bits of the address and whose lowest-order bits are all zeroes. When the system receives an address to access physical memory, the system generates a remapped address by performing a bitwise exclusive-OR of the received address with the remapping value.
    Type: Grant
    Filed: December 26, 1996
    Date of Patent: November 17, 1998
    Assignee: Microsoft Corporation
    Inventor: John R. Douceur
  • Patent number: 5764645
    Abstract: A digital communications network comprises a plurality of network hosts connected to communicate using an ATM network. Each network host uses policies (configured by the network administrator) to control an IP/ATM protocol layer. Based on these policies, the IP/ATM protocol layer classifies submitted IP packets and establishes and manages ATM connections having parameters appropriate for each class of traffic. By configuring the policies, the network administrator can tune the hosts to optimally use network resources. The resources of primary concern are available bandwidth and connection setup capacity. In the simplest case, the IP/ATM protocol layer classifies packets submitted from the IP network protocol as data traffic or control traffic based on packet size. Generally, large IP packets are classified as data traffic, while smaller IP packets are classified as control traffic. Data traffic is sent over the ATM network using ATM connections having relatively high bandwidths and relatively short time-outs.
    Type: Grant
    Filed: June 12, 1996
    Date of Patent: June 9, 1998
    Assignee: Microsoft Corporation
    Inventors: Yoram Bernet, James C. Stewart, John R. Douceur
  • Patent number: 5764526
    Abstract: Described herein is a computer-implemented method of dynamically determining propagation delays through a system of directedly interconnected components. An array of storage cells is maintained in a computer. The storage cells are logically referenced by row and column numbers. As components are added to the system, they are assigned enumerated component numbers. A particular storage cell corresponds to a potential network of directed paths between upstream and downstream components having component numbers equal to the row and column numbers of the particular storage cell, respectively. When the array is maintained in accordance with the invention, a cell contains the propagation delay from the corresponding upstream component to the corresponding downstream component if there is a path from the upstream component to the downstream component. Upon specifying a new component in the system, the array is increased in size by one row and one column.
    Type: Grant
    Filed: April 8, 1996
    Date of Patent: June 9, 1998
    Assignee: Microsoft Corporation
    Inventor: John R. Douceur
  • Patent number: 5651005
    Abstract: Described herein is an ATM switch having a plurality of switch ports for connection to a public ATM network and to a plurality of data handlers. Each data handler is configured to supply respective portions of a continuous data stream to a requesting end-point device through the public ATM network. To request a particular continuous data stream, an end-point device sends a request to a controller associated with the data handlers, rather to each of the individual data handlers. The controller in the preferred embodiment is a dedicated computer, although it is also possible to designate one of the data handlers to perform the functions of the controller. In response to receiving a request from an end-point device, the controller establishes a multipoint-to-point virtual connection between the end-point device and the data handlers which will supply portions of the requested continuous data stream.
    Type: Grant
    Filed: March 15, 1996
    Date of Patent: July 22, 1997
    Assignee: Microsoft Corporation
    Inventors: Timothy C. Kwok, Yoram Bernet, John R. Douceur
  • Patent number: 5642152
    Abstract: A scalable method and system is provided for scheduling data transfer of a video-on-demand server system. A strategy is provided for locating available bandwidth and allocating available bandwidth to subscribers as needed. The input/output bandwidth of storage devices that store data for video image sequences is modeled as a series of bandwidth units. The series of bandwidth units form a schedule where consumer requests are allocated to a bandwidth unit for receiving video image sequences. The bandwidth units are allocated to consumer requests according to an anti-clustering scheduling algorithm. By utilizing an anti-clustering scheduling algorithm, consumer requests less frequently incur an unacceptably long latency before receiving video image sequences.
    Type: Grant
    Filed: December 6, 1994
    Date of Patent: June 24, 1997
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, William J. Bolosky