Clustering & Load Balancing

PaperCut is designed to scale to 100,000+ users. To ensure reliability on networks of this size, network architects may adopt strategies including:


  • Clustering - building in redundancy by implementing a failover strategy.
  • Server load balancing - spreading tasks across multiple servers.
  • Printer load balancing - spreading print jobs among printers.

Clustering

PaperCut is a cluster compatible application. Clustering is supported under Windows (Microsoft Cluster Server / MSCS, Microsoft Failover Cluster Manager / MSFCM, Veritas Cluster Server / VCS) and Linux (Novell Cluster Services / NCS, Linux-HA) at all levels of the application, including:

  • Clustering at the print spooler service layer by integrating with clustering services.
  • Failover based clustering at the Application Server layer using clustering services. (PaperCut's application server is web and web services based, and hence can support other failover methods such as heartbeat driven DNS.)
  • At the database layer by utilizing cluster aware databases such as Microsoft SQL Server, PostgreSQL or Oracle (PaperCut supports deployment on external databases).

Printer Load Balancing

Printer load balancing can also be implemented at different layers, including:

  • the hardware/network layer (otherwise known as clustering);
  • the operating system layer (known as printer pooling in Windows and Novell environments, and CUPS classes in Mac and Linux); and
  • within PaperCut itself.
Load balancing diagram
A simple scenario for printer load balancing

PaperCut adds value to the load balancing available in clusters and operating systems by ensuring equal load between printers. For comparison, the primary objective of Windows printer pools is to provide fault tolerance while load balancing is secondary and to a large extent non-existent.

Printer pooling on Windows will often simply pick the first available printer in a predefined order. The result is that wear and tear of printers is not even; the first printer in the group will see the heaviest usage and the others may be mostly idle. System administrators often mitigate this by rotating printers periodically.

With load balancing in PaperCut, none of this is necessary: jobs are distributed evenly between queues based on intelligent algorithms taking into account several factors including printer load and error conditions.

PaperCut's printer load balancing functionality is a good companion to its find me printing feature.

The full details on clustering can be found in PaperCut's user manual section on clustering and high availability.