Azure Cosmos DB에서 우선 순위 기반 실행
적용 대상: NoSQL
우선 순위 기반 실행을 통해 사용자는 Azure Cosmos DB로 전송되는 요청의 우선 순위를 지정할 수 있습니다. 요청 수가 구성된 초당 요청 단위(RU/s) 내에서 처리할 수 있는 용량을 초과하는 경우, Azure Cosmos DB는 우선 순위가 높은 요청의 실행 우선 순위를 지정하기 위해 낮은 우선 순위 요청을 제한합니다.
이 기능을 사용하면 우선 순위가 낮은 요청에 대해 제한 측정값을 먼저 구현하여 고부하 시나리오에서 컨테이너의 총 사용량이 구성된 RU/s를 초과할 때 덜 중요한 작업을 지연하면서 중요한 작업을 실행할 수 있습니다. SDK를 사용하는 모든 클라이언트 애플리케이션은 구성된 재시도 정책에 따라 우선 순위가 낮은 요청을 다시 시도합니다.
참고 항목
우선 순위 기반 실행 기능은 우선 순위가 높은 요청을 위해 우선 순위가 낮은 요청을 항상 제한하는 것을 보장하지 않습니다. 이는 최선을 다해 작동하며 기능 성능과 연결된 SLA는 없습니다.
사용 사례
동일한 컨테이너에서 실행되는 워크로드에 대해 애플리케이션의 우선 순위가 서로 다른 경우 우선 순위 기반 실행을 사용할 수 있습니다. 예를 들면 다음과 같습니다.
- 읽기, 쓰기 또는 쿼리 작업의 우선 순위를 지정합니다.
- 사용자 작업과 다음과 같은 백그라운드 작업의 우선 순위를 정합니다.
- 저장 프로시저
- 데이터 수집/마이그레이션
시작하기
우선 순위 기반 실행 사용을 시작하려면 Azure Cosmos DB 계정의 기능 페이지로 이동합니다. 우선 순위 기반 실행(미리 보기) 기능을 선택하고 사용하도록 설정합니다.
SDK 요구 사항
- .NET v3: v3.33.0-preview 이상
- Java v4: v4.45.0 이상
- Spark 3.2: v4.19.0 이상
- JavaScript v4: v4.0.0 이상
- Python: v4.5.2b2 이상. 미리 보기 버전에서만 사용할 수 있습니다.
샘플 코드
using Microsoft.Azure.Cosmos;
//update products catalog with low priority
RequestOptions catalogRequestOptions = new ItemRequestOptions{PriorityLevel = PriorityLevel.Low};
PartitionKey pk = new PartitionKey(“productId1”);
ItemResponse<Product> catalogResponse = await this.container.CreateItemAsync<Product>(product1, pk, requestOptions);
//Display product information to user with high priority
RequestOptions getProductRequestOptions = new ItemRequestOptions{PriorityLevel = PriorityLevel.High};
string id = “productId2”;
PartitionKey pk = new PartitionKey(id);
ItemResponse<Product> productResponse = await this.container.ReadItemAsync< Product>(id, pk, getProductRequestOptions);
우선 순위 기반 실행 모니터링
Azure Portal에서 Azure Monitor 메트릭을 사용하여 낮은 우선 순위와 높은 우선 순위의 요청 동작을 모니터링할 수 있습니다. 메트릭에 대해 자세히 알아보려면 Azure Monitor 메트릭을 참조하세요.
Cosmos DB 계정의 기본 우선 순위 수준 변경
우선 순위 기반 실행이 사용하도록 설정되어 있고 사용자 요청에 대해 우선 순위 수준이 지정되지 않은 경우 이러한 모든 요청은 높은 우선 순위로 실행됩니다. Azure CLI를 사용하여 Cosmos DB 계정에서 요청의 기본 우선 순위 수준을 변경할 수 있습니다.
Azure CLI
# install preview Azure CLI version 0.26.0 or later
az extension add --name cosmosdb-preview --version 0.26.0
# set subscription context
az account set -s $SubscriptionId
# Enable priority-based execution
az cosmosdb update --resource-group $ResourceGroup --name $AccountName --enable-priority-based-execution true
# change default priority level
az cosmosdb update --resource-group $ResourceGroup --name $AccountName --default-priority-level low
데이터 탐색기 우선 순위
Cosmos DB 계정에 대해 우선 순위 기반 실행이 사용하도록 설정되면 Azure Portal 데이터 탐색기의 모든 요청은 낮은 우선 순위로 실행됩니다. 데이터 탐색기의 설정 메뉴에서 우선 순위 설정을 변경하여 이를 조정할 수 있습니다.
참고 항목
이 클라이언트 쪽 구성은 관련 사용자의 데이터 탐색기 보기에만 적용되며 다른 사용자의 데이터 탐색기 우선 순위 수준이나 Cosmos DB 계정의 기본 우선 순위 수준에는 영향을 미치지 않습니다.
제한 사항
- 현재 서버리스 데이터베이스 계정에는 우선 순위 기반 실행이 지원되지 않습니다.
- 우선 순위 기반 실행 기능의 동작은 공유 처리량 데이터베이스 컨테이너에 대해 결정적이지 않습니다.
알려진 문제
- 강력하고 제한된 부실 일관성 수준의 경우 읽기 요청 우선 순위 지정이 효과적으로 작동하지 않아 우선 순위가 높은 읽기 트래픽에 관계없이 낮은 우선 순위 쓰기 요청이 실행될 수 있습니다.
다음 단계
- 우선 순위 기반 실행에 대한 FAQ를 참조하세요.
- 버스트 용량에 대한 자세한 정보