Argh... with most feature comes a cost, and the great benefits from the string cache (which does a huge simplification, storing data from hundred of thousand of lines into 7~16,000 entries between 0 and 36 bytes long) comes a huge performance hit as it is right now (illustrated below).
Illustration 1: Simple linked list implementation currently in use.
Working with the string cache to store guids and hit counts for them we saw some interesting statistics whilst there was only a minor performance cost with up to 7,600 cached entries.
But as I added the Client IP Addresses (c_ip) yesterday the string cache doubled in size reaching upward of 16,000 entries. Knowing that the string cache is implemented with a simple list (which is a bad circular list implementation that acts much like a stack form which we never pop) we have hit the limit...