From: Aditya Agarwal Date: Sat, 31 Mar 2007 16:56:14 +0000 (+0000) Subject: -- added a facebook services section to the thrift paper X-Git-Tag: 0.2.0~1400 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=adf3e7f0c6127967ab546b8a460131c07de84b2d;p=common%2Fthrift.git -- added a facebook services section to the thrift paper Reviewed By: slee git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665072 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/doc/thrift.pdf b/doc/thrift.pdf index d4181029..414b51cf 100644 Binary files a/doc/thrift.pdf and b/doc/thrift.pdf differ diff --git a/doc/thrift.tex b/doc/thrift.tex index 607901d6..c00695f1 100644 --- a/doc/thrift.tex +++ b/doc/thrift.tex @@ -818,6 +818,26 @@ first byte of the message is aligned to the beginning of the new chunk. Partitioning the file into chunks makes it possible to read and interpret data from a particular point in the file. +\section{Facebook thrift-based services} +Thrift has been employed in a large number of applications at Facebook, including +search, logging, mobile, ads and platform. Two specific usages are discussed below. + +\subsection{Search} +Thrift is used as the underlying protocol and transport for the Facebook seach service. +The multi-language code generation is well suited for search because it allows application +development in an efficient server side language (C++) and allows the Facebook PHP-based web application +to make calls to the search service using Thrift PHP libraries. There is also a large +variety of search stats, deployment and testing functionality that is built on top +of the generated python code. In addition to this, the Thrift logfile format is +used as a redolog for providing real-time search index updates. Thrift has allowed the +search team to leverage each language for its strengths and to develop code at a rapid pace. + +\subsection{Logging} +The Thrift \texttt{TFileTransport} functionality is used for structured logging. Each +service function definition along with its parameters can be considered to be +a structured log entry identified by the function name. This log can then be used for +a variety of purposes, including inline and offline processing, stats aggregation and as a redolog. + \section{Conclusions} Thrift has enabled Facebook to build scalable backend services efficiently by enabling engineers to divide and conquer. Application