怎么保证所占比例的更新(并发下)为100%
这是可视化操作界面:
查询相同abtestId的记录数,创建对应元素的数组,随机生成100以内的数据,然后对数组的值进行处理,确认准确后更新到数据库。
接口对表加锁,业务做验证
你这是用户直接更新rate字段?比如一个组有两条记录,更新其中一条为80的时候,另一条要自动变成20?
然后会出现两个会话分别更新两条记录,比如A会话更新第1条记录为80,B会话更新第2条记录为30,怎么让它最后相加还是100?
这不是个矛盾么?要想避免这个冲突,只能在事务开始时加锁,事务结束时解锁,强制让会话存在先后顺序,哪怕两个会话间只有1毫秒的差异,那它也是存在先后顺序的