由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 我的原帖在这里
相关主题
我来写个老魏的详细实现方案。(更新了缺点)拜托你们快动手做吧,每人做一个系统,一个测试客户端
我的方案,scalability可以线性无限,设计最简单我的赌博依然有效,还是我原帖的条件,5M TPS
每秒500万Goodbug再来赌一把1M/s计数器如何?Java实现
关于古德霸反例的实际测试数据双CPU,做到10M TPS没任何压力
腾讯开源tcp ip stack, f-stack。有用过的么?服务器测试结果
Goodbug家教下作无底线说的再清楚一点: 抢票机性能只和中途停靠总站数相关
竟然有人号称数据紧耦合是伪问题zz 12306是怎样做成的
围棋时兴让子,和goodbug还有另外一种赌法顺便和nod101说说做产品
相关话题的讨论汇总
话题: 抢票话题: scale话题: 区段话题: tcp话题: 线路
进入Programming版参与讨论
1 (共1页)
T********i
发帖数: 2416
1
参见以下引文。
几点注意事项:
1。我受到的训练,以及经验,都远非goodbug可比。不会给自己的方案增加任何不必要
的负担。
2。核心抢票服务器的目的有两个,第一控制票仓,避免超卖;第二,迅速响应,提高
用户体验。这个非单机不可。
3。我反复声明很多次,这个抢票服务器不是网站,而是网站后端。就好象goodbug一直
都强调自己做的是后端一样。Cassandra自己都是TCP/IP的API,凭什么要我实现REST?
4。性能铺到极限,就是看单机scale到多大。我还没开始做,说话要留有余地。余地就
是假设一条线路,20个区段。两条线路就是再scale一倍。既然大家都同意不能无限
scale,那么这就是我当初划下来的道道。
5。说一条线路没有数据紧耦合脑袋就是一团浆糊而已。最后一段的票如果先卖光,想
买全区票的就再也买不到了。从一条线路到两条,worst case就是linear scale一倍而
已。和一条40个区段的单线路没有任何区别。
6。至于线路从1条增加到1000条,除了增加实现复杂度,对性能没有根本的影响。公平
地讲,可能会增大cache miss。但是就算是3等票,1000×20×3×4bytes也没多少,
LLC都cache住无任何压力。注意LLC是20M。
7。我反复讲过,我任何时候都认为如果能scale out,就一定要scale out。至于这个
核心,是不能scale out的。单机性能就是极限。其他的,多个web前端,每个web前端
的多用户session,都能scale out。这些都是拜我这个抢票核心所赐。
8。票的状态是一个state machine。我的抢票核心能够实时广播最新的状态,给无穷的
机器。我称这些为cache机。web前端通过cache机抢票,scahe机可以先过滤,大概有票
才会送到抢票核心机。因此scalability是无限的。
goodbug,你要考虑好是不是接这个赌局。

我不管NASDAQ的系统如何。而且我也没有评论过NASDAQ如何。
我抢票核心的程序写完了,你要是不服咱们就打个赌怎么样?我实现整个单机抢票服务
器,
假定一条线路,20个区段。
要是能够每秒处理500万单,你今后滚出这个MITBBS怎么样?
要是处理不了,我滚出去。
w***g
发帖数: 5958
2
你用cache机实现REST,然后你自己在后台用TCP/IP好了。我觉得这个没什么问题啊。
我无保留支持你,可以帮你做一些coding。咱C++程序员不能让人看不起了。

【在 T********i 的大作中提到】
: 参见以下引文。
: 几点注意事项:
: 1。我受到的训练,以及经验,都远非goodbug可比。不会给自己的方案增加任何不必要
: 的负担。
: 2。核心抢票服务器的目的有两个,第一控制票仓,避免超卖;第二,迅速响应,提高
: 用户体验。这个非单机不可。
: 3。我反复声明很多次,这个抢票服务器不是网站,而是网站后端。就好象goodbug一直
: 都强调自己做的是后端一样。Cassandra自己都是TCP/IP的API,凭什么要我实现REST?
: 4。性能铺到极限,就是看单机scale到多大。我还没开始做,说话要留有余地。余地就
: 是假设一条线路,20个区段。两条线路就是再scale一倍。既然大家都同意不能无限

