Facebook's Software Architecture

I had summarized/discussed a yoke papers (Haystack, Memcache caching) most Facebook's architecture before.

Facebook uses uncomplicated architecture that gets things done. Papers from Facebook are refreshingly simple, in addition to I similar reading these papers.

Two to a greater extent than Facebook papers appeared recently, in addition to I briefly summarize them below.

TAO: Facebook's distributed information shop for the social graph (ATC'13)

A unmarried Facebook page may aggregate in addition to filter 100s of items from the social graph. Since Facebook presents each user amongst customized content (which needs to live on filtered amongst privacy checks) an efficient, highly available, in addition to scalable graph information shop is needed to serve this dynamic read-heavy workload.

Before Tao, Facebook's spider web servers straight accessed MySql to read or write the social graph, aggressively using memcache equally a await aside cache (as it was explained inwards this paper).

The Tao information store implements a graph abstraction directly. This allows Tao to avoid roughly of the key shortcomings of a look-aside cache architecture. Tao implements an objects in addition to associations model in addition to continues to piece of occupation MySql for persistent storage, but mediates access to the database in addition to uses its ain graph-aware cache.
To grip multi-region scalability, Tao uses replication using the per-record master copy idea. (This multi-region scalability see was 1 time to a greater extent than presented before inwards the Facebook memcache scaling paper.)

F4: Facebook's warm BLOB storage organization (OSDI'14)

Facebook uses Haystack to shop all media data, which nosotros discussed before here.

Facebook's novel architecture splits the media into 2 categories:
1) hot/recently-added media, which is even so stored inwards Haystack, and
2) warm media (still non cold), which is at nowadays stored inwards F4 storage in addition to non inwards Haystack.

This newspaper discusses the motivation for this split in addition to how this works.

Facebook has large data! (This is 1 of those rare cases where you lot tin forcefulness out tell large information in addition to hateful it.) Facebook stores over 400 billion photos.

Facebook constitute that at that spot is a potent correlation betwixt the historic catamenia of a BLOB (Binary Large OBject) in addition to its temperature. Newly created BLOBs are requested at a far higher charge per unit of measurement than older BLOBs; they are hot! For instance, the asking charge per unit of measurement for week-old BLOBs is an gild of magnitude lower than for less-than-a-day one-time content for viii of nine examined types. Content less than 1 twenty-four hr catamenia one-time receives to a greater extent than than 100 times the asking charge per unit of measurement of one-year one-time content. The asking charge per unit of measurement drops past times an gild of magnitude inwards less so a week, in addition to for most content types, the asking charge per unit of measurement drops past times 100x inwards less than lx days. Similarly, at that spot is a potent correlation betwixt historic catamenia in addition to the deletion rate: older BLOBs encounter an gild of magnitude less deletion charge per unit of measurement than the novel BLOBs. These older content is called warm, non seeing frequent access similar hot content, but they are non completely frozen either.

They also discovery that warm content is a large per centum of all objects. They separate the final nine months Facebook information nether iii intervals: 9-6 mo, 6-3 mo, 3-0 months. In the oldest interval, they discovery that for the information generated inwards that interval to a greater extent than than 80% of objects are warm for all types. For objects created inwards the most recent interval to a greater extent than than 89% of objects are warm for all types. That is the warm content is large in addition to it is growing increasingly.

In lite of these analysis, Facebook goes amongst a split pattern for BLOB storage. They innovate F4 equally a warm BLOB storage organization because the asking charge per unit of measurement for its content is lower than that for content inwards Haystack in addition to therefore is non equally hot. Warm is also inwards contrast amongst mutual frigidity storage systems that reliably shop information but may convey days or hours to remember it, which is unacceptably long for user-facing requests. The lower asking charge per unit of measurement of warm BLOBs enables them to provision a lower maximum throughput for F4 than Haystack, in addition to the depression delete charge per unit of measurement for warm BLOBs enables them to simplify F4 past times non needing to physically reclaim infinite chop-chop later on deletes.

F4 provides a simple, efficient, in addition to mistake tolerant warm storage solution that reduces the effective-replication-factor from 3.6 to 2.8 in addition to so to 2.1. F4 uses erasure coding amongst parity blocks in addition to striping. Instead of maintaining 2 other replicas, it uses erasure coding to trim down this significantly.

The information in addition to index files are the same equally Haystack, the magazine file is new. The magazine file is a write-ahead magazine amongst tombstones appended for tracking BLOBs that possess got been deleted. F4 keeps dedicated spare backoff nodes to tending amongst BLOB online reconstruction. This is similar to the piece of occupation of dedicated gutter nodes for tolerating memcached node failures in the Facebook memcache paper.
F4 has been running inwards production at Facebook for over nineteen months. F4 currently stores over 65PB of logical information in addition to saves over 53PB of storage.

Discussion

1) Why become amongst a pattern that has a large binary split betwixt hot in addition to warm storage? Would it live on possible to piece of occupation a organization that handles hot in addition to warm equally gradual degrees inwards the spectrum? I gauge the argue for this pattern is its simplicity. Maybe it is possible to optimize things past times treating BLOBs differentially, but this pattern is uncomplicated in addition to gets things done.

2) What are the major differences inwards F4 from the Haystack architecture? F4 uses erasure coding for replication: Instead of maintaining 2 other replicas, erasure coding reduces replication overhead significantly.  F4 uses write-ahead logging in addition to is aggressively optimized for read-only workload. F4 has less throughput needs. (How is this reflected inwards its architecture?)

Caching is an orthogonal number handled at roughly other layer using memcache nodes. I wonder if the caching policies process content cached from Haystack versus F4 differently.

3) Why is energy-efficiency of F4 non described at all? Can nosotros piece of occupation grouping tricks to larn mutual frigidity machines/clusters inwards F4 and ameliorate energy-efficiency farther equally nosotros discussed here?

4) BLOBs possess got large variation inwards size. Can this live on utilized inwards F4 to ameliorate access efficiency? (Maybe treat/store real modest BLOBs differently, shop them together, don't piece of occupation erasure coding for them. How most real large BLOBs?)

UPDATES:
Facebook monitoring tools (The Facebook Mystery machine)
The Facebook Stack (by Malte Schwarzkopf) 

0 Response to "Facebook's Software Architecture"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel