Skip to main content

Release Notes

StoneDB-8.0-V2.1.0

Release date: October 31, 2023

New Features

  1. Support for transactions.
  2. Support for master-slave replication.
  3. Support for commonly used built-in functions.
  4. Support for stored procedures, temporary tables, views, triggers, and other objects.

Bug Fixes

  1. The current thread cannot see the synchronized data and must log out and log in again to see the synchronized data.
  2. Query returns the error message "Current transaction is aborted (please ROLLBACK)".
  3. Pagination query result set error.
  4. After killing a thread, the database cannot be closed.
  5. After exiting the MDL metadata lock wait, querying the relevant table again returns an error and it is not possible to delete the table.
  6. Querying another library's tables in the current library returns an error.
  7. Subquery returns a single row of data, using 'in' returns the correct result set but '=' returns the incorrect result set.

Stability Improvements

  1. Handling of NULL values under master-slave replication.
  2. Fixing crashes caused by ifnull and nullif.

StoneDB-8.0-V2.0.0

Release date: September 25, 2023

New architecture

  1. StoneDB is the industry's first open-source, integrated MySQL real-time HTAP database with a row-columnar in-memory computing architecture.
  2. The product is positioned against Oracle HeatWave. Users of MySQL do not need to migrate data. With StoneDB, they can achieve TP+AP mixed workloads, analyze performance improvements of over 100 times, and do not need to integrate with other AP solutions. It fills the gap in MySQL's analytical capabilities.
  3. StoneDB is a new generation of enterprise-grade real-time HTAP database, 100% compatible with the MySQL protocol, capable of storing 100TB, supporting 10,000 concurrent operations, with 70% of the workload in TP scenarios and 30% in AP scenarios. By enhancing AP, it aims to achieve self-controlled TP capabilities and target the vast market of MySQL information technology upgrades and replacements.

New features

  1. StoneDB 2.0 provides real-time online transaction support and data analysis capabilities. While supporting TP transactions, it also supports a built-in AP engine that is transparent to users, providing high performance in billion-scale data join scenarios, with a speedup of 100 to 1000 times compared to MySQL.
  2. It supports DDL statements such as create/alter table/drop table.
  3. It also supports commands such as insert/update/load data to update data in real-time.

StoneDB-5.7-V1.0.4-alpha

Release date: June 30th,2023

Stability:

  1. Fixed a crash caused by incremental data when importing data #1805
  2. Fixed a crash caused by the result set of the union all clause, #1875
  3. Fixed a crash caused by using aggregate functions in large data scenarios, #1855

New features

2.1. Support for update ignore syntax feature.

When updating tianmu, records with primary key conflicts will be skipped and subsequent update operations will be performed. For example:

