Projects

Intelligent memcached and APC interaction across a cluster

Anyone experienced with high-performance, scalable PHP development is familiar with APC and memcached. But used alone, they each have serious limitations:

APC

  • Advantages
    • Low latency
    • No need to serialize/unserialize items
    • Scales perfectly with more web servers
  • Disadvantages
    • No enforced consistency across multiple web servers
    • Cache is not shared; each web server must generate each item

memcached

  • Advantages
    • Consistent across multiple web servers
    • Cache is shared across all web servers; items only need to be generated once
  • Disadvantages
    • High latency
    • Requires serializing/unserializing items
    • Easily shards data across multiple web servers, but is still a big, shared cache

Combining the two

Traditionally, application developers simply think about consistency needs. If consistency is unnecessary (or the scope of the application is one web server), APC is great. Otherwise, memcached is the choice. There is, however, a third, hybrid option: use memcached as a coordination system for invalidation with APC as the main item cache. This functions as a loose L1/L2 cache structure. To borrow terminology from multimaster replication systems, memcached stores “tombstone” records.

That Other Paper (Austin’s ONLY Paper) launches!

Todd Ross Nienkerk

Four Kitchen Studios is proud to announce the launch of That Other Paper — Austin’s FIRST and ONLY publication!

That Other Paper | Austin's ONLY Paper

I Make Mistakes elevates schadenfreude to a new (more pronounceable) level

Todd Ross Nienkerk

I Make Mistakes logoscha·den·freu·de (n) Pleasure derived from the misfortunes of others.

Mistakes. Everybody makes ‘em. Everybody loves to hear about other people making ‘em. But why can’t we vote on them according to prevalence and severity? Why??