Azure Cosmos DB의 일관성 수준Consistency levels in Azure Cosmos DB

적용 대상: SQL API Cassandra API Gremlin API Table API Azure Cosmos DB API for MongoDB

고가용성, 짧은 대기 시간 또는 둘 다에 대해 복제를 사용 하는 분산 데이터베이스는 PACLC 정리에 정의 된 대로 읽기 일관성, 가용성, 대기 시간 및 처리량 간에 기본적인 균형을 유지 해야 합니다.Distributed databases that rely on replication for high availability, low latency, or both, must make a fundamental tradeoff between the read consistency, availability, latency, and throughput as defined by the PACLC theorem. 강력한 일관성 모델의 선형화 가능성는 데이터 프로그래밍의 골드 표준입니다.The linearizability of the strong consistency model is the gold standard of data programmability. 그러나 데이터를 큰 거리에 복제 하 고 커밋하는 것으로 인해 더 높은 쓰기 대기 시간 으로부터 깊은 가격을 추가 합니다.But it adds a steep price from higher write latencies due to data having to replicate and commit across large distances. 또한 모든 지역에서 데이터를 복제 하 고 커밋할 수 없기 때문에 성능이 크게 저하 될 수 있습니다 (오류 중).Strong consistency may also suffer from reduced availability (during failures) because data cannot replicate and commit in every region. 최종 일관성은 고가용성과 향상 된 성능을 제공 하지만 모든 지역에서 데이터가 완전히 일치 하지 않을 수 있기 때문에 응용 프로그램을 프로그래밍 하는 것이 더 어려워집니다.Eventual consistency offers higher availability and better performance, but its more difficult to program applications because data may not be completely consistent across all regions.

현재 시중에서 제공 되는 대부분의 상업적으로 사용할 수 있는 배포 된 NoSQL 데이터베이스는 강력 하 고 결과적 일관성만 제공 합니다.Most commercially available distributed NoSQL databases available in the market today provide only strong and eventual consistency. Azure Cosmos DB는 잘 정의 된 5 가지 수준을 제공 합니다.Azure Cosmos DB offers five well-defined levels. 가장 강력한 수준에서 가장 약한 수준, 즉From strongest to weakest, the levels are:

  • 강력Strong
  • 제한 된 부실Bounded staleness
  • 세션Session
  • 일관적인 접두사Consistent prefix
  • 최종적인Eventual

각 수준은 가용성 및 성능 절충을 제공 합니다.Each level provides availability and performance tradeoffs. 다음 이미지는 다양 한 일관성 수준을 스펙트럼으로 보여 줍니다.The following image shows the different consistency levels as a spectrum.

스펙트럼으로 일관성

일관성 수준은 지역에 구애 받지 않으며 읽기 및 쓰기가 처리 되는 지역, Azure Cosmos 계정에 연결 된 지역 수 또는 계정이 단일 또는 다중 쓰기 지역으로 구성 되었는지 여부에 관계 없이 모든 작업에 대해 보장 됩니다.The consistency levels are region-agnostic and are guaranteed for all operations regardless of the region from which the reads and writes are served, the number of regions associated with your Azure Cosmos account, or whether your account is configured with a single or multiple write regions.

일관성 수준 및 Azure Cosmos DB APIConsistency levels and Azure Cosmos DB APIs

Azure Cosmos DB는 널리 사용 되는 데이터베이스에 대 한 유선 프로토콜 호환 Api를 기본적으로 지원 합니다.Azure Cosmos DB provides native support for wire protocol-compatible APIs for popular databases. 여기에는 MongoDB, Apache Cassandra, Gremlin 및 Azure Table storage가 포함 됩니다.These include MongoDB, Apache Cassandra, Gremlin, and Azure Table storage. Gremlin API 및 Table API를 사용 하는 경우 Azure Cosmos 계정에 구성 된 기본 일관성 수준이 사용 됩니다.When using Gremlin API and Table API, the default consistency level configured on the Azure Cosmos account is used. Cassandra API 또는 MongoDB API와 Azure Cosmos DB의 일관성 수준 간의 일관성 수준 매핑에 대 한 자세한 내용은 Cassandra API 일관성 매핑Api를 위한 api를 참조 하십시오.For details on consistency level mapping between Cassandra API or the API for MongoDB and Azure Cosmos DB's consistency levels see, Cassandra API consistency mapping and API for MongoDB consistency mapping.

