In 2013 Q3, LogicBlox aims to
- mature the 4.x series into the preferred version for application developers, for its functional completeness, streamlined language features, and dominant performance over 3.x
- continue developing components and services that are critical for building scalable planning applications, as well as for migrating applications away from the Blade-based stack
- continue improving development productivity and ease of application deployment and management
Tabular Data Exchange is the core service for getting data in and out of the LogicBlox database. In Q3, the internals of Tabular Data Exchange Services will be redesigned to use the 4.0 runtime more effectively. The redesign is expected to improve data throughput, as well as enable features not included in the initial 4.0 release.
Both Tabular Data Exchange Services as well as Measure Service, the workhorse of planning applications, will go through extensive performance benchmarking. They will be exercised using the Retail Benchmark, a benchmark application developed by LogicBlox to emulate the schema size, data volume, and workloads typical of retail planning applications.
The 4.x runtime provides us opportunities to clean up a number of idiosyncrasies in the LogiQL language. Predicate properties such as scalable vs. not, or entity capacity, are no longer relevant and thus will be removed. Furthermore, numeric types will be greatly simplified to simply: int, float, and decimal.
Efforts to improve LogicBlox 4.0 performance will focus on data import through the web service container, enabling domain parallelism, and design and prototype of write concurrency. Through improvements to data import, applications can expect improved transaction throughput for ServiceBlox services; through domain parallelism, applications can expect improved evaluation speed of individual queries on multi-core machines. Through write concurrency, applications can expect improved transaction throughput for mixed read/write queries.
Performance of LogicBlox 4.0.x will continue to be verified through continuous and automated benchmarks. In Q3, we will be fully automating TPC-H and TPC-DS, industry standard benchmarks for decision support applications, and TPC-C, industry standard transaction processing benchmark. Furthermore, we will be developing benchmarks that exercise workloads typical to planning applications, which involve a mixture of transactional and analytical requests.
Components and Services for Planning Applications
Pivot tables are a common and powerful idiom for data visualization in many analytical applications. Programming a pivot table for the browser, even for the most experienced developers, can be a time consuming task. In Q3, LogicBlox will be delivering the first release of a HTML5, read-only pivot table component. This component will support easily configurable axes and filters, utilizes the Measure Service for data retrieval, and can be embedded in any HTML5 web page.
Aggregation Update and Spreading
The ability to update aggregated values of metrics is critical for planning applications. Q3 will see Measure Service support for updating an aggregated value of a metric, and the choice of some common methods for spreading the updated value back to the base level. The planned spreading methods are ratio, even, and by measure.
Foundational Support for Distributed Workbooks
One of the limitations of the existing workbook framework is its requirement that workbooks must reside on the same server as the master workspace. This limitation puts restrictions on the size of data on both the master and the workbooks, as well as the number of concurrent users possible for one application. In Q3, we will develop support for the import and export of workbook data over Tabular Data Exchange Services. This feature is the first step in allowing remote commit and refresh from and to workbooks.
Development and Deployment Productivity
Getting Started, Building, and Deploying
We will be offering two ways for developers to quickly install a LogicBlox database. A downloadable VM image will be available for those wishing to try out LogicBlox with minimal changes to their operating system (e.g. obtaining 64-bit Linux). Our recommended approach for those developing serious applications, however, is to use the Nix-based installation command.
We will be designing and developing the first version of a simplified application configuration and deployment API. Application developers can expect to no longer have to specify low level infrastructure details for their application (e.g. the queue type and name). Furthermore, the deployment APIs allow application development and support personnel to deploy and manage their applications more simply on the cloud, without knowing details of LogicBlox’s internal choice of deployment tooling or even infrastructure.
In Q3, we take our first step toward providing a visual debugging tool by providing a browser-based schema explorer. The explorer allows the visual exploration of the predicates defined in a schema, their properties, and their contents. An editor supports issuing queries to further refine the contents of predicates to display.
One version of this explorer will be available for debugging live applications, while a separate version will be available for debugging applications locally, during development. The former has more strict authentication requirements for obvious reasons.
The LogicBlox command line tools will also be going through an overhaul to create consistent, and much simplified, names.
There are also several exploratory and prototyping projects planned in Q3. Users are unlikely to see the result of these exploratory projects until subsequent quarters. Nonetheless, they provide a sense of what we consider to be important problems, and will likely productionize in the near future:
- Concise, variable-free syntax for specifying operations over relations, such as joins, sorting, and aggregations. This work is foundational to supporting a more Excel formula-like syntax, as well as enabling better reuse of logic, and improving the suboptimal aggregation syntax we have today.
- Clean up of semantics of delta logic. Delta logic continues to be one of the most confusing aspects of our language; the move to 4.x series offer an unique opportunity to clean this up for future applications.
- Reactive programming and domain modeling support, which will allow binding UI elements to data in a LogicBlox workspace in a much more declarative way.
- Long-running services support in ServiceBlox, which will provide more native support for invoking long-running services asynchronously, but receive notification when they are finished
- Authorization model for services, where services can be authorized for specified users or groups or roles
The 2013 Q3 roadmap takes us one step closer to the smart database vision. Users will see LogicBlox 4.x demonstrating dominant performance over 3.x, while require less manual tuning; they will see more functionalities to support a more scalable and modern planning application; and finally, they will be provided with tools to help developers become productive, and stay productive, throughout the entire application life cycle.
For readers with access to the LogicBlox JIRA issue tracking system, please follow our progress here. We look forward to an exciting quarter!