Azure limity důvěrných registrů

Azure důvěrné hlavní knihy omezuje počet registrů v předplatném a data a kód, které registru ukládá, aby byl výkon a dostupnost všech registrů předvídatelný. Tento článek popisuje tato omezení, jak hlavní kniha reaguje, když je požadavek překročí a jaký výkon má od hlavní knihy očekávat.

Note

Omezení v tomto článku jsou výchozí. V některých případech může mít jednotlivá kniha různá omezení, například registr vytvořený před zavedením limitu. Pokud chcete požádat o vyšší limity nebo diskutovat o omezeních, kontaktujte podpora Azure.

Limity předplatného

Následující limit platí pro každé předplatné Azure.

Limit Value
Hlavní knihy na předplatné 2

Omezení dat registru

Následující omezení platí pro všechny hlavní knihy ve výchozím nastavení.

Limit Výchozí hodnota Kód chyby
Kolekce na hlavní knihy 5 000 CollectionCapacityExceeded
Délka ID kolekce 256 bajtů CollectionIdTooLong
Velikost obsahu položky registru 8 KiB (8 192 bajtů) EntrySizeCapacityExceeded
Značky na hlavní knihy (pouze veřejné knihy) 10,000 TagCapacityExceeded
  • Kolekce na hlavní knihy: Výchozí kolekce se nezapočítává. Když hlavní kniha dosáhne limitu, zápisy, které by vytvořily novou kolekci, budou odmítnuty. Zápisy do existujících kolekcí jsou stále úspěšné.
  • Délka ID kolekce: Délka se měří v bajtech kódovaného ID UTF-8 po dekódování adresy URL. Limit platí jenom v případě, že zápis vytvoří novou kolekci, takže můžete pokračovat v zápisu do kolekcí vytvořených před zavedením tohoto limitu a číst je z kolekcí.
  • Velikost obsahu položky registru: Velikost se měří v bajtech kódované contents hodnoty UTF-8 po dekódování JSON. Obsah přesně 8 192 bajtů je přijat. Omezení platí pro zápisy do nových i existujících kolekcí. ID kolekce, značky a další pole požadavku se do tohoto limitu nezapočítávají. Na celou žádost se vztahuje také maximální velikost textu požadavku hlavní knihy.
  • Značky na hlavní knihy: Značka se počítá jednou pro každou kolekci, která ji používá. Například značka chocolate použitá ve dvou kolekcích se počítá jako dvě značky. Když hlavní kniha dosáhne limitu, zápisy, které by do kolekce přidaly novou značku, budou odmítnuty. Zápis bez značek nebo se značkami, které už kolekce používá, je stále úspěšná.

Zápis, který překračuje limit, se odmítne se stavovým kódem HTTP 400 (Chybný požadavek) a do registru se nic nezapíše. Odpověď obsahuje kód chyby a zprávu, která obsahuje limit, který platí pro hlavní knihy. Příklady:

{
  "error": {
    "code": "EntrySizeCapacityExceeded",
    "message": "Entry contents of 9000 bytes exceed the limit of 8192 bytes."
  }
}

Omezení značek na zápis

Značky se podporují jenom u veřejných registrů. Následující omezení platí pro každou veřejnou registr.

Limit Value
Značky na zápis 5
Délka značky 63 znaků

Značky nemohou být prázdné a mohou obsahovat pouze znaky A–Z, a–z, 0–9, -, _, .a ~. Zápis, který překračuje tato omezení nebo obsahuje neplatnou značku, je odmítnut se stavovým kódem HTTP 400 a kódem NotAllowed chyby.

Omezení uživatelem definovaných funkcí

Následující omezení platí pro uživatelem definované funkce (UDF) v každém registru. Požadavky, které je překračují, jsou odmítnuty se stavovým kódem HTTP 400.

Limit Value Kód chyby
UDF na hlavní knihy 100 UserDefinedFunctionCapacityExceeded
Délka ID definovaného uživatelem 256 bajtů InvalidFunctionId
Velikost kódu UDF 64 KiB (65 536 bajtů) InvalidInput
Pre-hooks per write 5 InvalidInput
Post-hooks per write 5 InvalidInput

Limity počtu a délky ID definované uživatelem platí jenom při vytváření funkce definované uživatelem. Pokud se jeho kód vejde do 64 KiB, můžete i tak aktualizovat existující uživatelem definovanou uživatelem.

Možnosti modulu runtime, které se použijí při spuštění funkce definované uživatelem, najdete v tématu Spouštění funkcí definovaných uživatelem. Další informace o předpohovkách a post-hooks naleznete v tématu Transakce háky.

Možnosti modulu runtime uživatelem definovaného koncového bodu

Hodnoty nastavené PATCH /app/userDefinedEndpoints/runtimeOptions musí být v následujících oblastech. V opačném případě se požadavek odmítne se stavovým kódem HTTP 400 a kódem InvalidInput chyby. Jsou zaškrtnuty pouze možnosti, jejichž hodnota se změní.

Možnost modulu runtime Povolené hodnoty
max_heap_bytes Až 209 715 200 (200 MiB)
max_stack_bytes 1 až 10 485 760 (10 MiB)
max_execution_time_ms Až 10 000 (10 sekund)
max_cached_interpreters 1 až 20

Performance

Výkon registru závisí na vaší úloze, jako je například velikost položek, počet požadavků, které odesíláte souběžně, a kombinaci čtení a zápisů. Následující doprovodné materiály poskytují obecnou představu o tom, co očekávat. Není to záruka.

Propustnost

  • Hlavní kniha může udržovat stovky zápisů za sekundu. Menší položky a souběžné požadavky zvyšují míru. Zápisy, které spouští uživatelem definované funkce, trvá déle v závislosti na kódu funkcí.
  • Čtení nejnovější položky kolekce používá méně prostředků než zápis, takže hlavní kniha může obvykle obsluhovat více těchto požadavků. Získání položky podle ID transakce, získání potvrzení a dotazy rozsahu používají více prostředků než čtení nejnovější položky, protože hlavní kniha nejprve načte data z úložiště. Vysoká míra těchto požadavků snižuje propustnost zbývající pro zápisy.
  • Klient, který čeká na každou odpověď před odesláním dalšího požadavku, je omezen jeho dobou odezvy do registru. Pokud chcete hlavní knihy využívat co nejvíce, posílejte žádosti souběžně a opakovaně používejte připojení.

Pokud vaše úloha potřebuje trvalou vysokou propustnost, otestujte ji na registru před přechodem do produkčního prostředí. Pokud potřebujete větší propustnost, kontaktujte podpora Azure.

Latency

  • Ve výchozím nastavení se žádost o zápis vrátí, jakmile hlavní kniha přijme zápis, a hlavní kniha potvrdí zápis krátce po. Než se spoléháte na zápis, například k získání jeho potvrzení, zkontrolujte, zda je Committedjeho stav . Klientské knihovny můžou čekat na potvrzení za vás.
  • Získání položky podle ID transakce, získání potvrzení a dotazy rozsahu se můžou vrátit Loading jako první, zatímco hlavní kniha načte data. Opakujte požadavek do jedné minuty, dokud nevrátí výsledek.
  • Latence také závisí na vzdálenosti a zatížení. Každé nové připojení potřebuje metodu handshake protokolu TLS s registrem, takže znovu použijte připojení a spusťte klienty v blízkosti oblasti registru. Očekáváme, že se latence zvýší, protože zatížení registru se blíží tomu, co může udržet.