읽기 일관성 범위Scope of the read consistency

읽기 일관성은 논리적 파티션 내에서 범위가 지정 된 단일 읽기 작업에 적용 됩니다.Read consistency applies to a single read operation scoped within a logical partition. 읽기 작업은 원격 클라이언트 또는 저장 프로시저에서 실행할 수 있습니다.The read operation can be issued by a remote client or a stored procedure.

기본 일관성 수준 구성Configure the default consistency level

언제든지 Azure Cosmos 계정의 기본 일관성 수준을 구성할 수 있습니다.You can configure the default consistency level on your Azure Cosmos account at any time. 계정에 구성 된 기본 일관성 수준은 해당 계정의 모든 Azure Cosmos 데이터베이스 및 컨테이너에 적용 됩니다.The default consistency level configured on your account applies to all Azure Cosmos databases and containers under that account. 컨테이너 또는 데이터베이스에 대해 실행된 모든 읽기 및 쿼리는 기본적으로 지정된 일관성 수준을 사용합니다.All reads and queries issued against a container or a database use the specified consistency level by default. 자세히 알아보려면 기본 일관성 수준을 구성하는 방법을 참조하세요.To learn more, see how to configure the default consistency level. 특정 요청에 대 한 기본 일관성 수준을 재정의할 수도 있습니다. 자세한 내용은 기본 일관성 수준을 재정의 하는 방법 문서를 참조 하세요.You can also override the default consistency level for a specific request, to learn more, see how to Override the default consistency level article.

일관성 수준과 연결된 보장Guarantees associated with consistency levels

Azure Cosmos DB는 읽기 요청의 100%가 선택한 일관성 수준에 대 한 일관성 보장을 충족 하도록 보장 합니다.Azure Cosmos DB guarantees that 100 percent of read requests meet the consistency guarantee for the consistency level chosen. TLA + 사양 언어를 사용 하 Azure Cosmos DB에서 5 가지 일관성 수준에 대 한 정확한 정의는 Azure-Cosmos GitHub 리포지토리에서 제공 됩니다.The precise definitions of the five consistency levels in Azure Cosmos DB using the TLA+ specification language are provided in the azure-cosmos-tla GitHub repo.

5가지 일관성 수준의 의미 체계는 여기에 설명되어 있습니다.The semantics of the five consistency levels are described here:

  • Strong : 강력한 일관성은 선형화 가능성 보장을 제공 합니다.Strong : Strong consistency offers a linearizability guarantee. 선형화 가능성은 요청을 동시에 처리 하는 것을 의미 합니다.Linearizability refers to serving requests concurrently. 읽기를 통해 항목의 최신 커밋된 버전 반환이 보장됩니다.The reads are guaranteed to return the most recent committed version of an item. 클라이언트는 커밋되지 않은 쓰기 또는 부분 쓰기를 볼 수 없습니다.A client never sees an uncommitted or partial write. 사용자는 항상 최신 커밋 쓰기의 읽기가 보장됩니다.Users are always guaranteed to read the latest committed write.

    다음 그림은 악기 노트와의 강력한 일관성을 보여 줍니다.The following graphic illustrates the strong consistency with musical notes. "미국 서 부 2" 지역에 데이터를 쓴 후 다른 지역의 데이터를 읽으면 최신 값을 얻게 됩니다.After the data is written to the "West US 2" region, when you read the data from other regions, you get the most recent value:

    강력한 일관성 수준에 대 한 그림

  • 제한 된 부실 : 읽기는 일관 된 접두사 보증을 보장 합니다.Bounded staleness : The reads are guaranteed to honor the consistent-prefix guarantee. 읽기는 항목의 "K" 버전 (즉, "업데이트") 또는 "T" 시간 간격 ("업데이트")에 따라 쓰기 뒤에 지연 될 수 있습니다.The reads might lag behind writes by at most "K" versions (that is, "updates") of an item or by "T" time interval, whichever is reached first. 즉, 제한 된 부실을 선택 하는 경우 "부실"은 다음 두 가지 방법으로 구성할 수 있습니다.In other words, when you choose bounded staleness, the "staleness" can be configured in two ways:

  • 항목의 버전 ( K ) 수입니다.The number of versions ( K ) of the item

  • 시간 간격 ( T ) 읽기가 쓰기 뒤에 지연 될 수 있습니다.The time interval ( T ) reads might lag behind the writes

단일 지역 계정의 경우 KT 의 최소값은 10 개의 쓰기 작업 또는 5 초입니다.For a single region account, the minimum value of K and T is 10 write operations or 5 seconds. 다중 지역 계정의 경우 최소 값 KT 는 10만 쓰기 작업 또는 300 초입니다.For multi-region accounts the minimum value of K and T is 100,000 write operations or 300 seconds.

제한 된 부실은 "부실 창" 외부의 총 글로벌 주문을 제공 합니다.Bounded staleness offers total global order outside of the "staleness window." 클라이언트에서 쓰기를 허용 하는 지역 내에서 읽기 작업을 수행 하는 경우, 제한 된 부실 일관성을 통해 제공 되는 보장은 강력한 일관성을 통해 보장 되는 것과 동일 합니다.When a client performs read operations within a region that accepts writes, the guarantees provided by bounded staleness consistency are identical to those guarantees by the strong consistency. 이러한 시간 또는 업데이트에 대 한 부실 기간이 더 가까운 경우, 서비스는 복제를 통해 일관성 보장을 파악 하 고 사용할 수 있도록 새 쓰기를 제한 합니다.As the staleness window approaches for either time or updates, whichever is closer, the service will throttle new writes to allow replication to catch up and honor the consistency guarantee.

부실 기간 내에서 제한 된 부실은 다음과 같은 일관성을 보장 합니다.Inside the staleness window, Bounded Staleness provides the following consistency guarantees:

  • 단일 쓰기 지역이 있는 계정에 대해 동일한 지역의 클라이언트에 대 한 일관성 = 강함Consistency for clients in the same region for an account with single write region = Strong

  • 단일 쓰기 지역이 있는 계정에 대해 서로 다른 지역의 클라이언트에 대 한 일관성 = 일관적인 접두사Consistency for clients in different regions for an account with single write region = Consistent Prefix

  • 여러 쓰기 지역이 있는 계정에 대해 단일 지역에 쓰는 클라이언트의 일관성 = 일치 하는 접두사Consistency for clients writing to a single region for an account with multiple write regions = Consistent Prefix

  • 여러 쓰기 지역이 있는 계정에 대해 다른 지역에 쓰는 클라이언트의 일관성 = 최종Consistency for clients writing to different regions for an account with multiple write regions = Eventual

    제한 된 부실은 일반적으로 낮은 쓰기 대기 시간을 예상 하지만 총 글로벌 주문 보증이 필요한 전 세계적으로 분산 된 응용 프로그램에 의해 선택 됩니다.Bounded staleness is frequently chosen by globally distributed applications that expect low write latencies but require total global order guarantee. 제한 된 부실은 그룹 공동 작업 및 공유, 주식 시세, 게시-구독/큐 등을 갖춘 응용 프로그램에 적합 합니다. 다음 그림은 음악 메모와의 제한 된 부실 일관성을 보여 줍니다.Bounded staleness is great for applications featuring group collaboration and sharing, stock ticker, publish-subscribe/queueing etc. The following graphic illustrates the bounded staleness consistency with musical notes. "미국 서 부 2" 지역에 데이터를 쓴 후 "미국 동부 2" 및 "오스트레일리아 동부" 지역은 구성 된 최대 지연 시간 또는 최대 작업을 기반으로 작성 된 값을 읽습니다.After the data is written to the "West US 2" region, the "East US 2" and "Australia East" regions read the written value based on the configured maximum lag time or the maximum operations:

    제한 된 부실 일관성 수준에 대 한 그림

  • 세션 : 단일 클라이언트 세션에서 읽기는 일관 된 접두사, 단조 읽기, 단조 쓰기, 읽기/쓰기 및 쓰기-쓰기를 보장 합니다.Session : Within a single client session reads are guaranteed to honor the consistent-prefix, monotonic reads, monotonic writes, read-your-writes, and write-follows-reads guarantees. 이는 단일 "writer" 세션을 가정 하거나 여러 작성기에 대해 세션 토큰을 공유 하는 것으로 가정 합니다.This assumes a single "writer" session or sharing the session token for multiple writers.

