Mycat2

MySQL Proxy using Java NIO based on Sharding SQL,Calcite ,simple and fast

GPL-3.0 License

Stars
1.7K
Committers
18

Bot releases are hidden (Show)

Mycat2 - Latest Release

Published by junwen12221 over 2 years ago

1.修复native模式update/insert发生出现阻塞的问题
2.优化blob接收逻辑
3.修复存储过程只能接收一个结果集的问题
4.支持设置Mycat会话的网络缓冲区
5.修复下推全局表后,数据分片中的分片条件丢失的问题
6.优化字段的非空属性判断逻辑
7.修复某些情况忽略主从心跳异常导致主从切换失败
8.支持SQL类型的权限拦截
9.修复单表路由(HackRouter)出现duplicate key错误
10.自动检查不活动的后端连接并回收
在datasource.json的removeAbandonedTimeoutSecond控制,默认180秒,不活动(没有sql操作)自动回收
11.支持clickhourse后端数据源(打包内置),使用的驱动是

ru.yandex.clickhouse
clickhouse-jdbc
0.3.2

xx.datasource.json
{
"dbType":"clickhouse",
"type":"JDBC",
"url":"jdbc:clickhouse://192.168.28.128:8123"
...
}
clickhourse后端数据源只支持select语句和insert语句,没有自增值返回
12.修复HTTP实现的分片算法,使用截断表语句,失效
13.修复使用native模式,出现ArrayStore异常
14.修复BKAJOIN报错
15.提供基于HTTP调用实现的分片算法(测试)
16.修复涉及BKAJOIN回表的情况下,生成的sql条件会全表扫描
17.修复生成sql带有重复字段,导致查询报错#706
18.升级BKAJOIN的条件生成算法,支持更多条件下推
19.修复涉及回表的情况下,行类型不匹配,全局二级索引没有生效
20.分片表支持1<col and col < 10 范围查询
21.修复全局索引表数量大于1的时候,无法使用全局索引表
22.修复BKAJOIN执行计划报错以及优化BKAJOIN的执行计划生成
23.新增全局表自增序列号的插入的三种方式
24.支持设置会话粘滞时间
25.user.json配置支持rsa加密(zyw提交代码)
26.修复drop表,在自动加载单表的情况下,需要执行两次
27.修复spm初始化的时候报编码错误
28.修复单表路由处理with子句的时候报错#697
29.完善drop表的功能(深圳-木先生-测试报告)
30.修复分片表不写分片条件或者全表扫描的时候,使用mysql index hint生成的sql错误#695
31.修复mycat库下的表没有主键,导致某些集群类型无法同步#698
32.完善drop逻辑表,这个版本之后会删除存储节点的数据
33.完善alter语句,支持自定义分片算法的分片表,自定义存储节点的单表/全局表,但不支持全局二级索引表
34.添加mysql后端连接泄露检查的功能(见数据源配置)
35.修复xa事务在不涉及跨库事务的情况下升级到了xa事务的问题(proxy事务没有影响)
36.修复xa事务在不跨库事务下保留了后端连接,导致读写分离失败以及后端连接因为长时间不活动被mysql关闭后,出现mycat的旧连接没有响应的情况(proxy事务没有影响)
37.添加若干个用于检查连接泄露的debug级别日志
该版本合拼了1.22分支的代码与1.22没有区别
38.支持会话粘滞
39.支持PHP-Admin(可能遇到获取不了表的情况,可以改动PHP-Admin的源码实现过滤没有表名)
40.完善全局序列号,null和0值的替换为自增值
41.修复PHP-Admin执行
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA, (SELECT DB_first_level FROM ( SELECT DISTINCT SUBSTRING_INDEX(SCHEMA_NAME, '', 1) DB_first_level FROM INFORMATION_SCHEMA.SCHEMATA WHERE TRUE ) t ORDER BY DB_first_level ASC LIMIT 0, 100) t2 WHERE TRUE AND 1 = LOCATE(CONCAT(DB_first_level, ''), CONCAT(SCHEMA_NAME, '_')) ORDER BY SCHEMA_NAME ASC;
42.修复回滚事务或者强制放弃druid jdbc连接有可能连接泄露,主要原因是druid强制放弃连接没有关闭连接
43.修复偶然回滚事务发生空指针错误导致连接泄露
44.修复TBPARTITION BY RIGHT_SHIFT 分表不均匀 #682
45.修复TBPARTITION BY RIGHT_SHIFT 分表不均匀 #682
46.insert语句的duplicate子句不限制表达式#678
47.分片表与全局二级索引表的insert语句支持duplicate子句
48.修复分片表describe 逻辑表在sqlyog报错
49.修复update语句对全局二级索引表没有进行set列剪裁以及出现参数化错误#673
50.修复show databases,使用单表覆盖information.schemata表,出现语法错误
51.修复全局二级索引使用二级索引字段报错#668
52.修复show databases,使用单表覆盖information.schemata表,出现语法错误
53.修复全局二级索引使用二级索引字段报错#668
54.修复虚拟表information.tables/information.columns因为生成的建表语句的库名表名带有关键字而不带``导致解析错误,这个错误不影响正常使用

  1. fix the blocking problem in the native mode update/insert
  2. optimize blob receiving logic
  3. fix the problem that the stored procedure can only receive one result set
  4. support setting the network buffer of MYCAT session
  5. fix the problem of missing sharding conditions in data sharding after the global table is pushed down
  6. non empty attribute judgment logic of optimized fields
  7. fix some cases where the master-slave handover fails due to ignoring the abnormal heartbeat of the master-slave
  8. support SQL type permission interception
  9. duplicate key error occurs when repairing the hackrouter
  10. automatically check inactive back-end connections and recycle
    In datasource The removeabandonedtimeoutsecond control of JSON is 180 seconds by default. Inactivity (no SQL operation) is automatically recycled
  11. support clickhour back-end data sources (packaged and built-in). The driver used is
