西西河

主题:【原创】好吧,给一个铁道部订票系统的正确答案 -- 布老虎

共:💬185 🌺732 🌵9 新:
全看分页树展 · 主题 跟帖
家园 我理解也是减库操作是瓶颈

相信只读操作大家都会用cache解决,但有复杂逻辑的减库操作才是性能瓶颈。假设一列车经过20站,共1000个位子,可以用一个1000x20的二维数组来表示,每张票就是同一行的一个连续区间[0,20)。假如减库针对这个二维数组来,那只能一次减一个,但可以将这个数组按照热门票(如[3,5),[1,18))拆分为若干个票仓,订票请求根据票面区间去特定的票仓减库,这样可以一定程度上实现并发减库。然后每隔一段时间冻结所有请求,销毁所有票仓重新合成二维数组(其中若干位已经被占用,代表售出的票),重新拆分为若干个票仓,如此往复。这样的逻辑,我觉得不一定要用多高级的数据库,只要拆票算法做的好,能根据客户请求自主学习,拆出的票命中率高,还是能实现较好性能的。

通宝推:铁手,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河