Arana 定位于云原生数据库代理,它可以以 sidecar 模式部署为数据库服务网格,项目地址是 https://github.com/arana-db/arana 。Arana 提供透明的数据访问能力,当用户在使用时,可以不用关心数据库的“分片”细节,像使用单机 MySQL 数据库一样使用 Arana

在这个秋高气爽的季节,Arana 社区很高兴的宣布,经过社区 47 位贡献者一年多的努力,我们正式发布了 0.2.0 版本。该版本不仅做了很多优化工作,修复了一些 bug,还引入了多项新功能。这些新功能包括 配置中心支持 watch 机制动态监听配置变更,支持可视化的 admin 配置管理后台,对数据库表的 sharding 能力进一步增强,支持更丰富的 DDL 语句,同时支持影子表特性,方便进行数据库压测工作,这些能力将会为用户提供更为稳定和高效的使用体验。

1. 新特性

  1. 支持配置中心 watch 机制,可以将修改的配置信息实时推送到 Arana,确保更新配置及时生效 PR 347 作者:chuntaojun;
  2. 配置中心支持使用 Nacos 中间件 PR 659 作者:Mulavar;
  3. 支持可视化 admin 配置管理后台 PR arana-ui/1 作者:GavinLam164;
  4. 对已有数据库表 sharding 特性进行增强,sequence 支持段模式 PR 400 作者:Mulavar、多字段片键支持 PR 681 作者:jjeffcaii;
  5. 优化 SQL 函数执行器,将 javascript 函数执行方案转换成 Go 语言原生实现方案,提升函数代码实现可维护性 Issue 454 作者:Charlie17Li、gongna-au、mengchuang123、baerwang、raspberry-hu、JasonZhang95、csynineyang、PangXing 等等;
  6. 支持更丰富的 DDL 语句操作,包括:create/drop table PR 653 作者:csynineyang、alter table PR 184 作者:PangXing、create/drop index PR 254 作者:cjphaha;
  7. 主持影子表特性,方便进行数据库压测工作 PR 412 作者:csynineyang、PR 433 作者:PangXing、PR 405 作者:csynineyang、PR 363 作者:Lvnszn、PR 303 作者:Lvnszn;
  8. 支持 MySQL 8.0 版本 PR 450 作者:jjeffcaii;

2. Bug 修复

  1. 修复 select 语句中当 table 不存在时导致的应用崩溃 PR 693 作者:gongna-au;
  2. 修复并发更新数据时导致的数据库连接泄露 PR 669 作者:jjeffcaii;
  3. 修复空查询结果返回值,参照 MySQL 规范 PR 654 作者:jjeffcaii;
  4. 修复 etcd 作为配置中心是出现的 too large lease TTL 错误 PR 651 作者:PangXing;
  5. 修复 use 语句执行结果出现 Unknown database 错误 PR 618 作者:jjeffcaii;
  6. 修复配置中心 watch event 机制导致的启动异常 PR 589 作者:PangXing;
  7. 修复使用 jdbc 连接 arana 时出现 Unknown system variable 'query_cache_size' 错误 PR 357 作者:csynineyang;
  8. 修复 index 不存在时,show index 语句返回信息异常 PR 372 作者:jjeffcaii;

3. 未来规划

随着 0.2.0 版本的发布,Arana 社区 0.3.0 版本的功能特性进行了规划,在 0.3.0 版本中我们规划如下几个重大特性功能:

  1. 实现跨数据库实例的 join 能力,完善不同数据库表之间的连接查询能力;
  2. 实现基于 XA 的分布式事务能力;
  3. 实现 shardingless 能力,向上层用户屏蔽分库分表细节,降低用户学习使用成本。

以上就是在 0.3.0 中规划的新特性,大家敬请期待。