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一倍。既然大家都同意不能无限
|
|
|
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。
随时可以不来。而且,我不在乎这些人,根本不需要他们。还有,我干的是砸人家饭碗
的活儿,这是俺的宿命,俺认命。 |
|
|
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, 美东)
又上来不要脸了是不是?家教下作。
也就是单线路,单路段,一种票。
其他条件都是一样的。
你都不用真做出来,给个方案就行。 |