Patents by Inventor Srinath Shankar

Srinath Shankar 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: 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
  • Publication number: 20180314556
    Abstract: A system for cluster resource allocation includes an interface and a processor. The interface is configured to receive a process and input data. The processor is configured to determine an estimate for resources required for the process to process the input data; determine existing available resources in a cluster for running the process; determine whether the existing available resources are sufficient for running the process; in the event it is determined that the existing available resources are not sufficient for running the process, indicate to add new resources; determine an allocated share of resources in the cluster for running the process; and cause execution of the process using the share of resources.
    Type: Application
    Filed: April 28, 2017
    Publication date: November 1, 2018
    Inventors: Ali Ghodsi, Srinath Shankar, Sameer Paranjpye, Shi Xin, Matei Zaharia
  • Publication number: 20180300354
    Abstract: A system for directory level atomic commits includes an interface and a processor. The interface is configured to receive an indication to provide a set of files. The processor is configured to determine whether a file in a directory has been either 1) atomically committed or 2) written by a non-atomic process and not designated as deleted and provide the file as one file of the set of files in the event that the file in the directory has been either 1) atomically committed or 2) written by a non-atomic process and not designated as deleted.
    Type: Application
    Filed: April 14, 2017
    Publication date: October 18, 2018
    Inventors: Eric Keng-hao Liang, Srinath Shankar, Shi Xin
  • 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
  • Patent number: 9940357
    Abstract: The present invention extends to methods, systems, and computer program products for formulating global statistics for parallel databases. In general, embodiments of the invention merge (combine) information in multiple compute node level histograms to create a global histogram for a table that is distributed across a number of compute nodes. Merging can include aligning histogram step boundaries across the compute node histograms. Merging can include aggregating histogram step-level information, such as, for example, equality rows and average range rows (or alternately equality rows, range rows, and distinct range rows), across the compute node histograms into a single global step. Merging can account for distinct values that do not appear at one or more compute nodes as well as distinct values that are counted at multiple compute nodes. A resulting global histogram can be coalesced to reduce the step count.
    Type: Grant
    Filed: February 25, 2015
    Date of Patent: April 10, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alan Dale Halverson, Eric R. Robinson, Srinath Shankar, Jeffrey F. Naughton
  • Patent number: 9734201
    Abstract: The present invention extends to methods, systems, and computer program products for optimizing parallel queries using interesting distributions. For each logical operator in an SQL server MEMO, in a top down manner from a root operator to the leaf operators, interesting distributions for the operators can be identified based on the properties of the operators. Identified interesting distributions can be propagated down to lower operators by annotating the lower operators with the interesting distributions. Thus, a SQL server MEMO can be annotated with interesting distributions propagated top down from root to leaf logical operators to generate an annotated SQL server MEMO. Parallel query plans can then be generated from the annotated SQL server MEMO in a bottom up manner from leaf operators to a root operator. Annotated interesting properties can be used to prune operators, thereby facilitating a more tractable search space for a parallel query plan.
    Type: Grant
    Filed: November 27, 2015
    Date of Patent: August 15, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Srinath Shankar, Rimma V. Nehme
  • 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
  • Publication number: 20170083571
    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: Application
    Filed: February 17, 2016
    Publication date: March 23, 2017
    Applicant: LinkedIn Corporation
    Inventors: Srinath Shankar, Huaxin Liu, Robert W. Stephenson, Scott M. Meyer
  • Publication number: 20170083588
    Abstract: Distributed query processing is often performed by a set of nodes that apply MapReduce to a data set and materialize partial results to storage, which are then aggregated to produce the query result. However, this architecture requires a preconfigured set of database nodes; can only fulfill queries that utilize MapReduce processing; and may be slowed down by materializing partial results to storage. Instead, distributed query processing can be achieved by choosing a node for various portions of the query, and generating customized code for the node that only performs the query portion that is allocated to the node. The node executes the code to perform the query portion, and rather than materializing partial results to storage, streams intermediate query results to a next selected node in the distributed query. Nodes selection may be involve matching the details of the query portion with the characteristics and capabilities of the available nodes.
    Type: Application
    Filed: December 7, 2016
    Publication date: March 23, 2017
    Inventors: Willis Lang, Nikhil Teletia, Hideaki Kimura, Alan D. Halverson, Srinath Shankar, Karthik Ramachandra
  • Patent number: 9535963
    Abstract: In order to request desired information from a graph database, a system executes a query against the graph database. The graph database may store a graph that includes nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency. Moreover, the query may identify a first edge associated with a predicate that specifies one or more of the nodes in the graph. In response to the query, the system receives a result that includes a subset of the graph. In particular, the subset of the graph may include the desired information expressed within an associated structure of the graph.
    Type: Grant
    Filed: September 18, 2015
    Date of Patent: January 3, 2017
    Assignee: LinkedIn Corporation
    Inventors: Srinath Shankar, Robert W. Stephenson, Andrew J. Carter, Maverick Shu-Bun Lee, Scott M. Meyer
  • Patent number: 9378239
    Abstract: In order to request desired information from a graph database, a system executes a query against the graph database. The graph database may store a graph that includes nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency. Moreover, the query may identify a first edge associated with a predicate that specifies one or more of the nodes in the graph. In response to the query, the system receives a result that includes a subset of the graph. Then, the system may verify the subset of the graph. In particular, the system may verify that the subset of the graph includes one or more particular edges, such as an edge with the predicate in the query. Furthermore, the system may verify that the subset of the graph includes data and/or associated structure in the portion of the graph.
    Type: Grant
    Filed: September 18, 2015
    Date of Patent: June 28, 2016
    Assignee: LinkedIn Corporation
    Inventors: Yejuan Long, Srinath Shankar, Scott M. Meyer
  • Patent number: 9378303
    Abstract: In order to facilitate efficient storage and extraction of data, a system may represent a compound relationship in a graph stored in a graph database. In particular, the system (or a user) may define the compound relationship based on two or more predicates associated with two or more edges between two or more nodes in the graph. Then, the system may generate, in the graph, a hub node that corresponds to the compound relationship and that has an identifier that is hidden from users of the graph so that the identifier of the hub node is not visible external to the graph database. Moreover, the identifier of the hub node may be specified in a query using the two or more predicates, thereby allowing data associated with the compound relationship to be readily identified, modified and/or extracted.
    Type: Grant
    Filed: September 18, 2015
    Date of Patent: June 28, 2016
    Assignee: LinkedIn Corporation
    Inventors: Shyam Shankar, Karan R. Parikh, Andrew J. Carter, Scott M. Meyer, Srinath Shankar
  • Patent number: 9378241
    Abstract: In order to request desired information from a graph database, a system executes a query against the graph database. The graph database may store a graph that includes nodes, edges between the nodes, and predicates to represent and store data with index-free adjacency. Moreover, the query may identify a first edge associated with a predicate that specifies one or more of the nodes in the graph. In response to the query, the system receives a result that includes a subset of the graph. Then, the system may use the result of the query in a concatenated set of queries. In particular, the system may execute a second query against the subset of the graph. Furthermore, in response to the second query, the system may receive a second result that includes a second subset of the graph.
    Type: Grant
    Filed: September 18, 2015
    Date of Patent: June 28, 2016
    Assignee: LinkedIn Corporation
    Inventors: Srinath Shankar, Robert W. Stephenson, Andrew J. Carter, Scott M. Meyer
  • Patent number: 9330138
    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: September 18, 2015
    Date of Patent: May 3, 2016
    Assignee: LinkedIn Corporation
    Inventors: Srinath Shankar, Huaxin Liu, Robert W. Stephenson, Scott M. Meyer
  • Patent number: 9317554
    Abstract: Presented is a system and method for evaluating relational database queries in a distributed system. An optimized query plan is received by a control node. The query plan is decoded to a SQL statement that is semantically equivalent to the query plan, even though the query plan contains elements that have no direct analog in SQL. The decoded SQL is transmitted to a compute node for execution.
    Type: Grant
    Filed: September 26, 2012
    Date of Patent: April 19, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Srinath Shankar, Rimma Nehme
  • Patent number: 9305074
    Abstract: Distributing rows of data in a distributed table distributed across a plurality of nodes. A method includes identifying skewed rows of a first table to be distributed in a distributed database system. The skewed rows include a common data value in a column such that the skewed rows are skewed, according to a predetermined skew factor, with respect to other rows in the first table not having the common data value. Non-skewed rows of the first table that are not skewed according to the skew factor are identified. The skewed rows of the first table are distributed across nodes in a non-deterministic fashion. The non-skewed rows of the first table are distributed across nodes in a deterministic fashion. The rows of the first table distributed across the nodes, whether distributed in a deterministic fashion or non-deterministic fashion, are stored in a single table at each of the nodes.
    Type: Grant
    Filed: June 19, 2013
    Date of Patent: April 5, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nikhil Teletia, Alan Dale Halverson, Srinath Shankar, Jeffrey Naughton
  • Publication number: 20160078090
    Abstract: The present invention extends to methods, systems, and computer program products for optimizing parallel queries using interesting distributions. For each logical operator in an SQL server MEMO, in a top down manner from a root operator to the leaf operators, interesting distributions for the operators can be identified based on the properties of the operators. Identified interesting distributions can be propagated down to lower operators by annotating the lower operators with the interesting distributions. Thus, a SQL server MEMO can be annotated with interesting distributions propagated top down from root to leaf logical operators to generate an annotated SQL server MEMO. Parallel query plans can then be generated from the annotated SQL server MEMO in a bottom up manner from leaf operators to a root operator. Annotated interesting properties can be used to prune operators, thereby facilitating a more tractable search space for a parallel query plan.
    Type: Application
    Filed: November 27, 2015
    Publication date: March 17, 2016
    Inventors: Srinath Shankar, Rimma V. Nehme