LogicBlox 4.4.15

Release Date: May 18, 2018

What's New

LogicBlox 4.4.15 introduces the following enhancements:


    • Users can now easily lock one or more positions in a grid. This will automatically lock every cell at that position, which means the user does not have to lock each cell at the position individually. Watch the video here.

      To apply a position lock, right-click on a row or column header and choose the "Lock <position>" option.

      Position locks on the grid can be inspected and removed via the existing Locks menu in Modeler's menu pane.

      Locks can also be removed by right-clicking on a header and choosing the "Unlock <position>" or "Clear All Position Locks" option.

    • In Deferred Calc mode, the user can now quickly discard multiple edits by selecting a group of cells, right-clicking on the selection and choosing the "Discard Selected" option.

      The previous behavior of discarding all edits now appears in the right-click menu as "Discard All".

    • Modeler now limits the number of options that can be displayed at once for entity valued dropdowns. If the entity contains more than 10k members (or some other threshold set in Modeler's application configuration property modelerConfig.levelMembersQuantityThreshold), the user will be required to search for the desired level via autocomplete. Once the list of search results is less than the threshold, then the dropdown will show the results of the search.

    • The scrolling experience on grids that contain lots of levels and/or measures has become much smoother. Header labels are now always visible during scrolling, making it easier to find the position of interest.


    • Added a --diskcommit option to the commit command in dlbatch. This forces the command to wait until the transaction changes have been written to disk. The default behavior of the commit command is soft commit, which allows the command to finish immediately without waiting for changes to be written to disk.

    • A signal handler can be conditionally compiled into lb-server to generate tcmalloc heap dumps. Sending a USR1 signal to the lb-server process will toggle tcmalloc heap profiling on and off. A USR2 signal will dump a tcmalloc heap profile. By default, the profiles will be written to files prefixed with "lb_server." and ending with ".heap" in the lb-server working directory. Set the LB_TCMALLOC_PROFILE_PREFIX environment variable before starting lb-server to change the file location and prefix.

      To compile lb-server with this handler enabled, add the following to your local lb-database/Makefile.config file before building:

      TCMALLOC = 1

      Usage examples:

      # turn on heap profiling for a running lb-server process
      /bin/kill --signal USR1 $(pidof lb-server)
      # dump a tcmalloc heap profile to a lb_server.*.heap file in the lb-server
      # working directory
      /bin/kill --signal USR2 $(pidof lb-server)
      # turn off heap profiling for a running lb-server process
      /bin/kill --signal USR1 $(pidof lb-server)


    • To avoid some ill-defined behavior, the Primitive aggregations HISTOGRAM and SORT have been changed to be Complex aggregations in the AggExpr.Method message. One consequence of this is that they can no longer be used as part of composite aggregations.

    • The measure service will now better validate aggregations specified using intersections rather than groupings. This should catch some errors that were previously dropped silently.

    • A new CubiQL REPL command, :desugar, can be used to show just the desugaring of a CubiQL expression, whereas the previously available :optimize would also optimize the expression.

    • Added a :limit command to the CubiQL REPL, which will no longer default to displaying all results returned for a query.

Corrected Issues

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


    • Modeler now correctly renders action button panels placed at any position in canvases containing 5 or more rows.

    • The user will no longer get an error when dragging an All level to an axis containing two non-base levels of the same hierarchy.

    • Modeler now correctly renders dropdowns in the Data Import specification table.

    • Export to Excel will no longer omit values for sheets that have both measures as attributes on the axes and filters applied.

    • It's now easier to identify whether a checkbox in Modeler's grid passes a by-value filter.

    • Percent parent measures now work correctly across all dimensions.

    • Modeler now correctly renders the sort icon on headers at any scroll position.


    • Improved performance of inside-out query optimization for some boundary cases where the inside-out optimization could perform significantly worse than the unoptimized query.

    • Fixed problems with incremental evaluation in the machine learning P2P function that caused either incorrect results or assertion failures when executing.

    • Improved performance of min and max aggregation rules. In some cases, a 5x to 10x improvement was observed.

Upgrade Information


    • IE11 support has been dropped. Modeler supports major browsers not older than 1 year. Google Chrome provides the best performance.

    • Removed the obsolete .dev property of the ModelerTestUtil as planned. It was part of private API, and same functions are provided by the ModelerTestUtil itself prefixed with $.

    • The library containing the modeler migration tool is included in the distribution under 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 path/to/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-js based 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.

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


    • The previously deprecated fields target_level, target_dimension, and target_label have been removed from the Slide message

Installation Information

Installation Instructions

Install LogicBlox 4.4.15 by following the steps outlined below:

  1. Download the installation package.
  2. Extract the tarball in <YourPreferredInstallDirectory>
  3. Run the following command:
    source <YourPreferredInstallDirectory>/logicblox-4.4.15/etc/profile.d/logicblox.sh
    NOTE: this script will set all the necessary environment variables. You might want to add this command to your .bashrc.

Release Information

Server requirements
Operating System: 64 bit Linux; macOS 10.10+ is supported for local development.
Java Runtime Environment 8
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.