我们对reload @@config_all 做了重构,增加了对datahost的变化计算,使得reload行为对整个系统的影响变到最小。
变更的datahost,等效于删除旧的datahost,新增新的datahost
连接池行为描述:
此种情况下,datahost连接不发生变化,如果关联的schmea发生变更,在需要使用时候进行连接新建或者偷取并同步上下文的方式进行更新。
建立新的连接池供使用
遍历当前连接池,如果没有事务正在使用连接,则回收,否则放回后端待回收连接池 (在show backend中任可以看到放入回收池的时间),等事务结束时候连接被关闭
强制回收所有正在使用的链接
连接池行为描述:
此种情况下,datahost连接不发生变化,正在使用的连接会被回收
建立新的连接池供使用
遍历如果当前连接池,如果没有事务正在使用连接,则回收,否则关闭对应的前端连接以及相关的后端连接
不计算datahost的变化,相当于原本所有的连接池会被删除,然后新建所有的连接池
遍历旧连接池,如果没有事务正在使用连接,则回收,否则放回后端待回收连接池 (在show backend中任可以看到放入回收池的时间),等事务结束时候连接被关闭
跳过datahost连接检查(与节点建立连接,连接成功,检测通过)