最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

移植spider到MySQL5.6

来源:懂视网 责编:小采 时间:2020-11-09 08:15:09
文档

移植spider到MySQL5.6

移植spider到MySQL5.6:MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个 proxy ,来实现 MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个
推荐度:
导读移植spider到MySQL5.6:MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个 proxy ,来实现 MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个

MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个 proxy ,来实现

MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个 proxy ,来实现 sharding、高可用等功能。这些功能已经有一些产品实现了,比如 MaxScale、Cobar、OneProxy、Atlas。但是我觉着 spider 把自己作为一个存储引擎来实现这些功能是有其优势的。SQL 解析和查询优化是个非常复杂而且很难做好的工作。其他替代产品都是自己实现,由于复杂性,这些产品都带来了一下限制,没能支持全部常见的 SQL 语句,给使用和实施带来了困难。而作为一个存储引擎,这些工作都由 MySQL 自身完成了,后面的工作就会简单很多,想做点优化的话也会容易些。

由于 MariaDB 从 MySQL 5.5 时代就分道扬镳了,做过很多改动后,和目前版本的 MySQL 已经有了不小差异,所以插件基本上没法直接拿到 MySQL 里编译使用。我就花了点功夫,,把 spider 引擎移植到了 MySQL 5.6。

https://github.com/xiezhenye/mysql-plugin-spider-engine

编译使用和一般的插件差不多

cp -r src /path/to/mysql-src/storage/spider cd /path/to/mysql-src cmake . -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX= cd storage/spider make make install

之后,执行附带的 install_spider.sql 安装插件,创建所需要的系统表。

mysql ... < scripts/install_spider.sql

具体文档参见 https://mariadb.com/kb/en/mariadb/spider/

在测试过程中,发现安装插件以后,重启 MySQL 后会 crash,然后再也启动不了,移除 ha_spider.so 后才行。然而在 MariaDB 中却是正常的。开始以为是自己移植过程带来的 bug,或者有什么兼容问题未解决。追踪到后来,发现这居然是 MySQL 自身的 bug。于是去提交了一下。?id=78050

在使用外部 XA 的时候,如果没启用 binlog,会把 XA 信息通过 TC_LOG_MMAP 来持久化。然后 bug 就出在了那里。

这个 bug 曾经在 2009 年就被发现过,2012 年被 fix 过。但是显然并没有改对。待我自己做了 fix 以后,进一步发现,这个 bug 在 MariaDB 中已经被修复过,然后发现原来在 MySQL 5.7 分支下也是修复过的,但是并没应用到 5.6 分支。

都是几个相当低级的 bug。有成员未初始化,指针计算时搞错了指针类型,未判断空指针…… 。虽然这个地方确实是一般使用很难碰到,但是这代码质量简直无语。

本文永久更新链接地址:

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

移植spider到MySQL5.6

移植spider到MySQL5.6:MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个 proxy ,来实现 MariaDB 中自带了很多 MySQL 中没有的插件。我对其中的 spider 存储引擎很有兴趣。这个引擎可以让 MySQL 作为一个
推荐度:
标签: mysql mysql5 mysql5.6
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top