Problem: Limit ilości operacji batch w Azure Table Storage

Rzecz powszechnie znana i lubiana przez programistów to fakt, że najlepiej jest dokonywać operacji batch-owo na bazie danych aby ograniczyć ilość zapytań do niej wysyłanych.

Taką samą praktykę podjąłem używając Azure Table Storage ale pojawiło się pewne ale…

The maximum number of operations allowed in one batch has been exceeded.

Jak się okazuje Azure Table Storage ma limit na ilość operacji jakie można wykonać w ramach jednej „paczki”. Wartości jaką on przyjmuje to 100 https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.storage.table._table_batch_operation?view=azure-java-legacy. Co ciekawe tego typu informację udało mi się znaleźć tylko i wyłącznie w dokumentacji SDK w wersji dla Java.

Rozwiązania

Aby rozwiązać ten problem w moim przypadku wystarczyło usunąć dane które zostały oznaczone jako dane do usunięcia. Do tego celu używamy Azure Function jako Timer Trigger.

Innym możliwym rozwiązaniem jest ograniczenie do wielkości pojedynczej paczki jaka jest wykonywana w ramach pojedynczej operacji. Bardzo fajny przykład takiego kodu znalazłem na blog Web-Matters.

Podsumowanie

Tym krótkim artykułem chciałbym zapoczątkować cykl artykułów prezentujący proste i szybkie rozwiązania na problem jakie pojawiają się w naszej codziennej pracy.

Share