How to share backend resources in a cluster?

This forum deals with administrative topics such as monitoring and system setup. It is dedicated to system administrators who do not have to deal with the functions themselves but who have to establish and maintain proper environments.
Public since 15.2.2017

How to share backend resources in a cluster?

Postby Bernd Welter » Fri Jan 11, 2019 1:55 pm

Hi there,

a player in the xUniverse asked me for how to combine several xServers (xServer2) to one logical cluster. From my perspective he has to ensure to connect each instance to those resources - this is mandatory:

  • Job database as described in ... s%7C_____8 , please check conf/job-management-db.xml
    This is required if you deal with asynchronuos protocols (startWhatever-Method)
    :!: If you host the server in an environment such as Microsoft AZURE we recommend to use tha asynchronuos approach because such heavily virtualized systems often prevent the clients from using long-lasting transactions (e.g. AZURE restricts HTTP connects to about2-3 minutes)
  • Same approach applies for the Session management database: configured in conf/job-management-db.xml
xServer benefits from fast IO and so on file level we also need xServer.Conf path values which might be configured to point to the same network shared folder:
  • map directory: map is used read only and performs best on a local SSD. If you use Content Update Service you have to ensure to update each instance.
  • contentSnapshotPath: required only if you create content snapshots
  • distanceMatrixPath : required if you want to compute and share distance matrices
  • highPerformanceRoutingNetworkPath : shared access might be required if you want to compute (create, RW) and process (calculate dima/routing, RO) search graphs (aka high performance routing networks). If not administrated via API you could evaluate to copy such a path to each local SSD. Otherwise you need to connect each instance to the shared resource folder. We strictly recommend very fast IO because the loading of networks has a huge impact on the performance.
Be aware that a simultaneous access to the same file share through different instances might cause some "file/folder in use". So this is a "first come, first serve" approach.

  • Ensure to setup a monitoring of each backend server instance - not through the load balancer but via direct access.
  • Furthermore it is possible to send a request to a specific backend module by using the proper HTTP headers xserver-module.

Best regards,
Bernd Welter
Senior Technical Consultant Developer Components
PTV GROUP - Germany

Bernd at Youtube
User avatar
Bernd Welter
Site Admin
Posts: 1589
Joined: Mon Apr 14, 2014 10:28 am

Return to PTV xServer Administration