KDB-X Release Notes

This page details the latest features and improvements released to KDB-X.

KDB-X Public Preview

Release date - 2025.16.07

Note

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

  2. .Q.lim resource limits

  3. Limit improvements

  4. Versioning & startup

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

Copy
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

Copy
$ q -s 9 
'max number of secondary threads 8

A non-zero thread limit also disables multi-threaded input (negative port) mode:

bash

Copy
$ 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

Copy
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

Copy
q)til 10000000
'stop                    

Additionally, if the heap memory limit is breached, variable assignment/modification is also blocked:

q

Copy
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

Copy
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

Copy
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.vwith 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) indicating QHOME 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!