When it comes to scaling the Rendition Server, understanding the underlying architecture is crucial. The conversion process primarily occurs on worker nodes, making them the focal point of our discussion.
Worker Nodes: Maximizing Parallel Conversions
By default, the Rendition Server initiates conversions in parallel, leveraging the available CPU cores. However, it's important to note that a single conversion request does not exclusively occupy a CPU core. Depending on the document type and quantity, certain stations may further parallelize specific conversions such as OCR, compression, or BornDigitalStation tasks.
It's worth mentioning that the parallelization of CPU cores is not a fixed value. System administrators can adjust the number of simultaneous conversions by modifying the <maxConcurrentWorkItemsCount> parameter in the <WorkerNodeConfig.user.xml> configuration file on the worker node. This provides the flexibility to limit resource-intensive conversions or increase the volume of conversions that have lower resource requirements. Before implementing any changes, closely monitor the resource behavior to ensure optimal performance. If sufficient resources are available with the maximum number of parallel conversions, it may be feasible to increase the number of parallel requests.
Expanding CPU Core Count: A Viable Option
In scenarios where modifying the <maxConcurrentWorkItemsCount> parameter doesn't yield satisfactory results, adding additional CPU cores can enhance parallel conversions. This process is usually straightforward in virtual environments.
Keep in mind that increasing the number of CPU cores also necessitates expanding the system's memory capacity. As a general recommendation, allocate approximately 4GB of RAM per CPU core. However, this guideline may vary based on the characteristics of the input documents. It is not uncommon for installations to feature 4 to 8 cores per worker node, although there are instances where organizations deploy worker nodes with as many as 56 cores and corresponding memory. The Rendition Server's licensing model is based on the number of worker nodes and pages, with the number of cores per worker node being inconsequential for licensing purposes.
Adding More Worker Nodes for Scalability and Redundancy
If further increasing the number of CPU cores proves impractical or you require additional redundancy and fault tolerance for conversion capacities, incorporating more worker nodes is a recommended strategy. This involves connecting additional worker nodes to a managing node, provided you have the appropriate licensing.
By leveraging multiple worker nodes, the managing node can efficiently distribute the conversion workload, aiming for an equitable allocation across the network. It is common to observe installations with 1 to 6 worker nodes connected to a managing node. As the managing node primarily serves as the communication bridge between clients and worker nodes, it experiences minimal performance impact.
Managing Node: Achieving High Availability
In larger installations where more than 4-6 worker nodes are necessary, or when fault tolerance of the managing node is crucial, deploying additional managing nodes becomes advantageous. With the proper licensing, these nodes can connect to the existing database, providing enhanced scalability and resilience.
To optimize load distribution and availability, a load balancer is typically implemented in front of the managing nodes, intelligently routing client requests across multiple managing nodes. Worker nodes are designed to connect to a single managing node, but in the event of a managing node failure, they can seamlessly switch to an alternative managing node through a fallback configuration. Once the primary managing node is operational again, the worker nodes complete any ongoing conversions before reconnecting to the primary managing node.
By diligently following these best practices, organizations can effectively scale the Rendition Server to meet their document conversion demands, ensuring optimal performance, resource utilization, and high availability.