Implementing Azure Cloud Design Patterns
上QQ阅读APP看书,第一时间看更新

Concurrency and consistency

Let's start with the term concurrency. Here, you have to answer the following question: What kind of concurrency mechanism do you want to use?

The following options are available:

  • Pessimistic concurrency control: In the case of pessimistic concurrency control, the application performs many updates, which can contain a high conflict potential. The mechanism you choose will try to counteract this with record locking.
  • Optimistic concurrency control: In the case of optimistic concurrency control, there is no high conflict potential. Therefore, this mechanism provides only a simple timestamp lock.

The next term is consistency or rather, consistency model.

Consistency models are used in distributed systems or distributed data stores (such as a filesystem or a database). The consistency model specifies a contract between user and system, wherein the system guarantees that if the user follows the contract, the memory will be consistent and the results of memory operations will be predictable.

I will address the topic of the consistency model later in this chapter, in the description of the Azure Cosmos DB.