ARTICLES
Fb Distributed Data Store Tao
intro
read-optimized social graph
memcache and look-aside
The distinction between look-aside and look-through caches is not whether data is fetched from the cache and memory in serial or in parallel. The distinction is whether the fetch to memory on a cache miss originates from the caller or the cache. If the fetch to memory originates from the caller on cache miss, then you’re using a look-aside cache. If the fetch to memory originates from the cache on cache miss, then you’re using a look-through cache.
-
@ FB, cache is controlled by client code
-
PHP abstraction direct r/w nodes and edges
inefficient edge lists
-
kv cache not good for edges, must fetch entire edge list to change a single edge list
-
basic list support not sufficient for concurrent incremental updates to cached lists
distributed control logic
-
control logic run on the clients which don't communication with each other
-
leases -> a general solution
-
fixed API, control logic moved into cache