General Performance Recommendations
Network Placement
-
Consumer Location: The system consuming HIS should be physically located on the same continent as the HIS platform.
-
Agent Location: The agent should also reside on the same continent as the HIS platform for optimal latency.
-
PACS Location: The PACS system should be as close as possible (preferably on the same local network) to the agent.
-
Network Quality: A reliable, high-bandwidth network connection between the HIS AWS platform, PACS, and agent is strongly recommended.
Platform Usage
-
Token Refresh: Only refresh HID authentication tokens after they have expired, not on every request.
-
Minimize Network Calls: Reduce unnecessary network requests. For example, utilize a local PACS license whenever possible rather than repeatedly querying a remote license server.
-
Extension Fields: Limit the number of extension fields. Unnecessary fields may increase database load and degrade PACS system performance.
-
Asynchronous Handling: Block and wait for platform responses only when there is a direct data dependency. Otherwise, dispatch subsequent requests immediately and handle results asynchronously.
-
Parallelization: Increase your application's parallelism by adjusting the
workerCountparameter; around five is generally an effective balance. Always ensure transactional integrity, such as verifying that an identity exists before performing related operations. Parallelism helps reduce the cumulative effect of network latency when processing large transaction volumes.
PACS Parallel Processing
Configuring workerCount for Parallel Processing
Starting with version 1.1, HID Integration Service and its respective agents support configurable execution parallelism via the workerCount parameter. Adjusting this parameter can significantly improve throughput by overlapping network latency and parallel message processing on the connected PACS.
-
The endpoint
https://his.hidglobal.com/ais/v1/{tenantId}/pacs/{pacsId}/configurationallows you to set theworkerCountfor each individual agent (PACS) connected to a tenant. The default value is1(values less than 1 are ignored). Setting a value greater than1will spawn multiple worker threads on the agent. As long as there are multiple pending messages, these threads will process them in parallel. -
Important: When
workerCountis set above1, messages may be executed out of order. It is the user's responsibility to ensure that transactionality and data integrity requirements are satisfied. For requests with interdependent data, always await the completion of a preceding transaction before issuing a dependent one (e.g., wait for identity creation to finish before assigning a credential). In contrast, independent operations (e.g., creating multiple unrelated identities) can be safely dispatched in parallel. -
Connecting multiple agent instances to the same PACS system functions equivalently to increasing the
workerCountparameter. However, this does not alter the inherent limitations of parallel processing for the PACS system, as previously described. -
Setting
workerCounttoo high may cause the PACS system to become unresponsive or even crash its internal database connection. This issue may only become apparent under heavy load. We strongly recommend not settingworkerCounthigher than 5, as higher values have been observed to degrade performance. Use higher values at your own risk.
Performance headers
-
Starting from version
1.1.0, the platform includes enhanced functionality for measuring and reporting system performance. This feature provides users with detailed timing information to help identify potential performance bottlenecks. -
When results are collected, the following HTTP header is included in the response:
Processing-Time: 413;111;182 -
The
Processing-Timeheader contains three semicolon-separated values, each representing a specific stage in the message lifecycle (in milliseconds):-
Total Processing Time: The duration from when the message is created in the platform database to when the corresponding reply is created in the database.
-
Queue Time: The time spent in the platform queue, measured from when the message is created in the database to when it is picked up by the agent. This value does not include the time required to download the message to the agent.
-
Agent Processing Time: The time taken for processing on the agent. This value excludes the time required to propagate the response.
-
Note that all times are reported in milliseconds.