LogicBlox 4.26


LogicBlox 4.26.3

Release Date: October 5, 2020

What's New

LogicBlox 4.26.3 introduces the following enhancements:

  • Tools, Database, and Services
    • A new lang:nonProjective pragma has been introduced to LogiQL. This can be used to annotate a derived-only predicate to tell the runtime that the rule defining the predicate is not a real projection, allowing the runtime to optimize evaluation of aggregation rules that use the predicate. A rule may appear to be a projection based on its definition, but constraints in the application data may mean that the rule really acts as if it is not a projection. Knowing this allows the runtime to optimize evaluation of such rules.

      This pragma is a short term feature to work around some immediate performance problems with some applications and should only be used under advice of the LogicBlox runtime team. Future releases will contain a more general and long term fix for these kinds of performance problems.

Corrected Issues

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

  • Tools, Database, and Services
    • Fixed an internal error with no funnel writers for sensitivity indices.

Known Issues

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

LogicBlox 4.26.2

Release Date: September 10, 2020

Corrected Issues

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

  • Modeler
    • Added CORS rule for the asynchronous measure service. This rule solves an issue where users were not able to open workbooks in the Modeler application.

Known Issues

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

LogicBlox 4.26.1

Release Date: August 7, 2020

What's New

LogicBlox 4.26.1 introduces no new features or enhancements.

Corrected Issues

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

  • Tools, Database, and Services
    • Fixed a pointer reference counting issue in lb-server that could cause the process to crash in some circumstances.

    • Fixed an issue where the measure service notifications thread could release a mutex on its internal state too early.

Known Issues

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

LogicBlox 4.26.0

Release Date: July 30, 2020

What's New

LogicBlox 4.26.0 introduces the following enhancements:

  • Modeler
    • Chart Mode functionality in Modeler's sheet views has been improved. Charts are now rendered using the latest version of the Vega-Lite library. We've also introduced the new "Chart Configuration" side panel which allows you to configure elements of the chart such as its title and subtitle.

      Example 1. 

      The following sheet view shows the new side panel that can be used to set the title and subtitle of the chart. This panel can be opened with the highlighted chart icon in the sheet toolbar.

    • The right-click context menu of measure fields placed on the axis configuration panels now contains sorting options. Additionally, the sorting options in the right-click context menu of level fields have been updated to be more consistent.

    • This release introduces the new Modeler Perf Util for automatic performance testing of Modeler applications. This command-line tool automatically detects workbooks and runs performance tests on every workbook. If no workbooks are found, it attempts to run the tests on master.

      The library containing Modeler Perf Util is included in the distribution under <LOGICBLOX_HOME>/lib/npm/modeler-perf-util-<VERSION>.tgz. To use this npm module, you first need to install it by running npm install --no-save <LOGICBLOX_HOME>/lib/npm/modeler-perf-util-<VERSION>.tgz. The library will be installed into the node_modules directory created in your current directory. The module contains a README.md file that contains detailed instructions for use.

  • Modeler IDE
    • The Modeler IDE now supports the configuration of canvases and navigations for your Modeler application.

      • The Navigations view of the Modeler IDE allows you to manage the navigation trees for your Modeler application. Navigations contain links to the preconfigured views within the Modeler application. When the Modeler IDE project uses workbooks, the navigation can be configured differently per workbook template.

        Example 2. 

        The following example shows how a navigation of an example application is configured in the Modeler IDE.

      • The Canvases view of the Modeler IDE allows you to manage the canvas views for your Modeler application. Canvas views are used to layout sheet views and action panels in your Modeler application.

        Example 3. 

        The following example shows how a canvas view of an example application is configured in the Modeler IDE. This canvas contains two sheet views.

        It's possible to configure one or more action panels that should be included in this canvas. The Modeler IDE shows a sidebar when configuring an action panel.

    • Actions now have labels that are used by the Modeler application as the label on header actions and action panels. Labels are required, Modeler IDE's automatic migration will use the configured name as a label for actions that don't have labels yet.

    • The "Autosave Paused", "Saving", and "Saved" messages now appear on every view that uses Modeler IDE's autosave functionality.

  • Tools, Database, and Services
    • Introduced a new P2P rule for hashing data. The syntax looks like foo[y,x,z]=v <- hash<<sip24[x,y]=v>> bar(x,w,_), baz[w,z]=y. The only supported hash algorithm is SipHash-2-4. This P2P does not currently support incremental maintenance, so it is recommended to only use it in transaction lifetime logic.

  • Measure service
    • Significant improvements to measure service memory usage.

    • Switched the columns returned by the measure service in Report messages to use "portable" row identifiers. Previously the identifier columns would generally be unique per request. This made it impossible to correlate responses across partitions or even multiple requests to the same instance. The row identifiers are now computed deterministically so the identifier will always be the same for data at a particular position. The new deterministic computation is actually faster in nearly all cases than the old non-deterministic one.

      Because this new identifier computation relies on hashing, it is possible, though unlikely, that a collision could arise and the same identifier will be computed for two distinct positions. It is possible to check that no collisions exist for the positions currently in a given intersection using the new REPL command :collision-check <inter>.

      If the performance and portability improvements are not desired, it is possible to switch back to the old scheme by setting portable_row_ids = false in lb-measure-service.config.

    • The measure service will now report if it is not possible to bind a CubiQL metric to a specific LogiQL predicate because its definition depends on transaction lifetime data.

    • Performance improvement in edit validation (ported forward from 4.18).

Corrected Issues

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

  • Modeler
    • Fixed a rendering issue where tooltips displayed at the top row of the grid were covered by other UI elements such as the sheet header, toolbar, search bar, and/or the axis configuration panels (Slices, Rows, Columns, and Measures).

    • Fixed an issue where Modeler did not properly refresh aggregate totals on the pivot grid after changing level mappings. For instance, when a level member of Sku was moved to another Subclass, the aggregated total of the Subclass levels was not updated on the grid unless the user performed a browser refresh.

  • Modeler IDE
    • Entities are no longer accumulated for services used for importing/exporting measures in the Modeler IDE.

    • Resolved an issue with scrolling in the searchable list which shows the history of all measure variants which have been opened in the past. This scroll issue occured when using the search bar to filter the list of variants.

    • Fixed an error that occurred after clicking the "+ Add Source Level" option in the Slides view when managing an existing slide.

    • The rule in the CubiQL editor was not updated properly when switching between measure variants using the searchable list of previously opened variants. This has been fixed.

    • Renamed the "Dimensions Config" setting found in the Sheets and Workbook Templates views to "Displayable Dimensions" to be consistent with Displayable Measures.

  • Tools, Database, and Services
    • Limited maximum chunk size that can be used for multi-part uploads to Google Cloud Store when using the LB cloud-store utility or the lb-workflow tdx.Export task. This was done to prevent checksum validation errors when uploading large (hundreds of gigabytes) encrypted files to GCS.

    • Fixed the lang:fullEval pragma so that it will now work correctly with a predicate that has an index that is used when maintaining the predicate.

    • Fixed the inventory function to allow it to recognize predicate names containing colons.

    • Fixed a bug in the addIndex command used by some applications to generate and cache predicate indexes. There were some scenarios involving restarting LogicBlox services where the cached indexes were lost.

Known Issues

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