The two key elements of LogicBlox technology are its query language (LogiQL) and its high performance smart database engine. LogiQL empowers users to express sophisticated high-fidelity models in a unified and declarative way, and the smart database optimizes and evaluates the model to find the right answers fast.
LogiQL combines the best ideas from database query languages and (functional) programming languages. LogiQL is designed to be expressive and practical, with only a few simple language constructs.
We believe that a transition towards declarative modeling is inevitable. Declarative modeling in LogiQL allows domain experts and business people who aren’t (and don’t want to be) professional programmers to effectively automate their work and decision-making. LogiQL also helps sophisticated programmers be more productive. LogiQL models are shorter and easier to write, test, and verify.
LogiQL is used to build applications that combine transactional, analytical, graph, probabilistic, and mathematical programming. LogiQL makes possible new classes of hybrid applications that are hard or impossible to build on a traditional tech stack that requires a hairball of multiple programming languages and databases.
LogiQL abstracts away the complexities that would otherwise hinder programmers from taking advantage of these capabilities. Because LogiQL is purely declarative, it lends itself to many different implementation strategies. LogiQL queries afford the database many degrees of freedom in how data is stored, how a query may be evaluated or results cached, and how concurrent transactions may be evaluated to maximize throughput. LogiQL abstracts away much of the complexity of multi-core and cloud programming.
The LogicBlox database is designed to handle a wide variety of queries and concurrent data access patterns needed for today’s smart applications. Rather than gluing together special-purpose databases, we went back to the drawing-board, re-examined all assumptions, and developed a smart database that incorporates fundamental advances in concurrent query evaluation and optimization and unifies basic analytics with advanced predictive and prescriptive methods.
Query Optimization - The LogicBlox query optimizer efficiently explores the space of possible strategies using its patent-pending method, and is mathematically proven to find an optimal strategy with respect to the approximated cost, within a small bound.
Query Evaluation - Traditional pair-wise join evaluations can only take advantage of the selectivity of relations two at a time. The LogicBlox query evaluation algorithm utilizes the selectivity of all relations involved in a query to obtain results while doing much less work. This patent-pending method is mathematically proven to be worst-case optimal.
Incremental View Maintenance - Materialized views are crucial to the performance of complex analytical queries; however, the cost associated with their maintenance in case of data updates have discouraged their adoption. LogicBlox implements a view maintenance algorithm that efficiently maintains views with cost proportional to the difference in computing the views over the old and the changed data sets.
Concurrent Transaction Management - LogicBlox supports fully serializable, concurrent read and write transactions. Our patent-pending concurrency management technique spends CPU cycles doing useful work -- query evaluation -- rather than managing contention of locks. We guarantee that a transaction will never be aborted due to contention.
LogicBlox supports a wide range of in-database statistical methods, from regression, to classification, to clustering, to dimensionality reduction. These implementations offer orders of magnitude speed-ups over traditional implementations of these methods.
LogicBlox doesn’t just let you query for data you know how to find; it lets you specify what you are looking for using LogiQL constraints, and translates the constraints into a mathematical optimization problem. We use smart solvers to find the answer you are looking for, guaranteed to be optimal.
For information on LogicBlox User Days, please email userdays@logicblox.com