Patents by Inventor John G. Bennett

John G. Bennett 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: 11803596
    Abstract: Methods and computer storage media are provided for generating entries for documents in a forward index. A document and its document identification are received, in addition to static features that are query-independent. The document is parsed into tokens to form a token stream corresponding to the document. Relevant data used to calculate rankings of document is identified and a position of the data is determined. The entry is then generated from the document identification, the token stream of the document, the static features, and the positional information of the relevant data. The entry is stored in the forward index.
    Type: Grant
    Filed: October 1, 2019
    Date of Patent: October 31, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Knut Magne Risvik, Michael Hopcroft, John G. Bennett, Karthik Kalyanaraman, Trishul Chilimbi, Chad P. Walters, Vishesh Parikh, Jan Otto Pedersen
  • Patent number: 11625322
    Abstract: In some examples, performance counters for computer memory may include ascertaining a request associated with a memory address range of computer memory. The memory address range may be assigned to a specified performance tier of a plurality of specified performance tiers. A performance value associated with a performance attribute of the memory address range may be ascertained, and based on the ascertained performance value, a weight value may be determined. Based on the ascertained request and the determined weight value, a count value associated with a counter associated with the memory address range may be incremented. Based on an analysis of the count value associated with the counter, a determination may be made as to whether the memory address range is to be assigned to a different specified performance tier of the plurality of specified performance tiers.
    Type: Grant
    Filed: August 11, 2021
    Date of Patent: April 11, 2023
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: John G. Bennett, Siamak Tavallaei
  • Publication number: 20220253236
    Abstract: A compressed memory is divided into a plurality of segments, each segment is divided into a plurality of sub-segments, and each sub-segment in an uncompressed data space is compressed into block (s) in a compressed data space. Upon a read request to a sub-segment in a segment in compressed memory is received, the corresponding entry is firstly determined based on a first level address mapping between the sub-segment and the entry, and then the corresponding block (s) is determined based on a second level address mapping between the entry and the block (s). By use of two-level address mappings, the size of entry can be reduced, thereby achieving low metadata overhead. Moreover, the proposed data layout for compressed memory.
    Type: Application
    Filed: July 2, 2019
    Publication date: August 11, 2022
    Inventors: Lintao ZHANG, John G. BENNETT, Bojie LI
  • Patent number: 11210207
    Abstract: In some examples, performance counters for computer memory may include ascertaining a request associated with a memory address range of computer memory. The memory address range may be assigned to a specified performance tier of a plurality of specified performance tiers. A performance value associated with a performance attribute of the memory address range may be ascertained, and based on the ascertained performance value, a weight value may be determined. Based on the ascertained request and the determined weight value, a count value associated with a counter associated with the memory address range may be incremented. Based on an analysis of the count value associated with the counter, a determination may be made as to whether the memory address range is to be assigned to a different specified performance tier of the plurality of specified performance tiers.
    Type: Grant
    Filed: November 14, 2019
    Date of Patent: December 28, 2021
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: John G. Bennett, Siamak Tavallaei
  • Publication number: 20210374046
    Abstract: In some examples, performance counters for computer memory may include ascertaining a request associated with a memory address range of computer memory. The memory address range may be assigned to a specified performance tier of a plurality of specified performance tiers. A performance value associated with a performance attribute of the memory address range may be ascertained, and based on the ascertained performance value, a weight value may be determined. Based on the ascertained request and the determined weight value, a count value associated with a counter associated with the memory address range may be incremented. Based on an analysis of the count value associated with the counter, a determination may be made as to whether the memory address range is to be assigned to a different specified performance tier of the plurality of specified performance tiers.
    Type: Application
    Filed: August 11, 2021
    Publication date: December 2, 2021
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: John G. BENNETT, Siamak TAVALLAEI
  • Patent number: 10769074
    Abstract: In some examples, computer memory content movement may include ascertaining a request associated with content of computer memory. Based on a determination that the request is directed to the content that is to be moved from a source of the computer memory to a destination of the computer memory, a determination may be made as to whether the content is at the source, is in a process of being moved from the source to the destination, or has been moved from the source to the destination. Based on a determination that the content is at the source, the request may be performed using the source. Based on a determination that the content is in the process of being moved, the request may be performed using the source. Further, based on a determination that the content has been moved, the request may be performed using the destination.
    Type: Grant
    Filed: May 18, 2018
    Date of Patent: September 8, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: John G. Bennett, Marc Tremblay
  • Publication number: 20200192948
    Abstract: Methods and computer storage media are provided for generating entries for documents in a forward index. A document and its document identification are received, in addition to static features that are query-independent. The document is parsed into tokens to form a token stream corresponding to the document. Relevant data used to calculate rankings of document is identified and a position of the data is determined. The entry is then generated from the document identification, the token stream of the document, the static features, and the positional information of the relevant data. The entry is stored in the forward index.
    Type: Application
    Filed: October 1, 2019
    Publication date: June 18, 2020
    Inventors: KNUT MAGNE RISVIK, MICHAEL HOPCROFT, JOHN G. BENNETT, KARTHIK KALYANARAMAN, TRISHUL CHILIMBI, CHAD P. WALTERS, VISHESH PARIKH, JAN OTTO PEDERSEN
  • Publication number: 20200081826
    Abstract: In some examples, performance counters for computer memory may include ascertaining a request associated with a memory address range of computer memory. The memory address range may be assigned to a specified performance tier of a plurality of specified performance tiers. A performance value associated with a performance attribute of the memory address range may be ascertained, and based on the ascertained performance value, a weight value may be determined. Based on the ascertained request and the determined weight value, a count value associated with a counter associated with the memory address range may be incremented. Based on an analysis of the count value associated with the counter, a determination may be made as to whether the memory address range is to be assigned to a different specified performance tier of the plurality of specified performance tiers.
    Type: Application
    Filed: November 14, 2019
    Publication date: March 12, 2020
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: John G. BENNETT, Siamak TAVALLAEI
  • Patent number: 10515064
    Abstract: A key-value storage system is described herein for interacting with key-value entries in a content store using a resource-efficient index. The index provides a data structure that includes a plurality of hash buckets. Each hash bucket includes a linked list of hash bucket units. The key-value storage system stores hash entries in each linked list of hash bucket units in a distributed manner between an in-memory index store and a secondary index store, based on time of their creation. The key-value storage system is further configured to store hash entries in a particular collection of linked hash bucket units in a chronological order to reflect time of their creation. The index further includes various tunable parameters that affect the performance of the key-value storage system.
    Type: Grant
    Filed: July 11, 2016
    Date of Patent: December 24, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John G. Bennett, Chen Fu, Ashwini S. Khade
  • Patent number: 10509721
    Abstract: In some examples, performance counters for computer memory may include ascertaining a request associated with a memory address range of computer memory. The memory address range may be assigned to a specified performance tier of a plurality of specified performance tiers. A performance value associated with a performance attribute of the memory address range may be ascertained, and based on the ascertained performance value, a weight value may be determined. Based on the ascertained request and the determined weight value, a count value associated with a counter associated with the memory address range may be incremented. Based on an analysis of the count value associated with the counter, a determination may be made as to whether the memory address range is to be assigned to a different specified performance tier of the plurality of specified performance tiers.
    Type: Grant
    Filed: May 18, 2018
    Date of Patent: December 17, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: John G. Bennett, Siamak Tavallaei
  • Patent number: 10437892
    Abstract: Methods and computer storage media are provided for generating entries for documents in a forward index. A document and its document identification are received, in addition to static features that are query-independent. The document is parsed into tokens to form a token stream corresponding to the document. Relevant data used to calculate rankings of document is identified and a position of the data is determined. The entry is then generated from the document identification, the token stream of the document, the static features, and the positional information of the relevant data. The entry is stored in the forward index.
    Type: Grant
    Filed: July 8, 2014
    Date of Patent: October 8, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Knut Magne Risvik, Michael Hopcroft, John G. Bennett, Karthik Kalyanaraman, Trishul Chilimbi, Chad P. Walters, Vishesh Parikh, Jan Otto Pedersen
  • Publication number: 20190138453
    Abstract: In some examples, computer memory content movement may include ascertaining a request associated with content of computer memory. Based on a determination that the request is directed to the content that is to be moved from a source of the computer memory to a destination of the computer memory, a determination may be made as to whether the content is at the source, is in a process of being moved from the source to the destination, or has been moved from the source to the destination. Based on a determination that the content is at the source, the request may be performed using the source. Based on a determination that the content is in the process of being moved, the request may be performed using the source. Further, based on a determination that the content has been moved, the request may be performed using the destination.
    Type: Application
    Filed: May 18, 2018
    Publication date: May 9, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: John G. Bennett, Marc Tremblay
  • Publication number: 20190138437
    Abstract: In some examples, performance counters for computer memory may include ascertaining a request associated with a memory address range of computer memory. The memory address range may be assigned to a specified performance tier of a plurality of specified performance tiers. A performance value associated with a performance attribute of the memory address range may be ascertained, and based on the ascertained performance value, a weight value may be determined. Based on the ascertained request and the determined weight value, a count value associated with a counter associated with the memory address range may be incremented. Based on an analysis of the count value associated with the counter, a determination may be made as to whether the memory address range is to be assigned to a different specified performance tier of the plurality of specified performance tiers.
    Type: Application
    Filed: May 18, 2018
    Publication date: May 9, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: John G. BENNETT, Siamak Tavallaei
  • Publication number: 20180011852
    Abstract: A key-value storage system is described herein for interacting with key-value entries in a content store using a resource-efficient index. The index provides a data structure that includes a plurality of hash buckets. Each hash bucket includes a linked list of hash bucket units. The key-value storage system stores hash entries in each linked list of hash bucket units in a distributed manner between an in-memory index store and a secondary index store, based on time of their creation. The key-value storage system is further configured to store hash entries in a particular collection of linked hash bucket units in a chronological order to reflect time of their creation. The index further includes various tunable parameters that affect the performance of the key-value storage system.
    Type: Application
    Filed: July 11, 2016
    Publication date: January 11, 2018
    Inventors: John G. Bennett, Chen Fu, Ashwini S. Khade
  • Publication number: 20170083553
    Abstract: A search index includes tiered posting lists. Each posting list in the search index corresponds with a different atom and includes a list of documents containing the particular document. Additionally, a rank is stored with each document listed in a posting list for a given atom representing the relevance of the atom to the context of each document. At least some of the posting lists in the search index are tiered. A tiered posting list is divided into a number of tiers with the tiers being ordered by document while each tier is internally ordered by document. Employing tiered posting lists within the search index allows a search engine to evaluate search queries in a manner that allows for a number of efficiencies and precise stopping.
    Type: Application
    Filed: November 30, 2016
    Publication date: March 23, 2017
    Inventors: Knut Magne Risvik, Michael Hopcroft, John G. Bennett, Karthik Kalyanaraman, Trishul Chilimbi
  • Publication number: 20160378803
    Abstract: The technology described herein provides a bit vector search index for a search system. The bit vector search index comprises a data structure for indexing data about terms from a corpus of documents. The data structure includes a number of bit vectors. Each bit vector comprises an array of bits and corresponds to a different set of terms. Bits in the bit vector are used to represent whether at least one document corresponding to the bit includes at least one term from the set of terms corresponding to the bit vector.
    Type: Application
    Filed: June 17, 2016
    Publication date: December 29, 2016
    Inventors: MICHAEL JOSEPH HOPCROFT, ROBERT LOVEJOY GOODWIN, JOHN G. BENNETT
  • Patent number: 9529908
    Abstract: A search index includes tiered posting lists. Each posting list in the search index corresponds with a different atom and includes a list of documents containing the particular document. Additionally, a rank is stored with each document listed in a posting list for a given atom representing the relevance of the atom to the context of each document. At least some of the posting lists in the search index are tiered. A tiered posting list is divided into a number of tiers with the tiers being ordered by document while each tier is internally ordered by document. Employing tiered posting lists within the search index allows a search engine to evaluate search queries in a manner that allows for a number of efficiencies and precise stopping.
    Type: Grant
    Filed: November 22, 2010
    Date of Patent: December 27, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Knut Magne Risvik, Michael Hopcroft, John G. Bennett, Karthik Kalyanaraman, Trishul Chilimbi
  • Patent number: 9354991
    Abstract: An “erasure code” is an encoding of multiple different sets of data. Redundant copies of data are maintained in such erasure codes, thereby utilizing only a fraction of the storage capacity of unencoded copies. Erasure codes are efficiently generated, with a minimum of processing resources utilizing XOR functionality. Additionally, erasure codes are generated from local data, thereby avoiding the consumption of network resources. At least one unencoded copy of a set of data is maintained, while the remaining, redundant copies are encoded into erasure codes. Requests for data are provided from the unencoded copy. Should it fail, a new unencoded copy can be generated by another computing device having access to both an erasure code as well as unencoded copies of the other data that was also pressed into that erasure code. Multiple failures can be survived through recursive application of such a decoding of encoded data.
    Type: Grant
    Filed: June 25, 2013
    Date of Patent: May 31, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John G. Bennett, Bob Jenkins
  • Patent number: 9342582
    Abstract: Methods are provided for populating search indexes with atoms identified in documents. Documents that are to be indexed are identified, and for each document, atoms are identified and are categorized as unigrams, n-grams, and n-tuples. A list of atom/document pairs is generated such that an information metric can be computed for each pair. An information metric represents a ranking of the atom in relation to the particular document. Based on the information metric, some atom/document pairs are discarded and others are indexed.
    Type: Grant
    Filed: March 10, 2011
    Date of Patent: May 17, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Knut Magne Risvik, Mike Hopcroft, John G. Bennett, Karthik Kalyanaraman, Trishul Chilimbi
  • Publication number: 20150234917
    Abstract: Methods, computer systems, and computer-storage medium for generating a per-document index used for semantic searching is provided. A document is received and parsed into a plurality of section. Each term in each section is translated in order to at least one of a cache index or a term identifier. Subsequent to translating the terms, each section is separately group encoded to generate the per-document index. The per-document index is stored in association with a data store.
    Type: Application
    Filed: April 30, 2015
    Publication date: August 20, 2015
    Inventors: YUE-SHENG LIU, XIAO-SONG YANG, HUI SHEN, WEIHU WANG, JOHN G. BENNETT