Redian新闻
>
测试用例在此,看还有什么说的。
avatar
a*1
2
《幽游白书》的结局算是不太喜欢的一个,虽然挺大团圆的,但是主角光环也太浓了点
吧。
浦饭幽助就可以和心爱的雪村萤子在一起了,但是其他人怎么就不够好呢,另外三个男
的都是单身,藏马和飞影就不说了,他俩可能不需要女朋友,但是桑原和真明明那么喜
欢飞影他妹妹雪莱,而且雪莱对桑原也很有好感的,为什么就不能在一起呢?
说什么人类和妖怪不能在一起那不是扯淡么,他俩肯定不在乎这种差异的。
感觉最后的结局超级没劲,前面很热血,看到最后的结局,瞬间就有一种极度失落和失
望的意思,和平的也确实有点点过头了,飞影整天就跟保安似的巡逻人界和魔界中间的
部分,这真的适合他这么热爱自由的又有个性的妖怪么?感觉就跟被招安了似的。
还有藏马,舍弃了妖狐的身份真的好可惜,毕竟妖狐很帅的说,最后因为长得太像女人
了,太漂亮了,所以才没有女朋友的么?总之觉得结局很别扭。
不过最可惜的依旧是桑原和雪莱,我真的以为最后他俩可以在一起的,不过以桑原的超
能力,以后可以去冰雪之国看望雪莱的吧。
avatar
j*h
3
occasionally for 720p video editing, some picture editing, some computing
power
avatar
g*g
4
跟你说了decrement再increment不是原子操作,你真是连基础知识都没有。
假如现在就剩一张票a->b, 来了两个单子a->b->c 和 a->b.
DB transaction保证了无论以任何顺序执行,a->b得票都能卖出去。
decrement再increment得做法,当单子同时到得时候,就有可能产生这样得执行顺序。
decrementAndGet(a->b) = 0, decrementAndGet(a->b) = -1
decrementAndGet(b->c) = -1.
结果就是票子没卖出去。
卖票得原则大家都很清楚,不许错票重票,不许有票不出。这个case可能最终导致好好
的票子卖不掉,正确性都不能保证,还谈个屁性能。没有正确性的高性能没有意义。
那几个捧臭脚的好好反思吧,到底谁是半瓶醋。
至于魏公公,不能把这个测试用例驳倒,就永远做太监吧。
avatar
e*1
5


【在 l***n 的大作中提到】
: 包子已发。多谢回复或关心。
avatar
N*w
6
video editing is tough...
otherwise any c2d laptop is fine.

【在 j*****h 的大作中提到】
: occasionally for 720p video editing, some picture editing, some computing
: power

avatar
n*t
7
第一,我不 care 这种情况,买不到的人会不断刷屏,早晚卖出去
第二,如果一定要处理,我把 abc 设为一个虚拟车次

【在 g*****g 的大作中提到】
: 跟你说了decrement再increment不是原子操作,你真是连基础知识都没有。
: 假如现在就剩一张票a->b, 来了两个单子a->b->c 和 a->b.
: DB transaction保证了无论以任何顺序执行,a->b得票都能卖出去。
: decrement再increment得做法,当单子同时到得时候,就有可能产生这样得执行顺序。
: decrementAndGet(a->b) = 0, decrementAndGet(a->b) = -1
: decrementAndGet(b->c) = -1.
: 结果就是票子没卖出去。
: 卖票得原则大家都很清楚,不许错票重票,不许有票不出。这个case可能最终导致好好
: 的票子卖不掉,正确性都不能保证,还谈个屁性能。没有正确性的高性能没有意义。
: 那几个捧臭脚的好好反思吧,到底谁是半瓶醋。

avatar
a*1
8
Con

【在 l***n 的大作中提到】
: 包子已发。多谢回复或关心。
avatar
j*h
9
friends needs, but not always just occasionally

【在 N****w 的大作中提到】
: video editing is tough...
: otherwise any c2d laptop is fine.

avatar
x*u
10
商业系统必须care这种问题。

【在 n*****t 的大作中提到】
: 第一,我不 care 这种情况,买不到的人会不断刷屏,早晚卖出去
: 第二,如果一定要处理,我把 abc 设为一个虚拟车次

avatar
s*d
11
gxgx
avatar
g*g
12
谁保证后面还会来单子?正确性不是靠运气保证的。一个test case fail了,也不用谈
什么性能。
我前面的前提写的很清楚,不能错票重票漏票。前提保证不了,就别出来叫板了。
至于什么虚拟车次,你最好全套写出来,再看看性能还能保证不。

【在 n*****t 的大作中提到】
: 第一,我不 care 这种情况,买不到的人会不断刷屏,早晚卖出去
: 第二,如果一定要处理,我把 abc 设为一个虚拟车次

avatar
h*l
13
祝贺
avatar
z*e
14
也就是无法实现公平这种原则了?
出现最坏的一种情况
同一车次,比如只有N张票
如果N+2个人同时争抢
那么就有可能出现所有人都拿不到票的情况
如果如此循环,可能在一段时间内,一张票都出不去
当然这是理想极端错误的情况的假设
但是如果N趋近于无穷大的时候
这个假设几乎一定成立

【在 n*****t 的大作中提到】
: 第一,我不 care 这种情况,买不到的人会不断刷屏,早晚卖出去
: 第二,如果一定要处理,我把 abc 设为一个虚拟车次

avatar
d*8
15
刚说NSC没有就来了,祝贺你。
avatar
g*g
16
神仙都没办法的,可以compromise,这一个简单db transaction就能保证的。就为了魏
公公不做太监就可以放过?

【在 x****u 的大作中提到】
: 商业系统必须care这种问题。
avatar
x*u
17
Gxgx
avatar
n*t
18
虚拟车次还要我写出来?我以为点一下就行了 。。。

【在 g*****g 的大作中提到】
: 谁保证后面还会来单子?正确性不是靠运气保证的。一个test case fail了,也不用谈
: 什么性能。
: 我前面的前提写的很清楚,不能错票重票漏票。前提保证不了,就别出来叫板了。
: 至于什么虚拟车次,你最好全套写出来,再看看性能还能保证不。

avatar
h*8
19
恭喜恭喜
avatar
L*e
20
刚才有人说了,老魏的方案是保证不重票,不保证有票不出。。。有票不出就反复刷。
。。
你们俩真是各说各的。。。

★ 发自iPhone App: ChineseWeb 8.2.2

【在 g*****g 的大作中提到】
: 跟你说了decrement再increment不是原子操作,你真是连基础知识都没有。
: 假如现在就剩一张票a->b, 来了两个单子a->b->c 和 a->b.
: DB transaction保证了无论以任何顺序执行,a->b得票都能卖出去。
: decrement再increment得做法,当单子同时到得时候,就有可能产生这样得执行顺序。
: decrementAndGet(a->b) = 0, decrementAndGet(a->b) = -1
: decrementAndGet(b->c) = -1.
: 结果就是票子没卖出去。
: 卖票得原则大家都很清楚,不许错票重票,不许有票不出。这个case可能最终导致好好
: 的票子卖不掉,正确性都不能保证,还谈个屁性能。没有正确性的高性能没有意义。
: 那几个捧臭脚的好好反思吧,到底谁是半瓶醋。

avatar
g*s
21
Con!
avatar
n*t
22
没那么严重,前面大部分人都能拿到票,临界的会争夺。而且这个 N 没么大,一个车
次一个等级的才冲突

