LogicBlox 4.13.0

Release Date: June 3, 2019

What's New

LogicBlox 4.13.0 introduces the following enhancements:

  • Modeler IDE
    • Starting in LogicBlox version 4.13, the Modeler IDE can now fully build and deploy the applications you use it to configure. While this is still an alpha release of the IDE, we encourage users to try it out and give us feedback. The Modeler IDE enables you to do the following:

      • Configure the entire measure model including Dimensions, Levels, Measures, etc.
      • Configure Measure Components such as Versions, UOMs, etc.
      • Write CubiQL rules and inverses.
      • Build the application locally and on a Hydra build farm.
      • Update the locally running application without rebuilding (as long as no predicate definitions change).
      • Deploy the application using NixOps dashboard.

      Example 1. 

      Use the Modeler IDE to configure, build, and deploy your applications.

      The following screenshot shows the measures configured within an application. Add more measures using the + New option or configure the properties of an existing measure by simply clicking on it.

      The Modeler IDE is a desktop application for Linux and macOS which can be found in the ide directory of the LogicBlox installation package.

  • Measure service
    • Significant performance improvements for complex queries and edits.

    • Improvements to the aggregation rewinding optimization.

      • No longer rewind "all" aggregations except on the default hierarchy

      • No longer rewind across hierarchies.

      • Now allow for rewinding on some dimensions even if other dimensions in the aggregation have mismatches.

    • Improved optimization logging to report when rewrites are taking too long or taking too many iterations to converge.

    • We no longer generate and distribute Python bindings for the measure service protocol.

    • Upgraded from Scala 2.12.1 to Scala 2.12.8.

Corrected Issues

The issues listed below have been corrected since the 4.12.0 release:

  • Modeler
    • Fixed an issue where Modeler was unable to process certain edits on percent formatted measures.

    • Copy/paste for EU locale number formats ("." thousands separator, "," decimal separator) now works as expected for situations wherein the value copied does not have significant digits (integer) and does have significant digits.

    • Cells for measures with composite spreads are now hashed at the ALL level for first/last. Since you can't spread down an alternate hierarchy for ALL levels, the dimension for which first/last is specified as the spread method will be hashed at ALL, typically Calendar:ALL. This is also true if the Calendar dimension is not on the view at all which is an implicit ALL.

  • Tools, Database, and Services
    • Fixed an issue with incremental maintenance for rules qualified for prefix join with functional lookup with disjunction in the body.

    • Fixed a bug when computing a set difference of two same Handle<HashTree> objects. This caused an issue when computing what predicates change after installing the index.

    • The implementation of negation handling is revised to improve performance of a rule with negation in various ways.

      • Avoid creating big expensive index for a negated predicate.

      • Many rules that were not qualified for prefix-join evaluation due to inconsistent key order of a negated predicate can now use prefix-join.

      • Better performance for IDB rules using negation due to faster internal negation lookup implementation and optimal sensitivity indices.

    • Fixed a performance bug that caused long running maintenance of linear recursion rules involving default-valued predicates.

    • Fixed a potential bug in linear recursion when a predicate is calculated through recursion indirectly.

  • Measure service
    • Fixed integer spreading with specified hierarchies.

Known Issues

The issues listed below are known to exist in the 4.13.0 release.

  • Tools, Database, and Services
    • This release contains changes to some lb-workflow tasks related to workbook creation. These fixes have not been applied yet to lb.wb.CreateWorkbook, which means errors related to recent changes in the LB runtime that imposes restrictions on string lengths can still occur. Please note that this known issue does apply to lb.wb.util.CreateWorkbook.

Installation Information

Install LogicBlox 4.13 by following the steps outlined below:

  1. Download the LogicBlox installation package for Linux or macOS from the LogicBlox developer website.
  2. Extract the tarball into a directory, which we refer to as <LOGICBLOX_HOME>.
  3. Run the following commands:
    source <LOGICBLOX_HOME>/etc/profile.d/logicblox.sh
    source <LOGICBLOX_HOME>/etc/bash_completion.d/logicblox.sh
    NOTE: these scripts automatically set all the necessary environment variables (please be aware that this script only works if you use bash as your shell). You might want to add these commands to your .bashrc.

Upgrade Information

  • Modeler
    • The library containing the Modeler migration tool is included in the distribution under <LOGICBLOX_HOME>/lib/npm/modeler-migrations-<VERSION>.tgz and contains a command line tool for doing various transformations/migrations of modeler configurations.

      To use the npm module, you first need to install it by running npm install <LOGICBLOX_HOME>/lib/npm/modeler-migrations-<VERSION>.tgz. You will then be able to use the command line tool. The module contains a README.md file that lists all available transformations as well as detailed instructions for use.

      To automatically upgrade a Modeler application from one version to another, run the upgrade script to upgrade between versions:

      ./node_modules/.bin/migrate-modeler --fromVersion <prevVer> --toVersion <toVer> /path/to/my/modelerapp

      where the version numbers refer to LogicBlox releases (e.g. 4.13.0).

      NOTE: If you installed the npm module globally, you won't need the ./node_modules/.bin prefix on the command.

Release Information

  • Server requirements
    • Operating System: 64-bit Linux; Apple macOS 10.10+ is supported for local development
    • Java Runtime Environment 8, update 101 or higher
    • Python 2.7 or higher
  • Client requirements
    • Applications using LogicBlox Modeler: Modeler supports major browsers not older than 1 year. Google Chrome provides the best performance.
    • Requirements for applications using non-LogicBlox Modeler components may vary per application.