Sidebar
0 votes
73 views
by ben-s-7515 (13.6k points)
I am looking at the release notes and there is a mention of 'table-split', and also on the channel properties dialog under the 'Advanced Settings' there is an option for 'Use individual tables for channel'. What is this option and how does it work?

1 Answer

0 votes

Per-Channel Message Tables

Overview                                                                                                                                  

QIE stores message processing data (source messages, processed messages, channel logs, message cache, filter results, and DICOM responses) in a set of database tables. Prior to version 25.4.1, every channel in the environment shared a common set of these tables. As environments grew — some customers reaching tens of millions of messages and hundreds of gigabytes of data — these shared tables became a performance bottleneck. Large shared indexes caused lock contention during routine queries (such as searching the completed queue), slowed down purge operations, and in some cases prevented users from logging in or navigating the application while a long-running query held locks.

To address this, starting with version 25.4.1 QIE now gives each channel its own dedicated set of message processing tables. This isolates each channel's data and indexes, dramatically reducing lock contention and improving throughput.

How It Works

When a new channel is created, QIE automatically creates a dedicated set of tables for that channel. The tables follow this naming convention:

z_{channelId}_{tableName}

For example, the message table for a channel with ID a80818699e490c30199e496d7a90001 is: z_8a80818699e490c30199e496d7a90001_message

The following tables are created per channel:

  • source: Original source message data
  • message: Processed message meta-data
  • message_blob: Message payload data
  • channel_log: Per-channel log entries
  • channel_log_blob: Log entry payload data
  • message_cache: Per-message cache data
  • source_filter_result: Saved-view filter results for source messages
  • message_filter_result: Saved-view filter results for processed messages
  • dicom_response: DICOM response data (DICOM channels)

All new channels created in QIE use per-channel tables automatically. No action is required.

Converting a Legacy Channel

Channels that existed before this feature was introduced continue to use the shared (legacy) tables until they are explicitly converted. Conversion is performed from the channel properties dialog under the Advanced Settings tab using the 'Use individual tables for channel' option.

Requirements for conversion:

  1. The channel must be stopped.
  2. All existing messages for the channel must be purged from the system. Conversion does not migrate existing messages — it switches the channel to a new, empty set of tables. Any messages still in the source, processing, outbound, completed, or error queues will become inaccessible if the channel is converted before they are purged.

To convert a channel:

  1. Stop the channel.
  2. Purge all messages for the channel.
  3. Open the channel properties dialog and select the Advanced Settings tab.
  4. Enable 'Use individual tables for channel'.
  5. Save the channel. QIE will create the new per-channel tables.
  6. Start the channel. New messages will be written to the dedicated tables.

Once a channel has been converted, it cannot be reverted to the shared legacy tables.

by ben-s-7515 (13.6k points)
...