s***o
发帖数: 2191
3
我以前就说过,魏老师跟好虫合作整合一下,每天花7小时打架1小时干活,也许很快就
能做出个能卖钱的系统来
T********i
发帖数: 2416
4
绝无问题,事实上本来就应该这么做。
但是我只需要证明我的TCP/IP能处理每秒500万无压力就好了。
剩下的,是goodbug这种打杂的干的活。我这辈子可能都没必要干。

【在 w***g 的大作中提到】
: 你用cache机实现REST,然后你自己在后台用TCP/IP好了。我觉得这个没什么问题啊。
: 我无保留支持你,可以帮你做一些coding。咱C++程序员不能让人看不起了。

w***g
发帖数: 5958
5
不经过公网没有说服力啊。

【在 T********i 的大作中提到】
: 绝无问题,事实上本来就应该这么做。
: 但是我只需要证明我的TCP/IP能处理每秒500万无压力就好了。
: 剩下的,是goodbug这种打杂的干的活。我这辈子可能都没必要干。

T********i
发帖数: 2416
6
行啊,有人出钱把公网的infrastructure租下来,我就放到公网去。
TCP client也不难写。

【在 w***g 的大作中提到】
: 不经过公网没有说服力啊。
T********i
发帖数: 2416
7
我怎么感觉似乎如果我做出来了,会有很多人有信仰破灭的感觉捏?
把做个破网站当信仰的。把Cassandra之类的人家嚼过的馍反复咀嚼当追求的,这个世
界观,确实和轮子们有一拼。
我就不一一点名了。
w***g
发帖数: 5958
8
你这个infrastructure倒确实也难弄。Goodbug可以租amazon反正以量取胜。Amazon的
机器你可能用不上。如果用TCP协议的话每个请求20个字节或许可以弄下来, 那就是
500w * 20 * 8 = 800Mb/s。千兆以太网还将将凑合。不过如果只是读写内存的话就不
好玩了。你那个系统里最有意思的还是Fusion IO做存储还有fail over的那部分。

【在 T********i 的大作中提到】
: 行啊,有人出钱把公网的infrastructure租下来,我就放到公网去。
: TCP client也不难写。

T********i
发帖数: 2416
9
同步写盘确实是伪命题。
我早就论证过,一串单机跨DC异步写盘,eventual consistency,保证一致性和
failover没问题。协议复杂些,对性能几乎没影响。
我也看明白了。这版上基本就是一批做网站的new grad在玩。

【在 w***g 的大作中提到】
: 你这个infrastructure倒确实也难弄。Goodbug可以租amazon反正以量取胜。Amazon的
: 机器你可能用不上。如果用TCP协议的话每个请求20个字节或许可以弄下来, 那就是
: 500w * 20 * 8 = 800Mb/s。千兆以太网还将将凑合。不过如果只是读写内存的话就不
: 好玩了。你那个系统里最有意思的还是Fusion IO做存储还有fail over的那部分。

p***o
发帖数: 1252
10
6里面的4字节只算了空座数没算具体座位恐怕会有问题。
2000个座用bitmap也得250字节,就算cache不miss,每个区段找个座位都得5+个cycle。

【在 T********i 的大作中提到】
: 参见以下引文。
: 几点注意事项:
: 1。我受到的训练,以及经验,都远非goodbug可比。不会给自己的方案增加任何不必要
: 的负担。
: 2。核心抢票服务器的目的有两个,第一控制票仓,避免超卖;第二,迅速响应,提高
: 用户体验。这个非单机不可。
: 3。我反复声明很多次,这个抢票服务器不是网站,而是网站后端。就好象goodbug一直
: 都强调自己做的是后端一样。Cassandra自己都是TCP/IP的API,凭什么要我实现REST?
: 4。性能铺到极限,就是看单机scale到多大。我还没开始做,说话要留有余地。余地就
: 是假设一条线路,20个区段。两条线路就是再scale一倍。既然大家都同意不能无限

