2016-04-19 4 views
2

Одна из самых сложных вещей с DocumentDB - это выяснить, сколько единиц запроса в секунду (RU/s) вам необходимо для запуска приложения каждый день, но также во время использование шипов. Когда вы это сделаете неправильно, клиент DocumentDB будет генерировать исключения, которые являются ужасной моделью использования.Единицы обработки запросов в секунду (RUs/s) Шипы в DocumentDB

Если мое приложение имеет определенное время дня, когда оно будет использовать большее количество единиц запроса в секунду (RUs/s), то как это сделать в DocumentDB? Я не хочу устанавливать действительно высокий RUs/s весь день, потому что я получил бы плату соответственно. Я также не хочу каждый раз входить в портал Azure.

ответ

4

Вы можете создать работу на Azure, которая масштабирует пропускную способность ваших коллекций только в то время, когда она вам понадобится, а затем уменьшится вниз.

Если вы нацеливаете DocumentDB с .NET, this Azure article имеет пример кода, который показывает, как изменить пропускную способность с помощью .NET SDK.

Специфических (C# .NET), указанные в article выглядит следующим образом:

//Fetch the resource to be updated 
Offer offer = client.CreateOfferQuery() 
       .Where(r => r.ResourceLink == collection.SelfLink)  
       .AsEnumerable() 
       .SingleOrDefault(); 

// Set the throughput to 5000 request units per second 
offer = new OfferV2(offer, 5000); 

//Now persist these changes to the database by replacing the original resource 
await client.ReplaceOfferAsync(offer); 

// Set the throughput to S2 
offer = new Offer(offer); 
offer.OfferType = "S2"; 

//Now persist these changes to the database by replacing the original resource 
await client.ReplaceOfferAsync(offer); 

Я предполагаю, что DocumentDB SDK для других языков, будет иметь ту же функцию.

Кроме того, с помощью функции Azure article found here вы можете использовать PowerShell для изменения уровня обслуживания.

$ResourceGroupName = "resourceGroupName" 

$ServerName = "serverName" 
$DatabaseName = "databaseName" 

$NewEdition = "Standard" 
$NewPricingTier = "S2" 

$ScaleRequest = Set-AzureRmSqlDatabase -DatabaseName $DatabaseName - ServerName $ServerName -ResourceGroupName $ResourceGroupName -Edition  $NewEdition -RequestedServiceObjectiveName $NewPricingTier 
+0

Неверная модель ценообразования DocumentDB заставляет вас писать дополнительный код, чтобы обойти его. Я действительно чувствую, что этого не должно произойти. Нам уже нужно добавить логику повтора, чтобы обойти ограничение скорости. Мы должны быть в состоянии сказать, вот некоторые деньги, не делайте ставки, ограничивая меня до тех пор, пока она не закончится, и только заряжайте меня за то, что я использую, это лазурный путь! –

+3

@MuhammadRehanSaeed да, я тоже не в восторге от этого. Я хотел бы увидеть какой-то автомасштабирование, где вы можете установить пороговые значения и позволить масштабировать, когда это необходимо. – cnaegle

Смежные вопросы