To reduce the burden of maintenance in ParserCache, we can try to make it more like a ring (More on system design and concept of ring). This also would improve utilization of our spare databases that are currently sitting idle.
Here is the rough idea:
- Make sure the sharding of page entries is fixed (currently it requires the options + the actual entry). So removal of a 1 in 4 shards triggers 50% drop in capacity. This should be fixed regardless.
- Improve graceful degradation
Force MW to write the PC entry to the second one in the line of hashings as well (in 50% of the times at random, later with further expansion we can bump it to 100%). That basically means entries will get replicated to the other pc clusters.not needed- Move all the spare hosts to the ring (as pc6 and pc7).
- When there is a need to reboot or do something or a host crashes, just remove the whole cluster from the ring.
It's not 100% like rings in NoSQL setups but it is quite similar and helps a lot here.

