Kunlun-storage originated from percona-server, currently it's based on percona-server-8.0.26. And it contains fixes to all known XA bugs in MySQL. Without such fixes, Kunlun distributed database cluster will not be crash safe and may lose committed transactions or be harmed by other serious data consistency errors, in the event of various hardware/software/network failures.

Kunlun-storage also contains features required by the computing node program of Kunlun distributed DBMS, and thus Kunlun Distributed Database Cluster requires the use of Kunlun-storage as meta data cluster and storage shards. Finally, we enhanced performance of XA transaction processing, and part of such enhancements are also in this community edition.

To achieve all above, we modified percona-server extensively --- including innodb, binlog recovery, binlog format, thread pool, etc. Despite of such enhancements, the data file format of kunlun-storage is exactly the same as community MySQL and data directory of a kunlun-storage can be used by community MySQL or percona-server, and vice versa. And percona xtrabackup can correctly backup a kunlun-storage data directory and restore it.

The only difference is that kunlun-storage's one binlog event(Previous_gtid_list) format is different from that of community MySQL or percona-server, so one needs to use the mysqlbinlog prgram released in kunlun-storage to decode binlog files produced by kunlun-storage.

We also maintain an enterprise edition of Kunlun distributed DBMS, which contains exclusively all performance enhancements in kunlun-storage and kunlun computing node software. Kunlun enterprise edition has identical functionality as this open source version. And they share the same data file format, WAL(redo) log file format, binlog events format, general log format, slow query log format, and mysqld log format. They also share the same metadata table format in both kunlun-storage and kunlun computing node. Consequently, the data directory of kunlun open source edition and kunlun enterprise edition can be used interchangably.

To install Kunlun-storage database instances, see INSTALL.kunlun.md for instructions.
