We are working towards launch of a new Content Server installation and I have been watching various aspects system activity with an eye towards improving system performance wherever possible through system optimization.
During a recent long running blank-slate content reload I took the time to inspect SQL database activity and noticed an extraordinary amount of very simple queries of the form 'SELECT * FROM KState WHERE StateID = ?'. In our installation this three column, 475 row, 23Kb table was the receipient of tens of millions of select queries, which is quite interesting given that it was only written to six times, and those at the very beginning of the sample interval.
The queries appeared to be generated in the context of facet generation, and the writes appeared to correlate with the initial server startups. Given the name I'm guessing that this is a coordination table used to marshal agents (?) or some other distributed component.
That said, as we only have one Admin server and two user facing back-end servers, I'm a little fuzzy on what's being so heavily coordinated. Is this behaviour just an artefact of architecture intended to support much larger deployments? If that's the case, given CS10.5 already utilizes memcached, would it not make more sense to allow a configuration option to move this off of the backend database and into memcached on the application servers where it can be accessed in realtime?