CREATE TABLE t1  (id int(11) NOT NULL auto_increment,  parent_id int(11) DEFAULT '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);

Executing the update ignore t1 set id=id+1; statement will ignore the update of PK=3, because the updated primary key will conflict with PK=4. Then continue to execute the update of pk=4, and the updated PK=5.

mysql>  CREATE TABLE t1  (id int(11) NOT NULL auto_increment,  parent_id int(11) DEFAULT '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 Support row format for “load data” statement.

When stonedb is used as the primary database, the load statement will be executed on the backup database in the form of “insert into”.

2.3 Support AggregatorGroupConcat function

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 Support using select 111 or select 111 from dual scenarios in uion/union all

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) appears in a position other than that of the first clause

Others Bug fixs

  1. Fix the default value problem of adding columns in the master and slave scenarios. #1187
  2. Fix the incorrect result set problem when using case…when in derived table. #1784
  3. Fix the incorrect result problem caused by precision loss when performing bit operations when the type is time. #1173
  4. Fix the incorrect query result problem caused by overflow when the type is bigint. #1564
  5. Fix the incorrect result problem when the filter condition is hexadecimal. #1625
  6. Fix the problem that the default value on the table did not take effect when importing data using the “load data” command. #1865
  7. Modify the default field separator of the load command to make it consistent with mysql behavior. #1609
  8. Fix the query error caused by abnormal metadata. #1822
  9. Improve MTR stability on github.

What's Changed

New Contributors

Full Changelog: https://github.com/stoneatom/stonedb/compare/5.7-v1.0.3-GA...5.7-v1.0.4-alpha

StoneDB-5.7-V1.0.3

Release date: March 20th,2023

  • Reconstructed the binlog mechanism to filter out DDL statements that are not supported by the Tianmu storage engine.
  • Added an argument named NO_KEY_ERROR for SQL mode to directly skip DDL statements that are not supported by the SQL layer, instead of reporting errors.

Syntax:

# At global level:
mysql>set global sql_mode='NO_KEY_ERROR';

# At session level:
mysql>set session sql_mode='NO_KEY_ERROR';

# Configuration file my.cnf:
[mysqld]
sql_mode = 'NO_KEY_ERROR'

Ecosystem Adaptation

Better adapted to the ecosystem to display the version number of StoneDB.

Perfomance

Improved the primary/secondary synchronization performance. #1213

Bug Fixes

The following bugs are fixed:

  • Incorrect result is returned when an ALTER TABLE statement is executed to add a TIMESTAMP field. #1327
  • Incorrect result is returned for an UPDATE operation on a table after it is modified by an ALTER TABLE statement. #1253
  • Incorrect result is returned for a query on BIGINT data that is unsigned. #1203
  • An error is reported when a statement is executed to load data. #1209
  • The result returned for an AVG function call is incorrect. #1125
  • An error is reported when an ALTER TABLE statement is executed to change the data type of a field. #752
  • Other bugs. #103#1230#1255#1188#1262

Supported OSs

  • CentOS 7.6 and later
  • Ubuntu 20

For more details on the update, please visit Github and Gitee.

StoneDB-5.7-V1.0.2

Release date: January 15,2023

New features

  • Supports user-defined functions
  • Supports ESCAPE
  • Supports Primary key and Supports syntactically index constraints
  • Supports modifying the character set of table or field
  • Supports BIT data type
    • Supports Creation, change and deletion
    • Supports logical operation
  • Supports replace into statement
  • Supports syntactically unsigned and zerofill
  • Sql_mode add value 'MANDATORY_TIANMU' for mandatory Tianmu engine in table
    • The following statement demonstrates the syntax:

# Global level
mysql>set global sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MANDATORY_TIANMU';

# Session level
mysql>set session sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MANDATORY_TIANMU';

#Set my.cnf parameter file
[mysqld]
sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,MANDATORY_TIANMU'

Accessibility

  • Automatic detection and identification of installation package
  • Rapid deployment of StoneDB as an analytical database for MySQL

Stability

  • Enhanced the stability as an analytical database

Bug Fixes

The following bugs are fixed:

  • The GROUP_CONCAT() function return result set error #938
  • Bugs when use LIKE in WHERE #1162 #1157 #763
  • Bugs when use Primary key with AUTO_INCREMENT #1144 #1142
  • ALTER table..ADD numeric column, return error#1140
  • Clang-format execute failed in CI/CD#973
  • INSERT INTO table error, but some data can be inserted successfully#965
  • Query with UNION ALL return result set error #854
  • The EXTRACT() function error #845
  • Select...in...An error was reported when the date was included #829
  • Update multiple values does not work with WHERE IN clause #781
  • The syntax of the exists subquery in the TIANMU layer is compiled after the rule is incorrect, and the semantics is modified #732
  • MTR binlog.binlog_unsafe Crash #341
  • The other BUG #682 #553 #508

Behavior Change

Using the Shell script for rapid deployment of StoneDB as an analytical database for MySQL, parameter sql_mode default add value of MANDATORY_TIANMU to enable the mandatory TIANMU engine

Platforms

  • CentOS 7.6 or obove
  • Ubuntu 20

Others

  • Add more MTR test cases

StoneDB-5.7-V1.0.1

Changes in StoneDB_5.7_v1.0.1 (2022-10-24, General Availability)

  • Functionality Added or Changed
  • Compilation Notes
  • Document Notes
  • Bugs Fixed

Functionality Added or Changed

  • Tianmu: From StoneDB_5.7 v1.0.1, you can use delete statement to clear some data you don't need.
delete from table1;
delete from table1, table2, ...;
delete from table1 where ...;
delete from table1, table2, ... where ...;
  • Tianmu: From StoneDB_5.7 v1.0.1, you can use alter table statement to modify the table structure as you need.
alter table tablename
  • Tianmu: Binlog replication supported ROW format;
binlog_format = ROW
  • Tianmu: Added temporary table function;
CREATE TEMPORARY TABLE IF NOT EXISTS tablename
  • Tianmu: From StoneDB_5.7 v1.0.1, you can create a trigger. The trigger is a named database object that is associated with a table, and that activates when a particular event occurs for the table.
create trigger triggername
  • Tianmu: Added Create table AS... union... statement;
  • Tianmu: The Tianmu engine improved the performance of subqueries;
  • Tianmu: Added gtest module;
  • Tianmu: Added some mtr test cases;

Compilation Notes

  • Added cmake parameter configuration for build
cmake  .. -DWITH_MARISA  -DWITH_ROCKSDB

Document Notes

StoneDB-5.7-V1.0.0

Changes in StoneDB_5.7_v1.0.0 (2022-08-31, General Availability)

  • Support for MySQL 5.7
  • Functionality Added or Changed
  • Compilation Notes
  • Configuration Notes
  • Document Notes
  • Bugs Fixed

Support for MySQL 5.7

  • Important Change: The Tianmu engine supports MySQL 5.7,base line edition MySQL 5.7.36. This change applies to the StoneDB database which would be fully compatible with the MySQL 5.7 protocols.

Functionality Added or Changed

  • Important Change: The engine name has been changed to tianmu. StoneDB is used as a HTAP database name, it is not suitable for used both as an engine name. As the dissusion result, we choose tianmu as our new eninge name:
mysql> show engines;
+----------------+---------+--------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+----------------+---------+--------------------------+--------------+------+------------+
| TIANMU | DEFAULT | Tianmu storage engine | YES | NO | NO |
+----------------+---------+--------------------------+--------------+------+------------+
  • Tianmu: Improved the aggregation capabilities of the decimal data type.

  • Tianmu: Improved the readability of code. The code does not spererate logically, or the variables name can not be understooed by the literal meaning. To refactor code make it more readable to anyone who are the first to read that. For example: Changes int DoGetSomething(); to int GetSomethingXXX();, int GetNoNulls() to int GetNumOfNulls().

  • Tianmu: The date-related functions (such as DATE_ADD, DATE_SUB) can be queried (DATE_ADD|DATE_SUB) when creating view using the date func.(BUG #342)

Compilation Notes

  • The version of the Boost library for server builds is now 1.66.0.

  • The version of the Rocksdb for server builds is now 6.12.6.

Configuration Notes

  • Important Change: Changed default config file stonedb.cnf to my.cnf. (feature #182)

  • Important Change: Use tianmu as the default storage engine. (feature #255)

Document Notes

  • The manual has been updated as the code was modified. ( # address)

Bugs Fixed

StoneDB-5.6-V1.0.0

Release time: June 30, 2022