由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 换座的问题
相关主题
再举个测试用例。学习了学习了!数据库火车票的高效并发实现
老魏的计数器可以一试goodbug无耻是把撒谎作为家常便饭
关于计数器,我有一个疑问我看这个所谓的铁道部售票系统
这么多讨论的,你们用过12306吗?赵老师你精确定义 100% 出票
出票正确率的定义,赵,姜请进。问几个问题:
座位优化有多难?难于上青天?魏老师的方案
让老弱残疾扛着打包换车厢还是人吗?春运这个东西,用Storm就可以轻松搞定了
重新贴一次goodbug的要求谁知道铁道部卖票网站怎么做的?
相关话题的讨论汇总
话题: 换座话题: 座位话题: 服务器话题: 100话题: 火车
进入Programming版参与讨论
1 (共1页)
c********l
发帖数: 8138
1
在乘客已经上火车之后,中途换座is unacceptable
在绿皮车时代,大包小包行李,而且走道还有人,根本不可能换座
现在在动车高铁时代,既然不是始发站或者终点站,那么火车停靠的时间可能只有
1分钟,而且很有可能让乘客从车头跨越6节车箱到车尾。
1分钟的时间,连抽烟都不可能,打火机都点不起来。更别提让人换座了
另外,从用户体验的角度出发:
买了票,就相当于乘客和铁道公司之间有了一个contract,
公司有责任不损害用户体验。
如果没买票,铁道公司没有为用户的义务。
换句话,买不上票,或者买票在浏览器前的延时,只能说铁老大“不好”,
但无法因此投诉铁老大。
此外,在任何一个国家,都没有中途下车换座的先例。
总之单人次单座位是bottom line。。
一个折衷是:
买票的时候不指定座位,只有checkin(对应的就是取票)之后才知道座位号
就好比飞机一样。
实在不行,只有照目前这样,按照车次/日期划分服务器集群,
每天每车次只有一个服务器负责排座,一个车次,有多少个座位,就按照这些
座位直接在内存中开数组/or 数据库纪录。
虽然单机性能降低,但可以通过多搞几台服务器补偿。
这些服务器甚至可以直接是xeon server
L*****e
发帖数: 8347
2
没戏。飞机没有中间站的上上下下,而一次列车的一个座位是空还是被占是变化的。
先出票,随后确定座位的话,必然会出现conflicts,要么没法满足不换座,要么某些
票得作废。。。

【在 c********l 的大作中提到】
: 在乘客已经上火车之后,中途换座is unacceptable
: 在绿皮车时代,大包小包行李,而且走道还有人,根本不可能换座
: 现在在动车高铁时代,既然不是始发站或者终点站,那么火车停靠的时间可能只有
: 1分钟,而且很有可能让乘客从车头跨越6节车箱到车尾。
: 1分钟的时间,连抽烟都不可能,打火机都点不起来。更别提让人换座了
: 另外,从用户体验的角度出发:
: 买了票,就相当于乘客和铁道公司之间有了一个contract,
: 公司有责任不损害用户体验。
: 如果没买票,铁道公司没有为用户的义务。
: 换句话,买不上票,或者买票在浏览器前的延时,只能说铁老大“不好”,

c********l
发帖数: 8138
3
你没明白原文的递进关系。其实你的出发点和我是一样的
飞机没有中间站,尚且需要check in时分配大部分座位
(航空公司其实discourage在购票时选座位,最典型的就是united economy plus)
那么火车,为了避免中途换座,更需要越推迟分配座位越好
既然连推迟分配座位都无法解决问题,那就只有按现有的,开大数组,
而不是用占用内存少的“计数器”
我的point:
1中途换座是unacceptable的
2情愿牺牲一点performance,也需要优先满足functional requirement

【在 L*****e 的大作中提到】
: 没戏。飞机没有中间站的上上下下,而一次列车的一个座位是空还是被占是变化的。
: 先出票,随后确定座位的话,必然会出现conflicts,要么没法满足不换座,要么某些
: 票得作废。。。

