知识点
近邻查询, 拼车, 空间热点消除
学习资料
1, 滴滴打车派单系统思考 数据库设计与实现 - 每月投入 6140 元, 1 天最多可盈利 117 亿 -_-!
背景: 打车类应用, 如果完全按调度系统来派单, 而非抢单的话, 调度系统要非常的健硕.
比如滴滴打车, 如何处理供给双方的需求, 并高效的完成派单呢?
随着业务的需求增多, 调度规则也会增加, 比如拼车, 预约, 等.
下面是一个简单的派单系统的思考, 如何使用 PostgreSQL 与空间数据库插件 PostGIS 来实现一个简单的距离优先派单, 拼车撮合.
采用 skip lock 或 advisory lock 来避免锁冲突. 应对高峰期问题.
2,PostgreSQL 滴滴派单 高峰区域集中打车冲突优化 1 - 宇宙大爆炸理论与 PostgreSQL 实践
背景: 在数据库中, 如果大家都这么操作, 会带来锁冲突的问题. 我在上一篇文档中, 介绍了 adlock, 可以大幅提高吞吐, 但是还有一个隐藏的可以提升的点 (而且可以提升非常多), 如果所有人都是从同一个位置发起的锁定附近车辆请求, 那么会出现冗余扫描 + FILTER 的情况.(因为 A 锁定了第一辆车后, B 必须跳过第一辆车去锁定第二辆附近的车, 然后是 C 必须跳过最近的前面 2 辆车, 以此类推) 并发越高, 跳过的车辆越多.
3, 为什么 geometry+Gist 比 geohash+BTREE 更适合空间搜索 - 多出的不仅仅是 20 倍性能提升
背景: 在 PostgreSQL 中, 支持 geohash, geometry, geograph 三种空间存储结构.
来源: https://yq.aliyun.com/articles/684331