LogicBlox 4.32


Table of Contents

LogicBlox 4.32.0

LogicBlox 4.32.0

Release Date: March 11, 2021

What's New

LogicBlox 4.32.0 introduces the following enhancements:

  • Modeler
    • We've added the ability for users to quickly clear all filters configured in a sheet.

      Example 1. 

      This functionality is available by selecting the "Clear Filters" option in the Filters dropdown menu in the toolbar. Additionally, you can select the "Clear All" option located in the upper right corner of the Filters Panel.

    • We've improved the performance of sheet views that contain multiple charts by introduced lazy loading for charts in the Modeler. The Modeler will load the data for charts as soon as they become visible to the user when scrolling up and down across the sheet view.

    • We've introduced the following usability improvements for charts:

      • We added more contrast to the color palette for charts in the Modeler.
      • We've added the option to display value labels on charts. These labels can be enabled or disabled with the "Labels" option in the Chart Configuration Panel.
      • It's now possible to hide or show the tooltips for data points in charts. Tooltips can be enabled or disabled with the "Tooltips" option in the Chart Configuration Panel.
      • It's now possible to hide or show the legend of charts. Legends can be enabled or disabled with the "Legend" option in the Chart Configuration Panel.
      • The Chart Configuration panel can be docked to maximize screen real estate. In docked mode, this panel will only display the available chart preset options.

      The Chart Configuration panel can be docked to maximize screen real estate.

      Example 2. 

      The Chart Configuration panel contains additional options to show or hide labels, tooltips, and legends. In the following example, we've enabled value labels and tooltips, but disabled chart legends.

      Example 3. 

    • Modeler now displays the name of the current workbook in the top menu bar of the application. You can switch to another workbook by selecting the "Change Workbook" option.

    • To maximize the available screen real estate, the header and bar of Modeler's sheet views has been combined into one toolbar.

      Please note that the layout.showSheetToolbar property is no longer supported for sheet configuration JSONs. The modeler-migrations script will remove it. The layout.showSheetHeader is still valid and hides the entire toolbar when set to false. For more information, see the Upgrade Information section.

  • Modeler IDE
    • The "Sheets" view of the Modeler IDE now supports the configuration of charts.

      When the view mode of a sheet has been set to "Chart", the Modeler IDE will display settings specific for charts such as "Chart Type", "Sizing", "Title", "Subtitle", and toggles such as "Show labels", "Show Tooltips", and "Show Legend".

      Example 4. 

      The "Fields Configuration" tab of the "Sheets" view will display the axis configuration panel "Color" when configuring a sheet with its view mode set to "Chart". In this case, the dimensions browser on the left-hand side of the view will also contain the "Measures Values" field.

      Example 5. 

    • We have improved the usability of the measure selection functionality found in various views of the Modeler IDE such as "Displayable Measures" and "Templates" (used for configuring commit and refresh groups).

      Example 6. 

  • Tools, Database, and Services
    • The obsolete and unused IntegrityConstraint derivation type has been removed from the LogiQL language and protocol.

    • Added support for parallel sampling in SIP P2P rules, which are used for internal predicates introduced by the InsideOut rewrite or by the evaluation of recursive rules. This significantly improves the performance of such SIP rules when the corresponding predicates are sufficiently large.

    • Added --version and -v options to the lb-server executable. Using one of these options will print the same version information reported by the lb version command.

  • Measure service
    • The warmup optimization tool will now generate optimized output for requests with updates.

    • The REPL no longer uses "fancy" Unicode dashes in rendering result tables. The "fancy" dashes could cause formatting issues when copying and pasting output into contexts where monospace glyphs might be rendered with non-uniform widths.

    • Improved error reports when a request fails due to another concurrent request holding the measure service state for too long.

Corrected Issues

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

  • Modeler
    • Resolved an issue with the /info service in multi-node environment. The developer now only needs to add the new modeler_proto library and use the modeler_proto_info proto in the service_config to make things work correctly for the /info service.

      Please note that this change requires application developers to change modeler:actions to modeler_proto:actions in all action logic. Furthermore, actions using the modeler_actions proto (inactive blocks) must be changed to use the modeler_proto_actions proto in the service_config. The Modeler IDE will take care of this change automatically when opening an existing Modeler IDE project. For more information, see the Upgrade Information section.

    • Resolved an inconsistency between the filtering functionality in Grid Mode and Chart Mode.

    • Resolved an issue that could cause exceptions (TypeError) when reusing the same sheet across multiple canvases of the Modeler application.

  • Modeler IDE
    • Resolved an issue that prevented user permissions functionality from working properly. Protected cells were not being marked as read-only.

    • Resolved a rendering issue that caused the dimensions browser in the "Fields Configuration" tab on the "Sheets" view to be stretched out.

    • The navigation panel of the Modeler IDE now stays expanded when the user hovers over the expand/collapse button. Additionally, the expand/collapse button will no longer be hidden when the user chooses to keep the navigation expanded.

  • Tools, Database, and Services
    • Fixed a bug in the way LogiQL compiler server admin connections were handled. The bug caused the compiler server to shut down when the connection was closed. This also manifest as the compiler server shutting down when an invalid admin request was received.

    • Fixed an issue in the LogiQL compiler where an empty clause could cause a null-pointer exception.

    • Fixed a bug in the LogiQL compiler's derivation type inference that could cause an exception when refmodes or constructors were improperly declared.

    • Fixed the output of certain log statements printed at level perf_detail to mention the transaction within which they are generated.

    • Fixed a bug that could cause an internal error when looking up the index of a recursive predicate in the cache during maintenance of a rule dependent on the recursive predicate.

    • Fixed a bug that caused a non-maintainable constraint rule to be maintained during restoration of a workspace.

    • Fixed a bug that globally disabled constraint checking for all workspaces during restoration of a workspace.

    • Fixed a bug that would trigger a new rule maintenance cycle as a result of the rule maintainer wrongly notifying the execution engine about changes for one of its output predicates.

  • Measure service
    • Fixed a bug in a use of memoization that could cause two metrics identical up to their defining CubiQL to be conflated.

Known Issues

The issues listed below are known to exist in the 4.32.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.

  • Notice for macOS 10.15 Catalina users
    • LogicBlox builds are not signed with an Apple developer certificate. This may result in error messages stating that LogicBlox originates from an "unidentified developer". To ensure the LogicBlox services will run on your system, apply the following command on the distribution tarball you downloaded from this website:

      $ xattr -d com.apple.quarantine logicblox-osx-<VERSION>.tar.gz

      Additionally, LogicBlox services will not function correctly when using a signed/notarized Java Runtime Environment. For instance, AdoptOpenJDK version 11.0.6 is the latest version that works with LogicBlox without causing signing issues.

      For more information about running apps from an unidentified developer, see Apple's macOS User Guide.

Installation Information

Install LogicBlox 4.32.0 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
    • This release contains a bugfix related to the /info service for multi-node deployments. This change requires application developers to change modeler:actions to modeler_proto:actions in all action logic. Furthermore, actions using the modeler_actions proto (inactive blocks) must be changed to use the modeler_proto_actions proto in the service_config. The Modeler IDE will take care of this changes automatically when opening an existing Modeler IDE project.

    • 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 --no-save <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.32.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 11
    • Python 3.5 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.