Load Balancing for Repositories

Load balancing for repositories is used to ensure that:
  • Work is evenly distributed across the repositories.
  • At any given time, work will be sent to the least busy repository.

For business services other than the Render business service, this is accomplished by each repository periodically publishing its current work load to the other repositories. When a repository has the option to send a job to more than one repository, it uses this information to choose the best repository.

For the Render business service, due to potentially long running rendering jobs, an “on demand” queuing approach is used. A rendering job is held by the server on which the job request was submitted while the server notifies the other servers in the domain that a job is available. The idle server that first responds to the notification is given the job. In other words, only a server that is ready to do the work is given the work. This “on demand” queuing approach for rendering avoids having jobs queued up behind a long running job while idle servers are available.