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

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.

主站蜘蛛池模板: 南京市| 大理市| 平阴县| 高唐县| 增城市| 湟源县| 盐山县| 开阳县| 印江| 阜新市| 桂林市| 潜山县| 民丰县| 申扎县| 曲靖市| 天津市| 莒南县| 大竹县| 承德县| 宁德市| 富顺县| 察哈| 奉贤区| 信丰县| 桃园县| 延边| 界首市| 确山县| 鲁甸县| 黄龙县| 满洲里市| 昆山市| 鄂伦春自治旗| 蒙山县| 万宁市| 定襄县| 炎陵县| 射阳县| 莲花县| 云阳县| 桑植县|