Patents by Inventor Scott M. Meyer

Scott M. Meyer 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: 20190026334
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes a set of processes for maintaining the graph database storing a graph, wherein the graph includes a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a write query of the graph database is received, the system uses one or more of the processes to process the write query by using a schema of the graph database to validate the write query. Next, the system transmits the validated write query to a set of shards containing the graph database. Finally, the system processes the write query at each shard when a shard identifier representing the shard is matched to one or more attributes in the write query.
    Type: Application
    Filed: July 20, 2017
    Publication date: January 24, 2019
    Applicant: LinkedIn Corporation
    Inventors: Xiaobin Ma, Scott M. Meyer, Andrew Rodriguez, Walaa Eldin M. Moustafa
  • Patent number: 10180992
    Abstract: The disclosed embodiments provide a system for updating an index structure of a graph database storing a graph. During operation, the system includes, in the index structure, a first compressed edge store containing a first compact representation of edges in the graph at a first virtual time and a first series of updates to the edges after the first virtual time. At a second virtual time, the system creates a second compact representation of the edges from the first compact representation and the first series of updates. The system then appends, to the second compact representation, a second series of updates to the edges after the second virtual time to produce a second compressed edge store. Finally, the system updates the index structure by atomically replacing, in the index structure, a reference to the first compressed edge store with a reference to the second compressed edge store.
    Type: Grant
    Filed: March 1, 2016
    Date of Patent: January 15, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: SungJu Cho, Jiahong Zhu, Yinyi Wang, Roman A. Averbukh, Scott M. Meyer, Shyam Shankar, Qingpeng Niu, Karan R. Parikh
  • Publication number: 20180357328
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes a set of processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, edges between pairs of nodes, and a set of predicates. Next, the system obtains a first query containing a first tuple and a second query containing a first subset of edges. The system transforms the first tuple into a second subset of edges and the first subset of edges into a second tuple. Finally, the system uses the second subset of edges to generate a first result of the first query and the second tuple to generate a second result of the second query, and provides the first result in a first response to the first query and the second result in a second response to the second query.
    Type: Application
    Filed: June 9, 2017
    Publication date: December 13, 2018
    Applicant: LinkedIn Corporation
    Inventors: Scott M. Meyer, Andrew J. Carter, Andrew Rodriguez, Walaa Eldin M. Moustafa
  • Publication number: 20180357330
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes a set of processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a query of the graph database is received, the system performs a lookup of a hash map to obtain one or more offsets into a compound store for the graph database, which includes identity-giving nodes for a set of tuples in the graph database. Next, the system accesses the offset(s) in the compound store to obtain a subset of tuples matching the query. The system then uses the subset of tuples to generate a result of the query and provides the result in a response to the query.
    Type: Application
    Filed: June 9, 2017
    Publication date: December 13, 2018
    Applicant: LinkedIn Corporation
    Inventors: Andrew Rodriguez, Scott M. Meyer, Andrew J. Carter, Walaa Eldin M. Moustafa
  • Publication number: 20180357329
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes a set of processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a query of the graph database is received, the system obtains, from the query, a compound comprising a compound type and a set of identity-giving nodes. Next, the system uses the compound to access a tuple for storage in a log-based representation of the graph database, wherein the tuple includes the compound type and the identity-giving nodes. The system then uses the tuple to generate a result of the query and provides the result in a response to the query.
    Type: Application
    Filed: June 9, 2017
    Publication date: December 13, 2018
    Applicant: LinkedIn Corporation
    Inventors: Scott M. Meyer, Andrew J. Carter, Andrew Rodriguez, Walaa Eldin M. Moustafa
  • Publication number: 20180357278
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes one or more processes for providing the graph database storing a graph, wherein the graph includes a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. Next, the system obtains, from the query, an aggregation by a first attribute and a grouping by a second attribute. The system then uses the second attribute to generate a set of groupings of records in the graph database. For each grouping in the set of groupings, the system applies the aggregation to the first attribute in a subset of the records in the grouping to generate an aggregation result. Finally, the system uses the aggregation result to provide a response to the query.
    Type: Application
    Filed: June 9, 2017
    Publication date: December 13, 2018
    Applicant: LinkedIn Corporation
    Inventors: Walaa Eldin M. Moustafa, Andrew J. Carter, Andrew Rodriguez, Scott M. Meyer
  • Publication number: 20180349443
    Abstract: The disclosed embodiments provide a system for processing and storing data. During operation, the system obtains a set of records sorted by a first integer value, with each record containing the first integer value and one or more additional integer values. The system sets, for each integer value in each record, a delta encoding bit that indicates whether the integer value is delta encoded with respect to at least one other integer value in the records. Next, the system uses a delta encoding state represented by the delta encoding bit to calculate an encoded value from the integer value. The system then encodes a length of the encoded value in a length tag for the integer value and replaces the integer value in the record with an encoded version containing the delta encoding bit, the length tag, and the encoded value.
    Type: Application
    Filed: May 31, 2017
    Publication date: December 6, 2018
    Applicant: LinkedIn Corporation
    Inventors: Andrew J. Carter, Andrew Rodriguez, Srinath Shankar, Scott M. Meyer
  • Patent number: 9990443
    Abstract: A system executes a query associated with an application against a graph database by providing, to a first shard of the graph database, the query and a first query header that specifies the first shard. The query includes a subject, a predicate and an object, and the graph database stores a graph that includes nodes, edges between the nodes, and predicates to represent and store data. In response to the query, the system receives results and associated result headers from the first shard and a second shard, where the result headers specify that the results are partial results that are particular fractions of a total result. Furthermore, a combination of the partial results provides the total result to the query that includes a subset of the graph. Note that the subset of the graph may include desired information expressed within an associated structure of the graph.
    Type: Grant
    Filed: September 13, 2016
    Date of Patent: June 5, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Yongling Song, Andrew J. Carter, Joshua D. Ehrlich, Scott M. Meyer
  • Publication number: 20180144061
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes a set of processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a query of the graph database is received, the system performs a lookup of a hash map to obtain one or more offsets into an edge store for the graph database, which includes a one-linkage structure and a two-linkage structure. Next, the system accesses the offset(s) in the edge store to obtain a subset of the edges matching the query. The system then uses the subset of the edges to generate a result of the query and provides the result in a response to the query.
    Type: Application
    Filed: November 23, 2016
    Publication date: May 24, 2018
    Applicant: LinkedIn Corporation
    Inventors: Andrew Rodriguez, Andrew J. Carter, Scott M. Meyer, Srinath Shankar
  • Publication number: 20180144060
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes one or more processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a query of the graph database is received, the system processes the query by matching a query time of the query to a virtual time in a log-based representation of the graph database. Next, the system uses an edge store for the graph database to access a subset of the edges matching the query. The system then generates a result of the query by materializing updates to the subset of the edges before the virtual time and provides the result in a response to the query.
    Type: Application
    Filed: November 23, 2016
    Publication date: May 24, 2018
    Applicant: LinkedIn Corporation
    Inventors: Andrew J. Carter, Andrew Rodriguez, Srinath Shankar, Scott M. Meyer
  • Publication number: 20180113908
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes one or more processes for providing the graph database storing a graph, wherein the graph includes a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. Next, the system receives a query containing a missing value parameter, wherein the missing value parameter designates an attribute in the graph database with a nonexistent value. The system then produces, from the query, a transformed query comprising one or more parameters that do not include the missing value parameter. Finally, the system uses the transformed query and the graph database to generate a result of the query and provides the result in a response to the query.
    Type: Application
    Filed: October 26, 2016
    Publication date: April 26, 2018
    Applicant: LinkedIn Corporation
    Inventors: Walaa Eldin M. Moustafa, Srinath Shankar, Scott M. Meyer
  • Publication number: 20180089331
    Abstract: The disclosed embodiments provide a system that searches a graph database. During operation, the system obtains a log-based representation of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. Next, the system obtains a first query containing a first search pattern for searching the log-based representation. The system then matches the first search pattern to one or more records in the log-based representation. Finally, the system outputs, as a first result of the first query, the one or more records in a subgraph of the graph.
    Type: Application
    Filed: September 28, 2016
    Publication date: March 29, 2018
    Applicant: LinkedIn Corporation
    Inventors: Yejuan Long, Scott M. Meyer
  • Publication number: 20180089252
    Abstract: The disclosed embodiments provide a system that verifies correctness in a graph database. During operation, the system obtains a set of records from a source of truth for a graph database storing a graph, wherein the graph includes a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. Next, the system uses the records to automatically generate a set of test cases containing a set of queries of the graph database. The system then transmits the queries to the graph database and receives, from the graph database, a set of query results in response to the queries. Finally, the system performs a comparison of the query results and a set of expected results of the test cases to verify a correctness of the graph database.
    Type: Application
    Filed: September 28, 2016
    Publication date: March 29, 2018
    Applicant: LinkedIn Corporation
    Inventors: Yejuan Long, Scott M. Meyer, Yiming Yang, Mihir Sharad Vakharia
  • Publication number: 20170255709
    Abstract: The disclosed embodiments provide a system for updating an index structure of a graph database storing a graph. During operation, the system includes, in the index structure, a first compressed edge store containing a first compact representation of edges in the graph at a first virtual time and a first series of updates to the edges after the first virtual time. At a second virtual time, the system creates a second compact representation of the edges from the first compact representation and the first series of updates. The system then appends, to the second compact representation, a second series of updates to the edges after the second virtual time to produce a second compressed edge store. Finally, the system updates the index structure by atomically replacing, in the index structure, a reference to the first compressed edge store with a reference to the second compressed edge store.
    Type: Application
    Filed: March 1, 2016
    Publication date: September 7, 2017
    Applicant: LinkedIn Corporation
    Inventors: SungJu Cho, Jiahong Zhu, Yinyi Wang, Roman A. Averbukh, Scott M. Meyer, Shyam Shankar, Qingpeng Niu, Karan R. Parikh
  • Publication number: 20170255708
    Abstract: The disclosed embodiments provide a system for processing queries of a graph database. During operation, the system executes a set of processes for accessing a lock-free hash table stored in memory on a computer system, wherein the processes include a write process and multiple read processes. Next, the system uses the processes and the lock-free hash table to index a graph database storing a graph. The system then uses the processes to access a compressed edge store containing a compact representation of the set of edges at a virtual time in the graph and a series of updates to the edges after the virtual time. During use of the processes and the lock-free hash table to index the graph database, the system references the set of edges in the compact representation from a set of entries in the lock-free hash table.
    Type: Application
    Filed: March 1, 2016
    Publication date: September 7, 2017
    Applicant: LinkedIn Corporation
    Inventors: SungJu Cho, Jiahong Zhu, Yinyi Wang, Roman A. Averbukh, Scott M. Meyer, Shyam Shankar, Qingpeng Niu, Karan R. Parikh
  • Publication number: 20170212930
    Abstract: The disclosed embodiments provide a system for processing data. During operation, the system launches a set of child processes for processing queries of a graph database storing a graph, wherein the graph comprises a set of nodes, a set of edges between pairs of nodes in the set of nodes, and a set of predicates. When a query of the graph database is received, the system transmits the query to one or more of the child processes. Next, the system receives a result of the query from the one or more child processes. The system then provides the result in a response to the query.
    Type: Application
    Filed: January 21, 2016
    Publication date: July 27, 2017
    Applicant: LINKEDIN CORPORATION
    Inventors: Andrew J. Carter, Yongling Song, Joshua D. Ehrlich, Roman A. Averbukh, Scott M. Meyer, Jiahong Zhu
  • Publication number: 20170212945
    Abstract: The disclosed embodiments provide a system for providing a graph database storing a graph. During operation, the system executes one or more processes for providing the graph database. Next, the system stores a sequence of changes to the graph in a base version of the graph database. The system then branches a version of the graph database from a virtual time in the base version. Finally, the system uses the branched version to process one or more queries of the graph database.
    Type: Application
    Filed: January 21, 2016
    Publication date: July 27, 2017
    Applicant: LinkedIn Corporation
    Inventors: Shyam Shankar, Scott M. Meyer
  • Patent number: 9683564
    Abstract: This document discloses an internal gear pump with a symmetrical casing and a head design that enables high pumping speeds, reduced turbulence and reduced risk or occurrence of cavitation. The head includes a boss that extends into the pump chamber to form an idler support and a crescent support. The crescent support includes a liquid directing step that extends from the crescent arcuately towards the inlet. The liquid directing step divides liquid incoming from the inlet into a portion directed to an idler feed slot and another portion directed to a rotor feed slot. The idler feed slot provides communication between the inlet and the roots of the idler and the rotor feed slot provides communication between the inlet and spaces between the rotor teeth.
    Type: Grant
    Filed: April 8, 2015
    Date of Patent: June 20, 2017
    Assignee: Viking Pump, Inc.
    Inventors: Scott M. Meyer, Emily P. Timm, Christopher J. Mihm, Nicolas V. Thompson
  • Patent number: 9672247
    Abstract: In order to facilitate the requesting of desired information from a graph database that stores a graph, a system may translate an initial query into a query that can be executed against the graph database. In particular, using primitives, the system may translate a query associated with a type of database (such as a relational database) into the query. The graph may include nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency. Moreover, the primitives may include: a rule based on edges in the graph that expresses a relational schema in the type of database, and information associated with a compound key that specifies a relationship between nodes, edges and predicates in the graph corresponding to a table in the type of database. Then, the system may execute the query against the graph database, and may receive a result that includes a subset of the graph.
    Type: Grant
    Filed: February 17, 2016
    Date of Patent: June 6, 2017
    Assignee: LinkedIn Corporation
    Inventors: Srinath Shankar, Huaxin Liu, Robert W. Stephenson, Scott M. Meyer
  • Publication number: 20170139991
    Abstract: A system obtains desired information from a database by dynamically modifying a query plan while executing a query against the database. In particular, the system accesses predefined cardinality information associated with the query for the database (such as a number of occurrences of information associated with the query in the database), and identifies query constraints based on the predefined cardinality information. Then, the system determines an initial query plan based on the query constraints. After executing an initial query against the database based on the initial query plan, the system revises the initial query and the initial query plan, based on partial results of the initial query, to produce a revised query and a revised query plan. Next, the system executes the revised query against the database based on the revised query plan to obtain additional partial results, and the operations are repeated until a total result is obtained.
    Type: Application
    Filed: November 16, 2015
    Publication date: May 18, 2017
    Applicant: LINKEDIN CORPORATION
    Inventors: Nikhil Teletia, Srinath Shankar, Scott M. Meyer