Klustron 0.9 Release Notes
Klustron 0.9 Release Notes
1 New Important Features
1.1 Klustron Bootstrap Server
#672 bootstrap a single machine
These servers can now be used to install Klustron clusters via XPanel or cluster_mgr.
1.2 cluster_mgr Task Execution Framework
Used to assign, issue, and execute cluster management tasks concurrently, and to asynchronously and non-blocking obtain task execution results. Learn more.
#673 cluster_mgr Task Execution Framework provides interface for cleaning up rollback tasks.
1.3 Cluster Management
Cluster management is implemented by cluster_mgr and node_mgr, including node installation, uninstallation, start-stop, shard addition, replica machine redo, master-slave switch, backup and recovery, scaling, etc. Learn more.
cluster_mgr forms a high-availability cluster, and the cluster master node is responsible for executing cluster management tasks and synchronizing internal status updates with cluster slave nodes. Each cluster node persistently saves its internal state.
1.4 Fullsync HA
Monitors the running status of each shard's master node by cluster_mgr and node_mgr, and initiates leader election and master-slave switch after the master node fails. Learn more.
1.5 Fullsync
Implements a strong synchronous waiting mechanism in storage nodes to ensure that any prepare/commit command is confirmed successful by computing nodes only after receiving sufficient slave ack. Used in conjunction with cluster_mgr to achieve Fullsync HA and financial-level data strong consistency. Learn more.
1.6 MySQL Connection Protocol
Implemented basic functionality of MySQL connection protocol, including user/password authentication, connection status establishment, text protocol statement sending and result return, as well as MySQL character escaping rules, (single/double/back)quote rules, and MySQL autocommit transaction and implicit transaction initiation and submission rules. Learn more.
#619 MySQL protocol basic features
#807/808 alloc listening port for mysql protocol
#867/868/869 Different character escaping
#875 Some issues with lexical analysis
#877 Backslash is not treated as regular text
#881 Lexical analysis
#874 No prompt between repeated inputs of begin
#906 Core appears in select statement in mysql protocol
1.7 Cluster Physical Backup and Recovery
1.8 Cluster Scaling
1.9 Other Features
#872 Support syntax to directly access shard
2 Internal Features and Optimizations
#622 Maintain Klustron-server state when deleting a storage shard or storage node
#645 Compare topology metadata for changes periodically and update local meta tables
#678 Machine initialization suite, deploy metadata cluster, directory separation
#679 Streamline machine initialization suite
#685 node_mgr installs instance template package without decompressing or moving so files in libs/deps
#696 Connect to Klustron-server and Klustron-storage using unix socket
#693 Install instance starting port should be placed in node_mgr's configuration file instead of cluster_mgr's configuration file
#696 Connect to Klustron-server and Klustron-storage using unix socket
#918 Slave apply binlog can skip event in xa_trx
3 Important Bug Fixes
#631 Querying the file is scanned repeatedly, resulting in a huge gap
#655 Problems related to "on conflict () ...do update"
#674 No error is thrown when the length is less than zero
#720 Differences between function and ORDINALITY
#730 OFFSET does not function properly
#736 Heartbeat event log_pos may overflow and causes IO thread to stop
#741 Column with serial unique added does not start from 1
#743 Support lateral join pushdown
#762 UTC and CST time zones are automatically adjusted
#790 Difference between ~bit bitwise inversion and bit<< bitwise left shift
#791 Fix the binlog_backup plugin broken pipe failure
#792 Fix coredump of the mysqlbinlog flashback when xa_commit event is the startpoint
#794 Issue with PREPARE...EXECUTE... syntax
#795 Money type can be inserted but produces an error when selected beyond its range
#831 Error in using constants with GROUP BY...ORDER BY
#806 clustermgr create cluster, then clustermgr switch master/slave
#836 Inconsistent results when merging partitions in hash partitioned tables
#845 Restore thread_local variables before and after bg_task_purge_binlog
#845 Combining values does not have matching column names
#885 Support mysql variable select stmt
#889 Fullsync condition may be different during fullsync wait
#936 Syntax error output is different from expected output
#254 Sort column returned when it's not in target list
#288 Cannot update partition key of a remote relation
#297 Whole-row references are disallowed but successful
#305 Different column names are displayed
#306 Circular dependence of subquery as select items with upper level RemoteScan
#415 Number of updates displayed is inconsistent
#330 String trim function mapping and conversion needed
#417 Cannot grant on temporary object
#422 Sorting is different for select ...EXCEPT.../INTERSECT...select...
#564 Different behavior from official pg when converting timestamp without timezone to timestamp with timezone
#603 The generated scan expression cannot be pushed down
#612 Parallel with parallel-aware hash join
#621 The value referenced when updating in a temporary table is different from the value returned by RETURNING