Scenariusz jest więc następujący:
Mam wiele wystąpień usługi internetowej, która zapisuje obiekt blob danych w usłudze Azure Storage. Muszę mieć możliwość grupowania obiektów blob w kontenerze (lub katalogu wirtualnym) w zależności od tego, kiedy zostały odebrane. Raz na jakiś czas (w najgorszym przypadku codziennie) starsze obiekty blob będą przetwarzane, a następnie usuwane.
Mam dwie możliwości:
opcja 1
Tworzę jeden kontener o nazwie „blobs” (na przykład), a następnie przechowuję w nim wszystkie blogi. Każdy obiekt blob będzie używał nazwy stylu katalogu z nazwą katalogu będącą datą jego otrzymania (np. „Hr0min0 / data.bin”, „hr0min0 / data2.bin”, „hr0min30 / data3.bin”, „hr1min45 / data.bin ", ...," hr23min0 / dataN.bin ", etc - nowy katalog co X minut). To, co przetwarza te obiekty BLOB, najpierw przetworzy hr0min0, następnie hr0minX i tak dalej (a obiekty blob są nadal zapisywane podczas przetwarzania).
Opcja 2
Mam wiele kontenerów, z których każdy ma nazwę opartą na czasie przybycia (więc najpierw będzie to kontener o nazwie blobs_hr0min0, a następnie blobs_hr0minX itd.), A wszystkie obiekty blob w kontenerze to te obiekty blob, które przybyły w określonym czasie. To, co przetwarza te blogi, będzie przetwarzać jednocześnie jeden kontener.
Więc moje pytanie brzmi: która opcja jest lepsza? Czy opcja 2 zapewnia lepszą równoległość (ponieważ kontenery mogą znajdować się na różnych serwerach), czy też opcja 1 jest lepsza, ponieważ wiele kontenerów może powodować inne nieznane problemy?