优化源于痛点(┬_┬)
有没有痛点取决于业务场景的需求;有多痛取决于当前方案对业务的契合度
让我们从业务场景①、当前方案②切入,联立①②来推导当前痛点③吧!
话不多说,开始分析
①业务场景:
1.同一时间段内出现在同一摄像头下的用户即为同行关系(不需要两个人同步出现在摄像头下,因为我司暂不支持在一张图片内一次性提取两个人,处理逻辑太麻烦了,还不如后面分析)
2.计算需要并行进行,每次计算一天的数据量,大约千万级
②当前方案:
将全部数据拉到内存,全局排序后按照时间段大小分块,然后通过滑动窗口进行计算,比如说时间段是10s,20.11.00到20.11.10为一个窗口,20.11.10到20.11.20为一个窗口,20.11.20到20.11.30为一个窗口,同一窗口直接判定同行,相邻窗口间需要计算确定是否同行,计算后还要每两个窗口之间去重
③当前痛点:
1.千万级数据拉到内存,会对内存造成一定压力,因为并不是只有这一个服务需要使用内存
2.计算过程大量重复,去重逻辑繁琐,浪费大量算力
那么问题来了,是否存在什么更合适的方案来解决这些痛点呢?
我想,是有的。
根据痛点③,反推我们的预期目标④;
根据目标④,尝试推导