Today was one of those days where something happens to make you want to pat yourself on the back so hard you could separate your shoulder.
Last night we rolled out patches I had made to the “Freeside”:http://www.sisd.com/freeside giving it a “Memcache”:http://www.danga.com/memcached/ storage. To start with I overloaded the built in object retrieval mechanism to transparently use the cache (if enabled, as always it’s optional) to retrieve either data hashes, or actual objects. This was a little tricky as we are required to scrutinize rather closely our data, in order to deal with Sarbox controls. So I had to store data in it’s still encrypted form, and only allow decryption after cache retrieval on privileged access.
There are several places that can still be cached, but we went with this first implementation as it was the best single point to tackle, and now we have real proof. With the first day’s billing run (it’s a daily processing system) I compared the load and process counts on our database server the day before and after.
Yes, this one piece getting cached dropped the database load by approximately half. Yes, HALF. w00t! And tomorrow will be even better because so much of today was loading the cache.
I love it when things work right. Next up more usage of the cache, but even more important, making sure it gets committed into the GPL tree.