쓰기를 수행 하는 세션 외부의 클라이언트는 다음과 같은 보증을 확인할 수 있습니다.Clients outside of the session performing writes will see the following guarantees:

  • 단일 쓰기 지역이 있는 계정에 대해 동일한 지역의 클라이언트에 대 한 일관성 = 일관적인 접두사Consistency for clients in same region for an account with single write region = Consistent Prefix

  • 단일 쓰기 지역이 있는 계정에 대해 서로 다른 지역의 클라이언트에 대 한 일관성 = 일관적인 접두사Consistency for clients in different regions for an account with single write region = Consistent Prefix

  • 여러 쓰기 지역이 있는 계정에 대해 단일 지역에 쓰는 클라이언트의 일관성 = 일치 하는 접두사Consistency for clients writing to a single region for an account with multiple write regions = Consistent Prefix

  • 여러 쓰기 지역이 있는 계정에 대 한 여러 지역에 쓰는 클라이언트의 일관성 = 최종Consistency for clients writing to multiple regions for a account with multiple write regions = Eventual

    세션 일관성은 단일 지역 뿐만 아니라 전 세계적으로 분산 된 응용 프로그램 모두에서 가장 널리 사용 되는 일관성 수준입니다.Session consistency is the most widely used consistency level for both single region as well as globally distributed applications. 최종 일관성과 유사 하 게 쓰기 대기 시간, 가용성 및 읽기 처리량을 제공 하지만, 사용자의 컨텍스트에서 작동 하도록 작성 된 응용 프로그램의 요구에 맞는 일관성 보장도 제공 합니다.It provides write latencies, availability, and read throughput comparable to that of eventual consistency but also provides the consistency guarantees that suit the needs of applications written to operate in the context of a user. 다음 그림은 악기 노트와의 세션 일관성을 보여 줍니다.The following graphic illustrates the session consistency with musical notes. "미국 서 부 2 작성기" 및 "미국 서 부 2 판독기"는 동일한 세션 (세션 A)을 사용 하 고 있으므로 동일한 데이터를 동시에 읽을 수 있습니다.The "West US 2 writer" and the "West US 2 reader" are using the same session (Session A) so they both read the same data at the same time. "오스트레일리아 동부" 지역은 "세션 B"를 사용 하는 반면 나중에 쓰기와 동일한 순서로 데이터를 받습니다.Whereas the "Australia East" region is using "Session B" so, it receives data later but in the same order as the writes.

    세션 일관성 수준에 대 한 그림

  • 일관적인 접두사 : 반환 되는 업데이트에는 간격이 없는 모든 업데이트의 일부 접두사가 포함 됩니다.Consistent prefix : Updates that are returned contain some prefix of all the updates, with no gaps. 일관 된 접두사 일관성 수준에 따라 읽기가 잘못 된 쓰기를 표시 하지 않습니다.Consistent prefix consistency level guarantees that reads never see out-of-order writes.

쓰기를 순서 대로 수행 A, B, C 하는 경우 클라이언트는, 또는 중 하나를 볼 A A,B A,B,C 뿐만 아니라 또는와 같이 순서가 잘못 된 순열은 표시 하지 않습니다 A,C B,A,C .If writes were performed in the order A, B, C, then a client sees either A, A,B, or A,B,C, but never out-of-order permutations like A,C or B,A,C. 일관 된 접두사는 최종 일관성과 비교할 수 있는 쓰기 대기 시간, 가용성 및 읽기 처리량을 제공 하지만 순서가 중요 한 시나리오의 요구 사항에 적합 한 주문 보장도 제공 합니다.Consistent Prefix provides write latencies, availability, and read throughput comparable to that of eventual consistency, but also provides the order guarantees that suit the needs of scenarios where order is important.

다음은 일관 된 접두사에 대 한 일관성 보장입니다.Below are the consistency guarantees for Consistent Prefix:

  • 단일 쓰기 지역이 있는 계정에 대해 동일한 지역의 클라이언트에 대 한 일관성 = 일관적인 접두사Consistency for clients in same region for an account with single write region = Consistent Prefix
  • 단일 쓰기 지역이 있는 계정에 대해 서로 다른 지역의 클라이언트에 대 한 일관성 = 일관적인 접두사Consistency for clients in different regions for an account with single write region = Consistent Prefix
  • 여러 쓰기 지역이 있는 계정에 대해 단일 지역에 쓰는 클라이언트의 일관성 = 일관적인 접두사Consistency for clients writing to a single region for an account with multiple write region = Consistent Prefix
  • 여러 쓰기 지역이 있는 계정에 대 한 여러 지역에 쓰는 클라이언트의 일관성 = 최종Consistency for clients writing to multiple regions for an account with multiple write region = Eventual

다음 그림은 음악 메모와의 일관성 접두사 일관성을 보여 줍니다.The following graphic illustrates the consistency prefix consistency with musical notes. 모든 지역에서 읽기는 순서가 잘못 된 쓰기를 표시 하지 않습니다.In all the regions, the reads never see out of order writes:

일관적인 접두사의 그림

  • 최종 : 읽기에 대 한 순서가 보장 되지 않습니다.Eventual : There's no ordering guarantee for reads. 추가 쓰기가 없으면 복제본이 결과적으로 수렴합니다.In the absence of any further writes, the replicas eventually converge.
    최종 일관성은 클라이언트에서 이전에 읽은 값 보다 오래 된 값을 읽을 수 있기 때문에 가장 약한 형태의 일관성입니다.Eventual consistency is the weakest form of consistency because a client may read the values that are older than the ones it had read before. 최종 일관성은 응용 프로그램에서 순서를 보장 하지 않아도 되는 경우에 적합 합니다.Eventual consistency is ideal where the application does not require any ordering guarantees. 예를 들면, 좋아요, 좋아요 또는 비 스레드된 주석의 개수가 포함 됩니다.Examples include count of Retweets, Likes, or non-threaded comments. 다음 그림은 악기 노트와의 최종 일관성을 보여 줍니다.The following graphic illustrates the eventual consistency with musical notes.

    최종 일관성의 viIllustration

실제 일관성 보증Consistency guarantees in practice

실제로 더 강력한 일관성을 보장 하는 경우가 많습니다.In practice, you may often get stronger consistency guarantees. 새로 고침 및 요청하는 데이터베이스의 상태 순서에 해당하는 읽기 작업에 대한 일관성 보장입니다.Consistency guarantees for a read operation correspond to the freshness and ordering of the database state that you request. 읽기 일관성은 쓰기/업데이트 작업의 순서 지정 및 전파에 연결됩니다.Read-consistency is tied to the ordering and propagation of the write/update operations.

데이터베이스에 대 한 쓰기 작업이 없는 경우 최종 , 세션 또는 일관 된 접두사 일관성 수준에 대 한 읽기 작업은 강력한 일관성 수준의 읽기 작업과 동일한 결과를 얻을 수 있습니다.If there are no write operations on the database, a read operation with eventual , session , or consistent prefix consistency levels is likely to yield the same results as a read operation with strong consistency level.

