百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 运营笔记 > 正文

淘宝万亿级海量交易订单存储在哪?

ann3311 2024-12-22 14:19 21 浏览 0 评论

01淘宝交易订单系统介绍

天猫和淘宝每天发生的实物和虚拟商品的交易达到亿级别。考虑到一次成功交易的整个链路,会涉及到会员信息验证,商品库信息查询,订单创建,库存扣减,优惠扣减,订单支付,物流信息更新,确认支付等。

链路中的每一环都涉及到数据库中记录的创建和状态的更新,一次成功的交易可能对应到后台信息系统上数百次数据库事务操作,支撑交易系统的整个数据库集群则会承担每日高达数百亿的事务读写。这除了给数据库系统带来巨大的性能挑战之外,每日递增的海量数据也带来巨大的存储成本压力。

交易订单作为其中最为关键的信息,由于可能涉及交易纠纷处理,需要随时提供用户查询,必须永久的记录在数据库中。淘宝成立至今近17年,所有与订单相关的数据库记录总量达到了万亿级别,其所占用的磁盘空间也早已超过PB级。

在一个这样大体量的数据集上,需要能够满足用户随时查询的低延时需求,同时需要达到极低的存储成本,在技术上是一个非常大的挑战。


用户的历史订单记录数据量巨大且不能丢失

02淘宝交易订单库的架构演进历史

淘宝从2003年成立至今近17年的时间,随着流量不断上涨,交易订单数据库的架构也经历过数次演进。

第一阶段,开始由于流量较小,使用了一套Oracle数据存储了所有的订单信息,新订单创建和历史订单查询都在同一套数据库进行。

第二阶段,由于历史订单量数据量越来越大,单一一套库已经不能满足同时满足性能和容量的问题,于是对交易订单库进行了拆分,单独建立了一个Oracle历史库,将三个月以前的订单迁移进历史库,同时由于数据量巨大,查询性能不能满足需求,因此当时的历史订单不提供查询功能。用户只能查询三个月之内的订单信息。

第三个阶段,为了解决扩展性和存储成本问题,交易历史库整体迁移到了HBase方案,这套方案在当时很好了解决了存储成本和业务查询需求这2个诉求。整体方案是使用主表结合索引表,查询订单详细信息通过主表完成,通过买家或者卖家ID查询订单,则需要借助索引表先得到订单号。

但这个方案遗留一个问题:订单并不是严格按照90天进行迁移的,有很多类型的订单并不迁移到历史库,导致已买到--订单列表的排序是乱序的,已买到的订单列表不是严格按照时间由近到远排序的,用户如果按照订单列表一页一页往下翻,会发现自己最近的订单”突然丢了”(实际上没有丢的,只是乱序了,再往后翻就有了)。

第四个阶段,历史库采用基于X-Engine引擎的PolarDB-X集群,在满足存储成本的同事,提供与在线库一样的索引能力,解决乱序问题。

03淘宝交易订单库的业务痛点

回顾淘宝交易库的演进历史,自拆分出独立的交易历史库之后,在持续十年时间里,业务团队和数据库团队一直在应对几个核心的挑战:

  • 存储成本,每日写入量巨大且数据永不删除,必须要保证极低的成本。
  • 节省存储成本的前提下,保证丰富的查询特性,例如按时间维度排序等。因此底层数据库需要支持二级索引,且二级索引需要保证一致性和性能。
  • 保证较低的查询延时,不影响用户使用体验。虽然90天前的历史订单的查询量比90天内要少很多,但这依然是直接面对用户的,需要保证长尾延时在一定限度内。

在2018年,因为数据库存储的原因导致的订单排序错乱的问题,受到越来越多的投诉,给用户带来非常大的困扰,业务上决定根治这个问题。从前面的分析总结看,理想中的交易历史库方案需要同时满足三个条件: 低成本,低延时,特性丰富。使用和在线库一样的InnoDB引擎则满足不了存储成本的要求,而使用HBase则满足不了一致性二级索引等要求。

04基于X-Engine引擎的历史库方案

