为什么打车和宇宙大爆炸有关

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介: 希望通过本次课题,与大家探讨为什么打车和宇宙大爆炸有关。分析打车和秒杀之间的共同点、难点,应该如何解决打车难的问题。

分享人:Digoal,阿里云数据库产品经理

正文:

本篇内容将从6个部分为读者介绍Ÿ打车和宇宙大爆炸有什么共同点?从打车和秒杀之间的共同点切入,分析其难点并提出解决方案。

Ÿ 为什么要讨论这个问题?

Ÿ 打车和宇宙大爆炸有什么共同点?

Ÿ 打车和秒杀是不是也有共同点?

Ÿ 秒杀的难点是什么?

Ÿ 打车的难点是什么?

Ÿ 应该如何解决?

 

话题开始之前,首先要庆祝PostgreSQL 13于2020年 9月24日正式发布,PostgreSQL 13展示了全球社区的协作和奉献精神。PostgreSQL核心团队成员Peter Eisentraut说:"每个发行版带来的创新,以及PG在可靠性和稳定性方面的声誉,是越来越多的企业选择使用PostgreSQL的原因"


一、Ÿ为什么要讨论这个问题?

互联网行业的加班文化是一个经久不衰的热门话题,夜晚11点多的阿里巴巴大厦、网易、腾讯的办公楼依旧灯火通明,加班加到深夜的互联网人还要排队打车。作为一名互联网老兵来说,下班打车这事真的很重要,累了一天还打不到车,所以今天必须讨论一下打车这个问题。


二、打车和宇宙大爆炸有什么共同点?

从技术角度来看,打车和宇宙大爆炸是有共同点的。996或007的小伙伴在半夜打车或者高峰期打车的时候,都是一群人从一个点要回到随机的外面的点,就像一次爆炸一样。宇宙大爆炸也是这个样,一个点一下子散开来,像天女散花一样。


三、打车和秒杀是不是也有共同点?

打车和秒杀就更像了,当高峰期打车的时候,附近车的数量远远少于打车人数,这时候就需要靠秒杀的速度来抢到车了。


四、秒杀的难点是什么?

用一句话来讲,秒杀的难点就是等待。如果大家都抢一个商品,那么大家都会等待其中一个人的更新,才会进行下一个更新,等待的过程就导致了堵塞。影响整体的处理吞吐。我们可以从5个角度分析:

懒人视角:秒杀时间在0点,懒人一般都要睡觉了,不管秒杀什么都没有兴趣参加。

用户视角:用户通常会抱怨网速太慢,手速太慢,货太少,关键时刻卡死。

商家视角:担心秒杀到后买家不付款,等超时后才能释放;秒杀的每一笔都是亏本生意,千万不能超卖了。

工程师视角:每卖出去一单都不能出错,每一次秒杀都不能卡。

产品视角:秒杀这个需求很简单,必须实现。


五、打车的难点是什么?

乘客视角:在打车高峰期,需要提前半小时打车,先排队这样才能确保下班的时候顺利打到车。

出租车视角:提前半小时就需要到附近蹲点,浪费了空闲时间。

平台视角:如何提高车辆利用率, 减少空闲时间。司机在送乘客的过程,是只有少量的放空,对于乘客、对于司机、对于平台都是最有利的。


六、应该如何解决?

打车过程中有没有发现几个诡异的现象?第一个就是来得早不如来得巧,有的时候我们打车或者秒杀,人家已经提前在这蹲点了,结果发现我打到车了,他没打到,秒的早不如秒的巧。有些司机距离上车地点特别远,定位也经常不准。另外就是拼车,拼车的搭档永远是同性、同路人。

这些问题如何解决呢?我还是那句话:没有MyBase解决不了的问题,如果有,就多买几台

比方说我们的秒杀场景是买家多、商品少。对于对同一个商品其实是单车道,就一个人在买的时候,其他人都在等。我们可以把它扩展成无限车道,实际上来讲是在同一个时刻产生交易,但最后交易成功的只有一个人,没有交易成功的就直接跳出页面了,这样就不会堵塞。

图片.png

