Hi all, This is my second attempt to get some feedback on our work on the mysqlnd_ms PECL extension.
My name is Sergio Tabanelli and I work in a LAMP team for a big Italian company, the team manages about 100 small LAMP intranet applications. Two years ago we decide to pass from stand-alone MySQL servers to async MySQL clusters. Our initial thought was to use the mysqlnd_ms plugin (the objective was to avoid application changes) but we realize soon that the mysqlnd_ms missed some functionalities in maintenance and read and write consistency fields, specially considering new functionalities added to latest MySQL versions, like multi-source replication, GTID tracking and Group Replication, last but not least the plugin appears to be not maintained by several years. So we port this extension to php 7.x, official PECL extension works only with php < 5.6, and add new cool functionalities among witch native MySQL GTID read/write consistency with mutimaster write consistency included, for this check my gist at https://gist.github.com/sergiotabanelli/ce992b630d08a0bc7a9cec7c577638f5. With our new version we have now our applications deployed on MySQL multimaster group replication clusters, and this without any changes to our legacy code! So .... I am asking to PECL developers if it is possible, and if yes what we should do, to merge our work to the PECL actual mysqlnd_ms extension, start maintaining it and make it official with some kind of php imprimatur. We also start changing the original documentation adding new functionalities descriptions. The code can be found here https://github.com/sergiotabanelli/mysqlnd_ms <https://github.com/sergiotabanelli/mymysqlnd_ms> , a brief description follows: * PHP7.x porting * New QOS session consistency and transaction id injection * Server side read consistency (mysql >= 5.7.6 with --session-track-gtids=OWN_GTID) - Mysql native built-in read consistency - PHP session_id read consistency enforcing * Server side write consistency (mysql >= 5.7.6 with --session-track-gtids=OWN_GTID) - Multi master write consistency - Multi master write consistency logical partitions * Client side read consistency - Distinct master connection for client side read consistency and gtid injection - Client side transaction id injection with memcached mysql plugin * Simple client side write consistency - Multi master write consistency - Multi master write consistency logical partitions * New config_dir ini directive for connection based json config files * New master_on ini directive for rw splitting * New inject_on ini directive for transcation id consistency tracking/injection * New mysqlnd_ms_set_trx and mysqlnd_ms_unset_trx php functions for application based transaction tracking Best regards Sergio