Makoto Posted September 30, 2020 Posted September 30, 2020 This is not something that is going to be relevant to 98% of clients, but for certain enterprise configurations this can be helpful. On load balanced setups, the database server can saturate a 1Gbps connection line on larger more active communities far before it's actually CPU constrained. Though I'm currently looking at getting this client set up with an upgraded 10Gbps network cable to accommodate for this as our NIC supports it, simply enabling network compression for TCP based database connections can significantly reduce the bandwidth overhead as long as you can afford expending a bit of extra CPU cycles for the compression/decompression. I looked into making a plugin for this, but as you're calling parent::real_connect() in \IPS\Db, we can't overload it to apply the flags this way, so the only solution is to apply a manual patch. Which isn't a huge deal for this alone, but it'd still be a small QoL improvement to have an official flag for it.
bfarber Posted September 30, 2020 Posted September 30, 2020 Another feedback topic recently mentioned supporting SSL for the MySQL database server. What if we did something like /* Connect */ parent::real_connect( $sqlCredentials['host'], $sqlCredentials['username'], $sqlCredentials['password'], $sqlCredentials['database'], $sqlCredentials['port'], $sqlCredentials['socket'], $this->_getFlags() ); and then the _getFlags() method returned nothing by default, but a plugin could add a hook to set other flags? TSP, BomAle and Makoto 3
Makoto Posted September 30, 2020 Author Posted September 30, 2020 That'd absolutely work for me! It's a niche requirement so simply adding in a way for us to hook a plugin in and add the flags we need would be a perfectly acceptable solution.
Recommended Posts