主题:【原创】好吧,给一个铁道部订票系统的正确答案 -- 布老虎
共:💬185 🌺732 🌵9
相信只读操作大家都会用cache解决,但有复杂逻辑的减库操作才是性能瓶颈。假设一列车经过20站,共1000个位子,可以用一个1000x20的二维数组来表示,每张票就是同一行的一个连续区间[0,20)。假如减库针对这个二维数组来,那只能一次减一个,但可以将这个数组按照热门票(如[3,5),[1,18))拆分为若干个票仓,订票请求根据票面区间去特定的票仓减库,这样可以一定程度上实现并发减库。然后每隔一段时间冻结所有请求,销毁所有票仓重新合成二维数组(其中若干位已经被占用,代表售出的票),重新拆分为若干个票仓,如此往复。这样的逻辑,我觉得不一定要用多高级的数据库,只要拆票算法做的好,能根据客户请求自主学习,拆出的票命中率高,还是能实现较好性能的。
通宝推:铁手,
- 相关回复 上下关系8
🙂嘿嘿 坚持的阿甘 字106 2013-10-17 11:03:07
🙂我实在没有时间debug你的thinking proce 布老虎 字484 2013-10-14 17:28:30
🙂要用分布式系统处理的巨大流量,你居然能整出一单机版来 1 布老虎 字66 2013-10-16 01:17:03
🙂我理解也是减库操作是瓶颈
🙂这两天热议的美国健保网站也出现同样问题 3 川普 字50 2013-10-08 19:02:43
🙂楼主这个想法很简单 5 warmanky 字379 2012-12-29 01:57:22
🙂不太可能完全不可预测吧 假设 字134 2013-11-01 10:12:12
😁还忘记车上是可以补票的了 平方° 字0 2013-10-14 16:17:11