OneProxy :: 持续不断地改进,打造稳定可靠好用的MySQL协议层中间件

数据库协议层中间件的关注度持续稳定上升,虽然分库分表功能有较多的限制,但软件的复杂度也因此下降,仍旧为当下关键OLTP业务场景中最可靠的数据库高可用及可扩展方案,也就是成熟度极高的方案,一直在不同行业不同客户不同业务场景中稳步落地。软件本身也在一天一天地持续得到改进,下面是OneProxy最近一个季度时间内的主要改进和增强点:

  1. 优化分片表结果集合并逻辑,去掉不必要的排序操作,预计可以提升20%的跨分片汇总SQL性能。
  2. 优化连接池管理,改善连接池连接不足时的重试机制,提高了高并发场景下大数据量并行查询的执行成功率。
  3. 修复Sequence的一个缺限,使得Sequence的MySQL集群可以采用任何分流策略。原先要求Sequence所在的MySQL集群不可以配置备库。
  4. 增加客户端维度的连接数统计,可以查看每个客户端有多少个到OneProxy的连接,以方便客户排查前端连接问题。
  5. OneProxy日志文件切片存放,原先版本OneProxy的日志文件只有一个,如果日志量很大,有可能将文件系统撑满;新版本采用每100MB切片,并且默认只保留最近10个切片,也就是日志最多占用1GB的文件空间(切片大小和总切片数可以用参数调整)。

用于调整日志文件切片的两个参数为:

--log-maxsize=<size_mb>
--log-maxfiles

日志文件格式如下所示(按从老到新排列):

oneproxy.010.log
......
oneproxy.005.log
......
oneproxy.001.log
oneproxy.log

在管理端口以及内置Web监控页面中,可以查看每个IP地址到OneProxy的连接数(见Sess列),如处所示:

mysql> list ipqos;
+-----------+------+------+------+------+------+...
| ADDRESS   | DENY | Sess | QoS  | T01  | T02  |...
+-----------+------+------+------+------+------+...
| 127.0.0.1 |    0 |    1 |    0 |    0 | 2961 |...
+-----------+------+------+------+------+------+...
1 row in set (0.00 sec)

最近听到有人反馈其他同类产品的内存分配问题,经我们观察OneProxy的内存使用非常稳定(在客户场景运行超过900小时观察,内存无增长),如果你在试用OneProxy过程中有作何问题或者功能需求,可以联系我们。