Angel的架構
4 人贊了文章
angel worker的架構如下:
LRLearner不斷讀取DataBlock,訓練得到PSModel
ConsistencyController提供BSP,SSP,ASYNC三種一致性
MatrixClientAdapter 一個user請求(比如pull請求)對應到多個ps的rpc請求,合併多個rpc請求結果
MatrixTransportClient 用事件觸發Get,Put等請求,啟動heartbeat線程檢查灰度ps
MatriceCache存儲matrix的各個partition
MatrixStore存儲一個Matrix
angel master啟動MasterService,這是一個rpc server
Client,Parameter Server, Worker的PSAgent分別通過rpc調用,和MasterService傳遞控制信息
數據傳輸走netty的channel,不通過rpc
Parameter Server中的組件:
PSLocationManager 有一個LocationManager,裡面記錄ParameterServerId到Location的映射,WorkerId到Location的映射,以及masterLocation
WorkerPool 在handleRpc函數中處理GET_ROWSPLIT,GETROWSSPLIT,GET_PART,PUT_PARTUPDATE,GET_CLOCKS,UPDATER,RECOVER_PART,UPDATE_CLOCK等消息
MatrixStorageManager 用一個map記錄matrixId到MatrixStorage的映射,MatrixStorage管理一個Matrix,用一個map記錄Rowid到Row(TVector)的映射
ClockVectorManager 用一個map記錄matrixId到MatrixClockVector的映射,MatrixClockVector用一個map記錄partId到PartClockVector的映射,PartClockVector記錄每個task的clock,並維護一個minclock
PSMatrixMetaManager 用一個map記錄matrixId到MatrixMeta的映射
MasterClient 向MasterService發送rpc調用
ParameterServerService 一些psThreadStack,psToken等簡單rpc服務
MatrixTransportServer 基於netty實現的server,註冊MatrixTransportServerHandler處理請求,最終請求調用WorkerPool.handlerRpc處理
PeriodPusher 多個ps副本直接非同步複製
SnapshotDumper 定時dump矩陣到hdfs,調用MatrixStorageManager.save
推薦閱讀: