由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 老魏goodbug都败给12306了
相关主题
看了半天帖子,我还是支持 魏老师老魏,主角是你,你的东西太简单了
大家先别给老魏的代码挑刺老魏,我们最初的目的还是12306么?
扯两句魏老师vs好虫真让老魏讨论需求时候,老魏就开始打滚了
点评一下两个方案无论如何抢,最后顶多10张票会有些震荡
静态计数器和订票系统的区别老魏的东西就一计数器
先说清楚了老魏这个家伙是来行为艺术的
每秒500万, 结论出来看了这玩意太简单了
12306哪里有什么死锁问题!12306的瓶颈是软件设计
相关话题的讨论汇总
话题: 12306话题: 老魏话题: 银行话题: goodbug话题: 方案
进入Programming版参与讨论
1 (共1页)
c******3
发帖数: 296
1
老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
面一下去3个0。玩不下去了。
goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
问候个遍。
几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用
等。用户体验超好
http://www.mitbbs.com/article_t1/Programming/31315263_0_2.html
设计师是不容易当的。好的PM管好码工也很重要。
看来击败12306还得请二爷出马了。期待下一篇“Node又秒XXXXX了”。这回XXXXX应该
是12306了吧。
N********n
发帖数: 8363
2
京2才是黄雀在后、深藏不漏的高手啊。一个NODE横扫天下。
n*****t
发帖数: 22014
3
老魏的方案不换座的计算量基本是 O(1)
古德八的方案,标书没交就 tjjtds 了,尼玛 3000 台机器还特么菜市场排队排到拐角
,这人直接送安定门吧

【在 c******3 的大作中提到】
: 老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
: 。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
: 不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
: 理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
: 面一下去3个0。玩不下去了。
: goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
: 的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
: 。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
: 问候个遍。
: 几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用

L*****e
发帖数: 8347
4
其实是,老魏和老霸都败给了老邢。。。

★ 发自iPhone App: ChineseWeb 8.2.2

【在 c******3 的大作中提到】
: 老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
: 。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
: 不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
: 理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
: 面一下去3个0。玩不下去了。
: goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
: 的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
: 。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
: 问候个遍。
: 几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用

z**********3
发帖数: 11979
5
慕容博大战箫远山
喂,那个扫地的,放下扫帚该你了

【在 c******3 的大作中提到】
: 老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
: 。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
: 不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
: 理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
: 面一下去3个0。玩不下去了。
: goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
: 的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
: 。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
: 问候个遍。
: 几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用

L*****e
发帖数: 8347
6
扫地的正牛鼻哄哄教育慕容博萧远山呢,赶上金庸出差了,倪匡代笔,一杯茶功夫把慕
容博写瞎了,萧远山写瘸了,扫地老头写死了。。。

★ 发自iPhone App: ChineseWeb 8.2.2

【在 z**********3 的大作中提到】
: 慕容博大战箫远山
: 喂,那个扫地的,放下扫帚该你了

b*******g
发帖数: 603
7
你别逗了,12306现在是一上量就崩溃。我那个方案是最糟糕的时候2-3分钟出票。其他
时候实时没压力。
农历“小年”(1月23日)之后的火车票从来都是最紧张的。昨天早上8点起,1月24
日的火车票开始发售,果不其然,铁路购票网站12306又陷入“崩溃”。从早上放票开
始,北京晨报记者就开始上网购买1月24日Z59次列车车票,结果从早上8点至9点半,网
站一直显示“硬卧622张”,但就是无法购买,一直到上午11点半,网站都是处于瘫痪
状态。而且春运车票发售初期,表现较为“优异”的12306手机客户端昨天上午也无法
登录。

【在 c******3 的大作中提到】
: 老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
: 。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
: 不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
: 理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
: 面一下去3个0。玩不下去了。
: goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
: 的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
: 。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
: 问候个遍。
: 几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用

z****e
发帖数: 54598
8
i approve goodbug's architecture design
and have nothing to complain if u want me to wait
peking2's node.js could be a better tool for this
especially for front end web server
but vert.x is the best

【在 c******3 的大作中提到】
: 老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
: 。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
: 不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
: 理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
: 面一下去3个0。玩不下去了。
: goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
: 的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
: 。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
: 问候个遍。
: 几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用

c******3
发帖数: 296
9
大家都是赢家,除了听不得不同意见的。
俩位互搏,板油参与,我们观战的,也见识了不少新见解,虽然很多时候得捏着鼻子看。

【在 L*****e 的大作中提到】
: 其实是,老魏和老霸都败给了老邢。。。
:
: ★ 发自iPhone App: ChineseWeb 8.2.2

a****i
发帖数: 1182
10
你对bug的方案理解有点问题
真正买票那段,从用户点击“购买”或者“submit order“那一时间开始,
它要和银行交互,没法控制,所以这段只能放缓,拿到银行返回了,才能告诉你买到票
没有
TW的先不说单机完蛋怎么跑下去,它这个计数器也就是抢票这块里头的一点而已,
说到方案,他这个能算一个完整的方案?他的付款怎么做?

【在 c******3 的大作中提到】
: 老魏的方案追求快,本质是计数器。某软的测试interlockedIncrement都达到70M/s了
: 。老魏目标才是5M/s,很保守了。但他最初的方案要换座。车次不变,不同区段,会给
: 不同座号。7,80岁的老太太,还要每隔几个站就换个车厢座位,多惨呀。完全违反常
: 理。加入同车同座的要求,暴力解的话,每张票扫一遍,计算量一下增加1000倍。5M后
: 面一下去3个0。玩不下去了。
: goodbug的方案追求吞吐量,可以任意加机器,理论上出全银河系的票都可以。但要命
: 的是不时实。用户好容易填完单子,提交了,屏幕上显示“是否买到票,以后告诉您”
: 。晕。这也违反常理。碰上象zhaoc这样一点就火的客户,还不得把设计这个系统的人
: 问候个遍。
: 几个用过12306的都说明现在基本上是提交了就立即得到座号。见以下帖子。根本不用

相关主题
先说清楚了老魏,主角是你,你的东西太简单了
每秒500万, 结论出来看了老魏,我们最初的目的还是12306么?
12306哪里有什么死锁问题!真让老魏讨论需求时候,老魏就开始打滚了
进入Programming版参与讨论
c******3
发帖数: 296
11
goodbug没说要和银行交互吧,那要等更久。分票和付帐是分开的不同transaction.这
点俩位没多大区别。我的理解。

【在 a****i 的大作中提到】
: 你对bug的方案理解有点问题
: 真正买票那段,从用户点击“购买”或者“submit order“那一时间开始,
: 它要和银行交互,没法控制,所以这段只能放缓,拿到银行返回了,才能告诉你买到票
: 没有
: TW的先不说单机完蛋怎么跑下去,它这个计数器也就是抢票这块里头的一点而已,
: 说到方案,他这个能算一个完整的方案?他的付款怎么做?

z****e
发帖数: 54598
12
thats why we need nodejs/vertx

【在 c******3 的大作中提到】
: goodbug没说要和银行交互吧,那要等更久。分票和付帐是分开的不同transaction.这
: 点俩位没多大区别。我的理解。

z****e
发帖数: 54598
13
no worry
my vert.x would go after him

【在 N********n 的大作中提到】
: 京2才是黄雀在后、深藏不漏的高手啊。一个NODE横扫天下。
i**i
发帖数: 1500
14
好比你去银行, 门口有一个取号机, 拿到号以后去窗口办手续, 存钱/取钱等等各种业
务.
现在, 取号机每天只给一个号. 不管门口一百个人抢号,打架, 那个拿到号的可以悠悠
闲闲地办手续.
对应到老魏的系统, 号就是那个id, 你买的就是这个id. 外围有一万个机器为银行服务
都与老魏无关.

【在 a****i 的大作中提到】
: 你对bug的方案理解有点问题
: 真正买票那段,从用户点击“购买”或者“submit order“那一时间开始,
: 它要和银行交互,没法控制,所以这段只能放缓,拿到银行返回了,才能告诉你买到票
: 没有
: TW的先不说单机完蛋怎么跑下去,它这个计数器也就是抢票这块里头的一点而已,
: 说到方案,他这个能算一个完整的方案?他的付款怎么做?

z****e
发帖数: 54598
15
就是一计数器
人家更想知道整套流程

【在 i**i 的大作中提到】
: 好比你去银行, 门口有一个取号机, 拿到号以后去窗口办手续, 存钱/取钱等等各种业
: 务.
: 现在, 取号机每天只给一个号. 不管门口一百个人抢号,打架, 那个拿到号的可以悠悠
: 闲闲地办手续.
: 对应到老魏的系统, 号就是那个id, 你买的就是这个id. 外围有一万个机器为银行服务
: 都与老魏无关.

b*******g
发帖数: 603
16
所以你没见过云计算怎么会事。每年春运40天,每天我给你开一个小时3000台机器票就
卖完了。总共
40个小时,相当于长年开14台机器的成本。加上固定30台机器,不过44台。实际上那固
定的30台,我晚上还可以只留10台。最后轻松灭掉你长年30台,一到春运还要当机。

