The only user was LoadMonitor, which is converted to only use
the WAN and server caches. Previously, the lock() calls there
were useless since LBFactory never injected "memcCache" to
LoadBalancer, ergo making it EmptyBagOStuff in LoadMonitor.
Change-Id: I0c7793d47b93b763dee478d16fb87ec637dc6cab
All callers are in core and have been updated.
Other callers can now be switched from LoadBalancer type hints to
ILoadBalancer type hints. Once that migration is done, the classes
implementing it can be moved too.
Change-Id: I6b34099b5816dd8bf9646ed39f7a2d1960e2ed06
* This avoids collisions of generic and custom LB group
server list keys, which could cause warnings and errors.
* Remove $group param from scaleLoads(), which was unused
and less robust for making keys anyway.
* Remove clearCaches() method, which only had one caller
in a script that printed lag times in a loop. Its not
worth keeping and having to pass in the server index
list.
* Also guard scaleLoads() against recent server additions.
Bug: T147359
Change-Id: Idd15f0bebb68782fda36f483880cf7fe9673b940
* Recently pooled servers will get more traffic as
their internal caches warm up by getting queries
* Also let LoadMonitor support options for flexibility
The "loadMonitor" config field now takes in array in
LoadBalancer.
* Make LoadMonitor the default instead of LoadMonitorNull.
Change-Id: I53b89b0c25bdcc30deec3f8b502fb14479c53ae8
* The LoadMonitor interface is now ILoadMonitor.
* Nothing in this code was MySQL specific.
Now any DB type can benefit from a LoadMonitor.
Change-Id: I272a72cd55a70f99a866d518d44cb3bcaca91b9e