什么时候要担心concurrency呀?

请问老师啊,什么时候要担心concurrency呀?
为什么上节直播课提到concurrency, 要用SAGA, 但是之前就不用担心呀。

谢谢,

你是想问 Concurrency 还是 Transaction?Concurrency 是一直需要考虑的,QPS 计算就是考虑这个,加锁也是考虑这个。Transaction 是用 Saga Pattern 来解决,因为 Robinhood 和 Fandango 是牵涉到钱的服务。

老师啊,我搞混了。您能给我讲一讲concurrency vs. transaction vs. mutual exclusion 可以吗?

  1. concurrency 《=》mutual exclusion, 就是一个object can only be accessed by one process (same computer or different computer), 对嘛?
  2. transaction 就是若干操作,要么一次完成,要么回滚,对嘛?那innoDB support transaction, 不也支持concurrency吗?

谢谢老师

  1. concurrency 不等于 mutual exclusion。比如说数据库需要支持 concurrency,不同进程要能够同时访问。所以从整个数据库角度上,肯定不是 mutual exclusion。但从一条 record 角度上可以是 mutual exclusion.
  2. Transaction 是 all or nothing。innoDB 支持数据库层面的 Transaction 也支持一定程度的 Concurrency。基本上所有数据库都支持一定程度的 Concurrency,这个程度每个数据库有所不同。