【在 z****e 的大作中提到】
: 也就是无法实现公平这种原则了?
: 出现最坏的一种情况
: 同一车次,比如只有N张票
: 如果N+2个人同时争抢
: 那么就有可能出现所有人都拿不到票的情况
: 如果如此循环,可能在一段时间内,一张票都出不去
: 当然这是理想极端错误的情况的假设
: 但是如果N趋近于无穷大的时候
: 这个假设几乎一定成立

avatar
u*9
23
gxgx

【在 l***n 的大作中提到】
: 包子已发。多谢回复或关心。
avatar
z*g
24
还有一种办法就是前端routing的时候,sharding就好了
这货忙了半天就找出个这问题
这个细节问题,我以为这货能自己知道可以解决

【在 n*****t 的大作中提到】
: 第一,我不 care 这种情况,买不到的人会不断刷屏,早晚卖出去
: 第二,如果一定要处理,我把 abc 设为一个虚拟车次

avatar
r*s
25
gxgx
avatar
z*e
26
当N+1个人同时争抢时候就临界了
这个N当然会很大,别忘了,天朝是运力不足哦

【在 n*****t 的大作中提到】
: 没那么严重,前面大部分人都能拿到票,临界的会争夺。而且这个 N 没么大,一个车
: 次一个等级的才冲突

avatar
a*e
27
Cong!
avatar
x*u
28
这还没谈到很多更实际的问题呢。
比方说领导可能需要随时调整售票策略。就算需求量再大,也不可能把所有京沪高铁车
票都卖给南京到徐州。但是如果两地间临时有重要事情发生,也许就会在特定日期内允
许此操作。

【在 g*****g 的大作中提到】
: 神仙都没办法的,可以compromise,这一个简单db transaction就能保证的。就为了魏
: 公公不做太监就可以放过?

avatar
a*a
29
gxgx
avatar
n*t
30
其实就算真没票了,热情网友还得不停刷,早卖晚卖对铁老大意义不大,还怕你跑了不
成?

【在 L*****e 的大作中提到】
: 刚才有人说了,老魏的方案是保证不重票,不保证有票不出。。。有票不出就反复刷。
: 。。
: 你们俩真是各说各的。。。
:
: ★ 发自iPhone App: ChineseWeb 8.2.2

avatar
z*e
31
让ROUTING去做这种逻辑貌似就有问题
你给ZKSS
既然你喜欢探究细节的人,那我就问问你这个怎么做的
好吧,我没有PA过你,这个你可以放心说

【在 z****g 的大作中提到】
: 还有一种办法就是前端routing的时候,sharding就好了
: 这货忙了半天就找出个这问题
: 这个细节问题,我以为这货能自己知道可以解决

avatar
z*e
32
给你一个数据
天朝春运,铁路总共就是3亿人次不到
而总共出行人次达到36亿
所以这是18倍以上的差距
那么一种极端假设
当座位数是N的时候
18N个人同时抢,会不会出现我说的问题?
很有可能

【在 n*****t 的大作中提到】
: 其实就算真没票了,热情网友还得不停刷,早卖晚卖对铁老大意义不大,还怕你跑了不
: 成?

avatar
n*t
33
大哥,大部分旅客是不转车的,真转车的也是先整到一张再说,还非得靠窗对面是美女
才下单啊?

【在 z****e 的大作中提到】
: 当N+1个人同时争抢时候就临界了
: 这个N当然会很大,别忘了,天朝是运力不足哦

avatar
z*e
34
我没有说转车,就一条线的情况就行

【在 n*****t 的大作中提到】
: 大哥,大部分旅客是不转车的,真转车的也是先整到一张再说,还非得靠窗对面是美女
: 才下单啊?

avatar
n*t
35
你非得这么干我也没辙,那就 share code,把常见转车路线做成虚拟车,这个有大量
出票记录可以 build

【在 z****e 的大作中提到】
: 给你一个数据
: 天朝春运,铁路总共就是3亿人次不到
: 而总共出行人次达到36亿
: 所以这是18倍以上的差距
: 那么一种极端假设
: 当座位数是N的时候
: 18N个人同时抢,会不会出现我说的问题?
: 很有可能

avatar
n*t
36
一条线的神马问题?你刚才的帖子没看?

【在 z****e 的大作中提到】
: 我没有说转车,就一条线的情况就行
avatar
z*e
37
行了,理论上致命的缺陷
当然zhuang说可以routing,sharding
那这个我不知道到底怎么回事
让zhuang来说

【在 n*****t 的大作中提到】
: 你非得这么干我也没辙,那就 share code,把常见转车路线做成虚拟车,这个有大量
: 出票记录可以 build

avatar
z*e
38
我说的就是楼主说的问题啊
根转车有什么关系啊?
你说是北京-济南,济南-上海么?

【在 n*****t 的大作中提到】
: 一条线的神马问题?你刚才的帖子没看?
avatar
z*g
39
总有前端web 服务器吧,在这里把这种请求送到同个NIC,然后这个NIC上就一个thread
,然后就序列化了
当然,我认为实际实现是不必这么做的,重新刷以下就好了

【在 z****e 的大作中提到】
: 让ROUTING去做这种逻辑貌似就有问题
: 你给ZKSS
: 既然你喜欢探究细节的人,那我就问问你这个怎么做的
: 好吧,我没有PA过你,这个你可以放心说

avatar
n*t
40
你说的跟古德八是两个问题 。。。。你俩先掐一掐

【在 z****e 的大作中提到】
: 我说的就是楼主说的问题啊
: 根转车有什么关系啊?
: 你说是北京-济南,济南-上海么?

avatar
z*e
41
也就是在前端做一个汇总,然后排列,然后再依次送到它那台机器上去了?
我这么理解没错吧?
那这个理论上有异步的嫌疑,我更喜欢1989那个孩子说的方案
也就无法实现REALTIME了

thread

【在 z****g 的大作中提到】
: 总有前端web 服务器吧,在这里把这种请求送到同个NIC,然后这个NIC上就一个thread
: ,然后就序列化了
: 当然,我认为实际实现是不必这么做的,重新刷以下就好了

avatar
b*s
42
不用原子加和减就用comp & swap咯,也是原子性的
非0就是被占了,直接失败
伪代码如下
int compare_and_swap (int* reg, int oldval, int newval)
{
ATOMIC();
int old_reg_val = *reg;
if (old_reg_val == oldval)
*reg = newval;
END_ATOMIC();
return old_reg_val;
}

【在 g*****g 的大作中提到】
: 跟你说了decrement再increment不是原子操作,你真是连基础知识都没有。
: 假如现在就剩一张票a->b, 来了两个单子a->b->c 和 a->b.
: DB transaction保证了无论以任何顺序执行,a->b得票都能卖出去。
: decrement再increment得做法,当单子同时到得时候,就有可能产生这样得执行顺序。
: decrementAndGet(a->b) = 0, decrementAndGet(a->b) = -1
: decrementAndGet(b->c) = -1.
: 结果就是票子没卖出去。
: 卖票得原则大家都很清楚,不许错票重票,不许有票不出。这个case可能最终导致好好
: 的票子卖不掉,正确性都不能保证,还谈个屁性能。没有正确性的高性能没有意义。
: 那几个捧臭脚的好好反思吧,到底谁是半瓶醋。

avatar
z*e
43
没有啊,我跟你讨论的就是古德霸说的
济南那个是左眼说的

