Best Performance

The purpose for this kind of clustering is to scale up the performances when the improvements on a single server would not be enough. A typical scenario is when you have a lot of concurrent users or very huge documents repository to index.

LogicalDOC supports the clustering to maximize the performances, distributing the CPU and RAM loads among a set of nodes called a cluster. The most part of the stress in a large installation is due to the operations of parsing, indexing and search. For this reason, each LogicalDOC node will handle its own full-text index and a federated search will span over all the nodes.

You have to set up at least two distinct instances of LogicalDOC running in the same network on different nodes. You also have to put a hardware load balancer in front of the cluster in order to evenly distribute requests.

Implementation with a Local File System

FSVpAnkX0AAUa6o

  • Load Balancer: a software or hardware component that evenly distributes incoming traffic to cluster nodes.
  • LogicalDOC Node: each node is a single LogicalDOC instance installed into a dedicated server. You can use physical or virtual servers.
  • Local File System: the file system attached to a specific node. It could be a local drive or whatever other storage device not shared among other nodes of the cluster.
  • Database Server: the database is shared among all the nodes. It could be a single node or another cluster of database servers.

In this layout most of all the resources, like the documents repositories, are completely local, so your documents will be physically stored among the different nodes. When a node requires a document or whatever other resource it does not find locally, it will communicate with the other nodes to get it. At the same time each node maintains a partial full-text index so at search time, all the other nodes will be contacted in order to collect the results indexed elsewhere (that is a federated search).

Warning

Because of the documents are stored in different nodes, it could generate a lot of traffic in your LAN when they will be transferred from a node to another. So, it is suggested to activate the Cache option in the clustering configuration of each node to optimize the transfers.

Implementation with a Shared File System

FSVpAnkX0AAUa6o

  • Load Balancer: a software or hardware component that evenly distributes incoming traffic to cluster nodes.
  • LogicalDOC Node: each node is a single LogicalDOC instance installed into a dedicated server. You can use physical or virtual servers.
  • Local File System: the file system attached to a specific node. It could be a local drive or whatever other storage device not shared among other nodes of the cluster.
  • Shared File System: a shared file system common to all the nodes. You can use the multiple volumes and/or dedicated NAS.
  • Database Server: the database is shared among all the nodes. It could be a single node or another cluster of database servers.

In this layout, most of the resources, like the documents repositories, are shared among the cluster through a shared file system. Of course, the configuration of the storage of all the nodes in the cluster must be aligned and point to the same locations in the shared file system.

The full-text index cannot be put into the shared file system, so each node continues to maintain a local and partial index and at search time, all the other nodes will be contacted in order to collect the results indexed elsewhere (that is a federated search).