b*******g
发帖数: 603
4
不分好座位,先订好之后没有分的办法。这就是为什么必须处理的时候就得分。
发信人: goodbug (好虫), 信区: Programming
标 题: 再举个测试用例。
发信站: BBS 未名空间站 (Wed Feb 5 04:17:26 2014, 美东)
假定一趟车经过ABCD四个地方,为简单举例,假定只有一个100人的车厢。在B加挂一个
200人的车厢,到C后撤掉。
最后客满,得ABC 票100张,BCD票100张,BC票100张。
A B C D
100 100 100
200
按照太监只管抢票不分座位的策略,请给个出票不用换座位的方案吧。别跟我说一个车
次还俩号。

【在 c********l 的大作中提到】
: 在乘客已经上火车之后,中途换座is unacceptable
: 在绿皮车时代,大包小包行李,而且走道还有人,根本不可能换座
: 现在在动车高铁时代,既然不是始发站或者终点站,那么火车停靠的时间可能只有
: 1分钟,而且很有可能让乘客从车头跨越6节车箱到车尾。
: 1分钟的时间,连抽烟都不可能,打火机都点不起来。更别提让人换座了
: 另外,从用户体验的角度出发:
: 买了票,就相当于乘客和铁道公司之间有了一个contract,
: 公司有责任不损害用户体验。
: 如果没买票,铁道公司没有为用户的义务。
: 换句话,买不上票,或者买票在浏览器前的延时,只能说铁老大“不好”,

L*****e
发帖数: 8347
5
我明白你的意思,但是因为有中间站的问题,火车起点发车了,中间某站还能继续售票
呢,所以严格讲火车就没法在发车前拿到全局订票结果。
还有一个就是,一趟飞机顶多三两百人,一趟火车好几千人,加上中途上下的人次就更
多。飞机你可以在办理登记手续时确认座位,乘火车的这好几千人你最晚什么时候给他
们确认座位?到了火车站再去一个个确认座位?
你要处理的东西数量变了10倍,解决方法就可能被从根本上改变。。。

【在 c********l 的大作中提到】
: 你没明白原文的递进关系。其实你的出发点和我是一样的
: 飞机没有中间站,尚且需要check in时分配大部分座位
: (航空公司其实discourage在购票时选座位,最典型的就是united economy plus)
: 那么火车,为了避免中途换座,更需要越推迟分配座位越好
: 既然连推迟分配座位都无法解决问题,那就只有按现有的,开大数组,
: 而不是用占用内存少的“计数器”
: 我的point:
: 1中途换座是unacceptable的
: 2情愿牺牲一点performance,也需要优先满足functional requirement

c********l
发帖数: 8138
6
你说的是对的,这更证明只能老老实实用死办法做。

【在 L*****e 的大作中提到】
: 我明白你的意思,但是因为有中间站的问题,火车起点发车了,中间某站还能继续售票
: 呢,所以严格讲火车就没法在发车前拿到全局订票结果。
: 还有一个就是,一趟飞机顶多三两百人,一趟火车好几千人,加上中途上下的人次就更
: 多。飞机你可以在办理登记手续时确认座位,乘火车的这好几千人你最晚什么时候给他
: 们确认座位?到了火车站再去一个个确认座位?
: 你要处理的东西数量变了10倍,解决方法就可能被从根本上改变。。。

1 (共1页)
进入Programming版参与讨论
相关主题
谁知道铁道部卖票网站怎么做的?出票正确率的定义,赵,姜请进。
说到底还是app 层 engineer 和 系统层engineer在斗法座位优化有多难?难于上青天?
好多人貌似对铁路售票业务完全不了解让老弱残疾扛着打包换车厢还是人吗?
铁道部的订票系统我的解决想法重新贴一次goodbug的要求
再举个测试用例。学习了学习了!数据库火车票的高效并发实现
老魏的计数器可以一试goodbug无耻是把撒谎作为家常便饭
关于计数器,我有一个疑问我看这个所谓的铁道部售票系统
这么多讨论的,你们用过12306吗?赵老师你精确定义 100% 出票
相关话题的讨论汇总
话题: 换座话题: 座位话题: 服务器话题: 100话题: 火车