官术网_书友最值得收藏!

  • Mastering PostgreSQL 9.6
  • Hans Jurgen Schonig
  • 233字
  • 2021-07-09 19:57:10

Using multiple synchronous standby servers

PostgreSQL has been able to perform synchronous replication for quite a while already. In PostgreSQL, it is possible to have more than just one synchronous server from 9.6 onward. Earlier, only one server had to acknowledge a commit. Now it is possible to have an entire group of servers that has to confirm a commit. This is especially important if you want to improve reliability in case of multi-node error.

The syntax to use this new feature is simple:

synchronous_standby_names = '3 (server1, server2, server3, server4) 

However, there is more to synchronous replication in PostgreSQL 9.6. Previously, PostgreSQL ensured (synchronous_commit = on) that the transaction log has reached the slave. However, this did not mean that data was actually visible. Consider an example: somebody adds a user to the master, instantly connects to the slave, and checks for the user. While the transaction log was guaranteed to be on the slave, it was not necessarily guaranteed that the data inside the log was already visible to the end user (due to replication conflicts and so on). By setting synchronous_commit = 'remote_apply', it is now possible to query the slave directly after a commit on the master, without having to worry that data might not be visible yet. The remote_apply value is slower than the on value but it allows to write more advanced applications.

主站蜘蛛池模板: 高雄市| 湟中县| 通榆县| 江山市| 门源| 禄丰县| 临清市| 彭阳县| 安福县| 曲松县| 罗定市| 威海市| 克什克腾旗| 闻喜县| 高要市| 新营市| 延吉市| 沁阳市| 广元市| 新昌县| 新安县| 定边县| 堆龙德庆县| 云林县| 中山市| 赣榆县| 浦东新区| 三明市| 宜兴市| 大宁县| 太原市| 陵川县| 乌鲁木齐县| 古交市| 叙永县| 新昌县| 宜川县| 桂林市| 淮安市| 丹巴县| 砚山县|