Производительность хранилища таблиц Azure при чтении с массовым параллельным потоком

Краткая версия: Можем ли мы читать из десятков или сотен разделов таблицы в многопоточном режиме, чтобы повысить производительность на порядки?

Полная версия: Мы работаем над системой, которая хранит миллионы строк в хранилище таблиц Azure. Мы разделяем данные на небольшие разделы, каждый из которых содержит около 500 записей, что представляет данные за день для единицы.

Поскольку в Azure нет функции «суммирования», для извлечения данных за год мы либо необходимо использовать предварительное кэширование, либо суммировать данные самостоятельно в веб-роли или рабочей роли Azure.

Предполагая следующее: - Чтение раздела не влияет на производительность другого - Чтение раздела имеет узкое место, зависящее от скорости сети и извлечения сервера

. Затем мы можем предположить, что если бы мы хотели быстро суммировать большой объем данных на лету (1 год, 365 разделов), мы могли бы использовать массово параллельный алгоритм, и он будет почти идеально масштабироваться для количества потоков. Например, мы могли бы использовать параллельные расширения .NET с более чем 50 потоками и получить ОГРОМНЫЙ прирост производительности.

Мы работаем над настройкой некоторых экспериментов, но я хотел посмотреть, делалось ли это раньше. Поскольку сторона .NET в основном простаивает в ожидании операций с высокой задержкой, это кажется идеальным для многопоточности.

8
задан Jason Young 7 October 2010 в 02:31
поделиться