版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、動(dòng)態(tài)分享網(wǎng)站的構(gòu)建Building a dynamic and responsive PinterestPinterest Products (5 mins)The Evolution of Pinterest Architecture (10 mins)Real-time Data Replication for RocksDB (10 mins)Automated Cluster Management and Recovery for Stateful Services (10 mins)Unified ML Serving Platform (10 mins)Pinterest Miss
2、ionOur mission at Pinterest is tohelp people discover and do what they loveBoardsTopicsFollowing FeedHome FeedRelated PinsSome Pinterest Numbers 1500 employees 250M MAU50% of MAU is from USA 175 Billion pinsSome Pinterest Numbers 3 Billion boards81% Pinterest users are females50% of Pinterest users
3、earn $50K yearly87% of Pinterest users have purchased a product because of PinterestPinterest Products (4 mins)The Evolution of Pinterest Architecture (10 mins)Real-time Data Replication for RocksDB (10 mins)Automated Cluster Management and Recovery for Stateful Services (10 mins)Unified ML Serving
4、Platform (10 mins)Pinterest in 2015The majority of content on Pinterest was pre- generated for users prior to login. It was stored statically in HBase and served directly upon entering the service.Example architecture (Following Feed 2015)Weak Points in 2015 ArchitectureHard to tweak or experiment w
5、ith new ideas/models on different components in the systemFeatures used to rank contents could be weeks old (could not leverage latest pin/user/board data, not to mention real-time user actions)Unnecessarily large HBase storage consumptions (users who never return, a large number of concurrent exper
6、iments)We did want to go fully online!Requirements to Go Fully OnlineRelationship data (following graph, owner to board, board to pin and topic to pin mappings) need to be stored in a way suitable for real-time update and low latency query (multiple request trips, big fanout)Filtering, light weight
7、scoring need to happen close to storage at the retrieval stageLow latency ML serving platformTechnical Decisions to solve the problemsAdopted C+, FBThrift and FollyLower long tail latency (big fanout request)Finer control of system performance (some services are CPU extensive)Shared libraries (a sin
8、gle repo across the company)Technical Decisions to solve the problemsBuilt distributed stateful services from scratchCustomized data model and indexesComplicated filtering/light weight scoring close to storageFull control of every component in the systems (operate it at scale with confidence, easy t
9、o adapt to new feature requests)Technical Decisions to solve the problemsAdopted RocksDB as storage engineWidely usedOptimized for server loadRocksplicatorOpen sourced in 2016 and keep improving and adding new features/pinterest/rocksplicatorMajor Problems Solved by RocksplicatorReal-time Data repli
10、cation for RocksDBAutomated Cluster Management and Recovery for Stateful ServiceResilient request routerMany other small libraries and tools for productionizing C+ serviceCommon Architecture of Rocksplicator Powered SystemsCreate/Open DBAdd/Remove DB for replicationData Replicationlocal updatesremot
11、e updatesRocksDB ReplicatorAdmin tool/systemCluster managementGetDB()Read/WriteApplication APIAdmin APIRocks DBRocks DBRocks DBRocks DBApplication LogicAdmin LogicExample architecture (Following Feed 2018)Pinterest Products (5 mins)The Evolution of Pinterest Architecture (10 mins)Real-time Data Repl
12、ication for RocksDB (10 mins)Automated Cluster Management and Recovery for Stateful Services (10 mins)Unified ML Serving Platform (10 mins)RocksDBAn embedded storage engine libraryLack of replication supportReplication Design DecisionsMaster-Slave replicationReplicating multiple RocksDB instances in
13、 one processMaster/Slave role is assigned at RocksDB instance levelLow replication latencyReplication ImplementationUse RocksDB WAL sequence # as global replication sequence #FBThrift for RPCSlave Side WorkflowLatest SEQ #Thrift ServerWorker threadsDB1 MasterDB2 Slave Upstream: ip_PortSlave Side Wor
14、kflowGet update since SEQ# for DB2Latest SEQ #Thrift ServerWorker threadsDB1 MasterDB2 Slave Upstream: ip_PortSlave Side WorkflowGet update since SEQ# for DB2Updates since SEQ# for DB2Latest SEQ #Thrift ServerWorker threadsDB1 MasterDB2 Slave Upstream: ip_PortSlave Side WorkflowApply updatesGet upda
15、te since SEQ# for DB2Updates since SEQ# for DB2Latest SEQ #Thrift ServerWorker threadsDB1 MasterDB2 Slave Upstream: ip_PortReplication ImplementationA combination of pull & push based replicationMaster Side WorkflowGet updatessince SEQ# for DB1Thrift ServerWorker threadsDB1 MasterDB2 Slave Upstream:
16、 ip_PortMaster Side WorkflowThrift ServerWorker threadsGet updatessince SEQ# for DB1Send requestDB1 MasterDB2 Slave Upstream: ip_PortMaster Side WorkflowThrift ServerWorker threadsGet updatessince SEQ# for DB1Send requestHas updates since SEQ#?DB1 MasterDB2 Slave Upstream: ip_PortMaster Side Workflo
17、wGet updatessince SEQ# for DB1Thrift ServerWorker threadsSend requestYes, this is the dataHas updates since SEQ#?DB1 MasterDB2 Slave Upstream: ip_PortMaster Side WorkflowGet updatessince SEQ# for DB1Thrift ServerWorker threadsSend requestResponseYes, this is the dataHas updates since SEQ#?DB1 Master
18、DB2 Slave Upstream: ip_PortMaster Side WorkflowResponseGet updatessince SEQ# for DB1Thrift ServerWorker threadsSend requestResponseYes, this is the dataHas updates since SEQ#?DB1 MasterDB2 Slave Upstream: ip_PortMaster Side WorkflowNo, wait for my notificationGet updatessince SEQ# for DB1Thrift Serv
19、erWorker threadsSend requestHas updates since SEQ#?DB1 MasterDB2 Slave Upstream: ip_PortMaster Side WorkflowGet updatessince SEQ# for DB1Thrift ServerWorker threadsSend requestWritesNo, wait for my notificationHas updates since SEQ#?DB1 MasterDB2 Slave Upstream: ip_PortMaster Side WorkflowGet update
20、ssince SEQ# for DB1Thrift ServerWorker threadsSend requestHas updates since SEQ#?These are the new updates No, wait for my notificationWritesDB1 MasterDB2 Slave Upstream: ip_PortMaster Side WorkflowGet updatessince SEQ# for DB1Thrift ServerWorker threadsSend requestHas updates since SEQ#?These are t
21、he new updates No, wait for my notificationResponseDB1 MasterDB2 Slave Upstream: ip_PortWritesMaster Side WorkflowResponseGet updatessince SEQ# for DB1Thrift ServerWorker threadsSend requestHas updates since SEQ#?These are the new updates No, wait for my notificationResponseDB1 MasterDB2 Slave Upstr
22、eam: ip_PortWritesReplication Performance in Production 50MB/S per host (AWS i3.2x instance) SlaveHow to differentiate between rebalance and service restartHow to reliably setup replication graphMultiple replicas could do state transition concurrentlyMore details can be found on our blog post: /EyKM
23、oTLPinterest Products (5 mins)The Evolution of Pinterest Architecture (10 mins)Real-time Data Replication for RocksDB (10 mins)Automated Cluster Management and Recovery for Stateful Services (10 mins)Unified ML Serving Platform (10 mins)ML at PinterestUnified ML PlatformScorpion is the Pinterest ML Platform, a fully integrated solution for scoring pinsCommon Scoring and Logging Flo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- MTX-PEG-Cy3-生命科學(xué)試劑-MCE-2911
- ABBV-706-生命科學(xué)試劑-MCE-4729
- 5-Fluoro-PB-22-N-4-fluoropentyl-isomer-生命科學(xué)試劑-MCE-3095
- 3-2-3-Dimethylphenyl-2-methylquinazolin-4-one-生命科學(xué)試劑-MCE-9046
- 二零二五年度租車平臺(tái)與車主合作服務(wù)協(xié)議
- 2025年度財(cái)務(wù)審核合同中的稅務(wù)合規(guī)審查標(biāo)準(zhǔn)
- 二零二五年度親子餐飲品牌區(qū)域加盟合作協(xié)議
- 二零二五年度新能源發(fā)電站電工維護(hù)服務(wù)合同
- 二零二五年度智慧城市建設(shè)聘用協(xié)議及勞務(wù)合同
- 二零二五年度城市綠化苗木移栽與病蟲(chóng)害防治合同
- Unit 7 第3課時(shí) Section A (Grammar Focus -4c)(導(dǎo)學(xué)案)-【上好課】2022-2023學(xué)年八年級(jí)英語(yǔ)下冊(cè)同步備課系列(人教新目標(biāo)Go For It!)
- 2025年上半年長(zhǎng)沙市公安局招考警務(wù)輔助人員(500名)易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》解讀講座
- 2025河北邯鄲世紀(jì)建設(shè)投資集團(tuán)招聘專業(yè)技術(shù)人才30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 慈溪高一期末數(shù)學(xué)試卷
- 重大事故隱患判定標(biāo)準(zhǔn)與相關(guān)事故案例培訓(xùn)課件
- 2024年度節(jié)后復(fù)工建筑施工安全培訓(xùn)交底
- 2023年益陽(yáng)醫(yī)學(xué)高等??茖W(xué)校單招綜合素質(zhì)考試筆試題庫(kù)及答案解析
- 胸外科診療指南和操作規(guī)范
- 電網(wǎng)基本知識(shí)
- 民法原理與實(shí)務(wù)課程教學(xué)大綱
評(píng)論
0/150
提交評(píng)論