Azure Cosmos 계정이 강력한 일관성 이외의 일관성 수준으로 구성 된 경우에는 PBS ( 확률적 한정 된 부실 ) 메트릭을 살펴보면 클라이언트에서 작업에 대해 강력 하 고 일관 된 읽기를 수행할 수 있는 확률을 확인할 수 있습니다.If your Azure Cosmos account is configured with a consistency level other than the strong consistency, you can find out the probability that your clients may get strong and consistent reads for your workloads by looking at the Probabilistically Bounded Staleness (PBS) metric. 이 메트릭은 Azure Portal에서 노출됩니다. 자세히 알아보려면 PBS(확률적 제한된 부실) 메트릭 모니터링을 참조하세요.This metric is exposed in the Azure portal, to learn more, see Monitor Probabilistically Bounded Staleness (PBS) metric.

확률적 제한된 부실은 최종이 어떻게 최종 일관성인지 보여줍니다.Probabilistic bounded staleness shows how eventual is your eventual consistency. 이 메트릭은 현재 Azure Cosmos 계정에 구성 된 일관성 수준 보다 더 강력한 일관성을 얻을 수 있는 빈도에 대 한 정보를 제공 합니다.This metric provides an insight into how often you can get a stronger consistency than the consistency level that you have currently configured on your Azure Cosmos account. 즉, 쓰기 및 읽기 영역 조합에 대한 강력한 일관성 읽기를 가져오는 확률(밀리초로 제한됨)을 확인할 수 있습니다.In other words, you can see the probability (measured in milliseconds) of getting strongly consistent reads for a combination of write and read regions.

일관성 수준 및 대기 시간Consistency levels and latency

모든 일관성 수준에 대한 읽기 대기 시간은 항상 99번째 백분위 수에서 10밀리초 미만을 보장합니다.The read latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. 50 번째 백분위 수의 평균 읽기 대기 시간은 일반적으로 4 밀리초 보다 낮습니다.The average read latency, at the 50th percentile, is typically 4 milliseconds or less.

모든 일관성 수준에 대 한 쓰기 대기 시간은 99 번째 백분위 수에서 항상 10 밀리초 미만으로 보장 됩니다.The write latency for all consistency levels is always guaranteed to be less than 10 milliseconds at the 99th percentile. 50번째 백분위 수의 평균 쓰기 대기 시간은 일반적으로 5밀리초 이하입니다.The average write latency, at the 50th percentile, is usually 5 milliseconds or less. 여러 Azure 지역에 걸쳐 있으며 강력한 일관성을 사용하여 구성된 Azure Cosmos 계정은 이 보장의 예외입니다.Azure Cosmos accounts that span several regions and are configured with strong consistency are an exception to this guarantee.

쓰기 대기 시간 및 강력한 일관성Write latency and Strong consistency

둘 이상의 지역에서 강력한 일관성을 사용 하 여 구성 된 Azure Cosmos 계정에 대 한 쓰기 대기 시간은 두 개의 가장 큰 영역 사이에 두 번 왕복 시간 (RTT)과 99 번째 백분위 수의 10 밀리초와 같습니다.For Azure Cosmos accounts configured with strong consistency with more than one region, the write latency is equal to two times round-trip time (RTT) between any of the two farthest regions, plus 10 milliseconds at the 99th percentile. 강력한 일관성은 계정 내의 모든 지역에 커밋 되었는지 확인 한 후에만 작업을 완료 하므로, 지역 간 높은 네트워크 RTT는 Cosmos DB 요청에 대해 더 높은 대기 시간으로 변환 됩니다.High network RTT between the regions will translate to higher latency for Cosmos DB requests since strong consistency completes an operation only after ensuring that it has been committed to all regions within an account.

정확한 RTT 대기 시간은 광속 거리와 Azure 네트워킹 토폴로지의 함수입니다.The exact RTT latency is a function of speed-of-light distance and the Azure networking topology. Azure 네트워킹은 두 Azure 지역 간의 RTT에 대 한 대기 시간 Sla를 제공 하지 않지만 azure 네트워크 왕복 대기 시간 통계를 게시 합니다.Azure networking doesn't provide any latency SLAs for the RTT between any two Azure regions, however it does publish Azure network round-trip latency statistics. Azure Cosmos 계정의 경우 Azure Portal에 복제 대기 시간이 표시됩니다.For your Azure Cosmos account, replication latencies are displayed in the Azure portal. Azure Portal (메트릭 블레이드로 이동, 일관성 탭 선택)를 사용 하 여 Azure Cosmos 계정과 연결 된 다양 한 지역 간 복제 대기 시간을 모니터링할 수 있습니다.You can use the Azure portal (go to the Metrics blade, select Consistency tab) to monitor the replication latencies between various regions that are associated with your Azure Cosmos account.

