q*c 发帖数: 9453 | 1 那不一定,只要 abc 人够多就能一直保证负数,你前面还没 rllback 后面的
decrement 就来了。 |
|
g*****g 发帖数: 34805 | 2 就算你这16核的做法真有效,一个车段丢16张票,一天1000车次各20段,3种票,理论
上一天可能有最多
96万的票明明有却卖不出去。近百万的票子没卖掉,上亿得损失,你负担得起这个政治
责任吗? |
|
L***n 发帖数: 6727 | 3 同一时间抢票的只能是线程数那么多个人,并不是成千上万的人,所以余票
够多就没问题,老魏是这个意思吧 |
|
|
|
z****e 发帖数: 54598 | 6 就是分层,爆WEB SERVER
所以古德霸说过要上cloud阿 |
|
|
n*****t 发帖数: 22014 | 8 10 个靠,假设还剩一张,最多也就把计数器减到 -9 了,人再多也得乖乖的排队等前
面 +1 才能进来捣乱 |
|
b*******s 发帖数: 5216 | 9 ssa提供了一个解决,只要在票数小于线程数时用就行
也就是一个原子操作的负担,一下子就没有了 |
|
g*****g 发帖数: 34805 | 10 啥,现在要上什么负载分配啦?太监得单机刷decrement都冗余不多,你这不是要它得
命吗? |
|
T********i 发帖数: 2416 | 11 你又蠢了是不是,任何时候最多10张,也不是丢。 |
|
b*******s 发帖数: 5216 | 12 开多线程当然也要均衡一下的咯,保证每个线程的负载差不多 |
|
g*****g 发帖数: 34805 | 13 我老觉得它那机器,已经不行了,serialization/deserialization这么重得操作都还
没谈。 |
|
|
L***n 发帖数: 6727 | 15 我现在也有点convinced了,按老魏说的那个spec,应该没问题
都还 |
|
b*******s 发帖数: 5216 | 16 其实讨论的内容就是三四个月前的东西
那时连我在内没几个人看懂了魏老师的方案
背景导致的
魏老师省略了很多背景知识,他觉得都是常识 |
|
|
S*A 发帖数: 7142 | 18 多谢肯定。我觉一直用好了,不需要分票少的是时候用。
那个就是出票才有 automic dec。和后面的network IO比,
完全可以忽略不记。
这样程序还简单。 |
|
b*******s 发帖数: 5216 | 19 就是在票数上spin lock,没票了就回家,有票大于线程数就go ahead
否则就等着,需要等的也就是抢十几张票的时间,us级别的 |
|
|
|
g*****g 发帖数: 34805 | 22 你觉得有用吗?把接口拿出来,我上量一测就知道了。太监就是个光说不练的。 |
|
|
S*A 发帖数: 7142 | 24 有间隔,但是不影响结果。
因为 B 是严格递减的,可能出现 B 》 0 但是
A 抢不到票的情况,后面进入循环从新试到 B 《 0 就好了。 |
|
t****t 发帖数: 6806 | 25 他一共就10个core在算票, 你发1000个单子有什么用...
1000 |
|
b*******s 发帖数: 5216 | 26 等老魏吧,我一直不做是因为user level tcp我不怎么懂 |
|
g*****g 发帖数: 34805 | 27 操,1000个车次,20段,3种票,每天最多96万张票卖不出去,上亿的损失。
不是丢,卖不出去,票是会过期的,太监。 |
|
S*A 发帖数: 7142 | 28 什么情况驻塞?
如果票很多,自然 A 》 0, 本部就不会进入循环。
能进入循环肯定都是潜在可能丢票的情况。
没有多余的循环。 |
|
g*****g 发帖数: 34805 | 29 一车次丢10*3*20= 600张已经够多了,还要怎样? |
|
|
|
S*A 发帖数: 7142 | 32 补充一下,你说那个票是不是多于 core 的数目是有 race condition 的。
你先看一下票有多少,票很多就去抢,但是进入抢的时候那个票就可能
是已经从很多变成不多了。这里是个 race。 |
|
g*****g 发帖数: 34805 | 33 票会过期的,车都开了,你说没丢有用吗?票贩子可是可以24小时不间断刷票的。 |
|
b*******s 发帖数: 5216 | 34 就是一瞬间的事情,不会拖延到开车,除非你开车前几个毫秒内去买票 |
|
S*A 发帖数: 7142 | 35 你举例说名吧,我不知道你想的情况。
按照时间顺序每个thread 分别发生什么。 |
|
|
|
g*****g 发帖数: 34805 | 38 刷得过票贩子机器刷?最后几场票要刷到就是个概率问题,票贩子hold的概率高太多了。 |
|
|
n*****t 发帖数: 22014 | 40 切,好像票贩子的问题你能用数据库解决似的
了。 |
|
i*****o 发帖数: 1714 | 41 按老魏的算法应该是三十张。
★ 发自iPhone App: ChineseWeb 8.6 |
|
n*****t 发帖数: 22014 | 42 每抢一轮,总有一个幸运的家伙抱走女神,OOXX 10 下也没多少时间 |
|
S*A 发帖数: 7142 | 43 还在争有票卖不出去的情况,不是都有可以避免这个问题用的方案了吗。 |
|
|
L***n 发帖数: 6727 | 45 如果余票小于10而且一轮中全是abc的request可能一张票也没出,不过
这些request也都迅速出局了所以民工兄弟等几(毫)秒还是能得到ab的票 |
|
g*****g 发帖数: 34805 | 46 如何30张?一车次20车段,3种票,计数器60个,怎么都不会是30张。 |
|
|
g*****g 发帖数: 34805 | 48 为啥不行?票贩子的那些abc都是失败的transaction, 我按照timestamp人民ab的票是
成功的transaction. |
|
i*****o 发帖数: 1714 | 49 如果同一车次在一个core上排队呢?
★ 发自iPhone App: ChineseWeb 8.6 |
|
g*****g 发帖数: 34805 | 50 新的 request还会近来的,民工的request也失败了。死循环。 |
|