2017-02-15 69 views
0

如果数据库代理(例如maxscale)存在于后端数据库与客户端之间,则如果代理节点本身发生故障,会发生什么情况。具体而言,我对以下情况感兴趣:写入期间数据库代理节点故障

  1. 客户端发出写入命令(假定启用自动提交)。
  2. 数据库代理接收来自客户端的写入命令并将其发送到后端数据库。
  3. 后端数据库接收写入命令,执行写入,提交事务并将确认发送回代理节点。
  4. 代理节点接收到确认。但是,在代理节点可以将确认发送回客户端之前,它会死亡。

在这种情况下,事务已被提交,并且就数据库而言,其客户端(即代理节点)已被通知。但是,实际的客户并不知道交易是否已提交。

数据库代理如何处理这种情况?

回答

0

对于MaxScale,当客户端连接突然关闭时,后端数据库连接也会关闭。这使得行为类似于服务器没有代理服务器的行为。