![]() |
1
4
您有几个选项:
|
![]() |
2
1
除了尼克给出的选择外,你还可以考虑把柜台切碎。 保留多个计数器,并选择一个计数器进行更新,以使(理想情况下)不可能或(失败时)任何两个请求都不可能同时选择同一个碎片。 然后你有更多的选择。您可以使用shard作为父级进行事务处理(与单个计数器相比,这减少了争用),尽管最终您的新事务实体会任意选择父级。或者不必为交易费心,在这种情况下,你可能需要不时地修正计数,就像尼克的非交易选项一样。 要读取总计数,需要将所有碎片相加。你不会“同时”阅读它们,但这通常是好的。读取任何计数器时,它可能会在您读取它和使用该值之间增加,因此该值实际上只是一个下限。加上碎片没有什么不同,只是可能需要更长的时间。 |