视频微服务
Date: 2019/12/02 Categories: 工作 Tags: mcp++
sched_info.cpp:SchedInfo::do_next_step()
:- 调用了
proto_to_request()
将输入转换为server特有的proto
- 调用了
req_rsp_helper.cpp
: 一些格式转换工具mod_video.h:CModVideo
: 请求处理classmod_video.h:CModVideo::m_ptr_ol : CRcmVideoInterface
: 实际的处理类p_impl
, 但并非指针mod_video.cpp:CModVideo::run()
:m_video_recommender.GetVideoRcmDocs()
召回函数, 在GetFinalFMRecallList()
后是一些过滤和收集的代码-> m_video_fm_docs
GetFinalFMRecallList()
: 实际调用的算法PushVideoListToMap
做最后的结果收集m_video_fm_docs ->m_video_rcm_docs_map
GetFinalRcmListEBatch()
, 输入m_video_rcm_docs_map
PackResponsePkg()
, 将返回的文档填入response pb
NNModel::GetDocFeature()
用于提取文档侧特征NNModel::GetUserFeature()
用于提取用户侧特征
Command
- dev:
local_make_pkg.sh
, 打好得包名为*-deploy.tar
- whiteboard
deploy:
./local_deploy.sh debug nodata kuaibao_score_online
score l5 =
65048705
:65536
gdb
forward_index
, 查看mcd返回list search_quality::qrw::v2::CNetworkHelper::batch_send_and_recv_csthash dprintf 714, "retcode = %d\n", dst_arg._retcode
查看score结果
l search_quality::news_rcm::Scorer::accept
score是否打分, 在
rcm_video_recall_fm
下搜索PushVideoListToMap, bool变量表示是否要打分, 为啥不搞个配置文件呢定义断点, 只在第一次触发时break
break 61 commands silent printf "%d\n", d.m_doc_id disable 1 cont end
定义gdb函数
define P
enable 1
cont
end
- 正排超时->不同数据中心
流量复制
找一个源l5 score 64507969:196608 64500993:65536
按照约定的端口号,比如打分是60128, 启动服务时需要用相同端口
在tcpcopy页面里建立流量复制
内存泄漏
原因: 打分的输入不同队列中有重复的doc, 而我们的容器实现时对doc id做了去重, 丢掉了重复的doc对应的指针, 导致内存泄漏
resource loading
这里问题很大, dict_manager.cpp