【在 n*****t 的大作中提到】
: 老魏的方案不换座的计算量基本是 O(1)
: 古德八的方案,标书没交就 tjjtds 了,尼玛 3000 台机器还特么菜市场排队排到拐角
: ,这人直接送安定门吧

b*******s
发帖数: 5216
17
其实你那个按车次分库就行了,不需要负载平衡,每个车次的需求量在现实中是有限的
可以在队列分到每个库对应的子队列时就直接限制负载

【在 b*******g 的大作中提到】
: 所以你没见过云计算怎么会事。每年春运40天,每天我给你开一个小时3000台机器票就
: 卖完了。总共
: 40个小时,相当于长年开14台机器的成本。加上固定30台机器,不过44台。实际上那固
: 定的30台,我晚上还可以只留10台。最后轻松灭掉你长年30台,一到春运还要当机。

b*******g
发帖数: 603
18
对我的系统确实影响不大,因为有waiting list, 你没钱占了坑,后面的人顺序上而已。
对于太监的系统就不一样了,纯粹赌大运,看票什么时候放出来。

【在 c******3 的大作中提到】
: goodbug没说要和银行交互吧,那要等更久。分票和付帐是分开的不同transaction.这
: 点俩位没多大区别。我的理解。

b*******g
发帖数: 603
19
问题就是不能换座,简单取个号是不行的。

【在 i**i 的大作中提到】
: 好比你去银行, 门口有一个取号机, 拿到号以后去窗口办手续, 存钱/取钱等等各种业
: 务.
: 现在, 取号机每天只给一个号. 不管门口一百个人抢号,打架, 那个拿到号的可以悠悠
: 闲闲地办手续.
: 对应到老魏的系统, 号就是那个id, 你买的就是这个id. 外围有一万个机器为银行服务
: 都与老魏无关.

g****t
发帖数: 31659
20
前面这张票废了,就跟退票的情况一样了。
一样会出问题。

已。

【在 b*******g 的大作中提到】
: 对我的系统确实影响不大,因为有waiting list, 你没钱占了坑,后面的人顺序上而已。
: 对于太监的系统就不一样了,纯粹赌大运,看票什么时候放出来。

相关主题
无论如何抢,最后顶多10张票会有些震荡这玩意太简单了
老魏的东西就一计数器12306的瓶颈是软件设计
老魏这个家伙是来行为艺术的用计数器解决并发问题
进入Programming版参与讨论
b*******g
发帖数: 603
21
出个屁问题,你要懂什么叫DB transaction就不会问出这样的问题了。

【在 g****t 的大作中提到】
: 前面这张票废了,就跟退票的情况一样了。
: 一样会出问题。
:
: 已。

i**i
发帖数: 1500
22
他问的是整个系统怎么工作. 拿到那个transaction id以后, 去支付. 如果45内分钟支
付完成, 整个交易结束. 否则, 不管是银行或者其他server发起, 取消这个
transaction, 相当于退票.
至于这个transaction id对应的分座情况, 就看分座算法的质量了.

【在 b*******g 的大作中提到】
: 问题就是不能换座,简单取个号是不行的。
a****i
发帖数: 1182
23
人12306要做一个银行,你弄个拿号的机器,就说自己设计宇宙第一了
离完成差得远呢
然后你拿这个拿号的机器跟人整个银行流程比速度

【在 i**i 的大作中提到】
: 好比你去银行, 门口有一个取号机, 拿到号以后去窗口办手续, 存钱/取钱等等各种业
: 务.
: 现在, 取号机每天只给一个号. 不管门口一百个人抢号,打架, 那个拿到号的可以悠悠
: 闲闲地办手续.
: 对应到老魏的系统, 号就是那个id, 你买的就是这个id. 外围有一万个机器为银行服务
: 都与老魏无关.

i**i
发帖数: 1500
24
我服你了. 算我没说好吧.

【在 a****i 的大作中提到】
: 人12306要做一个银行,你弄个拿号的机器,就说自己设计宇宙第一了
: 离完成差得远呢
: 然后你拿这个拿号的机器跟人整个银行流程比速度

i**i
发帖数: 1500
25
弱智得让人感到绝望:
- "人12306要做一个银行": 我每个字都能看懂,不知道你想说什么. "12306要做一个银
行", 你不是想说12306要开银行吧? 还要说做银行的接口, 上下文也接不上啊.
- "你弄个拿号的机器,就说自己设计宇宙第一了": 亲, 这是我说的吗?
- "离完成差得远呢" 亲, 有没有看见我怎么开头的? 知道"好比"是什么意思吗? 我拿
银行的流程来帮助你理解. 算了, 那什么一样的队友.
- "然后你拿这个拿号的机器跟人整个银行流程比速度" 拿号是银行流程的一步, 我假
设由于某种原因, 这步成了瓶颈, 对应到火车票就是有限的票卖光了. 比什么速度?
- "就说自己设计宇宙第一了" 什么都没整明白, 站队站得倒挺快.
你真行.

【在 a****i 的大作中提到】
: 人12306要做一个银行,你弄个拿号的机器,就说自己设计宇宙第一了
: 离完成差得远呢
: 然后你拿这个拿号的机器跟人整个银行流程比速度

b*******g
发帖数: 603
26
光一个不换座,找座位算法就快不起来。要是加上5张票,尽量连坐,至少不跨车厢这
些正常的要求,集中式实时就是死给你看的结果。
我说来说去不就是几种妥协,要嘛你不实时,你要怎么找就怎么找。要嘛我可以做到基
本实时,分布式,但找座只能局部最优。

【在 i**i 的大作中提到】
: 他问的是整个系统怎么工作. 拿到那个transaction id以后, 去支付. 如果45内分钟支
: 付完成, 整个交易结束. 否则, 不管是银行或者其他server发起, 取消这个
: transaction, 相当于退票.
: 至于这个transaction id对应的分座情况, 就看分座算法的质量了.

i**i
发帖数: 1500
27
同意分座要pool一下才好办.
其实, 你们现在的方案已经比较接近了. 现在不是相同算法, 一个用程序index, 一个
用db自带index吗?

【在 b*******g 的大作中提到】
: 光一个不换座,找座位算法就快不起来。要是加上5张票,尽量连坐,至少不跨车厢这
: 些正常的要求,集中式实时就是死给你看的结果。
: 我说来说去不就是几种妥协,要嘛你不实时,你要怎么找就怎么找。要嘛我可以做到基
: 本实时,分布式,但找座只能局部最优。

b*******g
发帖数: 603
28
我们方案一点不接近,我提出的是一个系统,它提出的是一个无数人帮他打了补丁的计
数器。

【在 i**i 的大作中提到】
: 同意分座要pool一下才好办.
: 其实, 你们现在的方案已经比较接近了. 现在不是相同算法, 一个用程序index, 一个
: 用db自带index吗?

a****i
发帖数: 1182
29
你自己提的银行,我不写个“比如”你就看不懂。你知道上下文不?会读中文不?
12306做的是全套,可不是一个计数器
比如,一个银行。人要的是整个银行系统:排队,存取款,付款,转帐...
你那个比如就弄了个计数器完事。怎么比?
还好你不是我队友

【在 i**i 的大作中提到】
: 弱智得让人感到绝望:
: - "人12306要做一个银行": 我每个字都能看懂,不知道你想说什么. "12306要做一个银
: 行", 你不是想说12306要开银行吧? 还要说做银行的接口, 上下文也接不上啊.
: - "你弄个拿号的机器,就说自己设计宇宙第一了": 亲, 这是我说的吗?
: - "离完成差得远呢" 亲, 有没有看见我怎么开头的? 知道"好比"是什么意思吗? 我拿
: 银行的流程来帮助你理解. 算了, 那什么一样的队友.
: - "然后你拿这个拿号的机器跟人整个银行流程比速度" 拿号是银行流程的一步, 我假
: 设由于某种原因, 这步成了瓶颈, 对应到火车票就是有限的票卖光了. 比什么速度?
: - "就说自己设计宇宙第一了" 什么都没整明白, 站队站得倒挺快.
: 你真行.

1 (共1页)
进入Programming版参与讨论
相关主题
12306的瓶颈是软件设计静态计数器和订票系统的区别
用计数器解决并发问题先说清楚了
一个500w/s并发的计数器每秒500万, 结论出来看了
老魏你赶快过来见我12306哪里有什么死锁问题!
看了半天帖子,我还是支持 魏老师老魏,主角是你,你的东西太简单了
大家先别给老魏的代码挑刺老魏,我们最初的目的还是12306么?
扯两句魏老师vs好虫真让老魏讨论需求时候,老魏就开始打滚了
点评一下两个方案无论如何抢,最后顶多10张票会有些震荡
相关话题的讨论汇总
话题: 12306话题: 老魏话题: 银行话题: goodbug话题: 方案