Atlanta, GA, United States
Atlanta, GA, United States

Time filter

Source Type

Patent
Logicblox Inc. | Date: 2017-01-25

An aspect includes concurrently executing two or more transactions over a database. A plurality of transactions is executed in parallel while recording each transactions sensitivities and output deltas. A sensitivity of a transaction identifies an aspect of a database state whose modification has a potential of altering an output of the transaction, and an output delta of the transaction indicates a change to the database state that is a result of the transaction being executed. The output deltas are fed from a first transaction through a filter for a second transaction. The filter is based on the second transactions sensitivities. The filtered deltas are processed in the second transaction to incrementally compute revised deltas and sensitivities for the second transaction. For each transaction that successfully commits, the transactions deltas are applied to update the database.


Huang S.S.,LogicBlox Inc. | Green T.J.,University of California at Davis | Loo B.T.,University of Pennsylvania
Proceedings of the ACM SIGMOD International Conference on Management of Data | Year: 2011

We are witnessing an exciting revival of interest in recursive Datalog queries in a variety of emerging application domains such as data integration, information extraction, networking, program analysis, security, and cloud computing. This tutorial briefly reviews the Datalog language and recursive query processing and optimization techniques, then discusses applications of Datalog in three application domains: data integration, declarative networking, and program analysis. Throughout the tutorial, we use LogicBlox, a commercial Datalog engine for enterprise software systems, to allow the audience to walk through code examples presented in the tutorial. © 2011 ACM.


Kimelfeld B.,LogicBlox Inc.
Proceedings of the ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems | Year: 2014

Information Extraction commonly refers to the task of populating a relational schema, having predefined underlying semantics, from textual content. This task is pervasive in contemporary computational challenges associated with Big Data. This tutorial gives an overview of the algorithmic concepts and techniques used for performing Information Extraction tasks, and describes some of the declarative frameworks that provide abstractions and infrastructure for programming extractors. In addition, the tutorial highlights opportunities for research impact through principles of data management, illustrates these opportunities through recent work, and proposes directions for future research. Copyright 2014 ACM.


Green T.J.,LogicBlox Inc.
Proceedings of the ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems | Year: 2015

We give an overview of LogiQL, a declarative, Datalog-based language for data management and analytics, along with techniques for efficient evaluation of LogiQL programs, emphasizing theoretical foundations when possible. These techniques include: leapfrog triejoin and its associated incremental maintenance algorithm, which we measure against appropriate optimality criteria; purely-functional data structures, which provide elegant versioning and branching capabilities that are indispensable for LogiQL; and transaction repair, a lock-free concurrency control scheme that uses LogiQL, incremental maintenance, and purely-functional data structures as essential ingredients. © 2015 ACM.


Patent
LogicBlox Inc. | Date: 2012-12-20

An aspect includes a method for maintaining active queries. The method includes executing a query based on data items in at least two relations in a database. The executing includes outputting a query result and control information associated with the query. The query result and the control information are recorded. A notification that at least one of the data items has been updated subsequent to the executing is received. The query result is modified, responsive to the control information, to reflect the data items that were updated subsequent to the executing.


Patent
LogicBlox Inc. | Date: 2016-04-11

An aspect includes a method for maintaining active queries. The method includes executing a query based on data items in at least two relations in a database. The executing includes outputting a query result and control information associated with the query. The query result and the control information are recorded. A notification that at least one of the data items has been updated subsequent to the executing is received. The query result is modified, responsive to the control information, to reflect the data items that were updated subsequent to the executing.


Patent
LogicBlox Inc. | Date: 2013-09-05

A method for joining records from database tables is proposed. Join attributes are ordered into a sequence S_(0), and a scope C is initialized to empty. Tables including a join attribute A that is first in S_(0 )are identified. A new sequence S omits A from S_(0). Iteration through each identified table proceeds in join attribute A order. The iteration utilizes a tree index structure for each identified table where the index key includes all join attributes in the identified table in S_(0 )order. For each matched value v of the join attribute located during the iterating, a new scope C_(v )is created by appending A=v to the scope C. If S is empty, a tuple corresponding to the scope C_(v )is output. Otherwise, S_(0 )is set to S and for each scope C_(v), C is set to C_(v )and the steps beginning with the identifying step are recursively invoked.


Patent
LogicBlox Inc. | Date: 2015-10-21

A method for joining records from database tables is proposed. Join attributes are ordered into a sequence S_(0), and a scope C is initialized to empty. Tables including a join attribute A that is first in S_(0 )are identified. A new sequence S omits A from S_(0). Iteration through each identified table proceeds in join attribute A order. The iteration utilizes a tree index structure for each identified table where the index key includes all join attributes in the identified table in S_(0 )order. For each matched value v of the join attribute located during the iterating, a new scope C_(v )is created by appending A=v to the scope C. If S is empty, a tuple corresponding to the scope C_(v )is output. Otherwise, S_(0 )is set to S and for each scope C_(v), C is set to C_(v )and the steps beginning with the identifying step are recursively invoked.


Patent
LogicBlox Inc. | Date: 2014-06-06

Salient sampling for query size estimation includes identifying two or more columns in a database table that have corresponding columns in one or more other tables. One or more hash functions are applied to domains of each of the identified columns. A first hash function is applied to a domain of the first column and a second hash function to a domain of the second column. A subset of the rows in the database table is selected. The selecting includes selecting rows in the database table where results of the first hash function meet a first numeric threshold and selecting rows in the database table where results of the second hash function meet a second numeric threshold. A sample database table corresponding to the database table is created. The sample database table includes the selected subset of the rows in the database table.


Patent
LogicBlox Inc. | Date: 2015-03-19

An aspect includes concurrently executing two or more transactions over a database. A plurality of transactions is executed in parallel while recording each transactions sensitivities and output deltas. A sensitivity of a transaction identifies an aspect of a database state whose modification has a potential of altering an output of the transaction, and an output delta of the transaction indicates a change to the database state that is a result of the transaction being executed. The output deltas are fed from a first transaction through a filter for a second transaction. The filter is based on the second transactions sensitivities. The filtered deltas are processed in the second transaction to incrementally compute revised deltas and sensitivities for the second transaction. For each transaction that successfully commits, the transactions deltas are applied to update the database.

Loading LogicBlox Inc. collaborators
Loading LogicBlox Inc. collaborators