LogicBlox 4.1.5

Release Date: December 1st 2014

What's New


  • The performance of exports of protobuf messages has significantly improved. This feature is used by lb-web protobuf/json services. The impact is particularly noticeable on large messages, where some exports that took minutes before can now take just a few seconds.
  • The performance of adding blocks to large existing projects has improved due to the fact that recursion errors checks are now performed incrementally.
  • Certain rules involving projections (where variables occurring in key-position in body atoms do not occur in head atoms) are now fully parallelized.

Measure Service

  • Added support for key requests at levels higher than that found in the report intersection.
  • The Measure Service now uses a less conservative test for lifting dices outside of aggregations.
  • The detection of when to materialize disjunctive views inside of aggregations has been improved.
  • The global measure handler for model and update requests has improved.
  • The Measure Service now defines primitive dimensions in the service itself if they are not defined in the model.
  • The Measure Service now optimizes away total, min and max aggregations over scalar expressions.
  • It is now possible to configure metrics and expression bindings as disjunctive views within the configuration logic library.

Corrected Issues

The issues listed below have been corrected since the 4.1.4 release.


  • The string:decimal:convert built-in now accepts whitespace at the end of the decimal. This change restores the behavior from LB3, and since string:decimal:convert is also used for parsing decimal values in TDX, it also addresses an issue where decimal values in CSV files did not allow whitespaces.
  • It is now possible in certain cases to use negation with auto-numbered refmodes which had been erroneously disallowed in previous releases.
  • Recursion through IDB entity construction is now disallowed by default, since it may lead to non-terminating logic.


    The pragma


    can be used to override this restriction.

  • Min/max aggregations over entity types are no longer permitted. Ordering on internal entity values is non-deterministic, so the results of such aggregations were unpredictable.


    As a general rule, users should not be able to observe or use the internal entity values in any way. Aggregations over entity types should use some related value, typically the refmode.

Developer Tools

  • lb web-client and lb web-server now support the charset parameter in content-type headers. Previously they only accepted media-type (e.g. "application/json"), and "application/json;charset=ISO-8859-1" would therefore fail. The charset parameter is properly respected, so the data will be parsed with the configured charset.

Services Framework

  • Resolved an issue that could cause an exception when a service was installed with the same prefix as an already existing service.

Measure Service

  • Resolved an issue with how decimal constants are normalized within expressions.
  • Resolved an issue with the handling of dialogue metrics in requests with multiple reports.

Installation and Upgrade information

Installation Instructions

Installing LogicBlox 4.1.5 is as simple as 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.1.5/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

Table 5. 

Server requirements
Operating System: 64 bit Linux
Java Runtime Environment 1.7, update 11 or higher
Python 2.7 or higher