As a means of addressing inherent network latency for SystemWeaver users located geographically far away from the main server, or for large installations (300+ concurrent users), Systemite can offer a mirror server solution to safely scale your installation. Users located geographically far away from the main server can connect to a local mirror server, yet still access the same real-time data for searching and viewing. Likewise, for very large installations, the mirror server solution offers a means to horizontally scale server usage by grouping smaller user populations by server. 

Users connected to a mirror server obtain their data from a cache file on the mirror server that is configured to fetch data from the main server thanks to a journaling system. This results is high data reading performance for those users. The mirror server connects to the main server via the same port as the mirror users. The connection is constantly open and information flows in both directions (bi-directional). All write commands from clients connected to a mirror server are forwarded directly to the main server so there is no risk of conflicting data updates. The main server then handles the changes one at a time and sends change events to all mirror servers. The main responsibility of the main server is to safeguard data. The syncing of mirror cache file(s) is done through the TCP connection. So from an operational point of view, it is useful to think of the solution as being composed of servers with two different roles - one core and one or more read replicas.

From a user perspective, connecting to a mirror server is just like connecting to the main server; users can work simultaneously on the same data and see changes to data in real time.

A mirror server solution can consist of one mirror server, as shown above, or many depending on the locations of users or how you wish to split up a larger user population.  It is the mirror server that connects to the main server and never the other way around. Regardless of the number of mirror servers connecting to the main server, they will all behave similarly.

The below illustration shows an example of vertical scaling using the mirror server solution. Three mirror servers, each located in different geographical locations, are set up and clients log in to the server closest to them. 

What's Next?

Setting up a mirror server consists of a number of simple steps which can be completed in the following order.

  1. To start with, make sure that the machine that will host the mirror server meets the server requirements described in SystemWeaver Server - Software and Hardware Requirements.
  2. Initialize journaling on the main SystemWeaver server, i.e., creating the .swjournal file
  3. Update the main server's configuration file to enable journalling
  4. Install and configure each mirror server, including the creation of a .cache file for each mirror server.
  5. Test your mirror servers!

You can also browse through SystemWeaver Mirror Server