Skip to content

Files

Latest commit

Dec 15, 2023
f400df2 · Dec 15, 2023

History

History
206 lines (55 loc) · 3.52 KB

20171024_02.md

File metadata and controls

206 lines (55 loc) · 3.52 KB

[未完待续] 探探的寻找算法与数据库优化

作者

digoal

日期

2017-10-24

标签

PostgreSQL , 探探 , 社交 , LBS , 优化 , 数组 , bitmap , roaring bitmap , 近似估算 , UDF , JOIN . HLL , bloom , 并行计算


背景

探探的业务介绍

用户属性

数据量

活动行为

寻找行为

推荐规则

空间、年龄、性别、活跃时间、过滤喜欢过或不喜欢的

排序规则

颜值

响应时间要求

并发量

机器学习、颜值

痛点:过滤喜欢过或不喜欢的

网红,被N多人喜欢过。

被N多人不喜欢过。

喜欢过、不喜欢过N多人。(滑过N多人)

附近若干公里有很多人,但是由于以上限制,很少符合条件的人。

随着时间推移,用户滑动,喜欢过、不喜欢过的列表越来越大,不符合条件的人越来越多。

优化思路:

明细、(数组、BITMAP、ROARING BITMAP、估算类型)+明细、正反向。

明细

JOIN慢

UDF GET慢

数组

死锁

明细 + 延迟合并

BITMAP

roaring bitmap

估值算法

准确性无法满足需求

参考

http://docs.pipelinedb.com/builtin.html#t-digest-functions

https://github.com/zeromax007/gpdb-roaringbitmap

《[转] 快速计算Distinct Count》

《PostgreSQL (varbit, roaring bitmap) VS pilosa(bitmap库)》

《阿里云RDS for PostgreSQL varbitx插件与实时画像应用场景介绍》

《基于 阿里云 RDS PostgreSQL 打造实时用户画像推荐系统》

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

digoal's wechat