중요

최대 쓰기 대기 시간으로 인해 5000 8000 마일 이상으로 확장 된 지역 계정에 대 한 강력한 일관성은 기본적으로 차단 됩니다.Strong consistency for accounts with regions spanning more than 5000 miles (8000 kilometers) is blocked by default due to high write latency. 이 기능을 사용 하도록 설정 하려면 지원 담당자에 게 문의 하세요.To enable this capability please contact support.

일관성 수준 및 처리량Consistency levels and throughput

  • 강력 하 고 제한 된 부실의 경우 일관성을 보장 하기 위해 4 개의 복제본 집합 (소주주 쿼럼)에 있는 두 개의 복제본에 대해 읽기가 수행 됩니다.For strong and bounded staleness, reads are done against two replicas in a four replica set (minority quorum) to provide consistency guarantees. 세션, 일관 된 접두사 및 최종은 단일 복제본 읽기를 수행 합니다.Session, consistent prefix and eventual do single replica reads. 따라서 동일한 수의 요청 단위에 대해 강력 하 고 제한 된 부실의 읽기 처리량은 다른 일관성 수준의 절반입니다.The result is that, for the same number of request units, read throughput for strong and bounded staleness is half of the other consistency levels.

  • 지정된 쓰기 작업 유형(예: 삽입, 바꾸기, upsert, 삭제 등)의 경우 요청 단위에 대한 쓰기 처리량은 모든 일관성 수준에서 동일합니다.For a given type of write operation, such as insert, replace, upsert, and delete, the write throughput for request units is identical for all consistency levels.

일관성 수준Consistency Level 쿼럼 읽기Quorum Reads 쿼럼 쓰기Quorum Writes
강력Strong 로컬 소주주Local Minority 전역 과반수Global Majority
제한 된 부실Bounded Staleness 로컬 소주주Local Minority 로컬 과반수Local Majority
세션Session 단일 복제본 (세션 토큰 사용)Single Replica (using session token) 로컬 과반수Local Majority
일관적인 접두사Consistent Prefix 단일 복제본Single Replica 로컬 과반수Local Majority
최종적인Eventual 단일 복제본Single Replica 로컬 과반수Local Majority

참고

로컬 소주주 읽기에 대 한 읽기/쓰기 비용은 두 개의 복제본에서 강력 하 고 제한 된 부실의 일관성을 보장 하기 위해 읽기 때문에 두 배의 일관성 수준에 대 한 읽기 작업을 수행 합니다.The RU/s cost of reads for Local Minority reads are twice that of weaker consistency levels because reads are made from two replicas to provide consistency guarantees for Strong and Bounded Staleness.

일관성 수준 및 데이터 내구성Consistency levels and data durability

전 세계적으로 분산된 데이터베이스 환경에서 지역 전체 가동 중단이 발생할 경우, 일관성 수준과 데이터 내구성 사이에 직접적인 관계가 있습니다.Within a globally distributed database environment there is a direct relationship between the consistency level and data durability in the presence of a region-wide outage. 비즈니스 연속성 계획을 개발할 때는 중단 이벤트가 발생한 후 애플리케이션이 완전히 복구되기까지 허용되는 최대 시간을 이해해야 합니다.As you develop your business continuity plan, you need to understand the maximum acceptable time before the application fully recovers after a disruptive event. 응용 프로그램을 완전히 복구 하는 데 필요한 시간을 RTO ( 복구 시간 목표 ) 라고 합니다.The time required for an application to fully recover is known as recovery time objective ( RTO ). 또한 중단 이벤트가 발생한 후 복구될 때 애플리케이션에서 손실을 허용할 수 있는 최근 데이터 업데이트의 최대 기간도 이해해야 합니다.You also need to understand the maximum period of recent data updates the application can tolerate losing when recovering after a disruptive event. 손실 될 수 있는 업데이트 기간을 RPO ( 복구 지점 목표 ) 라고 합니다.The time period of updates that you might afford to lose is known as recovery point objective ( RPO ).

