This is a fork of the mysqlnd replication and load balancing plugin pecl extension mysqlnd_ms.
For an introduction to replication lag cure and multi-master write conflicts management check MYSQLND_MS REVAMPED: Single and multi-master read/write consistency enforcing in MySQL async clusters with PHP and mysqlnd_ms extension
DOCUMENTATION IS SLIGHTLY DIFFERNET FROM ORIGINAL ONE AND IT IS STILL NOT READY, YOU CAN FIND IT STARTING FROM DOCS DIRECTORY
Most changes are in Global transaction IDs injection implementation and session consistency implementation of the Quality Of Service filter.
- PHP7.x porting
- SSL support for PDO (workaround using the mysqlnd_ms.ini file)
- 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 mysqlnd_ms_set_trx and mysqlnd_ms_unset_trx php functions for application based transaction tracking
Any suggestions or comments are very welcome.
DOCUMENTATION IS SLIGHTLY DIFFERNET FROM ORIGINAL ONE AND IT IS STILL NOT READY, YOU CAN FIND IT STARTING FROM DOCS DIRECTORY
WORK IN PROGRESS
The mymysqlnd_ms
extension has been tested on PHP5.x (5.5, 5.6) and PHP7.x (7.0, 7.1, 7.2) with no ZTS and ONLY ON LINUX (centos 6 but i hope it works on any linux distribution). Requires libxm2, libmemcached and php json extension.
- Download or clone from Github.
- Install php-devel and php json package for your distribution and PHP version.
- Install libmemcached and libxml2 development packages for your distribution.
- from your cloned or downloaded directory run:
cd /path/to/mymysqlnd_ms
phpize
./configure
make
sudo make install
If you find any problems open an issue on Github