b*******s 发帖数: 5216 | 1 我按照我的理解画了个图,给魏老师的方案配上外围系统,如果理解错了,不关魏老师
的事
下面加点解释。
图里面示意了一次订票的流程。用户先log in,然后查询始发/终到站信息,以及车次
,这个没什么复杂的,都是静态的,图里面没有表示,随便web server去哪里要
然后用户选了一列车,开始查座位信息,这时web server去向图里面的cache服务器要
数据,这里面的数据表示可以有很多方法,先假定一种,假定这列车有16节车厢,占
2bytes,每车厢256个座,32个bytes,每个座途中可能停靠站32个,算4 bytes,0为未
占,1为占据,基本一列车的占座信息就是这38个bytes. 这个状态和实际座位占用不是
严格对应的,用有向图要更便捷一些,暂时先用这个来示意
用户选中一个座位,递交请求,web server发送对某个位置的请求,就是对那个38个
bytes的一个掩码,想要占据的bits设1,其余0
然后就到了魏老师的系统,在里面处理,如果能占据,就对cache和standby进行update
,等standby的ack,等到了就告诉web server,位置占到了;占不到也直接反馈你没有
占到
web server告诉user去付款,这时是一个transcation,,但是阻塞只发生在web
server里面,这时可以用米高或者好虫的各种技巧提高web server cluster的吞吐能力
。而魏老师的系统没有阻塞,继续爱干嘛干嘛,所有人依然可以抢票。
如果用户付款成功,不需要告诉魏老师的系统,如果没有成功,就告诉魏老师的系统取
消那个占位,这个操作理论上是没有人竞争的,这个需要web server那一块保证能
handle所有的情况,别付款不成就不了了之
在cache上是一个rw lock,因为理论上只有一个写,其余的都是读的,可以采用粒度比
较大的锁
在魏老师的系统里,基本可以采用non-blocking sync的办法来管理位置信息
提供个讨论基础吧
http://www.flickr.com/photos/109749925@N04/ |
b*******s 发帖数: 5216 | 2 这样魏老师的系统,和钱根本没关系,不需要transcation |
g*****g 发帖数: 34805 | 3 魏老师的方案,撑不住10万次每秒的订单,不解决这个,啥都是扯谈。
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我按照我的理解画了个图,给魏老师的方案配上外围系统,如果理解错了,不关魏老师 : 的事 : 下面加点解释。 : 图里面示意了一次订票的流程。用户先log in,然后查询始发/终到站信息,以及车次 : ,这个没什么复杂的,都是静态的,图里面没有表示,随便web server去哪里要 : 然后用户选了一列车,开始查座位信息,这时web server去向图里面的cache服务器要 : 数据,这里面的数据表示可以有很多方法,先假定一种,假定这列车有16节车厢,占 : 2bytes,每车厢256个座,32个bytes,每个座途中可能停靠站32个,算4 bytes,0为未 : 占,1为占据,基本一列车的占座信息就是这38个bytes. 这个状态和实际座位占用不是 : 严格对应的,用有向图要更便捷一些,暂时先用这个来示意
|
b*******s 发帖数: 5216 | 4 还是写硬盘的问题?
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 魏老师的方案,撑不住10万次每秒的订单,不解决这个,啥都是扯谈。
|
T********i 发帖数: 2416 | 5 多谢你花时间和精力在上面。衷心希望你这样的网友能成为这个板上的中坚力量。
其实座位最好占用至少一个integer而不是一个bit。多个cpu core可以同时死锁通过
compare and exchange cpu指令抢票。整个核心可以做成完全无锁的,而且用java之类
的语言也能实现。
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我按照我的理解画了个图,给魏老师的方案配上外围系统,如果理解错了,不关魏老师 : 的事 : 下面加点解释。 : 图里面示意了一次订票的流程。用户先log in,然后查询始发/终到站信息,以及车次 : ,这个没什么复杂的,都是静态的,图里面没有表示,随便web server去哪里要 : 然后用户选了一列车,开始查座位信息,这时web server去向图里面的cache服务器要 : 数据,这里面的数据表示可以有很多方法,先假定一种,假定这列车有16节车厢,占 : 2bytes,每车厢256个座,32个bytes,每个座途中可能停靠站32个,算4 bytes,0为未 : 占,1为占据,基本一列车的占座信息就是这38个bytes. 这个状态和实际座位占用不是 : 严格对应的,用有向图要更便捷一些,暂时先用这个来示意
|
b*******s 发帖数: 5216 | 6 再来分析下写硬盘的问题,一个7200rpm的sata hd,基本写入速度是300MB/s,魏老师的
方案,一次写请求只有几十个bytes,算64个吧,300 * 1024 * 1024 / 64 =
4915200 次写请求,大致是百万量级的,其实大多数请求应该是失败的,需要写的,整
个春运就几亿次 |
b*******s 发帖数: 5216 | 7 我知道,不过区间最好是bits,因为比如从北京到上海的票,会占据期间全部区段,用
bits的话,实际上更有效率
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 多谢你花时间和精力在上面。衷心希望你这样的网友能成为这个板上的中坚力量。 : 其实座位最好占用至少一个integer而不是一个bit。多个cpu core可以同时死锁通过 : compare and exchange cpu指令抢票。整个核心可以做成完全无锁的,而且用java之类 : 的语言也能实现。
|
z****e 发帖数: 54598 | 8 魏老师的方案,压根没有押中重点
就跟你说铁道部用foxpro一样
都属于行为艺术的一种
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这样魏老师的系统,和钱根本没关系,不需要transcation
|
b*******s 发帖数: 5216 | 9 除了最后的32bits,一般前面的都是定位的token,不需要写的
要写的是最后的一个int,正好用compnexchang :)
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 多谢你花时间和精力在上面。衷心希望你这样的网友能成为这个板上的中坚力量。 : 其实座位最好占用至少一个integer而不是一个bit。多个cpu core可以同时死锁通过 : compare and exchange cpu指令抢票。整个核心可以做成完全无锁的,而且用java之类 : 的语言也能实现。
|
b*******s 发帖数: 5216 | 10 我只说了铁道部最初用的foxpro,没有说现在还是
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 魏老师的方案,压根没有押中重点 : 就跟你说铁道部用foxpro一样 : 都属于行为艺术的一种
|
|
|
g*****g 发帖数: 34805 | 11 不管是硬盘还是SSD,一万刀的单机不可能撑住10万次每秒的写。这个东西他没有解决
方案,只有一个内存数据库。掉了电就丢订单的方案。
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 还是写硬盘的问题?
|
z****e 发帖数: 54598 | 12 那一百年前还是詹天佑呢
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我只说了铁道部最初用的foxpro,没有说现在还是
|
g*****g 发帖数: 34805 | 13 300MB/s那是写大文件的速度,就一个或几个磁头,让你写300byte一个的文件,能每秒
写1M个不成?
commodity硬件1万次/秒都撑不住,不用说10万次/秒。春运总共次数可能不多,但是下
单是突发式的,每天票刚出来的一两分钟。达到10万次/秒的峰值一点不夸张。
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 再来分析下写硬盘的问题,一个7200rpm的sata hd,基本写入速度是300MB/s,魏老师的 : 方案,一次写请求只有几十个bytes,算64个吧,300 * 1024 * 1024 / 64 = : 4915200 次写请求,大致是百万量级的,其实大多数请求应该是失败的,需要写的,整 : 个春运就几亿次
|
b*******s 发帖数: 5216 | 14 再扩展一下魏老师的方案,我把main/standby/cache作为一个组,其实按照车次划分
,最细可以划分到每列车一个组,实际上春运期间上千个车次,我们划个20个组,就分
布了,相互之间不存在依赖关系,不需要任何同步。然后可以就近部署,比如广东的民
工去四川和湖南的车次,我就部署在广州,依此类推 |
z****e 发帖数: 54598 | 15 别别别,我们搞分布式的高攀不上你们单机
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 再扩展一下魏老师的方案,我把main/standby/cache作为一个组,其实按照车次划分 : ,最细可以划分到每列车一个组,实际上春运期间上千个车次,我们划个20个组,就分 : 布了,相互之间不存在依赖关系,不需要任何同步。然后可以就近部署,比如广东的民 : 工去四川和湖南的车次,我就部署在广州,依此类推
|
b*******s 发帖数: 5216 | 16 我的图示里面没有考虑日期,不过也不难,从d日开始加offset,在那38个bytes后面再
加一两个bytes或者int就行,整体设计不影响 |
z****e 发帖数: 54598 | 17 legacy system怎么处理?
swjtuer给了你至少五六个系统
全部扔掉是不是?
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我的图示里面没有考虑日期,不过也不难,从d日开始加offset,在那38个bytes后面再 : 加一两个bytes或者int就行,整体设计不影响
|
b*******s 发帖数: 5216 | 18 我现在公司也做的分布式系统上的东西,对具体技术,好用就好,没必要先入为主排斥
大家交流
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 别别别,我们搞分布式的高攀不上你们单机
|
z****e 发帖数: 54598 | 19 牛皮是魏老师吹出来的
单机也是他说的
后来各种辅助方案,那是那个谁帮忙加的
魏老压根没想过那么多破事
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我现在公司也做的分布式系统上的东西,对具体技术,好用就好,没必要先入为主排斥 : 大家交流
|
b*******s 发帖数: 5216 | 20 嗯,可以车次,时间,始发终到信息从那个系统读,web server cluster里面完成
transaction了也可以往里面写
反正也就几亿次写操作,读取初始信息每台服务器一次足矣,对老系统冲击不大
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : legacy system怎么处理? : swjtuer给了你至少五六个系统 : 全部扔掉是不是?
|
|
|
z****e 发帖数: 54598 | 21 again
legacy system怎么办?
我不是问你数据源在哪
问的是,当你把这些数据全部读入单机内存之后
其它现有的五六个系统,怎么办?全部跑这台单机上去读内存?
麻烦你professional一点
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 嗯,可以车次,时间,始发终到信息从那个系统读,web server cluster里面完成 : transaction了也可以往里面写 : 反正也就几亿次写操作,读取初始信息每台服务器一次足矣,对老系统冲击不大
|
b*******s 发帖数: 5216 | 22 我的理解是,魏老师的话是有很多前提的,他只想解决性能要求最高,最容易产生拥堵
的抢票环节
其余的外围系统就是我这次补充的
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 牛皮是魏老师吹出来的 : 单机也是他说的 : 后来各种辅助方案,那是那个谁帮忙加的 : 魏老压根没想过那么多破事
|
z****e 发帖数: 54598 | 23 魏老师的确应该感谢你这样的行为艺术家
给他擦了不少屁股
hot standby什么都是别人加的
老魏压根没想过
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我按照我的理解画了个图,给魏老师的方案配上外围系统,如果理解错了,不关魏老师 : 的事 : 下面加点解释。 : 图里面示意了一次订票的流程。用户先log in,然后查询始发/终到站信息,以及车次 : ,这个没什么复杂的,都是静态的,图里面没有表示,随便web server去哪里要 : 然后用户选了一列车,开始查座位信息,这时web server去向图里面的cache服务器要 : 数据,这里面的数据表示可以有很多方法,先假定一种,假定这列车有16节车厢,占 : 2bytes,每车厢256个座,32个bytes,每个座途中可能停靠站32个,算4 bytes,0为未 : 占,1为占据,基本一列车的占座信息就是这38个bytes. 这个状态和实际座位占用不是 : 严格对应的,用有向图要更便捷一些,暂时先用这个来示意
|
z****e 发帖数: 54598 | 24 他所谓解决的部分
一直都不是问题
不止一个人上来就说了
他解决了一个从来不是问题的“问题”
是你神话了这个所谓的“问题”
比如foxpro
其它人都不认为这是什么拥堵的地方
都在看魏老师吹牛呢
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我的理解是,魏老师的话是有很多前提的,他只想解决性能要求最高,最容易产生拥堵 : 的抢票环节 : 其余的外围系统就是我这次补充的
|
b*******s 发帖数: 5216 | 25 我觉得你太激动了 :)
如果新系统能工作,而且比旧系统好,为什么还要保留旧系统呢?
我建议把旧系统off-line,没什么事就不要去碰了
保留所有旧系统你不觉得是自己给自己找麻烦吗?
当然你们可能可以从维护中赚钱,所以不舍得这么做,那是另一个故事了
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : again : legacy system怎么办? : 我不是问你数据源在哪 : 问的是,当你把这些数据全部读入单机内存之后 : 其它现有的五六个系统,怎么办?全部跑这台单机上去读内存? : 麻烦你professional一点
|
T********i 发帖数: 2416 | 26 是谁加的?有本事找出帖子来举证?
为了造谣脸都不要了。品性这么恶劣不知道什么样的爹妈生养出来的。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 魏老师的确应该感谢你这样的行为艺术家 : 给他擦了不少屁股 : hot standby什么都是别人加的 : 老魏压根没想过
|
b*******s 发帖数: 5216 | 27 反正我该说的都说了,写硬盘我也分析了
我们另开个有趣的话题吧
从你和好虫那里,我也学了很多的
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 魏老师的确应该感谢你这样的行为艺术家 : 给他擦了不少屁股 : hot standby什么都是别人加的 : 老魏压根没想过
|
z****e 发帖数: 54598 | 28 你太不professional了
你什么时候见过一夜之间就淘汰了旧系统的系统?
还有你觉得企业应用,是可以随便就动手术改造的么?
专业点,来项目管理上来就要做一件事
把scope,cost,time给定义出来
请问这个项目里面,这几个分别是什么?
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我觉得你太激动了 :) : 如果新系统能工作,而且比旧系统好,为什么还要保留旧系统呢? : 我建议把旧系统off-line,没什么事就不要去碰了 : 保留所有旧系统你不觉得是自己给自己找麻烦吗? : 当然你们可能可以从维护中赚钱,所以不舍得这么做,那是另一个故事了
|
z****e 发帖数: 54598 | 29 那是你说的?
你这还是单机么?
你忘了你要单机?
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 是谁加的?有本事找出帖子来举证? : 为了造谣脸都不要了。品性这么恶劣不知道什么样的爹妈生养出来的。
|
z****e 发帖数: 54598 | 30 老魏你先回答我上一个问题
你到底要解决什么问题?
定义scope,你做项目难道没有人告诉你要定义scope么?
你怎么搞的项目管理啊?
哦,抱歉,你可能没做过
【在 T********i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 是谁加的?有本事找出帖子来举证? : 为了造谣脸都不要了。品性这么恶劣不知道什么样的爹妈生养出来的。
|
|
|
g*****g 发帖数: 34805 | 31 你写硬盘分析得很不对,拷贝大文件,跟拷贝小文件是完全两码事。这个你自己硬盘上
很容易验证。commodity hardware没有能撑住每秒10万次写的。
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 反正我该说的都说了,写硬盘我也分析了 : 我们另开个有趣的话题吧 : 从你和好虫那里,我也学了很多的
|
b***i 发帖数: 3043 | 32 订票应该可以提早2个月吧,所以2个月内的信息全都在内存中
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 嗯,可以车次,时间,始发终到信息从那个系统读,web server cluster里面完成 : transaction了也可以往里面写 : 反正也就几亿次写操作,读取初始信息每台服务器一次足矣,对老系统冲击不大
|
b*******s 发帖数: 5216 | 33 我们只是在讨论大致技术方案吧,这也能牵涉到professional?
我觉得你把你的背景代入过多了
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你太不professional了 : 你什么时候见过一夜之间就淘汰了旧系统的系统? : 还有你觉得企业应用,是可以随便就动手术改造的么? : 专业点,来项目管理上来就要做一件事 : 把scope,cost,time给定义出来 : 请问这个项目里面,这几个分别是什么?
|
z****e 发帖数: 54598 | 34 你还能抽象出这种技术问题变成一个数学问题了?
我很佩服你的想象力,engineering如战场
事情发展总是在你意料之外,所以说你不professional
没有经历过,不知道
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我们只是在讨论大致技术方案吧,这也能牵涉到professional? : 我觉得你把你的背景代入过多了
|
b*******s 发帖数: 5216 | 35 其实多不了多少数据量,你可以分析一下
【在 b***i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 订票应该可以提早2个月吧,所以2个月内的信息全都在内存中
|
b*******s 发帖数: 5216 | 36 你明白什么叫另一个问题吗?
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你还能抽象出这种技术问题变成一个数学问题了? : 我很佩服你的想象力,engineering如战场 : 事情发展总是在你意料之外,所以说你不professional : 没有经历过,不知道
|
z****e 发帖数: 54598 | 37 你明白什么叫现实复杂度吗?还有依赖?
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你明白什么叫另一个问题吗?
|
b*******s 发帖数: 5216 | 38 嗯,这个我是取巧了一下,但这个例子中,是内存向硬盘写入,问题可能并不像硬盘到
硬盘那么严重
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你写硬盘分析得很不对,拷贝大文件,跟拷贝小文件是完全两码事。这个你自己硬盘上 : 很容易验证。commodity hardware没有能撑住每秒10万次写的。
|
l*********s 发帖数: 5409 | 39 zkss
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你明白什么叫现实复杂度吗?还有依赖?
|
z****e 发帖数: 54598 | 40 我说个笑话,acm大牛告诉我们的
说奥巴马有一个决策系统,随时可以做出分析,告诉奥巴马团队,什么人群,什么年龄段
更喜欢他,所以应该针对什么人群做广告,叫它们都去投票,等等,很周全很详细
同时,罗姆尼也有一个类似的决策系统,但是问题在于
罗姆尼只在投票前一天打开这个系统……
当然我相信这是个笑话,用来讽刺共和党的
但是很多人做项目管理需求分析,其实就是这里面的罗姆尼
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : zkss
|
|
|
b***i 发帖数: 3043 | 41 我觉得这个订票系统是一个非常好的实际的例子。那我们就好好提出一下要求吧。下面
是我的空想,请轻拍和补充。
1. 60天内的票可以订,2小时之内不可以网上订,但可以火车站买。铁道部规划车次信
息,一旦确认,60天内不会更改。如果突然出现大型事故造成晚点。铁道部会退还错过
车次的乘客票费,但不负责承诺原来的车次和时间。用户自己在车站重新购买。
2. 订票确认即收费(银行,支付宝等),给用户显示条形码并发邮件。
3. 30天内票不可以退。30天以后可以退,收退票费。按比例多次退票的人进入黑名单
,比别人退票费要高。比例减少则可以逐渐减少退票费,回归正常。
4. 实名制,用户注册使用身份证。联网到火车站登车的列车员检查。可以给别人订票
,只要有姓名和身份证号。
5. 车票有所有信息,不能上车后发现没有座位。
6. 用户打开网页后,要求99%必须在2秒内进行任何操作的实现,比如登陆,搜索车票
信息,购买等。搜索可以按多页面给结果,每个页面出现不可以有超过2秒钟的延迟。
前提是正常的计算机(客户i5 CPU),宽带,处在正常的环境,没有大规模网络问题。
7. 允许大客户提交文件进行大批订票。
8. 从出发到目的地,系统可以进行最多4次转车。4次无法实现的,由用户自己负责。
能够实现的必须实现。
9. 票价按预定时间提前量浮动,从容可以保证提前订票。也可以不浮动,如果国务院
不允许。
10. 防火墙可以通知公安局,如果有人恶意DOS攻击。
龄段
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我说个笑话,acm大牛告诉我们的 : 说奥巴马有一个决策系统,随时可以做出分析,告诉奥巴马团队,什么人群,什么年龄段 : 更喜欢他,所以应该针对什么人群做广告,叫它们都去投票,等等,很周全很详细 : 同时,罗姆尼也有一个类似的决策系统,但是问题在于 : 罗姆尼只在投票前一天打开这个系统…… : 当然我相信这是个笑话,用来讽刺共和党的 : 但是很多人做项目管理需求分析,其实就是这里面的罗姆尼
|
o**q 发帖数: 47 | 42 魏老师的方案应该也挡不住10万次每秒的订单:
http://phdtree.org/
http://phdtree.org/toplist/field/cs/
【在 b*******s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我按照我的理解画了个图,给魏老师的方案配上外围系统,如果理解错了,不关魏老师 : 的事 : 下面加点解释。 : 图里面示意了一次订票的流程。用户先log in,然后查询始发/终到站信息,以及车次 : ,这个没什么复杂的,都是静态的,图里面没有表示,随便web server去哪里要 : 然后用户选了一列车,开始查座位信息,这时web server去向图里面的cache服务器要 : 数据,这里面的数据表示可以有很多方法,先假定一种,假定这列车有16节车厢,占 : 2bytes,每车厢256个座,32个bytes,每个座途中可能停靠站32个,算4 bytes,0为未 : 占,1为占据,基本一列车的占座信息就是这38个bytes. 这个状态和实际座位占用不是 : 严格对应的,用有向图要更便捷一些,暂时先用这个来示意
|
g*********9 发帖数: 1285 | 43 看不下去,大家讨论问题,该争论争论, 但别搞人身攻击,象zhaoce (米高蜥蜴),你
有水平就把大家讲服了,别老损这个,骂那个,没必要。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : again : legacy system怎么办? : 我不是问你数据源在哪 : 问的是,当你把这些数据全部读入单机内存之后 : 其它现有的五六个系统,怎么办?全部跑这台单机上去读内存? : 麻烦你professional一点
|
G********f 发帖数: 17 | 44 the write can be buffered, just like a normal log file, you don't have to
flush for every write. you don't return response to a request till that
record is flushed. latency will be higher but throughput stay the same.
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 300MB/s那是写大文件的速度,就一个或几个磁头,让你写300byte一个的文件,能每秒 : 写1M个不成? : commodity硬件1万次/秒都撑不住,不用说10万次/秒。春运总共次数可能不多,但是下 : 单是突发式的,每天票刚出来的一两分钟。达到10万次/秒的峰值一点不夸张。
|
g*****g 发帖数: 34805 | 45 You can't buffered write, because it's not just write, you also need to
update
counter according to his design. And if you buffer update too, you risk
selling too many.
【在 G********f 的大作中提到】![](/moin_static193/solenoid/img/up.png) : the write can be buffered, just like a normal log file, you don't have to : flush for every write. you don't return response to a request till that : record is flushed. latency will be higher but throughput stay the same.
|
G********f 发帖数: 17 | 46 a request come in, u update the counter, then write a log to buffer, then
deal with next request. after N request, u flush the buffer, then for each
log entry in the buffer, send a response to the corresponding request. so
essentially u delayed the response till the log is flushed. it is kind of a
asynchronous solution where u trade latency for throughput.
【在 g*****g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : You can't buffered write, because it's not just write, you also need to : update : counter according to his design. And if you buffer update too, you risk : selling too many.
|
l*********s 发帖数: 5409 | 47 你的意思是需要对春运先做需求分析再按需设计?这个原则大家都知道吧,没啥新鲜的。
龄段
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我说个笑话,acm大牛告诉我们的 : 说奥巴马有一个决策系统,随时可以做出分析,告诉奥巴马团队,什么人群,什么年龄段 : 更喜欢他,所以应该针对什么人群做广告,叫它们都去投票,等等,很周全很详细 : 同时,罗姆尼也有一个类似的决策系统,但是问题在于 : 罗姆尼只在投票前一天打开这个系统…… : 当然我相信这是个笑话,用来讽刺共和党的 : 但是很多人做项目管理需求分析,其实就是这里面的罗姆尼
|
z****e 发帖数: 54598 | 48 you can never teach old dog new tricks
该不会时候就有人不会
的。
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你的意思是需要对春运先做需求分析再按需设计?这个原则大家都知道吧,没啥新鲜的。 : : 龄段
|
l*********s 发帖数: 5409 | 49 这么说就没意思了。就算你是大牛也没必要这么尖酸刻薄。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : you can never teach old dog new tricks : 该不会时候就有人不会 : : 的。
|
z****e 发帖数: 54598 | 50 魏老师是否尖酸刻薄呢?
yes or no question
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 这么说就没意思了。就算你是大牛也没必要这么尖酸刻薄。
|
|
|
l*********s 发帖数: 5409 | 51 没觉得,当然也可能是老魏骂人的帖子都被你刷屏刷掉了!
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 魏老师是否尖酸刻薄呢? : yes or no question
|
z****e 发帖数: 54598 | 52 那你这种双重标准就没意思了
你要睁着眼说瞎话,这个其实没啥难度
不想玩小孩子逻辑罢了
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 没觉得,当然也可能是老魏骂人的帖子都被你刷屏刷掉了!
|
g*****g 发帖数: 34805 | 53 at best you avoid sequential write by introducing morw writes, its on upper
bound already, hardly an improvement.
a
【在 G********f 的大作中提到】![](/moin_static193/solenoid/img/up.png) : a request come in, u update the counter, then write a log to buffer, then : deal with next request. after N request, u flush the buffer, then for each : log entry in the buffer, send a response to the corresponding request. so : essentially u delayed the response till the log is flushed. it is kind of a : asynchronous solution where u trade latency for throughput.
|
l*********s 发帖数: 5409 | 54 反正谁不同意你就是道德有问题是吧。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 那你这种双重标准就没意思了 : 你要睁着眼说瞎话,这个其实没啥难度 : 不想玩小孩子逻辑罢了
|
z****e 发帖数: 54598 | 55 你什么见过我强求过这里任何一个id同意过我了?
我再问你,我什么时候对它人的发言做出限制了?
哪怕一次?
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 反正谁不同意你就是道德有问题是吧。
|
l*********s 发帖数: 5409 | 56 那你解释下我为啥就双重标准了?我为啥就不能认为老魏不象你这么刻薄?
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你什么见过我强求过这里任何一个id同意过我了? : 我再问你,我什么时候对它人的发言做出限制了? : 哪怕一次?
|
z****e 发帖数: 54598 | 57 我说过你不能么?
话说我就算认为你不能这样做
有用么?
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 那你解释下我为啥就双重标准了?我为啥就不能认为老魏不象你这么刻薄?
|
z****e 发帖数: 54598 | 58 反过来,我能不能认为你双重标准呢?
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 那你解释下我为啥就双重标准了?我为啥就不能认为老魏不象你这么刻薄?
|
l*********s 发帖数: 5409 | 59 打住吧,扯皮没底的。
【在 z****e 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我说过你不能么? : 话说我就算认为你不能这样做 : 有用么?
|
z****e 发帖数: 54598 | 60 看来你也知道我们在扯皮
【在 l*********s 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 打住吧,扯皮没底的。
|