Arana
定位于云原生数据库代理,它可以以 sidecar
模式部署为数据库服务网格,项目地址是 https://github.com/arana-db/arana 。Arana 提供透明的数据访问能力,当用户在使用时,可以不用关心数据库的“分片”细节,像使用单机 MySQL
数据库一样使用 Arana
。
在这个秋高气爽的季节,Arana
社区很高兴的宣布,经过社区 47 位贡献者一年多的努力,我们正式发布了 0.2.0
版本。该版本不仅做了很多优化工作,修复了一些 bug
,还引入了多项新功能。这些新功能包括 配置中心支持 watch
机制动态监听配置变更,支持可视化的 admin
配置管理后台,对数据库表的 sharding
能力进一步增强,支持更丰富的 DDL
语句,同时支持影子表特性,方便进行数据库压测工作,这些能力将会为用户提供更为稳定和高效的使用体验。
1. 新特性
- 支持配置中心 watch 机制,可以将修改的配置信息实时推送到 Arana,确保更新配置及时生效 PR 347 作者:chuntaojun;
- 配置中心支持使用 Nacos 中间件 PR 659 作者:Mulavar;
- 支持可视化 admin 配置管理后台 PR arana-ui/1 作者:GavinLam164;
- 对已有数据库表 sharding 特性进行增强,sequence 支持段模式 PR 400 作者:Mulavar、多字段片键支持 PR 681 作者:jjeffcaii;
- 优化 SQL 函数执行器,将 javascript 函数执行方案转换成 Go 语言原生实现方案,提升函数代码实现可维护性 Issue 454 作者:Charlie17Li、gongna-au、mengchuang123、baerwang、raspberry-hu、JasonZhang95、csynineyang、PangXing 等等;
- 支持更丰富的 DDL 语句操作,包括:create/drop table PR 653 作者:csynineyang、alter table PR 184 作者:PangXing、create/drop index PR 254 作者:cjphaha;
- 主持影子表特性,方便进行数据库压测工作 PR 412 作者:csynineyang、PR 433 作者:PangXing、PR 405 作者:csynineyang、PR 363 作者:Lvnszn、PR 303 作者:Lvnszn;
- 支持 MySQL 8.0 版本 PR 450 作者:jjeffcaii;
2. Bug 修复
- 修复 select 语句中当 table 不存在时导致的应用崩溃 PR 693 作者:gongna-au;
- 修复并发更新数据时导致的数据库连接泄露 PR 669 作者:jjeffcaii;
- 修复空查询结果返回值,参照 MySQL 规范 PR 654 作者:jjeffcaii;
- 修复 etcd 作为配置中心是出现的 too large lease TTL 错误 PR 651 作者:PangXing;
- 修复 use 语句执行结果出现 Unknown database 错误 PR 618 作者:jjeffcaii;
- 修复配置中心 watch event 机制导致的启动异常 PR 589 作者:PangXing;
- 修复使用 jdbc 连接 arana 时出现 Unknown system variable 'query_cache_size' 错误 PR 357 作者:csynineyang;
- 修复
index
不存在时,show index
语句返回信息异常 PR 372 作者:jjeffcaii;
3. 未来规划
随着 0.2.0
版本的发布,Arana
社区 0.3.0
版本的功能特性进行了规划,在 0.3.0
版本中我们规划如下几个重大特性功能:
- 实现跨数据库实例的
join
能力,完善不同数据库表之间的连接查询能力; - 实现基于
XA
的分布式事务能力; - 实现 shardingless 能力,向上层用户屏蔽分库分表细节,降低用户学习使用成本。
以上就是在 0.3.0
中规划的新特性,大家敬请期待。