Starting with the 2017 release of SOLIDWORKS PDM Professional, administrators can now take advantage of the “AlwaysOn Availability Groups” or AOAG in Microsoft SQL Enterprise edition. This will allow for replication of the vault database to multiple locations.
Previously, replication in PDM was available for Archives only. This functionality allowed the actual files themselves to be replicated to additional Archive servers in different locations that the users could then connect to.
Archive Replication Limitations
As an example, if a company has a headquarters in Toronto, and design teams in Vancouver, Los Angeles, Munich and Guangzhou, a replicated Archive server should be set up in each location so that when users “Get” files or “Check In” files, the files are moving across their local network, instead of all that data needing to be sent from a continent away with each action.
However, until now, all of the locations still had to communicate with the Microsoft SQL Database server at the main office location for ANY action in the vault. While these database transactions are using only small amounts of data, this would still result in delays compared to users who are at the same physical site as the Database server.
This becomes especially noticeable when the communication has to cross an ocean. While latency between offices in Toronto and Vancouver, or Vancouver and Los Angeles might not be too bad, and barely cause a noticeable lag. Users in China or Germany would experience a significant performance issue when performing actions such as a Search or while waiting for the list of referenced files to generate when trying to get a large assembly.
Replicating the Vault Database
The SOLIDWORKS PDM Professional Replication functionality in the 2017 allows you to replicate not just the Vault Archives, but also the Vault Database.
SOLIDWORKS PDM Professional Replicate Vault requires Microsoft SQL Enterprise edition. This is not the version of Microsoft SQL that is included with a SOLIDWORKS PDM Professional license so the application would have to be purchased separately from Microsoft (Microsoft SQL Standard edition is provided with a PDM Professional license).
If you are experiencing significant latency, (for instance, anything over 50 milliseconds would cause a noticeable lag, over 200 milliseconds would become quite painful for users), then the additional cost of the SQL Enterprise edition licensing may quickly be returned by improved stability and productivity for users.
Another example where this functionality may be very helpful is load balancing for very large and active vaults. If there are a large number of users performing many searches, transitions and other operations in the vault, all of those actions are being handled by a single SQL server. Splitting up the workload between multiple replicated SQL servers can have a significant effect on vault performance, especially if the bulk of the workload is coming from Searches.
However, please note, if you are experiencing performance delays from these types of operations, first it’s best to look into optimizing the SQL settings and hardware configuration to ensure that the existing SQL Server is able to run at peak efficiency (speak to your SOLIDWORKS PDM Value Added Reseller about recommendations for SQL settings and hardware configuration if you are running into some slowness in the vault).
What is the setup process?
Now in SOLIDWORKS PDM 2017, the Replication node can be expanded and you will see an entry for Archive and one for Database.
In the Database dialog you can add “Secondary SQL Servers” (this is different from replicated Archive servers which have no Primary/Secondary relationship, all Archive servers are equal).
For replicated Database servers, the initial SQL Server is the “Primary” server. This server is designated as a Read/Write database. It handles all Write operations (such as Transitions, Check Ins, Check Outs, Moves, Renames etc). It will periodically update the “Secondary” server(s).
The “Secondary” servers are designated as Read Only databases. Only Read operations (such as Searches, Browsing through the vault or gathering file lists for Get actions) will be performed on these servers.
User’s must still be able to connect to both the “Primary” and “Secondary” archive server to take advantage of the functionality. If they cannot connect to the “Secondary” server, then all actions will be performed on the “Primary” server. If they cannot connect to the “Primary” server, then they cannot log in to the vault.
In the Configuration Dialog for the Secondary Server you can select the server name, or enter it’s IP address.
In the “Max. Lag from Primary” box enter the maximum permissible time since the Primary server updated the Secondary server that you want to allow users to read information from the Secondary server. This can be set from 1 minute up to 60 minutes. When the actual time exceeds this setting then all read operation are directed to the primary server. This is to ensure that the users are viewing up to date information.
Using the Add Member command you can specify which Users or Groups should be using this Secondary server for their read operations.