0.7 (WIP) Better Performance for Read/Write Operations
Pre-releaseBatching Read and Write Requests for Better Performance - Work-in-Progress
Release 0.7 adds new low-level handling for single-node read and write requests. (Serving requests coming from periodically scanned or passive records.)
Instead of executing each request instantly with each request getting its separate OPC UA service call, the requests are queued (three prioritized queues controlled by the EPICS record PRIO
field) and a separate worker thread works off these queues and creates batches of requests that are combined into a single service call.
Throttling parameters can be set through the opcuaSetOption
interface. If both *-timeout-min
and *-timeout-max
are set, the wait time is interpolated depending on the actual number of nodes in the batched request.
Option | Setting |
---|---|
nodes-max |
maximum number of nodes for any service call |
read-nodes-max |
maximum number of nodes for read requests |
read-timeout-min |
minimum time to wait (in ms) after a read request |
read-timeout-max |
time to wait (in ms) after a read request for the maximum number of nodes |
write-nodes-max |
maximum number of nodes for write requests |
write-timeout-min |
minimum time to wait (in ms) after a write request |
write-timeout-max |
time to wait (in ms) after a write request for the maximum number of nodes |
Please also see the list of issues closed in v0.7.0 and the changes since v0.6.0.
As always: please report any findings in the issue tracker