Mycat2 - v1.21-2022-4-7

Published by junwen12221 over 2 years ago

1.fix union all rewriting sql has error
2.support fullTableScanLimit
3.improve condition analyse
4.support C# client
5.supoort select dual push down
6.fix select 'x' alias wih ''
7.update guava to 31.0.1-jre
8.update mysql-connector-java to 8.0.25
9.update fastjson to 1.2.79
10.fix wrong lastMessage
11.support HAProxy ProxyProtocol
12.support fullTableScanException
13.remove unused jar
14.fix maven package
15.support slb
16.fix prerpare command reveives wrong date value
17.improve backend connection scheduler
18.fix record slow sql has wrong collation
19.support asyncDDL setting
20.fix dist join has died lock
21.add thread hint tool
22.add kill packet command
23.add pushShowOnPrototype setting
24.normal/global table 's delete/update statement supports join datasource
25.fix Colocated push lost mysql hint
26.add PartitionByDateEx function
27.add rewriteInsertBatchedStatementBatch setting
28.add xxx.user.json isolation setting
29.fix
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (23 > -1). You can change this value on the server by setting the max_allowed_packet' variable.
30.improve performance by remove autocommit/isolation in getting backend connection
31.logical database supports '-'' in name
32.shading table sql support json function ->
33.fix SELECT * FROM A WHERE aid IN (SELECT DISTINCT aid FROM B ) B is Sharding table ,aid
is non unique column

Mycat2 - v1.21-2022-2-18

Published by junwen12221 over 2 years ago

1.add more Prometheus exporter info and fix it can not start Prometheus port
2.fix oom
3.fix mycat.sql_log table's sqlTime changed to bigint
4.fix can not rollback transcation when the mycat session closed.

Mycat2 - v1.21-2022-1-24

Published by junwen12221 over 2 years ago

Mycat2 - v1.21-1-17

Published by junwen12221 almost 3 years ago

  1. Exception prompt for adding single table failed
  2. Fix the MHA cluster heartbeat statement error
  3. Explain statement supports displaying collocatedpushdown
  4. Fix the inconsistency between the fields of the back-end pull result set and the MYCAT CREATE TABLE statement. There is no exception prompt, but the empty result set is displayed
  5. Fix the error that the sortjoin optimization rule does not solve the parameterized expression
  6. Support select @ @ foreign_ KEY_ CHECKS,SELECT @@innodb_ file_ per_ table =1; The return values are fixed and used for compatibility with some frameworks
  7. Reconstruct the preprocessing, support sysbanch test, be compatible with the preprocessing statements of MySQL C client, and improve the deprecateeof compatibility
  8. Improve the partition tailoring and push down of < = > semantics
  9. The default JDBC querytimeout is 0
  10. Heartbeat configuration supports the showlog attribute to configure heartbeat log output
  11. Partitionbyprefixpattern / partitionbypattern / partitionbymurmurhash / partitionbyfilemap / autopartitionbylong support mapfile attribute
  12. Ignore the error of XA recoverylog when initializing the database, because XA is not used for read-write separation
  13. Partitionbypattern supports the defaultnode attribute
  14. The condition of update / delete statement supports table Expression for column
  15. Fix the problem that JDBC manager cannot load mongodb driver
  16. Fix the problem of not writing the alias 1054 unknown column in 'where clause' under a single node
  17. You can use SQL to create fragment tables without configuring C0 nodes
  18. Fix the null result set error of show global variables
  19. Failed to repair delete table configuration
  20. Utf8 code is used for repairing and building database, and now it has been changed to utf8mb4 code
  21. The repair meta information table has no built-in parameters
  22. Fix the error that DDL cannot be executed in parallel (#631)
  23. Support lock function
  24. Support virtual tables
  25. Support MYCAT UI
Mycat2 - v1.21-2021-12-17

Published by junwen12221 almost 3 years ago

1.fix MGR cluster
2.make xa recovery that skip readonly connection
3.improve distinct/union/join push down
4.like operator icase insensitive
5.be divorced from prototype server(support visual system table)
6.support for logical view
7.support for physical stored procedures
8.support partition key based push down
9.support savepoint

Mycat2 - v1.20-2021-12-17

Published by junwen12221 almost 3 years ago

fix MGR cluster

Mycat2 - v1.20-2021-12-14

Published by junwen12221 almost 3 years ago

1.adapte dbeaver
2.where id = ,equals not case insensitive
3.support /+mycat:schema=ds2/
4.fix Prometheus
5.fix pstmt use old param
6.fix DATE_SUB
7.fix union all merge resultset
8.support uuid function

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

1.replace simpleLogger to logback ,add kafka connector
2.fix showSlowSql
3.fix createTable hint
4.fix alter column statement
5.support desc schema.table
6.fix hide cast expr occurs Partition clipping failed
7.fix NlsString occurs error route sql

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

1.repair front end connection leaks
2.improve monitor
3.fix replica monitor occurs null exception

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

1.add config forcedPushDownBroadcast = false
2.impr mycat ui
3.fix global table push down

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

1.fix mycat ui
2.support

SET SESSION TRANSACTION READ WRITE

SELECT @@session.transaction_read_only

SET SESSION TRANSACTION READ ONLY

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

fix mycat ui

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

1.fix normal table : wrong table mapping
2.fix insert blob
3.fix PartitionByFileMap support BigInteger
4.improve readXARecoveryLog with instanceType(WRITE)
5.push down count/sum... cease to be effective
6.fix create table to create physical table
7.config:shading =>sharding

Mycat2 - hotfix

Published by junwen12221 about 3 years ago

1.support back connection connects timeout
2.only MySQL type datasources can create tables automatically
3.R/W support update/delete join
4.remove mapdb
5.add SQLCreateFunctionHandler/SQLDropFunctionHandler
6.fix prepare statement execute wrong long value
7.fix alter table statement #558
8.service unavailable due to repair exception 864b86417479568391d464bce19a97297ced5e61
9.support heidisql
10.fix PartitionByMonth,PartitionByHotDate
11.allow nested transactions

Mycat2 - fix bug

Published by junwen12221 over 3 years ago

fix MycatTableLookupSemiJoinRule occurs null exception(BKAJOIN)

Mycat2 - fix bug

Published by junwen12221 over 3 years ago

1.fix Colocated Push Down occurs null exception
2.two layer mapping cannot be used in the same field slicing algorithm
3.support replace statement

Mycat2 - fix bugs

Published by junwen12221 over 3 years ago

1.When the delete update statement is used, it points to the slave node
2.Fix explain insert update
3.Showdatasources show duplicates

Mycat2 - support hint

Published by junwen12221 over 3 years ago

https://github.com/MyCATApache/mycat2
1.19-2021-6-18

Support HINT
Compared with the previous version, some rule-based SQL update technology has been upgraded to cost-based SQL update technology, and LocalRel represents the operation of the storage node while MycatRel represents the operation in Mycat, which is the next step of calculation and storage (separation/storage) Mixed) Use senior analysis to prepare.
Simple support for MySQL index comments, and MySQL comments can be attached to the SQL that generates the index node
Fix kill COMMAND
Improve sharding (on-site sub-database and table with the same algorithm
Fix resultset cache failure
Upgrade connection scheduler
Fix the connection problem of deleting the X log in the XA transaction, and the A connection cannot be released
Fix the problem that the thread pool cannot handle multiple tasks at the same time (performance is greatly improved)
Re-support colocate pushdown, that is, as long as SQL in some cases, such as involving a mysql, an ER group, push down the entire SQL completely, and no longer combine operations in mycat
Fix MycatUnion error
Fix the problem that the execution plan management compiles the SQL template in parallel while compiling repeatedly for the first time

https://github.com/MyCATApache/mycat2
1.19-2021-6-18
schema配置中单表,全局表,分片表的datanode配置名字变更
https://www.yuque.com/ccazhw/ml3nkf/00d1d4fc145edf34b2d13fcd95908722

支持路由注释(读写分离,透传SQL下发,分区剪裁)
与上一个版本对比,部分基于规则的SQL重写技术升级为使用基于代价的SQL重写技术,并引入LocalRel表示存储节点的运算而MycatRel表示Mycat中的运算,为下一步计算与存储(分离/混合)使用代价分析做准备
简单支持MySQL index 注释,可以在生成存储节点的SQL中带有MySQL的索引注释
修复kill命令
完善分片算法(对于相同字段的分库分表,表名默认使用全局物理表下标表示),修复日期类型报错,从旧版本升级的mycat2需要检查配置的数据分布与mysql中的数据分布是否对应
修复结果集缓存失效
升级连接调度器
修复XA事务中删除XA日志的连接偶然出现阻塞导致连接不能释放的问题
修复线程池不能同时处理多个请求任务的问题(性能大大提高)
重新支持colocate push down,即只要SQL在一些情况,比如涉及一个mysql,一个ER组,就会把整个SQL完全下推,不再在mycat里合拼运算
修复MycatUnion报错
修复执行计划管理在第一次编译SQL模板的时候存在并行重复编译的问题

Mycat2 - support SPM

Published by junwen12221 over 3 years ago

Badges
Extracted from project README
Stargazers over time
Related Projects