다음 표에서는 지역 전체의 중단이 발생 한 경우 일관성 모델과 데이터 내구성 간의 관계를 정의 합니다.The table below defines the relationship between consistency model and data durability in the presence of a region wide outage. 분산 된 시스템에서는 정리로 인해 분산 된 데이터베이스에 RPO 및 RTO가 0 인 분산 데이터베이스를 사용할 수 없습니다.It is important to note that in a distributed system, even with strong consistency, it is impossible to have a distributed database with an RPO and RTO of zero due to CAP Theorem.

개 지역Region(s) 복제 모드Replication mode 일관성 수준Consistency level RPORPO RTORTO
11 단일 또는 여러 쓰기 지역Single or Multiple write regions 일관성 수준Any Consistency Level < 240분< 240 Minutes < 1주<1 Week
>1>1 단일 쓰기 지역Single write region 세션, 일관된 접두사, 최종Session, Consistent Prefix, Eventual < 15분< 15 minutes < 15분< 15 minutes
>1>1 단일 쓰기 지역Single write region 제한된 부실Bounded Staleness K & TK & T < 15분< 15 minutes
>1>1 단일 쓰기 지역Single write region 강력Strong 00 < 15분< 15 minutes
>1>1 여러 쓰기 지역Multiple write regions 세션, 일관된 접두사, 최종Session, Consistent Prefix, Eventual < 15분< 15 minutes 00
>1>1 여러 쓰기 지역Multiple write regions 제한된 부실Bounded Staleness K & TK & T 00

K = 항목의 "K" 버전 (즉, 업데이트) 수입니다.K = The number of "K" versions (i.e., updates) of an item.

T = 마지막 업데이트 이후의 시간 간격 "t" 입니다.T = The time interval "T" since the last update.

단일 지역 계정의 경우 KT 의 최소값은 10 개의 쓰기 작업 또는 5 초입니다.For a single region account, the minimum value of K and T is 10 write operations or 5 seconds. 다중 지역 계정의 경우 최소 값 KT 는 10만 쓰기 작업 또는 300 초입니다.For multi-region accounts the minimum value of K and T is 100,000 write operations or 300 seconds. 이는 제한 된 부실을 사용할 때 데이터의 최소 RPO를 정의 합니다.This defines the minimum RPO for data when using Bounded Staleness.

강력한 일관성 및 여러 쓰기 지역Strong consistency and multiple write regions

여러 쓰기 지역으로 구성 된 Cosmos 계정은 분산 시스템이 0 및 RTO 0의 RPO를 제공할 수 없으므로 강력한 일관성을 위해 구성할 수 없습니다.Cosmos accounts configured with multiple write regions cannot be configured for strong consistency as it is not possible for a distributed system to provide an RPO of zero and an RTO of zero. 또한 모든 지역에 대 한 쓰기는 복제 되 고 계정 내의 모든 구성 된 지역에 커밋되기 때문에 여러 쓰기 지역에서 강력한 일관성을 사용 하는 경우 쓰기 대기 시간 이점이 없습니다.Additionally, there are no write latency benefits on using strong consistency with multiple write regions because a write to any region must be replicated and committed to all configured regions within the account. 이로 인해 단일 쓰기 지역 계정으로 쓰기 대기 시간이 동일 하 게 됩니다.This results in the same write latency as a single write region account.

추가 자료Additional reading

일관성 개념에 대해 자세히 알아보려면 다음 문서를 참조하세요.To learn more about consistency concepts, read the following articles:

다음 단계Next steps

Azure Cosmos DB의 일관성 수준에 대한 자세한 내용은 다음 문서를 참조하세요.To learn more about consistency levels in Azure Cosmos DB, read the following articles: