Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Při měření spotřeby Azure Storage se počítají dva parametry: objem uložených dat a počet transakcí za měsíc. Standardní jednotková cena ve spotřebním modelu je následující:
1GB/měsíc = 0.15 USD
10k transakcí/měsíc = 0.01 USD
Cena za uložený bajt je celkem pochopitelná, u transakcí však vyvstává celá řada otázek. Pokusím si na ty nejčastější odpovědět:
Q: Co je to vlastně transakce?
A: Transkace je jakákoli operace nad Azure Storage. Nezávisle na tom, jaký konkrétní typ datové struktury použiji – tabulka, blob, queue. Jedna transakce může pracovat s jedním objektem nebo s množinou objektů v případě tzv. batch transakce.
Q: Jak jsou transakce měřeny?
A: Transakce jsou měřeny na úrovni volání jednotlivých Azure Storage API. Pokud zavolám API funkci, která vrátí nebo uloží jeden objekt, jde o jednu transakci. Pokud zavolám API funkci, který provede batch transakci nad množinou objektů, jde také o jednu transakci.
Transakce jsou počítány nezávisle na tom, odkud jsou spouštěny. Azure Storage může být využíván z aplikací hostovaných v Azure compute rolích, tak z lokálních tlustých aplikací nebo z jiných webových aplikací běžících mimo Windows Azure. Transakce se ve všech případech počítají identicky.
Q: Jak optimalizovat?
A: Pokud lze dotazy do Azure storage agregovat do jedné transakce, použijte dávkové zpracování.
Q: Můžete uvést konkrétní příklady?
A:
- Uložení jedné položky do blob service = 1 transakce
- Uložení 4 požadavků přes PutBlock a pak jeden PutBlockList pro commit = 5 transakcí
- Vylistování 5 položek blobu (z důvodu použití „continuation tokenu“) = 5 transakcí
- Update jedné položky v tabulce = 1 transakce
- Dávková transakce 100 položek nad tabulkou = 1 transakce
- Dotaz do tabulky pro vracející jednu položku = 1 transakce
- Jeden dotaz do tabulky vracející 100 položek = 1 transakce
- Vytvoření 5 dotazů do tabulky (z důvodu použití „continuation tokenu“) = 5 transakcí
- Dotaz nad frontou vracející jednu zprávu = 1 transakce
- Dávkový dotaz nad frontou vracející 32 položek = 1 transakce
Jinými slovy, každý HTTP REST volání do blobu, tablky nebo queue služeb stojí 1 transakci.