Hi all,
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.
Recently 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 the read and write consistency
field, expecially considering new functionalities added to latest MySQL
versions like multi-source replication, GTID tracking and Group
Replication, last but not least the plugin apears to be not mantained by
several years. So we start a fork of the plugin, we have now reached a good
point in development and start planning production migration of our new
infrastructure. 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 mantaining 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/mymysqlnd_ms , a brief description
follows:

* PHP7.x porting
* New QOS session consinstency 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

stand-alone scenario to

Reply via email to