Skip to content

Atlas的开源历程(2013年)

Zhu Chao edited this page Jan 7, 2014 · 5 revisions

一、里程碑
1. 2013年6月,Atlas 1.0发布,代码正式提交至Github。发布当天得到上千位业界人员的关注
2. 2013年11月,Atlas 2.0 发布,发布一周用户数翻倍

二、Github数据
1. Code Commit 71
2. Watch 360
3. Star 462
4. Fork 232
5. Issues 32
6. Pull Requests 1
7. Release Version 7
注:以上统计来源于历史记录,后项目被重置丢失

三、开源社区
1. 截至2013.12.31,共350人,来自北京、上海、广州、深圳、成都、厦门、郑州等地,包括腾讯、搜狐、人人、京东、小米、网易等众多互联网公司
2. 累计发言15000人次以上,平均每天发言120条左右
3. 累计收集问题56条,已解决42条,另有6条列入计划
4. 至少有14家公司已经应用于生产环境(部分用户不愿透露相关信息)

四、ChangeLog:
2.0.4
*修正set character_[client|results|connection]的bug

2.0.3
*支持客户端在连接时指定默认字符集

2.0.2
*检测线程只检测状态为down的DB
*处于事务状态的客户端退出时,Atlas销毁该客户端使用的连接,实现事务的自动回滚

2.0.1
*Java不能接受handshake包的随机串内包含负数,将随机串的每个字节的范围限定为[1,127]

2.0.0
*实现了Atlas自行向DB建立连接,而不再依赖客户端的连接动作,并且把连接池由队列结构改为栈结构,带来的好处:
(1)支持了长连接
(2)不再需要min-idle-connections参数
(3)连接池内的连接数可随着客户端并发量的上升而增长,且在并发量下降后自动销毁多余连接(依靠DB的wait_timeout)
*SQL日志增加了开关,可以设为关闭(OFF)、打开(ON)、实时(REALTIME)三种,默认为OFF,REALTIME用于观察调试
*启动脚本修改,在启动失败时可以报出错误信息
*去除了配置文件的mode必须低于660的限制
*检测线程不再将DB状态设为down,而是只在DB恢复后将其状态设为up,以此避免网络抖动引发的误将DB下线操作,减少无谓的lost connection
*修正管理接口无法识别含有多个空格的语句的bug
*去除全局保存的con结构队列,提升性能
*不再判断is_insert_id,提升性能

1.0.3
*支持set autocommit语句
*支持JDBC和MySQLdb框架

1.0.2
*支持Debian/Ubuntu

1.0.1
*开源初始版本