Changes in 4.4.0
Create SAML users directly in Platform
New ability to create a user of authentication type SAML. Provides granular control of users authentication workflow.
A new entity type, service class, is essentially a scalable version of existing Control instances. Whereas an instance runs a single process on a single server, a service class can run many processes across many servers. The number of processes is not pre-determined and they can be created and destroyed on-demand.
In order to support reports running on services, the report generator now executes reports via the Query Router. This can be changed using the
qrEnabled parameter of the report instance definitions.
Previous versions sometimes encountered issues with reconnect functionality in messaging causing deadlocks. This has been resolved in this release.
Dynamic routing of requests has been enhanced to support a preference order of targets.
Sync requests can now be supported for clients wanting to use the Query Router framework. A new process template
DS_QR_GW has been created to act as the entry point for the sync client and it will use deferred queries to execute the request.
Automated state recovery
Control persists its state to disk in the
localRepo directories. Corruptions can occur in this data due to disk space, server failures or other issues. Automated recovery can be enabled by setting the below environment variable in
Support has been added for more configurable host resolution when registering with Control and the Messaging Server. This assists in environments where the default hostname for a server is not always resolvable across the entire system. Previously the registeration host used in both cases was derived by the system and provided no options to customize.
Cleanup deleted entities on export
The Control UI has a new option when exporting that will clean up any deleted entities from the package directory.
For newer releases of kdb+ 3.5 and 3.6 (
.z.k > 2019.01.31), the
qcon protocol has been given its own input handler,
.z.pq. This new handler is defined in Platform and applies permissions to requests using that protocol.
Older releases still use
Start instance script
startProcessInstance.[sh|bat] scripts have been enhanced to allow additional parameters to be passed to the process. These parameters are appended to the process command line when running interactively
./startProcessInstance.sh -d -i ds_ms_a -a "-foo bar"
Performance has been improved in a couple of areas. The follow figures were obtained by creating an environment of around six million entities; one hundred each of instances, tasks, connections, connection groups, schemas, schema groups, users, user groups, config params, config param groups. Each group contained one hundred entities.
The performance of the API to build the workspace tree has been greatly improved. Using the workspace described above, the call is 95% faster.
Config profiles have been further deprecated under the covers
Previously every change to a child of a config profile caused a version of the config profile to be saved, i.e. changing a schema or config param, would re-save the full config profile to versioning. This was expensive so has been deprecated. The performance improvements for different operations can be seen below in percentage terms.
Config profiles have also been excluded from Control checkpoints. The checkpoint is hence ~50% faster.
Permissions on tasks have been deprecated. In order to operate on tasks as a non-admin user, the user must have permission to the parent instance.
Users will only be able to view and operate on running tasks if the user has permissions for the parent. This includes
- Process library and status viewers
- Shutdown operations; shutdown, kill, and interrupt
For running services, permissions are inherited from the parent service class.
Deleting multiple entities
Control UI now supports deleting multiple entities of the same type and optimizing the deletes via one call to Control vs several calls to improve performance.