【Mycat2】关于序列功能的一个 Bug

创建序列前 Mycat 的 sequences/ 目录情况:

创建一个 MySQL 生成方式的序列。

sql 复制代码
/*+ mycat:setSequence{"name":"sharding_db_not_tb111","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;

因为没有官方文档支持,起初尝试使用 dropSequencedeleteSequenceunsetSequence 注释,发现都不行。后查看 Mycat 2 源码发现确实没有设计删除序列的功能。

,

执行如下 Mycat 注释创建一个序列。

sql 复制代码
/*+ mycat:setSequence{"name":"sharding_db_not_tb111","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;

查看操作系统 Mycat 配置目录中的 sequences/ 子目录下生成了相应的配置文件。

上面说过无法通过 Mycat 语法删除这个序列,因而直接通过操作系统物理删除。可见,该配置文件已经删除了。

再次使用 Mycat 注释创建该序列。显示执行成功。

但查看存储时,却没有再次生成该配置文件。

这就很奇怪!!!

我分析怀疑是 Mycat 有缓存导致的,GC 没及时清理,导致误判该序列及配置文件已存在。

下面验证一下:

  1. 重启 Mycat 。

  2. 再次创建该序列。

  3. 查看存储,发现再次创建了该序列的配置文件。

至此,证实了我的猜测。

相关推荐
2301_77355362几秒前
mysql如何优化mysql在多核CPU下的性能_调整线程并发数
jvm·数据库·python
code_pgf2 分钟前
sqlite数据库cmakelist.txt编译
数据库·sqlite
a9511416424 分钟前
PHP如何批量处理AI请求_队列系统搭建【技巧】
jvm·数据库·python
sinat_383437365 分钟前
如何实现SQL简单数据的映射查询_使用CASE表达式替换
jvm·数据库·python
2401_835956815 分钟前
JavaScript 中实现基于分组的前端产品筛选功能
jvm·数据库·python
阿里巴巴首席技术官6 分钟前
SQL日志显示优化原创分享
数据库·sql
m0_746752307 分钟前
SQL中窗口函数的LIMIT限制逻辑_如何分页显示
jvm·数据库·python
m0_514520577 分钟前
Go语言怎么做自动补全_Go语言CLI自动补全教程【经典】
jvm·数据库·python
m0_7478545213 分钟前
php怎么使用PHP PM热重启_php如何零停机更新生产环境代码
jvm·数据库·python
cyber_两只龙宝13 分钟前
【Oracle】Oracle数据库的登录验证
linux·运维·数据库·sql·云原生·oracle