Throughput drop when switching from 1 master to master + 1 slave
I've also started looking into the annoying drop in throughput that occurs when switching from configuration with a single node (the master only) to configuration with two nodes (1 master + 1 slave).
Using the latest TPC-W PHP code and the fixed client emulator, what happens is (with 100 clients):
master only throughput is 105 WIPS
master + slave throughput is 55 WIPS
Initially, I considered that the problem is caused by the lack of flushing and page faults in the master-only configuration. However, even running the master+1 slave configuration, with reads going to the master (e.g., the slave is unused, but the master still prepares flushes and send them) seems to yield the same results.
I also looked into the hypothesis, that when the slave is heavily loaded, it receives (and processes) flush packets more slowly, compared to when it is not loaded. Thus, the acknowledgement to the master gets delayed. Since the master cannot commit another transaction before the previous one has completed, subsequent update transactions will have to wait. Unfortunately, this is also not the case, as the flushes are processed very fast and the responses are received in a very short time.
I am planning to look into the scheduler and the proxy source code to find out whether a legacy code could be causing transactions to be delayed for some reason. However, since I removed all the unused stuff, the chance of this being a problem is minor.

0 Comments:
Post a Comment
<< Home