2018年,阿里自研的X-Engine引擎逐步在集团内部落地,其针对阿里巴巴交易业务的流水型特征设计了原生的冷热分离的架构,X-Engine引擎中的冷数据记录在数据页中紧凑排列并默认对所有数据块进行压缩,这套架构兼顾了性能和成本,很快在内部非常多的业务中落地,例如:X-Engine如何支撑钉钉数据量激增。

在考察交易历史库的方案时,一个思路是合并在线库和历史库,依赖X-Engine自身的冷热分离能力, 实现对90天内交易订单的高性能访问和90天以前交易订单记录的低成本存储。同时一套统一的交易订单库,可以提供诸如二级索引等功能,用户订单不能按时间排序的问题也随之解决,业务层的代码将非常简单

但交易订单系统在在线库/历史库分离的架构下迭代了十年的时间,很多业务系统的代码对这套分离架构做了兼容,考虑到对业务代码改造以及迁移的风险,我们在初期继承了之前在线和历史分离的架构。只是将原有的HBase集群替换成了PolarDB-X集群(基于X-Engine引擎的版本):

  • 在线库依然沿用之前的MySQL InnoDB集群,但是只保存90天的数据量,90天之前的订单会被删除,数据量少,可以保证较高的缓存命中率,确保读写延时。
  • 通过数据同步将在线库中超过90天的订单迁移到历史库中,迁移之后该部分订单从在线库删除。
  • 历史库切换为X-Engine,保存全量的交易订单数据,90之前的订单读写,直接操作历史库, 同时历史库承接在线库的所有迁移写入负载。

这套架构上线之后,交易历史库的存储成本相比较于使用HBase没有上升,同时由于历史库和在线库能力相同,可以创建完全一样的索引,历史订单恢复了对订单按时间排序功能的支持,同时其读取延时也得到了保证。

05数据库架构参考

在淘宝交易历史库的方案中,考虑到业务层面历史代码架构的延续性,采用了InnoDB引擎在线库和X-Engine历史库分离的方案。在这套架构中,X-Engine历史库其实同时承担了在线库迁移过来的写入以及90天以前记录的读写流量。

实际上,考虑到淘宝交易订单记录流水型的访问特征(最近写入的记录会被大量访问,随着时间推移,记录访问频次急剧衰减),X-Engine引擎内部的冷热分离机制就能很好的处理这种流水型业务,所以单一X-Engine数据库集群完全解决需求

对于新开业务或者有大量流水型记录存储需求的现有业务且业务层面还未做冷热分离,我们建议直接使用一套X-Engine引擎,在存储成本降低的同时,DB层的访问代码会更简单。基于X-Engine引擎的PolarDB-X分布式数据库可以同时解决scale out问题和成本问题。

目前X-Engine引擎已经上线阿里云, 经过阿里内部业务验证,欢迎有成本和性能需求的用户购买使用。详情点击「阅读原文」

相关推荐

香港什么值得买&什么值得吃&索尼黑卡晒图(附真人秀)

