本文主要介绍了PolarDB PostgreSQL版数据库代理的版本更新记录。
2.3.28(发布日期:20220221)
类别 | 说明 |
---|
新增功能&性能优化 | 支持数据库实例优雅重启。 |
问题修复 | 优化事务拆分,通过代理的事务拆分开关来控制数据库上的开关行为。 |
2.3.26(发布日期:20210916)
类别 | 说明 |
---|
问题修复 | 在数据库代理中设定TCP KeepAlive 相关的参数,不使用系统参数,确保在不同环境下TCP KeepAlive 具有相同行为。 |
2.3.25(发布日期:20210907)
类别 | 说明 |
---|
问题修复 | - 优化Parse报文,写属性的Parse报文不广播到只读节点。
- 优化全局临时表的路由。
- 优化表名/函数名白名单的信息管理。
- 修改只读延时时间单位为毫秒,默认值为300 ms。
|
2.3.24(发布日期:20210901)
类别 | 说明 |
---|
问题修复 | 只读Endpoint无需判断报文长度。 |
2.3.23(发布日期:20210603)
类别 | 说明 |
---|
问题修复 | - 在只读节点探测建连超时的时候保持Running状态。其他探活失败仍然保持修改状态。
- 如果只读节点探测创建连接超时,则客户端新建连接时,后端不与此只读节点建连。
- 路由时支持全局临时表的识别并路由。
- 修复大量广播请求时,导致内存膨胀的问题。
|
2.3.21(发布日期:20210420)
类别 | 说明 |
---|
新增功能&性能优化 | - monitor可以查看数据库内部变量的值。
- 增加强制路由到主库的开关。
|
问题修复 | - monitor启动时会根据配置初始化内部变量。
- 开启限流机制。其中,高水位(high water): 100M,低水位(low water): 1M。
|
2.3.16(发布日期:20210222)
类别 | 说明 |
---|
问题修复 | - Extended query切分报文的流程中,遇到连续的E/v报文时,以最后一个E/v为边界切分报文。
- Extended query默认不切分报文。
- 重放Parse报文时携带参数信息。
- monitor每个探测周期只建立一个连接,在这个探测周期中,可以使用此连接去探测其他必要信息。
|
2.3.15(发布日期:20201228)
类别 | 说明 |
---|
问题修复 | - 优化函数和表的路由白名单。函数白名单主要去掉nextval,表白名单增加了一些系统表。
- 记录Bind的路由节点,单独路由Execute报文时根据Bind的路由节点进行路由。
- Extended Query以Bind为起始边界,Execute为结束边界进行拆分。
- 当路由给主库的事务中不包含Execute报文时,可以视为当前事务没有发生写操作,则仍然可以将后续读请求路由到只读库。
- 广播报文未收到所有结果前不强行路由SYNC报文。
- 修复建连过程中只读节点断开时,会断开客户端连接的问题。
- 添加
enable_split_ext_pkts 开关。开关关闭时不拆分Extended Query报文序列。 - 主库连接关闭之后不路由任何请求。
- 修复当所有只读节点不可用时,新请求会卡住的问题。
- 对事务开启、提交和回滚语句进行广播。
|
2.3.14(发布日期:20200929)
类别 | 说明 |
---|
新增功能&性能优化 | 支持RC隔离级别事务写后读请求拆分到只读节点。 |
问题修复 | - 只读节点重连优化。只读节点连接断开之后,不立即重连,而是等到下一次monitor探测结束之后,确定只读节点为健康状态时再重连。
- 修复读写Endpoint处于stopped状态时,不自动添加主节点的问题。
- 修复数据库不健康导致建连失败时,向客户端返回数据库不健康的消息的问题。
|
2.3.12(发布日期:20200819)
类别 | 说明 |
---|
问题修复 | 修复双主问题。当有新主加进来时,旧主的标志位会因为连接失败而去除。 |
2.3.10(发布日期:20200629)
类别 | 说明 |
---|
新增功能&性能优化 | 支持自定义Endpoint。 |
问题修复 | - 如果读写集群地址没有主节点,monitor会自动将主节点添加到读写集群地址里。
- 修复代理广播后,在只读节点未返回结果之前,客户端单独发sync报文会导致连接卡住的问题。
|
2.3.8(发布日期:20200402)
类别 | 说明 |
---|
问题修复 | - Extended Query报文序列拆分。含Begin或者Set的报文序列会从重复报文序列里抽取出来单独处理发送。
- 事务拆分流程中,如果连接事务已经开启,路由到只读节点时,需要修改包中的事务状态为
事务中 。
|
2.3.7(发布日期:20200320)
类别 | 说明 |
---|
新增功能&性能优化 | PostgreSQL支持事务拆分功能。 |
问题修复 | - 查询白名单表之前,先查看表是否存在。如果不存在,则跳过查询白名单内容的过程。
- 仅包含SET和读请求的
multi-statement 不再广播,改为直接路由到主节点。
|
2.3.6(发布日期:20200312)
类别 | 说明 |
---|
新增功能&性能优化 | - 支持只读节点自动重连功能:只读节点连接异常断开后可以自动重连。
- 支持动态增加节点功能。
|
问题修复 | - 修复调用API删除只读节点时,对应的只读连接没有断开的问题。
- 支持edb协议报文。
- 建连时如果代理没有获取过密码,则先从数据库获取一次密码再建连。
|
2.3.3(发布日期:20200213)
类别 | 说明 |
---|
新增功能&性能优化 | 支持function name和table name动态白名单功能。 |
问题修复 | 将JSON相关函数添加到代理内置函数白名单中。 |
2.3.1(发布日期:20200204)
类别 | 说明 |
---|
问题修复 | - 默认关闭主节点接收读操作的开关。
- 修复SSL阻塞代理主线程的问题。
|
2.3.0(发布日期:20200103)
类别 | 说明 |
---|
新增功能&性能优化 | - 支持SSL。
- 支持同步建连。
- 支持cancel request。
- 支持monitor探测数据库版本信息。
- 支持pg_stat_activity、pg_locks、pg_stat_ssl视图的多节点结果合并。
|
问题修复 | 修复paser内存泄露的问题。 |
2.2.2(发布日期:20191218)
类别 | 说明 |
---|
问题修复 | - execute语句沿用prepare语句中的hint信息。
- 修复存储过程或者事务中,
SET 操作不锁主节点的问题。 - 修复主库不接收读且所有只读库权重为零时,查询会导致代理crash的问题。
- 修复主库接受读对老连接生效的问题。
|
2.2.1(发布日期:20191113)
类别 | 说明 |
---|
问题修复 | - 在TCP三次握手之后开启TCP keepalive。
- 将某些特定的读请求函数添加到函数白名单中。
|
2.2.0(发布日期:20191024)
类别 | 说明 |
---|
新增功能&性能优化 | 新增hint(/* force_master */ 和/* force_slave */ )语法。 |
问题修复 | - 优化multi-statement路由(只有set和select情况下不锁主节点)。
- 只读返回error时将原请求重放到主节点。
- 修复show语句路由到主节点的问题。
|
2.1.0(发布日期:20190912)
类别 | 说明 |
---|
问题修复 | - 支持PostgreSQL协议。
- monitor支持探测PolarDB PostgreSQL版的存活状态、主备状态、LSN 位点、复制延迟(微秒)信息。
- 支持读写分离功能。
- 支持session级读一致性功能和表级读一致性功能。其中,由于表级读一致性功能限制较多,暂时默认关闭。默认开启session级读一致性功能。
|