相关主题
Goodbug家教下作无底线拜托你们快动手做吧,每人做一个系统,一个测试客户端
竟然有人号称数据紧耦合是伪问题我的赌博依然有效,还是我原帖的条件,5M TPS
围棋时兴让子,和goodbug还有另外一种赌法Goodbug再来赌一把1M/s计数器如何?Java实现
进入Programming版参与讨论
w***g
发帖数: 5958
11
其实我也觉得你那个架构根本不需要Fusion IO。你们说的测试要求里并没有提到
failover部分。不知道你觉得在AWS上搞三台机器能不能做出来你这个系统。如果用TCP
/IP千兆以太网是将将能凑合的。
我是做大数据处理的,没搞过网站。

【在 T********i 的大作中提到】
: 同步写盘确实是伪命题。
: 我早就论证过,一串单机跨DC异步写盘,eventual consistency,保证一致性和
: failover没问题。协议复杂些,对性能几乎没影响。
: 我也看明白了。这版上基本就是一批做网站的new grad在玩。

w***g
发帖数: 5958
12
那有问题吗?内存肯定不会是bottleneck.

cycle。

【在 p***o 的大作中提到】
: 6里面的4字节只算了空座数没算具体座位恐怕会有问题。
: 2000个座用bitmap也得250字节,就算cache不miss,每个区段找个座位都得5+个cycle。

T********i
发帖数: 2416
13
别忘了,抢到票才会分配座位。
分配作为不需要在核心机完成。也可以scale out。
分配作为还要优化,力求碎片最小。
这是我的单线程优化算法。
http://www.mitbbs.com/article/Programming/31300367_3.html
具体表现。
用户抢票,毫秒级反馈告诉你抢到票了。
几秒钟后,受到短信/email,给你一个全程的座位分配。注意,中途可能要换座位。但
是这已经是最优方案了。总比现在铁道部卖那种没座位号的票好多了。

cycle。

【在 p***o 的大作中提到】
: 6里面的4字节只算了空座数没算具体座位恐怕会有问题。
: 2000个座用bitmap也得250字节,就算cache不miss,每个区段找个座位都得5+个cycle。

T********i
发帖数: 2416
14
其实我还没有说goodbug那个所谓的方案。
丫号称150台机器1M TPS。别忘了这个抢票服务器是紧耦合的。
公平起见,还是这个问题,一条路径,20个区段。他goodbug能每秒处理多少个请求?
能有个成千上万就不错了。不服走两步。
p***o
发帖数: 1252
15
简化一下,一趟车,2000个座位, 20个区段。
假设现在有的座位有人有的没人,一共40000 bits。
那么给定一组区段,比如1到10,你用什么算法找空位?
最简单的按区段bitwise or要访问2000/8*(10 读+1写)=2750 bytes,
按32 bytes/cycle算也差不多至少要100cycles。

【在 w***g 的大作中提到】
: 那有问题吗?内存肯定不会是bottleneck.
:
: cycle。

p***o
发帖数: 1252
16
OK,你假设中途可能换座位,那真的只比没号的票好 ...

【在 T********i 的大作中提到】
: 别忘了,抢到票才会分配座位。
: 分配作为不需要在核心机完成。也可以scale out。
: 分配作为还要优化,力求碎片最小。
: 这是我的单线程优化算法。
: http://www.mitbbs.com/article/Programming/31300367_3.html
: 具体表现。
: 用户抢票,毫秒级反馈告诉你抢到票了。
: 几秒钟后,受到短信/email,给你一个全程的座位分配。注意,中途可能要换座位。但
: 是这已经是最优方案了。总比现在铁道部卖那种没座位号的票好多了。
:

T********i
发帖数: 2416
17
看到我给你回帖了吧?
我给的都是最优方案,而且都是简单可行的。
我这个人从来说话都留余地,而且不愿意搞什么奇技淫巧。

【在 p***o 的大作中提到】
: 简化一下,一趟车,2000个座位, 20个区段。
: 假设现在有的座位有人有的没人,一共40000 bits。
: 那么给定一组区段,比如1到10,你用什么算法找空位?
: 最简单的按区段bitwise or要访问2000/8*(10 读+1写)=2750 bytes,
: 按32 bytes/cycle算也差不多至少要100cycles。

p***o
发帖数: 1252
18
你那个要换座的方案为啥要用interlockedxxx抢座?直接单核单线程拉倒,
interlocked
要清写队列锁总线说不定更慢。

【在 T********i 的大作中提到】
: 看到我给你回帖了吧?
: 我给的都是最优方案,而且都是简单可行的。
: 我这个人从来说话都留余地,而且不愿意搞什么奇技淫巧。

