Re: Porting of mysqlnd_ms to PHP 7.* with new cool functionalities
| From: | Christoph M. Becker | Date: | Fri, 22 Feb 2019 12:14:26 +0000 |
| Subject: | Re: Porting of mysqlnd_ms to PHP 7.* with new cool functionalities | ||
| References: | 1 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-15771@lists.php.net to get a copy of this message | ||
cc Johannes
On 22.02.2019 at 13:00, sergio tabanelli wrote:
> 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
>