KDB-X Release Notes
This page details the latest features and improvements released to KDB-X.
KDB-X Public Preview
Release date - 2025.16.07Note
KDB-X Public Preview Community Edition is a test version and is NOT intended, NOR supported, for production usage. Features are subject to change.
New features and improvements
The following are the highlights of changes since our initial test release.
1. Community license support
Support has been added for the new community kc.lic license with embedded resource limits; cores, threads, memory, and connections.
2. .Q.lim resource limits
.Q.lim[]
returns resource limits, for example:
bash
q).Q.lim[]
cores | 24
threads| 4
mem | 17179869184
conns | 8
3. Limit improvements
We have added a number of limit changes to the KDB-X experience, including:
1. The core limit is now checked on startup versus cpu affinity.
2. The thread limit restricts the number of secondary threads a process can enable, for example:
bash
$ q -s 9
'max number of secondary threads 8
A non-zero thread limit also disables multi-threaded input (negative port) mode:
bash
$ q -p -4321
'-port disabled
3. The memory limit (in bytes) is triggered if operations cause the process heap to breach the limit and cause a 'stop
error:
q
q)b:til 100000000
q)do[20;a,:b]
'stop
Once the heap memory limit is breached, individual operations are limited to a stack of 64MB, or fail with a 'stop
error:
q
q)til 10000000
'stop
Additionally, if the heap memory limit is breached, variable assignment/modification is also blocked:
q
q)c:1
'noupdate: `. `c
An exception is made for delete operations, allowing you to reduce memory usage. For memory reduction to be reflected on the heap, it may be necessary to explicitly garbage collect:
q
q)delete a from`.;
q)c:1 / assignment re-enabled
q)til 10000000 / 64MiB stack limit removed
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30..
4. The conns
limit restricts the number of simultaneous IPC connections (inbound and outbound) a process can have.
q
q)hopen each 8#1234;
q)hopen 1234
'conn
Note
This limit also applies to one-shot IPC and HTTP connections, and connections registered on the main loop via sd1().
4. Versioning & startup
The version (major.minor.patch) and startup environment are available using .z.v
with the following environment defaults:
-
default
QCFG
set to$HOME/.kx/config
(or%USERPROFILE%\.kx\config
) -
default
QHOME
set dynamically one level up (..) from the executable path -
default
QLIC
is "" (empty) indicatingQHOME
will be checked for license -
default
QINIT
is "q.q
"
Come back soon and try out more features and improvements as we add them to KDB-X!