【在 n*****t 的大作中提到】
: 你说的跟古德八是两个问题 。。。。你俩先掐一掐
avatar
S*A
44
这个问题我有一个不是很严格的解法,大家看看可不可以行得通。
之所以出现这种情况,是因为抢票得计数器不是严格递减的。
这样可以再引入另外一组计数器 B,在 commit 出票以后 atomic dec。
原来可递减可增加的叫计数器 A。
1: 然后抢票的时候,先看递减计数器 B,如果 《 0, 推出不用抢了。
2: 如果 》=0, 抢票,用A数组抢票。
3: 如果每个票段 抢票结果 A 》 0, 出票, B --
4: 如果《0, A++;到1:处循环。
这样似乎可以避免有票出不了的情况。
大家请拍砖头。
avatar
g*g
45
操,你早干嘛去了。我说用comp&swap, 你跟魏太监可是拼命嘲笑我。现在知道自己傻
逼了?半瓶醋下回别跟我现了。

【在 b*******s 的大作中提到】
: 不用原子加和减就用comp & swap咯,也是原子性的
: 非0就是被占了,直接失败
: 伪代码如下
: int compare_and_swap (int* reg, int oldval, int newval)
: {
: ATOMIC();
: int old_reg_val = *reg;
: if (old_reg_val == oldval)
: *reg = newval;
: END_ATOMIC();

avatar
n*t
46
古德八是 abc vs ab,ab 和 bc 是 2 个车次

【在 z****e 的大作中提到】
: 没有啊,我跟你讨论的就是古德霸说的
: 济南那个是左眼说的

avatar
T*i
47
没啥了不起的。相当于某人reserve一张票,2us以后退掉了。
谁让你的线程比人家慢几纳秒呢?运气不好你悲愤啥?
18倍的人抢票,1趟车放票可以在毫秒级抢完。剩下几张,而且不会超过10张,因为只
有10个线程。有几毫秒震荡,问题大么?
几毫秒抢完,和几秒抢完,用户体验有区别么?
这么多人抢票,几秒内出结果,没有挤压踩踏,人身伤亡,已经是和谐社会了?
你要分析处理器电路量子效应寻求绝对公平么?

【在 z****e 的大作中提到】
: 我没有说转车,就一条线的情况就行
avatar
a*n
48
这个可以自动重试吧,只要加个随机的延时就可以。这样的conflict本来就是时差是小
于1ms了,随机一下也谈不上损害公平性的问题吧。
avatar
d*a
49
还在争啊...
其实两人说的spec不一样。第一个不同,应该是系统还是用户决定联票。第二个不同,
能不能有一定的概率在可出票的情况下不出票。spec上争几个月也不会有结果。
avatar
b*s
50
comp & swap一样是原子性的非阻塞算法,x86里486时代开始支持的指令
我今天主要是打赵策吧

【在 g*****g 的大作中提到】
: 操,你早干嘛去了。我说用comp&swap, 你跟魏太监可是拼命嘲笑我。现在知道自己傻
: 逼了?半瓶醋下回别跟我现了。

avatar
S*A
51
这个似乎不解决两个路段的问题。

【在 b*******s 的大作中提到】
: 不用原子加和减就用comp & swap咯,也是原子性的
: 非0就是被占了,直接失败
: 伪代码如下
: int compare_and_swap (int* reg, int oldval, int newval)
: {
: ATOMIC();
: int old_reg_val = *reg;
: if (old_reg_val == oldval)
: *reg = newval;
: END_ATOMIC();

avatar
n*t
52
这公平性本来就是风车,你还能拿着网吧的收据找车站说这张票是俺的?

【在 a***n 的大作中提到】
: 这个可以自动重试吧,只要加个随机的延时就可以。这样的conflict本来就是时差是小
: 于1ms了,随机一下也谈不上损害公平性的问题吧。

avatar
g*g
53
正确性不是用概率保证的,谁也不保证后面还有单子,你的重刷同样有可能因为同样的
原因废掉。DB transaction能保证正确性,这个不行,还要争什么。

【在 a***n 的大作中提到】
: 这个可以自动重试吧,只要加个随机的延时就可以。这样的conflict本来就是时差是小
: 于1ms了,随机一下也谈不上损害公平性的问题吧。

avatar
b*s
54
这个我在另一帖里说过,联票这种事务性的在前面或中间做
一站失败就回滚,复杂度也是很低的

【在 S*A 的大作中提到】
: 这个似乎不解决两个路段的问题。
avatar
g*g
55
我早说必须用comp&swap, 魏太监可是拼命嘲笑我。现在该还回去了,他这辈子只能永
远做太监了。comp&swap的性能跟decrement不能比也不用我指出吧。

【在 b*******s 的大作中提到】
: comp & swap一样是原子性的非阻塞算法,x86里486时代开始支持的指令
: 我今天主要是打赵策吧

avatar
a*i
56
这个,如果两边都是同肯发请求,只要b->c的没刷到,a->b的就一直卖不出去
说“早晚”这个没法满足需求
你设成abc也要分段锁的吧,虚拟了abc,那a->b是有票还是没票?

【在 n*****t 的大作中提到】
: 第一,我不 care 这种情况,买不到的人会不断刷屏,早晚卖出去
: 第二,如果一定要处理,我把 abc 设为一个虚拟车次

avatar
S*A
57
我上面給出了一个Wei 的改进算法可以解决这个问题,
帮忙看看有什么漏洞?

【在 b*******s 的大作中提到】
: 这个我在另一帖里说过,联票这种事务性的在前面或中间做
: 一站失败就回滚,复杂度也是很低的

avatar
t*t
58
compare and swap和xadd一类的没什么区别, 我觉得你想错了.

【在 b*******s 的大作中提到】
: 这个我在另一帖里说过,联票这种事务性的在前面或中间做
: 一站失败就回滚,复杂度也是很低的

avatar
n*t
59
一堆人对着 http 500 狂按 F5,你那玩意再正确有屁用啊

【在 g*****g 的大作中提到】
: 正确性不是用概率保证的,谁也不保证后面还有单子,你的重刷同样有可能因为同样的
: 原因废掉。DB transaction能保证正确性,这个不行,还要争什么。

avatar
z*g
60
你是给脸不要脸,不说话不大有人知道你这么矬

【在 g*****g 的大作中提到】
: 我早说必须用comp&swap, 魏太监可是拼命嘲笑我。现在该还回去了,他这辈子只能永
: 远做太监了。comp&swap的性能跟decrement不能比也不用我指出吧。

avatar
b*s
61
他那个也可以的呀,比如16个核上16个线程抢,只要保证有效数大于16不就行了?
错误率不会很高的

【在 g*****g 的大作中提到】
: 我早说必须用comp&swap, 魏太监可是拼命嘲笑我。现在该还回去了,他这辈子只能永
: 远做太监了。comp&swap的性能跟decrement不能比也不用我指出吧。

avatar
b*s
62
哦,我再想想

【在 t****t 的大作中提到】
: compare and swap和xadd一类的没什么区别, 我觉得你想错了.
avatar
S*A
63
我觉得也是。
这个问题关键是分两段,我 27 楼有个解法等拍砖。

【在 t****t 的大作中提到】
: compare and swap和xadd一类的没什么区别, 我觉得你想错了.
avatar
n*t
64
如果这俩人一直同时按 F5 那就是捣乱,我随便挑一个扔出去宰了算

【在 a****i 的大作中提到】
: 这个,如果两边都是同肯发请求,只要b->c的没刷到,a->b的就一直卖不出去
: 说“早晚”这个没法满足需求
: 你设成abc也要分段锁的吧,虚拟了abc,那a->b是有票还是没票?

avatar
g*g
65
你这傻逼,刚刚得瑟,力吗就被打脸。就你丫也配跟我装。

【在 z****g 的大作中提到】
: 你是给脸不要脸,不说话不大有人知道你这么矬
avatar
T*i
66
别无耻了,compexch也有一样的问题。你分明是当时没搞懂。
你说,comp3xch怎么解决有票不能出的问题了?

【在 g*****g 的大作中提到】
: 我早说必须用comp&swap, 魏太监可是拼命嘲笑我。现在该还回去了,他这辈子只能永
: 远做太监了。comp&swap的性能跟decrement不能比也不用我指出吧。

avatar
a*i
67
只许一个人抢?另一个没抢到就不许抢了?

【在 n*****t 的大作中提到】
: 如果这俩人一直同时按 F5 那就是捣乱,我随便挑一个扔出去宰了算
avatar
g*g
68
正确性不是个概率问题。有错就不行。你们QA测试拿个边际,难道你说出错概率不大就
不管了?

【在 b*******s 的大作中提到】
: 他那个也可以的呀,比如16个核上16个线程抢,只要保证有效数大于16不就行了?
: 错误率不会很高的

avatar
n*t
69
我意思这种情况狠少发生,不信你琢磨琢磨,哪有那么巧每次都撞上啊

【在 a****i 的大作中提到】
: 只许一个人抢?另一个没抢到就不许抢了?
avatar
g*g
70
反正你的decrement可耻的失败了,现在你也承认你做一辈子太监了。别的我有必要跟
你解释吗?

【在 T********i 的大作中提到】
: 别无耻了,compexch也有一样的问题。你分明是当时没搞懂。
: 你说,comp3xch怎么解决有票不能出的问题了?

avatar
S*A
71
靠,我再 27 楼有个改进版的没有这个要用户从新试的问题。
等砖头。
avatar
z*e
72
两个车次怎么在同一批DECRE的?

【在 n*****t 的大作中提到】
: 古德八是 abc vs ab,ab 和 bc 是 2 个车次
avatar
z*g
73
话说你这样的这辈子没戏了,你这脑子就这样了,保佑下辈子投胎聪明点吧

【在 g*****g 的大作中提到】
: 你这傻逼,刚刚得瑟,力吗就被打脸。就你丫也配跟我装。
avatar
g*g
74
你别整了,稍微复杂一点,他的性能就要挂了。

【在 S*A 的大作中提到】
: 靠,我再 27 楼有个改进版的没有这个要用户从新试的问题。
: 等砖头。

avatar
S*A
75
这个我觉得应该改好了啊,就是多一个 atomic dec。
CPU 性能应该没有多大影响。
当然网络性能另说。

【在 g*****g 的大作中提到】
: 你别整了,稍微复杂一点,他的性能就要挂了。
avatar
T*i
76
这人给他一根杆子就能顺着爬上去。
xadd和compexch到现在还搞不懂。
极品呀。

【在 z****g 的大作中提到】
: 话说你这样的这辈子没戏了,你这脑子就这样了,保佑下辈子投胎聪明点吧
avatar
n*t
77
一个车次没问题了吧?
那你把 2 个高频转车的设想成新的虚拟车次就行了,就好比某次车延线了

【在 z****e 的大作中提到】
: 两个车次怎么在同一批DECRE的?
avatar
z*e
78
老魏,我说的是一种极端糟糕的情况,也就是理论上
当你dec前面的时候,达到最后了,因为量太大,最后怎么都是负数
所以无法出票的情况,这种可能性比较小,但是当N->无穷,这种情况是必然出现的
天朝人又多,我比较倾向于这种情况会出现
你可以用现实不可能存在来反驳
顺便说一下,1989那个排队的解法我不反对

【在 T********i 的大作中提到】
: 没啥了不起的。相当于某人reserve一张票,2us以后退掉了。
: 谁让你的线程比人家慢几纳秒呢?运气不好你悲愤啥?
: 18倍的人抢票,1趟车放票可以在毫秒级抢完。剩下几张,而且不会超过10张,因为只
: 有10个线程。有几毫秒震荡,问题大么?
: 几毫秒抢完,和几秒抢完,用户体验有区别么?
: 这么多人抢票,几秒内出结果,没有挤压踩踏,人身伤亡,已经是和谐社会了?
: 你要分析处理器电路量子效应寻求绝对公平么?

avatar
b*s
79
你这个限制就是参与抢票的不能多过票数是吧

【在 S*A 的大作中提到】
: 这个问题我有一个不是很严格的解法,大家看看可不可以行得通。
: 之所以出现这种情况,是因为抢票得计数器不是严格递减的。
: 这样可以再引入另外一组计数器 B,在 commit 出票以后 atomic dec。
: 原来可递减可增加的叫计数器 A。
: 1: 然后抢票的时候,先看递减计数器 B,如果 《 0, 推出不用抢了。
: 2: 如果 》=0, 抢票,用A数组抢票。
: 3: 如果每个票段 抢票结果 A 》 0, 出票, B --
: 4: 如果《0, A++;到1:处循环。
: 这样似乎可以避免有票出不了的情况。
: 大家请拍砖头。

avatar
g*g
80
你这么整,车次就要指数级上升,卖票出去之后,需要更新的计数器也指数级上升。

【在 n*****t 的大作中提到】
: 一个车次没问题了吧?
: 那你把 2 个高频转车的设想成新的虚拟车次就行了,就好比某次车延线了

avatar
n*t
81
负数就洗洗睡了啊,前面正数的拿票走人,买不到联程的相当于退票

【在 z****e 的大作中提到】
: 老魏,我说的是一种极端糟糕的情况,也就是理论上
: 当你dec前面的时候,达到最后了,因为量太大,最后怎么都是负数
: 所以无法出票的情况,这种可能性比较小,但是当N->无穷,这种情况是必然出现的
: 天朝人又多,我比较倾向于这种情况会出现
: 你可以用现实不可能存在来反驳
: 顺便说一下,1989那个排队的解法我不反对

avatar
b*s
82
嗯,在魏老师方案里是一样的

【在 b*******s 的大作中提到】
: 哦,我再想想
avatar
S*A
83
可以啊,就是出现票被抢了,但是又没有出的情况
要多循环一两次。用户不需要知道。

【在 b*******s 的大作中提到】
: 你这个限制就是参与抢票的不能多过票数是吧
avatar
z*e
84
哈?那就会出现开一半,然后下车,等明天再上车的情况
农民工会起义的

【在 n*****t 的大作中提到】
: 负数就洗洗睡了啊,前面正数的拿票走人,买不到联程的相当于退票
avatar
n*t
85
不可能指数,本来转车就没几个,广大群众的基本策略是买到一张再说

【在 g*****g 的大作中提到】
: 你这么整,车次就要指数级上升,卖票出去之后,需要更新的计数器也指数级上升。
avatar
z*e
86
黄牛党会用挖比特币的机器跟你抢的
起一堆肉鸡,然后一声令下

【在 n*****t 的大作中提到】
: 如果这俩人一直同时按 F5 那就是捣乱,我随便挑一个扔出去宰了算
avatar
S*A
87
好吧,我宣布 27 楼的解法可以解决好虫提出来的问题。
不需要用户从新订票,多个循环就可以了。
avatar
b*s
88
我又跟我自己设计的那个内存数据结构搞了,我那个里面不统计票数,而是按位置锁的

【在 b*******s 的大作中提到】
: 嗯,在魏老师方案里是一样的
avatar
n*t
89
啥情况啊,你整明白 interlock 原理没啊?100 张票, 1000 个人抢,100 个返回正
数、出票,跟后面 900 个卢瑟毛关系没有

【在 z****e 的大作中提到】
: 哈?那就会出现开一半,然后下车,等明天再上车的情况
: 农民工会起义的

avatar
b*s
90
循环几次?

【在 S*A 的大作中提到】
: 好吧,我宣布 27 楼的解法可以解决好虫提出来的问题。
: 不需要用户从新订票,多个循环就可以了。

avatar
z*e
92
老魏不会是看上次我说了这个类,今天拿出来说的吧?
我当时说了三个int, Integer & AutomicInteger的例子
第一和第三不会有问题,第二就不能保证了

【在 g*****g 的大作中提到】
: http://www.mitbbs.com/article_t/Java/31112931.html
: 顺带看看这个帖子就知道我懂不懂atomic了,发帖时间4年前,远早于这次吵架。太监
: 拿出个AtomicInteger还以为我没见过,真是太丢人。

avatar
S*A
93
要看冲突情况了。这个问题就跟 spinlock 要循环几次
是一样的啊。但肯定不会死锁。

【在 b*******s 的大作中提到】
: 循环几次?
avatar
n*t
94
你也得刚好在我的线程池里撞上,刚好 abc 先锁

【在 z****e 的大作中提到】
: 黄牛党会用挖比特币的机器跟你抢的
: 起一堆肉鸡,然后一声令下

avatar
z*e
95
问题是后面900个不能保证时间上人家就在后面阿

【在 n*****t 的大作中提到】
: 啥情况啊,你整明白 interlock 原理没啊?100 张票, 1000 个人抢,100 个返回正
: 数、出票,跟后面 900 个卢瑟毛关系没有

avatar
z*e
96
我的意思是这个数量可能远不是18倍,而是18000倍

【在 n*****t 的大作中提到】
: 你也得刚好在我的线程池里撞上,刚好 abc 先锁
avatar
g*g
97
你代表广大民工了?本来北京还能睡井底,到上海过年睡大街?

【在 n*****t 的大作中提到】
: 不可能指数,本来转车就没几个,广大群众的基本策略是买到一张再说
avatar
n*t
98
你也没法拿 timestamp 找我打官司不是?对铁老大来说,卖完了就拉倒,对卢瑟来说
活该倒霉,本来就有可能网络卡一下

【在 z****e 的大作中提到】
: 问题是后面900个不能保证时间上人家就在后面阿
avatar
g*g
99
你就简单来个sync block, 性能恐怕比你这个try and error还好。至少完成时间有保
障。

【在 S*A 的大作中提到】
: 要看冲突情况了。这个问题就跟 spinlock 要循环几次
: 是一样的啊。但肯定不会死锁。

avatar
z*g
100
不用汇总排列。根据车次决定去哪个NIC->Thread就行了

【在 z****e 的大作中提到】
: 也就是在前端做一个汇总,然后排列,然后再依次送到它那台机器上去了?
: 我这么理解没错吧?
: 那这个理论上有异步的嫌疑,我更喜欢1989那个孩子说的方案
: 也就无法实现REALTIME了
:
: thread

avatar
n*t
101
上海大街比北京暖和,睡完大街你还能转中巴,再说了,转车的 pattern 有历史出票
记录,整几个虚拟车就是了

【在 g*****g 的大作中提到】
: 你代表广大民工了?本来北京还能睡井底,到上海过年睡大街?
avatar
T*i
102
你的问题在于不知道atomicint操作后还有返回值,以及返回值怎么用。
从你纠缠compexch来看,你根本就是迄今都不懂。
这个懂行的看得很清楚。眼里揉不得沙子的。

【在 g*****g 的大作中提到】
: http://www.mitbbs.com/article_t/Java/31112931.html
: 顺带看看这个帖子就知道我懂不懂atomic了,发帖时间4年前,远早于这次吵架。太监
: 拿出个AtomicInteger还以为我没见过,真是太丢人。

avatar
a*n
103
optimistic locking失败以后当然要rollback的。
avatar
i*o
104
不同车次的呢?

★ 发自iPhone App: ChineseWeb 8.6

【在 z****g 的大作中提到】
: 不用汇总排列。根据车次决定去哪个NIC->Thread就行了
avatar
b*s
105
抢票机没有用,我们解释过了,只有在余票不多时才会出现古德霸的那个用例
avatar
S*A
106
sync block 是要锁全部线程,每个时刻只有一个线程能有进展吗?
那个性能肯定不如这个。
当然网络 IO 的问题还是有待验证。

【在 g*****g 的大作中提到】
: 你就简单来个sync block, 性能恐怕比你这个try and error还好。至少完成时间有保
: 障。

avatar
a*n
107
其实单线程也可以吧,都不需要用原子操作,票少的时候可能还快一点。
avatar
z*e
108
对,那就是1989那个人作的东西

【在 a***n 的大作中提到】
: 其实单线程也可以吧,都不需要用原子操作,票少的时候可能还快一点。
avatar
n*t
109
单线程算力可能不够

【在 a***n 的大作中提到】
: 其实单线程也可以吧,都不需要用原子操作,票少的时候可能还快一点。
avatar
q*c
110
是这样,我想叉了。
不过如果 bc 没了, 刷 abc 的就能把 ab 的全堵住,对吧?
这种异步交易问题多多。

【在 b*******s 的大作中提到】
: 抢票机没有用,我们解释过了,只有在余票不多时才会出现古德霸的那个用例
avatar
g*g
111
一个北京-上海-兰州的票贩子,不停大量的发订单,占了所有订单的99%,另外1%是
广大人民的北京-上海单子。
偏偏上海-兰州已经卖完了。很有可能的结果就是北京-上海的票,一张都卖不出去。
大量无效订单不停进来,保证了北京-上海上不了0.
还什么10张,纯粹做了太监往回找脸。
avatar
i*o
112
前面有人说了,抢同一个车次的放到一个线程。

★ 发自iPhone App: ChineseWeb 8.6

【在 a***n 的大作中提到】
: 其实单线程也可以吧,都不需要用原子操作,票少的时候可能还快一点。
avatar
b*s
113
在余票多的时候,不可能出现这个情况
只有剩余很少的票才会

【在 g*****g 的大作中提到】
: 一个北京-上海-兰州的票贩子,不停大量的发订单,占了所有订单的99%,另外1%是
: 广大人民的北京-上海单子。
: 偏偏上海-兰州已经卖完了。很有可能的结果就是北京-上海的票,一张都卖不出去。
: 大量无效订单不停进来,保证了北京-上海上不了0.
: 还什么10张,纯粹做了太监往回找脸。

avatar
z*e
114
做好分库就快了

【在 n*****t 的大作中提到】
: 单线程算力可能不够
avatar
z*e
115
我们抽象一下
把thread变成一个具体的process
在不同的instance上
差距很大么?
反正都慢下来了

【在 z****g 的大作中提到】
: 不用汇总排列。根据车次决定去哪个NIC->Thread就行了
avatar
g*g
116
谁知道呢,比如还有北京-上海还有1000张票,上海-兰州没有了。票贩子先发了1000
个北京-上海-兰州的单子进来,群众才开始。票贩子不停补充消耗,你北京-上海就
永远上不了0.
1000张很少吗?

【在 b*******s 的大作中提到】
: 在余票多的时候,不可能出现这个情况
: 只有剩余很少的票才会

avatar
z*e
117
这个时间一旦大到人能感觉出来
比如我今天上午9点一直刷,都没刷到
下午2点刷的都刷到了
那农民工就有砸了售票处的习惯
不患寡患不均哦

【在 n*****t 的大作中提到】
: 你也没法拿 timestamp 找我打官司不是?对铁老大来说,卖完了就拉倒,对卢瑟来说
: 活该倒霉,本来就有可能网络卡一下

avatar
b*s
118
你看看我的解释,比如16个核绑了16个线程,实际上n也就是16,而不是1000
同一时刻不会变大

1000

【在 g*****g 的大作中提到】
: 谁知道呢,比如还有北京-上海还有1000张票,上海-兰州没有了。票贩子先发了1000
: 个北京-上海-兰州的单子进来,群众才开始。票贩子不停补充消耗,你北京-上海就
: 永远上不了0.
: 1000张很少吗?

avatar
q*c
119
怎么会?人比票多10倍,从一开始票就很少。
刷 abc 的就是可以把 ab 的全堵住。bc 没了, 100万人狂刷 abc, 上 比特机, ab
虽然疯狂 rollback, 但就是一直是负数。
虽然 ab 一张票也没卖。
大家等退票,就能刷一天。

【在 b*******s 的大作中提到】
: 在余票多的时候,不可能出现这个情况
: 只有剩余很少的票才会

avatar
b*s
120
呵呵,我已经解释了两次了,你翻翻我的帖子吧

【在 q*c 的大作中提到】
: 怎么会?人比票多10倍,从一开始票就很少。
: 刷 abc 的就是可以把 ab 的全堵住。bc 没了, 100万人狂刷 abc, 上 比特机, ab
: 虽然疯狂 rollback, 但就是一直是负数。
: 虽然 ab 一张票也没卖。
: 大家等退票,就能刷一天。

avatar
z*g
121
abc先看一眼不就得了

【在 q*c 的大作中提到】
: 怎么会?人比票多10倍,从一开始票就很少。
: 刷 abc 的就是可以把 ab 的全堵住。bc 没了, 100万人狂刷 abc, 上 比特机, ab
: 虽然疯狂 rollback, 但就是一直是负数。
: 虽然 ab 一张票也没卖。
: 大家等退票,就能刷一天。

avatar
T*i
122
上500万DOS attack,谁都别买了。
什么指标能对抗DOS?

【在 q*c 的大作中提到】
: 怎么会?人比票多10倍,从一开始票就很少。
: 刷 abc 的就是可以把 ab 的全堵住。bc 没了, 100万人狂刷 abc, 上 比特机, ab
: 虽然疯狂 rollback, 但就是一直是负数。
: 虽然 ab 一张票也没卖。
: 大家等退票,就能刷一天。

avatar
n*t
123
abc 的无法保证每次都抢在 ab 前面,所以每次都有漏网的,要不了几秒就彻底卖完了

【在 q*c 的大作中提到】
: 怎么会?人比票多10倍,从一开始票就很少。
: 刷 abc 的就是可以把 ab 的全堵住。bc 没了, 100万人狂刷 abc, 上 比特机, ab
: 虽然疯狂 rollback, 但就是一直是负数。
: 虽然 ab 一张票也没卖。
: 大家等退票,就能刷一天。

avatar
q*c
124
怎么先看?难道前面说的逐段 lockdecrement 不就是看吗?
你有别的两段式交易,就有别的死法。

【在 z****g 的大作中提到】
: abc先看一眼不就得了
avatar
b*s
125
这样线程间负载不均衡

【在 i*****o 的大作中提到】
: 前面有人说了,抢同一个车次的放到一个线程。
:
: ★ 发自iPhone App: ChineseWeb 8.6

avatar
z*g
126
DDoS另外话题,我有方案搞定

【在 T********i 的大作中提到】
: 上500万DOS attack,谁都别买了。
: 什么指标能对抗DOS?

avatar
q*c
127
那不一定,只要 abc 人够多就能一直保证负数,你前面还没 rllback 后面的
decrement 就来了。

【在 n*****t 的大作中提到】
: abc 的无法保证每次都抢在 ab 前面,所以每次都有漏网的,要不了几秒就彻底卖完了
avatar
g*g
128
就算你这16核的做法真有效,一个车段丢16张票,一天1000车次各20段,3种票,理论
上一天可能有最多
96万的票明明有却卖不出去。近百万的票子没卖掉,上亿得损失,你负担得起这个政治
责任吗?

【在 b*******s 的大作中提到】
: 呵呵,我已经解释了两次了,你翻翻我的帖子吧
avatar
L*n
129
同一时间抢票的只能是线程数那么多个人,并不是成千上万的人,所以余票
够多就没问题,老魏是这个意思吧

【在 q*c 的大作中提到】
: 怎么会?人比票多10倍,从一开始票就很少。
: 刷 abc 的就是可以把 ab 的全堵住。bc 没了, 100万人狂刷 abc, 上 比特机, ab
: 虽然疯狂 rollback, 但就是一直是负数。
: 虽然 ab 一张票也没卖。
: 大家等退票,就能刷一天。

avatar
z*g
130
是有这个问题,但是这个不均衡情况是可以态调整的

【在 b*******s 的大作中提到】
: 这样线程间负载不均衡
avatar
b*s
131
有人已经给了解决了,也是很体面的解决

【在 g*****g 的大作中提到】
: 就算你这16核的做法真有效,一个车段丢16张票,一天1000车次各20段,3种票,理论
: 上一天可能有最多
: 96万的票明明有却卖不出去。近百万的票子没卖掉,上亿得损失,你负担得起这个政治
: 责任吗?

avatar
z*e
132
就是分层,爆WEB SERVER
所以古德霸说过要上cloud阿

【在 z****g 的大作中提到】
: 是有这个问题,但是这个不均衡情况是可以态调整的
avatar
b*s
133
比按请求数进行负载分配复杂,不提倡

【在 z****g 的大作中提到】
: 是有这个问题,但是这个不均衡情况是可以态调整的
avatar
n*t
134
10 个靠,假设还剩一张,最多也就把计数器减到 -9 了,人再多也得乖乖的排队等前
面 +1 才能进来捣乱

【在 L***n 的大作中提到】
: 同一时间抢票的只能是线程数那么多个人,并不是成千上万的人,所以余票
: 够多就没问题,老魏是这个意思吧

avatar
b*s
135
ssa提供了一个解决,只要在票数小于线程数时用就行
也就是一个原子操作的负担,一下子就没有了

【在 g*****g 的大作中提到】
: 就算你这16核的做法真有效,一个车段丢16张票,一天1000车次各20段,3种票,理论
: 上一天可能有最多
: 96万的票明明有却卖不出去。近百万的票子没卖掉,上亿得损失,你负担得起这个政治
: 责任吗?

avatar
g*g
136
啥,现在要上什么负载分配啦?太监得单机刷decrement都冗余不多,你这不是要它得
命吗?

【在 b*******s 的大作中提到】
: 比按请求数进行负载分配复杂,不提倡
avatar
T*i
137
你又蠢了是不是,任何时候最多10张,也不是丢。

【在 g*****g 的大作中提到】
: 就算你这16核的做法真有效,一个车段丢16张票,一天1000车次各20段,3种票,理论
: 上一天可能有最多
: 96万的票明明有却卖不出去。近百万的票子没卖掉,上亿得损失,你负担得起这个政治
: 责任吗?

avatar
b*s
138
开多线程当然也要均衡一下的咯,保证每个线程的负载差不多

【在 g*****g 的大作中提到】
: 啥,现在要上什么负载分配啦?太监得单机刷decrement都冗余不多,你这不是要它得
: 命吗?

avatar
g*g
139
我老觉得它那机器,已经不行了,serialization/deserialization这么重得操作都还
没谈。

【在 b*******s 的大作中提到】
: 开多线程当然也要均衡一下的咯,保证每个线程的负载差不多
avatar
b*s
140
我觉得没什么问题

【在 g*****g 的大作中提到】
: 我老觉得它那机器,已经不行了,serialization/deserialization这么重得操作都还
: 没谈。

avatar
L*n
141
我现在也有点convinced了,按老魏说的那个spec,应该没问题

都还

【在 b*******s 的大作中提到】
: 我觉得没什么问题
avatar
b*s
142
其实讨论的内容就是三四个月前的东西
那时连我在内没几个人看懂了魏老师的方案
背景导致的
魏老师省略了很多背景知识,他觉得都是常识

【在 L***n 的大作中提到】
: 我现在也有点convinced了,按老魏说的那个spec,应该没问题
:
: 都还

avatar
a*n
143
你这个1,2之间有间隔。

【在 S*A 的大作中提到】
: 这个问题我有一个不是很严格的解法,大家看看可不可以行得通。
: 之所以出现这种情况,是因为抢票得计数器不是严格递减的。
: 这样可以再引入另外一组计数器 B,在 commit 出票以后 atomic dec。
: 原来可递减可增加的叫计数器 A。
: 1: 然后抢票的时候,先看递减计数器 B,如果 《 0, 推出不用抢了。
: 2: 如果 》=0, 抢票,用A数组抢票。
: 3: 如果每个票段 抢票结果 A 》 0, 出票, B --
: 4: 如果《0, A++;到1:处循环。
: 这样似乎可以避免有票出不了的情况。
: 大家请拍砖头。

avatar
S*A
144
多谢肯定。我觉一直用好了,不需要分票少的是时候用。
那个就是出票才有 automic dec。和后面的network IO比,
完全可以忽略不记。
这样程序还简单。

【在 b*******s 的大作中提到】
: ssa提供了一个解决,只要在票数小于线程数时用就行
: 也就是一个原子操作的负担,一下子就没有了

avatar
b*s
145
就是在票数上spin lock,没票了就回家,有票大于线程数就go ahead
否则就等着,需要等的也就是抢十几张票的时间,us级别的

【在 a***n 的大作中提到】
: 你这个1,2之间有间隔。
avatar
n*t
146
1 那个地方用锁

【在 a***n 的大作中提到】
: 你这个1,2之间有间隔。
avatar
b*s
147
一直用会带来阻塞

【在 S*A 的大作中提到】
: 多谢肯定。我觉一直用好了,不需要分票少的是时候用。
: 那个就是出票才有 automic dec。和后面的network IO比,
: 完全可以忽略不记。
: 这样程序还简单。

avatar
g*g
148
你觉得有用吗?把接口拿出来,我上量一测就知道了。太监就是个光说不练的。

【在 b*******s 的大作中提到】
: 我觉得没什么问题
avatar
b*s
149
回头我再说,现在有点累

【在 n*****t 的大作中提到】
: 1 那个地方用锁
avatar
S*A
150
有间隔,但是不影响结果。
因为 B 是严格递减的,可能出现 B 》 0 但是
A 抢不到票的情况,后面进入循环从新试到 B 《 0 就好了。

【在 a***n 的大作中提到】
: 你这个1,2之间有间隔。
avatar
t*t
151
他一共就10个core在算票, 你发1000个单子有什么用...

1000

【在 g*****g 的大作中提到】
: 谁知道呢,比如还有北京-上海还有1000张票,上海-兰州没有了。票贩子先发了1000
: 个北京-上海-兰州的单子进来,群众才开始。票贩子不停补充消耗,你北京-上海就
: 永远上不了0.
: 1000张很少吗?

avatar
b*s
152
等老魏吧,我一直不做是因为user level tcp我不怎么懂

【在 g*****g 的大作中提到】
: 你觉得有用吗?把接口拿出来,我上量一测就知道了。太监就是个光说不练的。
avatar
g*g
153
操,1000个车次,20段,3种票,每天最多96万张票卖不出去,上亿的损失。
不是丢,卖不出去,票是会过期的,太监。

【在 T********i 的大作中提到】
: 你又蠢了是不是,任何时候最多10张,也不是丢。
avatar
S*A
154
什么情况驻塞?
如果票很多,自然 A 》 0, 本部就不会进入循环。
能进入循环肯定都是潜在可能丢票的情况。
没有多余的循环。

【在 b*******s 的大作中提到】
: 一直用会带来阻塞
avatar
g*g
155
一车次丢10*3*20= 600张已经够多了,还要怎样?

【在 t****t 的大作中提到】
: 他一共就10个core在算票, 你发1000个单子有什么用...
:
: 1000

avatar
b*s
156
不会丢的

【在 g*****g 的大作中提到】
: 一车次丢10*3*20= 600张已经够多了,还要怎样?
avatar
a*n
157
但是还是可能不停回滚最后一张票的情况。

【在 S*A 的大作中提到】
: 有间隔,但是不影响结果。
: 因为 B 是严格递减的,可能出现 B 》 0 但是
: A 抢不到票的情况,后面进入循环从新试到 B 《 0 就好了。

avatar
S*A
158
补充一下,你说那个票是不是多于 core 的数目是有 race condition 的。
你先看一下票有多少,票很多就去抢,但是进入抢的时候那个票就可能
是已经从很多变成不多了。这里是个 race。
avatar
g*g
159
票会过期的,车都开了,你说没丢有用吗?票贩子可是可以24小时不间断刷票的。

【在 b*******s 的大作中提到】
: 不会丢的
avatar
b*s
160
就是一瞬间的事情,不会拖延到开车,除非你开车前几个毫秒内去买票

【在 g*****g 的大作中提到】
: 票会过期的,车都开了,你说没丢有用吗?票贩子可是可以24小时不间断刷票的。
avatar
S*A
161
你举例说名吧,我不知道你想的情况。
按照时间顺序每个thread 分别发生什么。

【在 a***n 的大作中提到】
: 但是还是可能不停回滚最后一张票的情况。
avatar
n*t
162
你当农民工煞笔啊,没票不会按 F5 啊?

【在 g*****g 的大作中提到】
: 票会过期的,车都开了,你说没丢有用吗?票贩子可是可以24小时不间断刷票的。
avatar
L*n
163
也没有在开车前几个毫秒还卖票的

【在 b*******s 的大作中提到】
: 就是一瞬间的事情,不会拖延到开车,除非你开车前几个毫秒内去买票
avatar
g*g
164
刷得过票贩子机器刷?最后几场票要刷到就是个概率问题,票贩子hold的概率高太多了。

【在 n*****t 的大作中提到】
: 你当农民工煞笔啊,没票不会按 F5 啊?
avatar
t*t
165
任何时候总共没卖出去的票就是10张.

【在 g*****g 的大作中提到】
: 一车次丢10*3*20= 600张已经够多了,还要怎样?
avatar
n*t
166
切,好像票贩子的问题你能用数据库解决似的

了。

【在 g*****g 的大作中提到】
: 刷得过票贩子机器刷?最后几场票要刷到就是个概率问题,票贩子hold的概率高太多了。
avatar
i*o
167
按老魏的算法应该是三十张。

★ 发自iPhone App: ChineseWeb 8.6

【在 g*****g 的大作中提到】
: 一车次丢10*3*20= 600张已经够多了,还要怎样?
avatar
n*t
168
每抢一轮,总有一个幸运的家伙抱走女神,OOXX 10 下也没多少时间

【在 i*****o 的大作中提到】
: 按老魏的算法应该是三十张。
:
: ★ 发自iPhone App: ChineseWeb 8.6

avatar
S*A
169
还在争有票卖不出去的情况,不是都有可以避免这个问题用的方案了吗。
avatar
n*t
170
因为总有人听不明白

【在 S*A 的大作中提到】
: 还在争有票卖不出去的情况,不是都有可以避免这个问题用的方案了吗。
avatar
L*n
171
如果余票小于10而且一轮中全是abc的request可能一张票也没出,不过
这些request也都迅速出局了所以民工兄弟等几(毫)秒还是能得到ab的票

【在 n*****t 的大作中提到】
: 每抢一轮,总有一个幸运的家伙抱走女神,OOXX 10 下也没多少时间
avatar
g*g
172
如何30张?一车次20车段,3种票,计数器60个,怎么都不会是30张。

【在 i*****o 的大作中提到】
: 按老魏的算法应该是三十张。
:
: ★ 发自iPhone App: ChineseWeb 8.6

avatar
S*A
173
好吧,你们继续聊吧,我撤了。
avatar
g*g
174
为啥不行?票贩子的那些abc都是失败的transaction, 我按照timestamp人民ab的票是
成功的transaction.

【在 n*****t 的大作中提到】
: 切,好像票贩子的问题你能用数据库解决似的
:
: 了。

avatar
i*o
175
如果同一车次在一个core上排队呢?

★ 发自iPhone App: ChineseWeb 8.6

【在 g*****g 的大作中提到】
: 如何30张?一车次20车段,3种票,计数器60个,怎么都不会是30张。
avatar
g*g
176
新的 request还会近来的,民工的request也失败了。死循环。

【在 L***n 的大作中提到】
: 如果余票小于10而且一轮中全是abc的request可能一张票也没出,不过
: 这些request也都迅速出局了所以民工兄弟等几(毫)秒还是能得到ab的票

avatar
n*t
177
你这还是让 abc 先失败,换汤不换药

【在 g*****g 的大作中提到】
: 为啥不行?票贩子的那些abc都是失败的transaction, 我按照timestamp人民ab的票是
: 成功的transaction.

avatar
L*n
178
小于10的余票有special的处理啊...

【在 g*****g 的大作中提到】
: 新的 request还会近来的,民工的request也失败了。死循环。
avatar
g*g
179
你又要继续提高复杂度了吗?我提醒你太监已经在走钢丝,随便一个补丁性能就不够了。

【在 i*****o 的大作中提到】
: 如果同一车次在一个core上排队呢?
:
: ★ 发自iPhone App: ChineseWeb 8.6

avatar
t*t
180
简单的算术么. 如果有N个线程在工作, 那spurious taken ticket最多就是N. 哪有什
么96万张卖不出去的票.
当然可以说每个真的request进来都正好不巧有10个假的request把它盖掉.

【在 L***n 的大作中提到】
: 如果余票小于10而且一轮中全是abc的request可能一张票也没出,不过
: 这些request也都迅速出局了所以民工兄弟等几(毫)秒还是能得到ab的票

avatar
n*t
181
就凭你说 60 张票,你压根没整明白咋回事。
要不你问问赵策去?

了。

【在 g*****g 的大作中提到】
: 你又要继续提高复杂度了吗?我提醒你太监已经在走钢丝,随便一个补丁性能就不够了。
avatar
g*g
182
你说的没错,因为车次不同。只要是并行的,就有可能永远民工的跟贩子的同时执行,
而且贩子的先执行。
正确性不是赌大运。不能因为概率小就说它不会发生。而且如果票贩子占了99。99%呢
?概率就很大了。
我就不提公平性完全不管了。

【在 t****t 的大作中提到】
: 简单的算术么. 如果有N个线程在工作, 那spurious taken ticket最多就是N. 哪有什
: 么96万张卖不出去的票.
: 当然可以说每个真的request进来都正好不巧有10个假的request把它盖掉.

avatar
n*t
183
你听说过哪个脑残票贩倒腾联程票的?

【在 g*****g 的大作中提到】
: 你说的没错,因为车次不同。只要是并行的,就有可能永远民工的跟贩子的同时执行,
: 而且贩子的先执行。
: 正确性不是赌大运。不能因为概率小就说它不会发生。而且如果票贩子占了99。99%呢
: ?概率就很大了。
: 我就不提公平性完全不管了。

avatar
g*g
184
QA弄个edge case, 你就说不fix吗?正确性还有什么可以争的。
而且需要啥联票,北京到上海的票剩下北京到天津一段,票贩子买北京到上海不行吗?

【在 n*****t 的大作中提到】
: 你听说过哪个脑残票贩倒腾联程票的?
avatar
n*t
185
要买北京到上海的,是从上海开始减的 。。。

【在 g*****g 的大作中提到】
: QA弄个edge case, 你就说不fix吗?正确性还有什么可以争的。
: 而且需要啥联票,北京到上海的票剩下北京到天津一段,票贩子买北京到上海不行吗?

avatar
a*n
186
嗯,确实不会有不出票的情况。不过所有的票要排序出,否则会有可能两个线程死锁。
而且还是有可能第三个人把票抢走了。

【在 S*A 的大作中提到】
: 你举例说名吧,我不知道你想的情况。
: 按照时间顺序每个thread 分别发生什么。

avatar
g*g
187
擦,就剩一个天津到连云港没卖,票贩子先下了北京到连云港,天津到上海,你再来。

【在 n*****t 的大作中提到】
: 要买北京到上海的,是从上海开始减的 。。。
avatar
g*g
188
要排序太监的系统又挂了。本来就是走钢丝。

【在 a***n 的大作中提到】
: 嗯,确实不会有不出票的情况。不过所有的票要排序出,否则会有可能两个线程死锁。
: 而且还是有可能第三个人把票抢走了。

avatar
n*t
189
你个票贩子还能保证每次都抢前面不成?就算你行,最后 10 张震荡票,我开始加锁保
护,票贩子滚蛋了,天津到连云港就卖了

【在 g*****g 的大作中提到】
: 擦,就剩一个天津到连云港没卖,票贩子先下了北京到连云港,天津到上海,你再来。
avatar
g*g
190
靠,总算服软加锁保护,早干嘛去了。谁不知道有正确的做法,就是从头到位枷锁保护。
但别忘了,500万/秒的订单过来抢这10张票,绝大部分是abc, 你一加锁那排队处理可
就不是1秒能搞定的了。
大量没处理就timeout了。

【在 n*****t 的大作中提到】
: 你个票贩子还能保证每次都抢前面不成?就算你行,最后 10 张震荡票,我开始加锁保
: 护,票贩子滚蛋了,天津到连云港就卖了

avatar
S*A
191
不需要用户排序,抢票的时候按照A数组下标顺序抢就
可以避免获得票的循序问题。
这个改良算法倒是没有问题。
有问题的是我怀疑那个 IO 方面的。
还有掉电这些。

【在 g*****g 的大作中提到】
: 要排序太监的系统又挂了。本来就是走钢丝。
avatar
n*t
192
我一早就说加锁,老魏这个更优化,一开始不用加锁。
另外,你真的以为加锁开销很大?

护。

【在 g*****g 的大作中提到】
: 靠,总算服软加锁保护,早干嘛去了。谁不知道有正确的做法,就是从头到位枷锁保护。
: 但别忘了,500万/秒的订单过来抢这10张票,绝大部分是abc, 你一加锁那排队处理可
: 就不是1秒能搞定的了。
: 大量没处理就timeout了。

avatar
z*e
193
这么说太拗口
简单点
计数器能用来替换锁
好了

【在 n*****t 的大作中提到】
: 我一早就说加锁,老魏这个更优化,一开始不用加锁。
: 另外,你真的以为加锁开销很大?
:
: 护。

avatar
g*g
194
他是decrement被打脸了,一堆人帮他打补丁找脸吧,尊重一下事实好不好。
他用decrement恶毒问候我家人,结果backfire了。

【在 n*****t 的大作中提到】
: 我一早就说加锁,老魏这个更优化,一开始不用加锁。
: 另外,你真的以为加锁开销很大?
:
: 护。

avatar
n*t
195
差不多这意思,关键让 DB 随便分别了

【在 z****e 的大作中提到】
: 这么说太拗口
: 简单点
: 计数器能用来替换锁
: 好了

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。