作者:vickining从去年9月到今年4月一共去了香港三次共9天,基本都在油尖旺、铜锣湾和中环地区活动,离岛和迪斯尼海洋世界等都打算留在下次,澳门是单独去了两天(话说真心喜欢澳门这个小清新和纸醉金...

那些贵得“不要不要”,但妈妈们还是“要要要”的神器们

那些贵得“不要不要”,但妈妈们还是“要要要”的神器们上次分享了一篇咪宝的鞋,结果被值友们燃情批判——因为好多鞋不是“大牌”……唉,地主家也没有余粮啊!好吧,多谢大家对咪宝的关心^_^这次代表月亮满足你...

新消费观察丨电商公布2024年度十大商品 购物车里写满了“拒绝内耗”

封面新闻记者付文超12月23日,淘宝发布了2024年度十大商品,引发全网讨论。今年入选的商品分别是丑鱼拖鞋、太空船票、一级能效空调、无边抱枕、谷子、打工人立牌、蕉绿绿植、“不要脸”防晒服、数字卡券、...

淘宝热卖春晚明星同款,靠谱吗?(淘宝app春晚)

除夕夜,在央视春晚播出的同时,“李思思荧光口红”“马丽大衣”等成为网络热搜。记者发现,电商平台上不少商家蹭热点,以同款口红、同款大衣为推荐语来推广商品。有商家称,会根据网络热搜连夜上架“同款商品”,春...

淘宝“逢考必胜”战袍、旗袍热卖!还记得高考那天你穿了什么吗?

文|陈晨又到一年高考时,有关于高考和青春的记忆往往在这个时候泛滥。“高考前一晚,全班去操场跑圈,边唱歌边鼓舞打气,也许是玩的太嗨了,那年我们班考的特别差,但我现在回想起来高考印象最深的还是那个画面。”...

淘宝:2024 年度十大商品公布 热门盘点

【淘宝公布2024年度十大商品】12月23日,淘宝正式揭晓2024年度十大商品榜单。奥运期间全红婵带火的丑鱼拖鞋、双11淘宝直播间预售的国内首张低轨道旅行“太空船票”等商品上榜。因政...

《哪吒2》周边线上热销 天猫潮玩负责人称还能至少再火爆1个月

新京报贝壳财经讯(记者程子姣)由导演饺子历时5年打磨的《哪吒之魔童闹海》(下称《哪吒2》)无疑是今年开年最受观众喜爱的电影。2月8日,新京报贝壳财经记者从淘宝了解到,目前平台上由饺子创作的哪吒系列形象...

淘宝公布2024年度十大商品 黑神话悟空概念商品等上榜

12月23日,淘宝发布了2024年度十大商品。今年入选的商品分别是丑鱼拖鞋、太空船票、一级能效空调、无边抱枕、谷子、打工人立牌、蕉绿绿植、防晒服、数字卡券、黑神话悟空概念商品。全红婵脚蹬丑鱼拖鞋出现在...

东方甄选终于“入淘”:8月29日开播,俞敏洪带队

“脱抖”风波后,东方甄选宣布入驻淘宝直播。8月24日,记者从东方甄选获悉,淘宝首秀时间定为8月29日,新东方创始人俞敏洪、东方甄选CEO东方小孙带队,东方甄选众多主播将在淘宝开启全天直播。这也是该团队...

劲爆!2023年个人/个体户也可以入驻京东主站开店了!

据悉,2023年1月1日起,京东将接受个人/个体工商户入驻开店,大部分类目将对个人卖家开放!...

天猫上开设专卖店,那么下面是一些入驻资料可能需要准备的:

如果你想让你的品牌或店铺在天猫上开设专卖店,那么下面是一些入驻资料可能需要准备的:1.营业执照:作为一个企业或个体经营者,在向天猫申请开店之前,你需要拥有一份有效的营业执照。2.经营许可证:除了营...

安装师傅怎么实现入驻天猫商城(天猫安装店怎么入驻)

在日常生活中我们会在天猫购买一些大型商品如桌椅空调家电方面的商品,但这些大家居类目是需要有安装师傅的,可大家不知道天猫安装师傅怎么入驻?那么接下来,我们就来给大家讲解一下这方面的内容。...

双十二来临,接到这类电话千万要注意,杭州有人刚刚被骗近万元

钱江晚报·小时新闻记者边程壹通讯员符栩潇年底购物高峰一波接着一波,“双十二”又要到了。大家在买买买的同时,接到此类客服电话一定要多留个心眼。不管是“退货返钱”、“退货理赔”还是“快递丢失要赔款”...

去旅游,淘宝可以淘出什么好物?双十二网购推荐篇

收拾行李时,别忘了带上这些旅游好物!淘宝下单买买买!爱了爱了!【境外电话卡、流量卡】出境旅游的小伙伴必备品。比开通漫游优惠多呢。【电源转换器】各国及地区电力环境不同,电器的电压适用范围也不同,出境小伙...

双十二买什么?淘宝热搜榜刮起科技风

双十一才过去一个月,双十二又打着“买买买”的旗号兵临城下。刚在上月的一役中耗尽心力,双十二都不知道买什么好了?淘宝可从来没让你操心这种事,在1212前夕,淘宝发布了一份1212万能榜单,当中包含了一系...

取消回复欢迎 发表评论: