kdb Insights Microservices - Release Notes
This page details the release notes for the latest series of kdb Insights Microservices releases. Key themes include improved access controls, usability and faster ingestion of real-time data into the database. To find the release notes for an older release, refer to the previous releases page.
1.9.0
Release Date
2024-03-26
New Features
-
SQL Enhancements
SQL in kdb Insights now includes support for ORDER BY and LIMIT clauses, in addition to other functions. Changes to how SQL statements are parsed also significantly improves SQL query performance in this release. Query performance, on average, is up to 3x faster than before. Refer to SQL 2 for more information on the new SQL implementation and its current Known Limitations.
-
Snapshots & Majority Archival for Reliable Transport
Reliable Transport now supports taking snapshots allowing for majority archival of logs files. Previously, all nodes needed to be healthy before RT logs could be archived.
-
Configurable Connections for Reliable Transport
Reliable Transport now supports subscribers and publishers setting customized parameters when they register with their respective sequencer cluster. This gives you greater configurability in how you deploy and orchestrate components of RT. See rt.qpk for more details.
Improvements
-
Batch Delete
Batch delete now enables you to delete from all tiers of your HDB. Previously, this was only possible for the tier with the most recent HDB data. See Database Delete for details on how to perform a delete.
-
Python Cloud Readers
Python cloud readers now support polling for new matches to a glob pattern with the
watch
parameter. See Readers for details. -
Upgrade to Insights Core 4.1.1
kdb Insights images have been upgraded to run Insights Core 4.1.1, which runs kdb+ 4.1 2024.03.12.
-
Upgrade to RockyLinux 9
kdb Insights images have been upgraded to run on Rocky Linux version 9 as their base operating system. This addresses security vulnerabilities present in version 8.
Fixes
Expand to see the full detail of resolved issues here
Database
-
If EOD failed while in the middle of an HDB transaction, the aborted transaction was not properly cleaned up after the failure and could result in data inconsistency after reconnection.
-
The EOD process was not performing a garbage collection after a batch ingest.
-
Data was unqueryable after a batch ingest if no additional streaming data was loaded after the initial batch ingest.
Reliable Transport
- In deployments with a one-node RT configuration, RT has been updated to roll its log file after a restart. This prevents data flow from being paused.The RT log file rolls from log.x.y to log.x.y+1.
Stream Processor
-
Previously, when using Python, 'sp.decode.csv' did not support reading columns as strings. This has been updated to enhance flexibility when reading table columns. It now accepts an empty string "" in lieu of a schema to read in all table columns as strings.
-
Sidecar containers no longer log at a
TRACE
level by default and now adhere to the log level that is set by the user. -
The SP controller now adheres to the log level set by the user.
-
The CSV decoder did not support decoding csvs which had line-returns (i.e. \n’s) embedded in strings. This functionality can now be turned on/off with a new optional parameter called
newlines
. See .qsp.decode.csv for details. -
Previously, when running a large import from a static source (file, Azure, AWS, GCP), there was no indication of progress in the logs. Now, periodic info is included in the SP logs while processing, indicating on-going progress of the import.
-
The SP’s status APIs now return
TEARING_DOWN
rather thanNOTEXIST
when a pipeline has PVCs that are still in a terminating state.
Security
- Various CVEs have been remediated as part of this release.
Upgrade notes
-
The default image repository used for new 1.9 installations will be the KX Downloads Portal. The credentials to access this are stored in a docker config json secret named
kxi-image-pull-secret
. If you are upgrading from an earlier version that used the KX Nexus image repository with an exiting secretkxi-nexus-pull-secret
, this existing repository and secret will be used. -
After executing an upgrade, if an RT pod does not appear as ‘Ready’, the pod should be deleted/killed so that it is restarted.
-
During an upgrade, the RT pods attempt to delete a Kubernetes configmap. Since there were 3 RT pods, only one of the pods will be successful in deleting the config map. This means that the other pods will receive ERRORs back indicating that their delete attempt failed. These
Failed to delete snapshot: tmp
errors are benign and will be set to WARN messages in future. -
Query Labels Style
KXI_ALLOW_OLD_LABEL_STYLE
now defaults to "false". It must be explicitly set to "true" in the RC to allow the "old label style". For example, in a system with labelsregion
, andclass
:-
Labels in queries (such as
.kxi.getData
) must be defined in thelabels
parameter.- old style:
--data '{"table": "trade", "region": "usa", "class": "equities"}'
- new style (new default):
--data {"table": "trade", "labels": {"region": "usa", "class": "equities"} }'
- old style:
-
Labels in SQL queries must be prefixed with
label_
.- old style:
SELECT * FROM trade WHERE region='usa', class='equities'
- new style (new default):
SELECT * FROM trade WHERE label_region='usa', label_class='equities'
- old style:
-
Known Issues
Expand to see the list of known issues here
Pipelines
- When deploying a pipeline that writes to a table that does not exist, no error will be thrown.
Deprecation
-
prtnEndCB
andreloadCB
callback functions are being deprecated in 1.9.0 and may be removed from future releases. -
RT
maxLogSize
is no longer used in configuration and will be ignored from older configurations. RT will now utilize all disk available to it.
Artifacts
KX Nexus
The KX Nexus repository will be sunsetted in the future. Nexus links on this page are provided as a temporary alternative to the KX Downloads Portal for existing users. The KX Downloads Portal is the preferred repository for all use cases and KX Nexus links will be removed once the KX Nexus repository is decommissioned.
Stream Processor
microservice | Nexus Docker | Downloads Portal Docker |
---|---|---|
Controller | registry.dl.kx.com/kxi-sp-controller:1.9.0 | portal.dl.kx.com/kxi-sp-controller:1.9.0 |
Worker | registry.dl.kx.com/kxi-sp-worker:1.9.0 | portal.dl.kx.com/kxi-sp-worker:1.9.0 |
Coordinator | registry.dl.kx.com/kxi-sp-coordinator:1.9.0 | portal.dl.kx.com/kxi-sp-coordinator:1.9.0 |
Worker-Python | registry.dl.kx.com/kxi-sp-python:1.9.0 | portal.dl.kx.com/kxi-sp-python:1.9.0 |
Worker-ML | registry.dl.kx.com/kxi-ml:1.9.0 | portal.dl.kx.com/kxi-ml:1.9.0 |
Database
microservice | Nexus Docker | Downloads Portal Docker |
---|---|---|
Data Access Process (DA) | registry.dl.kx.com/kxi-da:1.9.0 | portal.dl.kx.com/kxi-da:1.9.0 |
Single container | registry.dl.kx.com/kxi-da-single:1.9.0 | portal.dl.kx.com/kxi-da-single:1.9.0 |
Storage Manager | registry.dl.kx.com/kxi-sm-single:1.9.0 | portal.dl.kx.com/kxi-sm-single:1.9.0 |
Gateway | registry.dl.kx.com/kxi-sg-gw:1.9.0 | portal.dl.kx.com/kxi-sg-gw:1.9.0 |
Resource Coordinator | registry.dl.kx.com/kxi-sg-rc:1.9.0 | portal.dl.kx.com/kxi-sg-rc:1.9.0 |
Aggregator | registry.dl.kx.com/kxi-sg-agg:1.9.0 | portal.dl.kx.com/kxi-sg-agg:1.9.0 |
Reliable Transport
microservice | Nexus Docker | Downloads Portal Docker | Helm Chart |
---|---|---|---|
Reliable Transport | registry.dl.kx.com/kxi-rt:1.9.0 | portal.dl.kx.com/kxi-rt:1.9.0 | kxi-rt-1.9.0.tgz |
Miscellaneous
microservice | Nexus Docker | package |
---|---|---|
Metrics Sidecar | registry.dl.kx.com/kxi-sidecar:1.9.0 | |
OpenAPI SDK Generator | registry.dl.kx.com/kxi-openapi-codegen:0.8.0 | https://nexus.dl.kx.com/repository/kx-insights-packages/kxi-openapi-codegen/0.8.0/kxi-openapi-codegen-0.8.0-shaded.jar |