TCP/IP programming has been a really ‘fun’ experience so far in my journey to create a JavaScript web server. Starting with sockets all the way to HTTP, I have succeeded in destroying my confidence in my ability to understand computers. In case any of you suffer from this same affliction dealing with sockets, here is a little tip that may help you get to bug #341: Content-Length Means Bytes, Not Characters.

Just today I was challenged with a project that will require value caching in a PHP/MySQL cluster environment. This project will have to deal with loads of up to 500 requests per second, most of which will involve writes. When working on a small scale it is easy to forget the latency issues associated with all engines in MySQL. This project will require a massive read/write caching system that will sit between PHP and MySQL and will require full data persistence. I found a valuable article that shows some of the timing differences of the popular storage systems under load. Redis seems to be the real winner here. With write-only data persistence (write to disk), this storage engine still comes out on top! This is truly the best system if you are caching write calls to MySQL. This way, most of the data will survive in case of a crash. Persistence can be increased even further by using another fully redundant Redis server. This is a must have for high-load write caching.

This video showcases some new features of the deferred rendering system in my Logos Engine including HDR, auto-exposure, edge detect anti-aliasing, shadow mapping and more. Check the page for more info.

YouTube Preview Image