沉潜蓄势,厚积薄发:StoneDB-5.7-V1.0.4 版本正式发布!特性增强,稳定性大幅提升


很高兴向大家宣布,StoneDB-5.7-V1.0.4 版本今天正式发布了!自三月份发布 1.0.3-GA 版本后,我们的研发同学把大量的精力投入到了 1.0.4 版本的研发中,在本次版本中,我们对 StoneDB 的稳定性做了大幅的优化提升,新增了一些实用特性并修复了一批已知Bug,欢迎大家前往 Github/Gitee 下载体验:

Github:

https://github.com/stoneatom/stonedb/releases/tag/5.7-v1.0.4-alpha

Gitee:

https://gitee.com/StoneDB/stonedb/releases/tag/5.7-v1.0.4-alpha

当然,从上游讯息和未来趋势上看,MySQL 5.7 版本的生命周期已经接近尾声(存量市场是否会被快速迭代有待观察,不过增量市场势必会用新、用好、用低成本、用高效能),所以,StoneDB 团队在过去的一年里除了积极做 5.7 版本的存量市场,我们其实很早就开始布局了 8.0 的版本规划,在今年的 6 月初,我们就顺利地发布了 StoneDB-8.0-V1.0.1 版本,后续的研发重点也会逐渐以 8.0 为主替代 5.7 的主干开发位置,同步上游,持续增强 AP 能力,顺势而行,满足更多的增量市场需求。以下,是本次版本的发布日志:

Release Notes for StoneDB-5.7-V1.0.4-alpha

定性

  1. 修复在导入数据时候,增量数据导致的 crash(「#1805」)

  2. 修复在 union all 字句结果集导致的 crash(「#1875」)

  3. 修复在大数据量情况下使用聚合函数导致的 crash(「#1855」)

  4. 修复主从复制下的内存溢出导致的 crash(「#1549」)

新特性

2.1  支持 insert/update ignore 语法特性

当更新 Tianmu 时候,对于主键冲突的记录将被跳过,然后执行后续的更新操作。例如:

CREATE TABLE t1  (id int(11NOT NULL auto_increment,parent_id int(11DEFAULT '0' NOT NULL,level tinyint(4)
DEFAULT '0' NOT NULL, PRIMARY KEY (id)) engine=tianmu;
INSERT INTO t1 VALUES (3,1,1),(4,1,1);

执行 update ignore t1 set id=id+1; 语句会忽略  PK=3  的更新,因为更新后的主键会与  PK=4 冲突。继续执行 PK=4 的更新,更新后 PK=5。

mysql>  CREATE TABLE t1  (id int(11NOT NULL auto_increment,  parent_id int(11DEFAULT '0' NOT NULL,  level tinyint(4)
    ->  DEFAULT '0' NOT NULL, PRIMARY KEY (id)) engine=tianmu;
Query OK, 0 rows affected (0.01 sec)

mysql>  INSERT INTO t1 VALUES (3,1,1),(4,1,1);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> update t1 set id=id+1;
ERROR 1062 (23000): Duplicate entry '4' for key 'PRIMARY'
mysql> select * from t1;
+----+-----------+-------+
| id | parent_id | level |
+----+-----------+-------+
|  3 |         1 |     1 |
|  4 |         1 |     1 |
+----+-----------+-------+
2 rows in set (0.00 sec)

mysql> update ignore t1 set id=id+1;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from t1;
+----+-----------+-------+
| id | parent_id | level |
+----+-----------+-------+
|  3 |         1 |     1 |
|  5 |         1 |     1 |
+----+-----------+-------+
2 rows in set (0.00 sec)

2.2 ROW 格式支持 Load 语句转换为 write row

当 StoneDB 作为主机时候,Load 语句将以 insert into 的方式被写进 binlog。

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#230630 10:50:51 server id 1end_log_pos 123 CRC32 0x050a2c27 	Start: binlog v 4, server v 5.7.36-StoneDB-v1.0.1.42e5a3ad4 created 230630 10:50:51 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
C0OeZA8BAAAAdwAAAHsAAAABAAQANS43LjM2LVN0b25lREItdjEuMC4xLjQyZTVhM2FkNAAAAAAA
AAAAAAAAAAAAAAAAAAALQ55kEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AScsCgU=
'/*!*/;
# at 123
#230630 10:50:51 server id 1end_log_pos 154 CRC32 0x3407f97c 	Previous-GTIDs
# [empty]
# at 154
#230630 10:50:51 server id 1end_log_pos 219 CRC32 0x1631cab7 	Anonymous_GTID	last_committed=0	sequence_number=1	rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#230630 10:50:51 server id 1end_log_pos 334 CRC32 0x1b721a4f 	Query	thread_id=2	exec_time=0	error_code=0
use `test`/*!*/;
SET TIMESTAMP=1688093451/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create table t1(id int, name varchar(10))
/*!*/;
# at 334
#230630 10:50:51 server id 1end_log_pos 399 CRC32 0x092fa235 	Anonymous_GTID	last_committed=1	sequence_number=2	rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 399
#230630 10:50:51 server id 1end_log_pos 471 CRC32 0x417b2366 	Query	thread_id=2	exec_time=0	error_code=0
SET TIMESTAMP=1688093451/*!*/;
BEGIN
/*!*/;
# at 471
#230630 10:50:51 server id 1end_log_pos 519 CRC32 0x563c6d07 	Table_map: `test`.`t1` mapped to number 108
# at 519
#230630 10:50:51 server id 1end_log_pos 580 CRC32 0x99df1dba 	Write_rows: table id 108 flags: STMT_END_F
BINLOG '
C0OeZBMBAAAAMAAAAAcCAAAAAGwAAAAAAAEABHRlc3QAAnQxAAIDDwIKAAMHbTxW
C0OeZB4BAAAAPQAAAEQCAAAAAGwAAAAAAAEAAgAC//wBAAAAB0FBQUFBQUH8AgAAAAdCQkJCQkJC
uh3fmQ==
'/*!*/;
### INSERT INTO `test`.`t1`
### SET
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
### @2='AAAAAAA' /* VARSTRING(10) meta=10 nullable=1 is_null=0 */
### INSERT INTO `test`.`t1`
### SET
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
### @2='BBBBBBB' /* VARSTRING(10) meta=10 nullable=1 is_null=0 */
# at 580
#230630 10:50:51 server id 1end_log_pos 611 CRC32 0x8ee952db 	Xid = 3
COMMIT/*!*/;
# at 611
#230630 10:50:51 server id 1end_log_pos 676 CRC32 0x5d2a5859 	Anonymous_GTID	last_committed=2	sequence_number=3	rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 676
#230630 10:50:51 server id 1end_log_pos 791 CRC32 0x929d7148 	Query	thread_id=2	exec_time=0	error_code=0
SET TIMESTAMP=1688093451/*!*/;
DROP TABLE `t1` /* generated by server */
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

2.3  支持  AggregatorGroupConcat  函数

mysql> select GROUP_CONCAT(t.id) from sequence t;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GROUP_CONCAT(t.id)                                                                                                                                                                         |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 3000000000010000,3000000000010001,3000000000010002,3000000000010003,3000000000010004,3000000000010005,3000000000010006,3000000000010007,3000000000010008,3000000000010009,3000000000010010 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

2.4  支持  uion/union all  中使用  select 111  或者  select 111 from dual  场景

mysql>  select id from tt union all select 2222 c1 from dual;
+------+
| id   |
+------+
| 1111 |
| 2222 |
+------+

mysql>  select id from tt union all select 2222 ;
+------+
| id   |
+------+
| 1111 |
| 2222 |
+------+

-- PS:select 111( from dual) 出现位置非第一子句位置

其他  Bug fixs

  1. 修复主备场景下,新增列默认值问题(「#1187」)

  2. 修复 derived table 中使用 case...when... 结果集不正确问题(「#1784」)

  3. 修复类型为 TIME 时候,位操作时由于精度丢失导致结果不正确问题(「#1173」)

  4. 修复类型为 BIGINT 时候,由于类型溢出导致查询结果不正确问题(「#1564」)

  5. 修复当过滤条件为十六进制时候,结果不正确问题(「#1625」)

  6. 修复使用 load 命令导入数据时候,表上缺省值未生效问题(「#1865」)

  7. 修改 load 命令默认字段分隔符,使其与 MySQL 行为一致(「#1609」)

  8. 修复由于元数据异常导致,查询错误(「#1822」)

  9. 修复自动提交被关闭导致数据无法写入的问题(「#1510」)

  10. 提升 GitHub 上 MTR 稳定性,完善代码覆盖率测试流程。

支持平台

  • CentOS 7.6  以上

  • Ubuntu 20


相關推薦

2022-10-11

设施的开源操作系统,openEuler 22.09是社区构建的最新创新版本,充分释放多样性算力,深化全场景创新,实现欧拉与鸿蒙的互联互通。作为社区捐赠后的首个创新版本,openEuler 22.09 持续迸发创新活力,版本全量代码已达 6.7 亿行

2023-02-15

Gateway 使用下的响应式路由操作。 修复了一些bug,提升稳定性。 欢迎大家使用体验、Star、Fork、Issue,也欢迎大家参与 Spring Cloud Tencent 开源共建! 仓库地址:https://github.com/Tencent/spring-cloud-tencent 项目文档:https://github.com/Te

2023-12-30

对系统负载几乎没影响,有效提高InnoDB引擎运行时性能的稳定性。更详细内容参考:异步删除InnoDB大表。 提升InnoDB PQ能力,支持TPC-H Q21查询优化能力。 更多信息详见文档:高性能。 高兼容 从GreatSQL 8.0.32-25版本开始

2023-07-13

决海量日志数据存储给系统带来存储成本高、以及性能和稳定性问题。 另一方面,在运维领域存在许多高基数问题的场景,为此,openGemini研发了高基数存储引擎,使用更合适的数据聚簇、排序方式,并通过构建基数无关的稀疏

2023-08-09

作为一款开源的文本排版工具,Typst 在近日发布了 0.7 大版本,带来多项重要更新,极大提升了 Typst 在文本排版和文档生成等方面的能力。本次更新既增加了多种新功能,也在细节处进行了改进完善。新版本在文本布局方面做出

2023-07-19

ithub.com/seata/seata/issues/1246 Seata 1.7.0 定位为Seata重要的稳定性版本,大幅提升稳定性和鲁棒性,满足企业级大规模生产可用需求。同时对  native image 做了探索。 对现存的issue进行了深度的跟踪和解决。 对 JDK(8,11

2023-12-19

本提交了超过 1000 个功能优化项以及问题修复,为性能及稳定性提升做出重要贡献。 GitHub下载:https://github.com/apache/doris/releases 官网下载页:https://doris.apache.org/download/ 新增特性 自动统计信息收集 统计信息是 CBO 优化器进行

2023-11-16

NET 8 已正式 GA。 微软称 .NET 8 提供了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发者的工作效率和创新速度。 比如 .NET 8 为 Android 和 WASM 引入了全新的 AOT 模式、改进 System.Text.Json,以及

2023-09-23

AI辅助加速应用创新 OpenTiny作为开源的跨端、跨框架、跨版本企业级前端组件方案,可以帮助开发者快速构建极致体验的云原生应用。在本次大会中,邓明昆正式对外发布了低代码开发引擎子项目TinyEngine。 TinyEngine低码引擎通

2022-06-04

OpenSearch 2.0 现已正式发布!此版本融合了来自整个 OpenSearch 社区的用户反馈和贡献,以提供大量新功能和性能增强。我们非常感谢社区为构建分布式搜索和分析工具集而做出的协作努力,这些工具集具有开发人员可以依赖的功能

2023-07-05

离? 如何保证复杂 SQL 语句执行的高效性、大查询的稳定性以及执行过程的可观测性? 如何更便捷地集成与访问数据湖以及各种异构数据源? 如何在大幅降低数据存储和计算资源成本的同时兼顾高性能查询? ……

2022-05-08

,同时 GCC 12.1 也已正式发布,GCC 12.1 是一个重要的功能版本,包含新的 C/C++ 功能到 Fortran 和 Ada 等其他语言的持续工作,支持跨多个架构的最新 CPU 和 ISA 功能,并推进 GCC 的最新功能如内置静态分析器和 JIT 库。 GCC 12.1 的一些

2022-11-04

ceanBase 4.0经历了内外部客户的场景测试与真实业务场景的稳定性打磨。 云栖大会上被宣布正式上线的OceanBase 社区版 4.0与企业版拥有同等性能。测试环境最小支持2C8G,生产环境最小支持4C16G,在性能上有大幅提升。经测试,Ocean

2023-07-15

PingCAP 联合创始人兼 CTO 黄东旭 无论技术世界如何变化,稳定性、性能、高可用、易用性与工具生态,一直都是用户对数据库的重要诉求。PingCAP 联合创始人兼 CTO 黄东旭在“面向未来的数据库”的主题演讲中指出,下一代数据