春去夏来,火热发版:StoneDB-8.0-v1.0.1-beta 版本正式发布!


在 Oracle MySQL 团队的推动下,MySQL 8.0 发生了巨大的变化和修改,代码进行了重构。MySQL 8.0 在 2016-09-12 发布, 重写了 5.7 中解析器的近 50% 的代码。MySQL 将编程语言都统一到 C++,编译器使用最新版本,代码风格采用 Google C++ Style,统一了 300 人的开发团队的代码标准。

目前 MySQL 5.7 维护也渐渐进入尾声,MySQL 8.0 成为市面上的主流,在此背景下, StoneDB 也对 Tianmu 引擎做了适配 8.0 的升级,并推出 StoneDB-8.0-v1.0.1 beta 版本(StoneDB for MySQL 8.0)。

开发者友好增强:

  1. 编译方式优化,保持官方的编译方式,去掉 StoneDB-5.7 install.sh 脚本编译。

  2. 代码治理:消除所有编译告警,编译保持 0 warning,debug 模式 mtr crash 消除

Tianmu 引擎适配 8.0 (https://github.com/stoneatom/stonedb/milestone/4?closed=1)

Tianmu 优化器主要变更:

  1. JOIN::optimize 8.0 已被重构,Tianmu 优化器代码适配 8.0 新优化器逻辑和接口,Tianmu 引擎执行计划适配 8.0 重构之后的执行计划

  2. prepare 函数相对 5.7 所属类和调用逻辑改变,Tianmu 引擎适配新用法。

  3. 8.0 删除 handle_query 查询接口,转换成统一接口 execute(thd),tianmu 引擎增加入参,调整代码适配 execute(thd)

  4. 同 8.0,Tianmu 引擎删除查询 query cache 缓存。

  5. 派生表使用:同 8.0,Tianmu 引擎删除 thd->fill_derived_tables() ,并将 lex->derived_tables 调整为 lex->unit->derived_table

  6. 结果集输出接口函数适配,如:将 Query_result::prepare2() 替换为 Query_result::start_execution()

  7. group by 默认 asc 排序调整为 8.0 不设置默认排序方式。

  8. 其它查询调用的接口适配

存储层主要变更:

  1. tianmu handler api 创建函数参数变更,适配 8.0 新 handler 接口使用方式

  2. 8.0 mysql_load 已删除 , MySQL 语法支持 Tianmu 内部 load 的功能,sql 层实现 mysql_load 接口适配 tianmu load 逻辑

  3. 支持 mysql load binlog:使用 Sql_cmd_load_table::write_execute_load_query_log_event function 写 mysql binlog.

  4. tianmu DDL handler api 增加 dd::Table 参数

  5. sql/sql_cmd_ddl_table.cc 增加 Tianmu query 接口以支持 CTAS

  6. Tianmu 文件扩展名移除 5.7 bas_ext() 接口调用方式,改为 8.0 数组形式传入 tianmu handler api 实例

  7. 规范 handler 目录下文件命名方式,保持同 innodb 等其它引擎一致。

  8. 调整 Tianmu 事务提交逻辑以适配 8.0 事务提交流程变更。

  9. lz4 版本升级至 z4-1.9.4

重要的基础数据结构变更:

例如:

  • List<Item>--->mem_root_deque<Item *>

  • SELECT_LEX_UNIT->Query_expression

  • st_select_lex_unit -> Query_expression

  • SELECT_LEX->Query_block

  • first_select() -> first_query_block()

StoneDB-5.7 v1.0.1 功能 backport

https://github.com/stoneatom/stonedb/milestone/10?closed=1

StoneDB-8.0-v1.0.1-beta

https://github.com/stoneatom/stonedb/releases/tag/8.0-v1.0.1-beta


相關推薦

2023-02-16

要节点,我们的小伙伴们加班加点可算是把万众期待的 StoneDB-5.7-V1.0.2 版本发布了,在新版本中,StoneDB 新增了一批常用功能、解决了一批常见Bug,并在用户使用体验上进行了极大地优化,大家可以到我们的 Github Repo 下载我

2024-01-25

Categraf 一款监控数据采集器,内置几十种采集插件,最新版本 v0.3.47,changelog 如下: 1  oracle 插件去除cgo依赖,centos6.7上也可以进行oracle采集了 2 新增nats插件 3 新增tengine插件 4 新增bind插件 5 新增snmp_trap插件 6 snmp

2023-10-14

Ubuntu 23.10 正式版今天发布不久后,其桌面安装程序 UI 的一组特定翻译中被发现来自恶意贡献者的仇恨言论。 via https://twitter.com/ubuntu/status/1712593893319930079 Canonical 官方知释后立马“召回”已发布的 ISO 镜像,并表示待修

2022-12-03

控软件 近一个月陆续根据社群、issues 反馈进行了迭代发版,一共发版5次,这5次版本中累计新增 8处功能、修复 15处功能、优化25+处功能 ❞ 温馨提示:文章末尾附有安装教程文档 新增、优化、修复重点功能 在近

2023-09-28

  现在普遍认为是后 Hadoop 时代,CDH 的停更和闭源导致传统的 Hadoop 体系组件栈没有一个 称手好用的管理工具,越来越多新一代的大数据项目也在层出不穷, 同样也需要运维和管理,并且需要适配云原生的能力

2022-11-08

简介 Restful Fast Request 是一个类似于 Postman 的 IDEA 插件。它是一个强大的 restful api 工具包插件,可以根据已有的方法帮助您快速、自动生成 url 和 params。 Restful Fast Request = API 调试工具 + API 管理工具 + API 搜索工具。 它有一个漂

2022-10-15

社区会员持续招募中 目前,openKylin社区会员招募正在火热进行中,欢迎更多企业伙伴加入,携手共建,打造桌面操作系统顶级社区,推动国产操作系统产业生态健康发展。详情可查看:【开源聚力,共创未来 | openKylin(开放

2022-10-21

社区会员持续招募中 目前,openKylin社区会员招募正在火热进行中,欢迎更多企业伙伴加入,携手共建,打造桌面操作系统顶级社区,推动国产操作系统产业生态健康发展。详情可查看:【开源聚力,共创未来 | openKylin(开放

2022-12-08

量来比较前端框架毫无意义。 又有网友认为也许是最近火热的 chatGPT AI 正在大量学习如何制作 Vue 应用程序,在每次迭代中都会运行 npm install,导致下载量暴增。此外,也有人认为该事件与 Nuxt 框架 3.0 版本的正式发布

2022-11-17

https://www.polardbx.com/ PolarDB-X 开源大版本 v2.2 实践训练营火热报名中:https://developer.aliyun.com/trainingcamp/b1d2f71936dc4da0a502a5e21b8fd52f

2023-09-02

Chrome 宣布执行第 2 轮加快新版本发布速度的策略。 第 1 轮于 4 月份启动,从 Chrome 114 开始,Chrome 开发团队尝试缩短发布分支与稳定版本之间的时间。目标是缩短推出新版本时间,并减少合并。 现在开始的第 2 轮依旧是实现

2023-12-05

开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):  https://github.com/threefish/sqltoy-idea-plugins sqltoy 脚手架项目:https://gitee.com/momoljw/ss

2023-05-27

已超过1500万行。社区坚持技术创新,如期发布了7个社区版本,多家社区伙伴基于openGauss推出的数据库商业发行版,广泛应用于政府、金融、运营商、电力、制造、医疗等十大重点行业的核心场景,2023年openGauss在非云集中式场景

2023-06-08

随着生产式 AI 的火热,老牌劲旅 Qt Group 也开始探索将生成式 AI 整合到 Qt 中的方法,目前公布的初步成果是将 GitHub Copilot 接入他们的 Qt Creator 集成开发环境。 GitHub Copilot 集成将作为技术预览(而非正式的新功能)在 Qt Creator