We are pleased to announce the release of WebViewer Server 66566 . The new release adds support for scaling up to multiple backend nodes, as well as new options to better control the lifetime and total size of the per-node cache.
WebViewer Server makes excellent use of server resources, and if you need to scale up, the simplest way to do so is by scaling vertically -- increasing the power of a single node. However, it's sometimes necessary to add additional nodes -- whether it's for handling very large numbers of simultaneous users, or simply to add a fallback server as part of a high-availability strategy.
WebViewer Server nodes are totally independent from each other, and there is no centrally maintained state related to viewing. This independence has a number of nice features:
- Capacity scales linearly with the number of nodes: with twice the number of nodes, you get twice the capacity, and with 8x the number of nodes, you get 8x the capacity.
- There's no limit on the number of backend nodes.
- Scaling up is really simple: just spin up a new node, and set up your load balancer to direct traffic to it.
It's possible to use any load balancer to service your WebViewer Server cluster, but the balancer needs to be configured to meet a few specific requirements . As an alternative, we have included a Docker image of a fully configured balancer along with the WebViewer Server download. The included balancer uses HAProxy, and can be used either as-is, or further configured to meet the needs of your particular network environment.
Each server node transparently maintains an on-disk cache of previously requested results. The cache is automatically maintained: items that haven't been accessed recently will be cleaned up as the available disk space starts to run low. In the newest release this behaviour is more configurable.
It's now possible to limit the total number of bytes occupied by the cache. If the cache exceeds its size limit, then older items will be deleted until it is under the specified threshold. This can be useful in scenarios where the server shares resources with other services, or in cases where the cache has been mapped to a location.
There is also new configurable maximum age for all cached items -- any items older than the specified limit will be automatically be wiped from the cache. This feature can make it easier to comply with regulatory requirements concerning data retention, such as the new GDPR.