LogicBlox 4.0.3

Release Date: October 1st 2013

What's New

Database

Logging

Various logging options have been added to the lb command line. When executing a command, users may indicate the logs of interest using the following the following format:

	    --loglevel LOGLEVEL@CONTEXT[:LOGLEVEL@CONTEXT...] 
	  

  • LOGLEVEL indicates the level of logging. Valid options are, from the least verbose to the most verbose: error, warning, info, debug
  • CONTEXT indicates the type of activity you would like to see logs for. Valid options are:
    • initial: activities during stage initial will be logged
    • final: activities during stage final will be logged
    • query: activities during stage query -- the stage after final, where queries after fixpoint are evaluated -- will be logged
    • clean: activities during the clean-up phase of a transaction will be logged
    • maintenance: activities related to the maintenance of IDB predicates will be logged
    • fixpoint: activities related to the fixpoint computation of recursive rules will be logged
    • Workspace NAME: activities against a specific workspace, indicated by NAME, will be logged

Services Framework

Configurable Workspace Scans

BloxWeb now supports the configuration of which workspaces to scan during start up, through the scan_workspaces option in bloxweb.config. Developers can specify a regular expression, indicating the workspaces to scan. This change can dramatically speed up the BloxWeb start-up process, especially for applications with a large amount of workspaces that do not host services, and thus do not need to be scanned (e.g. Blade based applications with a large amount of workbooks that do not host services).

Example 6. 

The following configuration in bloxweb.config indicates that BloxWeb should only scan workspaces whose names start with "delim-" or "protobuf", in addition to installing static workspaces:

		  scan_workspaces = delim-.*|protobuf.*
		  

Handler Configuration

To simplify development, our releases now come by default configured with commonly used extensions, such as the measure service.

Development Support

  • To help developers debug memory related issues, we now create a memory dump every time there is an OutOfMemory error. It can be found by default in $LB_DEPLOYMENT/logs/current.
  • Constraints have been added to avoid errors when services are declared in the same prefix and group.

Delimited File Services

The delimited file services now support the HTTP HEAD method, in addition to GET, PUT, and POST. HEAD is often used by reporting and integration tools (e.g. Kettle, MS Excel) to check whether a particular service exists.

Enhancements have also been made to our error reporting. The string* format for delimited files cannot be used in optional columns. However, the constraint violation presented to the developer was not easy to interpret. The example below shows the old vs. the new error.

Example 7. 

Old:

Constraint with values that caused the violation:
!(bloxweb:delim:schema:column_optional(8), 
   bloxweb:delim:schema:format_empty_string[] = 6, 
   bloxweb:delim:schema:column_format[8] = 6).

New:

Constraint with values that caused the violation:
!(bloxweb:config:validation:configuration_error(
"File '/delim-format/emptystring-optional-emptystring', column 'STRING2':
        Optional column cannot use the string* format.")).

Developer Tools

lb-config now supports the execution of individual test cases.

Example 8. 

Assuming that the test suite that needs to be run takes a command line argument for the test case that you would like to run, for example test_bar, you would execute the following:

		make check-foo testcase=test_bar
	      

Corrected Issues

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

Database

  • Issues proper error message when an inactive block is executed at a stage different than one that it is compiled for.
  • Various stability improvements.

Services Framework

  • The error message reported when the same URL is used for multiple queue specifications has been improved.
  • Resolved an issue in BloxWeb that leaked the results of monitoring returned by ConnectBlox to handlers. This caused the measure service to interpret monitoring results as query results.
  • To facilitate development, localhost is now by default allowed to do cross-origin requests.
  • The buffer that BloxWeb uses when serializing an HTTP message to post into a queue is increased to be comparable to the buffers used in HttpClient, as longer URLs were prevented from being serialized.
  • Resolved an issue with the behavior of proxies when there are errors and made sure that exceptions and timeouts are logged correctly.

Installation and Upgrade information

Installing LogicBlox 4.0.3 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.0.3/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 6. 

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