Since Facebook needs to check the privacy and data dependency everytime when the content is viewed. This kind of implementation place high pressure on reading from the graph data store.
The previous lookaside cache (e.g. Memcache) has some problems. 1 Inefficient edge lists (single edge change requires entire list to be reloaded) 2 Distributed control logic (control logic do not communicate with each other, which leads to thundering herds) 3 Expensive read-after-write consistency. TAO can solve all of these questions. And this maybe the main difference of TAO compared with other related works.
TAO's goal is to achieve low read latency, high read availability, write consistency. The key architecture of TAO is three parts, web server, cache, database. Basically, they use separate cache and database, graph-specific caching and subdivide data centers to achieve efficiency at scale read latency. In order to avoid thundering herds, it propose a leader cache layer, which is used for coordinating the follower caches. The write-through cache is used for enable read-after-write consistency.
In order to improve the availability, the read failover of a follower cache will have not cost. It is because if we cannot request from the corresponding follower cache, we can instead query on a different follower cache. If we cannot talk to the leader cache, we can bypass it and directly go to the databases for the results. And if we cannot query on the data base of replica data center, we can directly forward the query to the leader cache of the master data center.
I think TAO will be influential for 10 years. It is because that the TAO system is used as a new generation of data store for Facebook.
No comments:
Post a Comment