In general, if your data nodes are hosted in different geographical regions, latency between them will be considered high.
Write concern
High latency will make the replication process slower, which means that using the write concern of w:1
is highly recommended in order to prevent performance degradation. On the other hand, if the majority of your nodes were hosted in the same data center, you'd be fine with using w: majority
, which would improve your data safety without compromising performance.
Read preference
Given that you use w:1
, you should use the read preference of primary
or primaryPreferred
. If you allowed reading from the secondaries, there would be no guarantee that the data read is up-to-date, which would lead to errors, such as contact locking inconsistencies.
On the other hand, if you had low latency between all replica set nodes, and given that you used w:3
(or whatever your total number of nodes would be), then you could consider the read preference of secondary
, secondaryPreferred
or nearest
. Although, this would only be recommended in read-heavy environments, which most Sitecore installations are not.
Summary
To prevent issues caused by high latency, use the write concern w: 1
and the read preference primary
or primaryPreferred
.
Further reading