T********i
发帖数: 2416
19
说实话,没真的做过。interlocked会不会更慢真的不知道。
不过,99%的可能是更快。因为Sandy Bridge只锁cache line。
这就是为啥我强调1条线路20个区段,就是说用单线程每秒500万次也不会有任何压力。
我不会留下1%的不确定性的。
还有99%的可能性是,多线程interlocked,比500万次快好几倍。这都是设计余量。

【在 p***o 的大作中提到】
: 你那个要换座的方案为啥要用interlockedxxx抢座?直接单核单线程拉倒,
: interlocked
: 要清写队列锁总线说不定更慢。

T********i
发帖数: 2416
20
这个原帖提上来。
看来这个版上做网站的形成帮派了。
有网友劝我不要树敌过多。再次多谢他们的好意。但是,我其实根本不在乎这个BBS。
随时可以不来。而且,我不在乎这些人,根本不需要他们。还有,我干的是砸人家饭碗
的活儿,这是俺的宿命,俺认命。
相关主题
双CPU,做到10M TPS没任何压力zz 12306是怎样做成的
服务器测试结果顺便和nod101说说做产品
说的再清楚一点: 抢票机性能只和中途停靠总站数相关从12306来看,国内IT水平不高
进入Programming版参与讨论
g*****g
发帖数: 34805
21
太监立马又现行了?我管你怎么实现的,12306是网站,你给个 web service
interface是必须的,大家都可以验证。傻逼动嘴皮子行来真的又没鸡鸡了。
T********i
发帖数: 2416
22
别不要脸了好不好?
12306还卖真票呢。你咋不要求把支付也一起做了?都跟你说了,这个核心服务器是问
题关键。做成了,你就要认输。否则就是没卵蛋。
g*****g
发帖数: 34805
23
看看这个德行,太监就是不要脸。我说过多少次了。我提的要求就是基本要求简化了,
没难为你。你丫一要实现就推三阻四,就差没要求实现 5m 次计数器了。

【在 T********i 的大作中提到】
: 别不要脸了好不好?
: 12306还卖真票呢。你咋不要求把支付也一起做了?都跟你说了,这个核心服务器是问
: 题关键。做成了,你就要认输。否则就是没卵蛋。

T********i
发帖数: 2416
24
别给你脸不要脸。道是我划下的。
难道你用Cassandra也用REST API?自己做不到的,为啥要求别人?
我把要求简化,你即使能实现一个5M计数器的网络服务器,带TCP协议的,我都算你赢
如何?

【在 g*****g 的大作中提到】
: 看看这个德行,太监就是不要脸。我说过多少次了。我提的要求就是基本要求简化了,
: 没难为你。你丫一要实现就推三阻四,就差没要求实现 5m 次计数器了。

T********i
发帖数: 2416
25
这个要提上来
发信人: TeacherWei (TW), 信区: Programming
标 题: Re: 围棋时兴让子,和goodbug还有另外一种赌法
发信站: BBS 未名空间站 (Tue Feb 4 12:39:41 2014, 美东)
又上来不要脸了是不是?家教下作。
也就是单线路,单路段,一种票。
其他条件都是一样的。
你都不用真做出来,给个方案就行。
1 (共1页)
进入Programming版参与讨论
相关主题
顺便和nod101说说做产品腾讯开源tcp ip stack, f-stack。有用过的么?
从12306来看,国内IT水平不高Goodbug家教下作无底线
前淘宝工程师发帖谈12306:曾嗤之以鼻 现在认为几乎是奇迹竟然有人号称数据紧耦合是伪问题
给nod101一个最优化的实时分配车票座位的算法围棋时兴让子,和goodbug还有另外一种赌法
我来写个老魏的详细实现方案。(更新了缺点)拜托你们快动手做吧,每人做一个系统,一个测试客户端
我的方案,scalability可以线性无限,设计最简单我的赌博依然有效,还是我原帖的条件,5M TPS
每秒500万Goodbug再来赌一把1M/s计数器如何?Java实现
关于古德霸反例的实际测试数据双CPU,做到10M TPS没任何压力
相关话题的讨论汇总
话题: 抢票话题: scale话题: 区段话题: tcp话题: 线路