常用的秒杀优化手段是先使用for update nowait的方式来避免等待,即如果无法即刻获得锁,那么就不等待。这种方法可以减少用户的等待时间,因为无法即刻获得锁后就直接返回了。第二个是合并请求,即将多个更新合并到一个更新的请求,这种做法需要修改内核,同时会破坏ACID,因为如果合并后的请求失败了,会导致合并中的所有人的请求失败。(与分组提交不一样,分组提交是不会破坏ACID的)。

AD LOCK是一种面向用户的轻量级锁,锁的目标是一个整型,分为事务级和会话级的锁,以及共享和排他锁。因为AD LOCK很轻量化,不需要访问数据,不需要执行冗长的代码,所以很高效。使用AD LOCK不破坏ACID,单个请求单个事务,不影响其他的事务。

解决高峰打车难又是什么技术呢?利用PostGIS & 阿里云Ganos;运用GiST 时空索引模块;skip lock,消除等待;随机位置漂移 order by (lat,lon) <-> 就近找车,消除offset浪费;时空多模混合索引。

 

 

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
4月前
|
传感器 安全 搜索推荐
太空居住:长期太空任务的生命支持系统
【9月更文挑战第20天】长期太空居住的生命支持系统是一个复杂而精细的系统工程,涉及多个领域的协同作用。随着科技的不断进步和创新,未来的太空居住将更加安全、舒适和可持续。通过智能科技的应用,我们有理由相信,在不久的将来,人类将在太空中建立起真正的“家园”,为人类的星际探索事业开辟新的篇章。
|
6月前
|
安全
嫦娥六号成功带回月球背面土壤,嫦娥七号整装待发,2030年前实现载人登月!
嫦娥六号成功返回,首次实现月球背面采样,标志中国航天新成就;嫦娥七号计划2026年前后发射,目标月球南极,寻找水冰证据,多国科学载荷参与,展现国际合作;嫦娥八号将助力月球科研站建设,中国载人登月计划预计2030年前实现。🚀🌙✨
114 0
|
人工智能 算法 BI
第320场周赛赛后分析总结(前三题)
前言 几个星期没打周赛,手感生疏了好多,果然算法题还是得勤加练习,多找适应比赛的感觉。 同时,第二、三题都是图和树相关的内容,像我这种对这个专题还不熟的也可以借此机会巩固一下。
100 0
|
人工智能 机器人 5G
顺为资本冯铮:我们距离《头号玩家》中的「Metaverse」还有多远?
顺为资本冯铮:我们距离《头号玩家》中的「Metaverse」还有多远?
222 0
顺为资本冯铮:我们距离《头号玩家》中的「Metaverse」还有多远?
|
传感器 机器人
黑镜狗再现!波士顿动力「大黄狗」上岗SpaceX,勘察火箭爆炸现场
近日,SpaceX星际飞船爆炸现场上演了如同「黑镜」中的一幕。一只来自波士顿动力的「大黄狗」在星舰原型SN10爆炸现场附近巡逻,并帮助工人清理和回收火箭零部件。这一场景引来众多网友围观,称其为黑镜狗。
168 0
黑镜狗再现!波士顿动力「大黄狗」上岗SpaceX,勘察火箭爆炸现场
时隔200多天后,“洞察号”火星探测器即将着陆火星表面
即使NASA已经拥有7次火星着陆经验,对待此次“洞察号”的着陆也不能掉以轻心。
465 0
|
供应链 安全 大数据
区块链距离“大爆炸的奇点”已不遥远
作为新基建的重要部分,区块链产业发展受热议。两会期间20 余位代表委员提交相关建议,产业应用落地速度和范围都在加快......区块链距离“大爆炸的奇点”已不遥远。
3295 0
珍爱生命,远离大论战
  前几天小学聚会,想起来了一些小时候的趣事。有一同学,他学习能力强,学东西快,老师讲的课程他都会了,作业也都写完了。然后呢呆着没事,找他同桌闲聊,放学了还拉着他疯玩。结果呢,第二天要交作业,他是没事了,可是他同桌惨了,忘记写作业了。
939 0
|
机器学习/深度学习 人工智能 算法
顾险峰:技术爆炸的亲历观察
数百年后,如果人类依然没有被人工智能所毁灭,在撰写现代历史的时候,可能最为恰切的概括就是“技术爆炸”。
2305 0