Load balancing algorithm

ReShare uses a load balancing process to determine the order of suppliers in the rota for a given request. At this time, the load balancing process is only used with ReShare’s Shared Inventory integration, but it may be extended to other shared index integrations in the future.

For more information about working with load balancing for a specific ReShare tenant, see Load balancing configuration.

Load balancing algorithm

ReShare uses a ratio-based approach to load balancing. This approach allows each library to define its goal loan to borrow ratio. When libraries are considered as suppliers, ReShare assigns a load balancing score by comparing the library’s goal ratio to its current breakdown of loans.

Scores are calculated dynamically with each new request, and are always based on the number of current, active requests. A library’s score will fluctuate as new requests are placed and existing requests are closed.

The load balancing score is calculated as follows:

  1. Calculate the target number of lending requests by applying the desired ratio to the number of current borrowing requests.

  2. Calculate the load balancing score by subtracting target lending from actual lending.

A positive load balancing score indicates that the library has not reached its target, and it will be assigned a higher place in the rota.

A negative load balancing score indicates that the library has already loaned more than its target, so it will be assigned a lower place in the rota.

Load balancing examples

Example 1: In this example, the library has not lent as many items as it might, based on the goal ratio. It receives a load balancing score of 4 – in other words, it needs to lend 4 more items to reach the target ratio.

Example 2: In this example, the library has has lent more items than required according to its goal ratio. It receives a load balancing score of -12, meaning that it is 12 loans ahead of the target ratio. It would be ranked below the supplier with a positive score in the example above.