digoal
2017-10-24
PostgreSQL , 探探 , 社交 , LBS , 优化 , 数组 , bitmap , roaring bitmap , 近似估算 , UDF , JOIN . HLL , bloom , 并行计算
探探的业务介绍
用户属性
数据量
活动行为
寻找行为
推荐规则
空间、年龄、性别、活跃时间、过滤喜欢过或不喜欢的
排序规则
颜值
响应时间要求
并发量
网红,被N多人喜欢过。
被N多人不喜欢过。
喜欢过、不喜欢过N多人。(滑过N多人)
附近若干公里有很多人,但是由于以上限制,很少符合条件的人。
随着时间推移,用户滑动,喜欢过、不喜欢过的列表越来越大,不符合条件的人越来越多。
优化思路:
明细、(数组、BITMAP、ROARING BITMAP、估算类型)+明细、正反向。
JOIN慢
UDF GET慢
死锁
明细 + 延迟合并
准确性无法满足需求
http://docs.pipelinedb.com/builtin.html#t-digest-functions
https://github.com/zeromax007/gpdb-roaringbitmap
《PostgreSQL (varbit, roaring bitmap) VS pilosa(bitmap库)》
《阿里云RDS for PostgreSQL varbitx插件与实时画像应用场景介绍》
《基于 阿里云 RDS PostgreSQL 打造实时用户画像推荐系统》
您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.