簡版:我們能夠以多線程方式從數十或數百個表分區中讀取數據,以便將性能提高數個數量級嗎?從大規模並行線程讀取的Azure表存儲性能
長版本: 我們正在研究在Azure表存儲中存儲數百萬行的系統。我們將數據劃分爲小分區,每個小分區包含大約500條記錄,代表一個單元的一天數據。
由於Azure沒有「總和」功能,爲了提取一年的數據,我們必須使用一些預緩存,或者在Azure網絡或工作者角色中自行彙總數據。
假設如下: - 讀的分區不會影響其他 性能 - 讀分區具有基於網絡速度和服務器檢索的瓶頸
然後,我們可以採取一個猜測,如果我們想要快速彙總大量數據(1年,365個分區),我們可以使用大規模並行算法,並且它可以幾乎完美地擴展到線程數量。例如,我們可以使用具有50多個線程的.NET並行擴展,並獲得巨大的性能提升。
我們正在設置一些實驗,但我想知道這是否已經完成。由於.NET端基本上處於等待高延遲操作的空閒狀態,這對於多線程來說似乎非常完美。
這6年後你有任何評論? – mayu 2017-01-03 05:32:13
是的,這完全是一個好主意,尤其是隨着時間的推移,可擴展性目標不斷提高。看看這個頁面瞭解的限制:https://docs.microsoft.com/en-us/azure/storage/storage-scalability-targets – 2017-01-03 21:15:37