2010-04-17 71 views
1

如何在內存中構建/設計/編程一個太字節或PB字節的隊列? (想象一下像很多用戶一樣的服務)如何構建Terabyte隊列?

+0

請提供更多信息。我們在說數據結構中的隊列嗎?什麼將被存儲在這個隊列中? – echo 2010-04-17 15:54:52

+0

正確的發音是tera,而不是terra。 – SurvivalMachine 2010-04-17 15:59:54

+0

是的,但隊列的大小是TB/P的數量級? – user319280 2010-04-17 16:00:16

回答

1

爲什麼不使用twitter的排隊服務?它被稱爲kestrel,它是開源的。

+0

你對Twitter的隊列大小有一些想法嗎? – user319280 2010-04-17 16:10:20

+0

正如他們的自述文件所述,kestrel可擴展到「無限遠和超越」。 – echo 2010-04-17 16:13:11

+0

這是一個很好的參考! – user319280 2010-04-17 16:54:57

0

這將取決於您正在使用的文件系統以及隊列中存儲了哪些元素。隊列中的元素需要以某種方式可尋址。也許作爲文件名,或磁盤塊地址,或...的東西。您需要將這些元素的地址存儲在隊列中。根據您使用的元素數量,您甚至可能需要進一步將其分解,並將您的隊列劃分爲塊,其中整個塊元素被視爲隊列中的一個元素,並且每個塊被組織爲它自己的子隊列。

+0

此方法是否足夠快以提供良好的服務? – user319280 2010-04-17 16:23:18

+0

好吧,只要你做足夠的預讀。你有一定數量的內存可供使用,所以只要你在主內存中保留足夠的排隊數據以服務於客戶端,它應該可以正常工作。如果您的客戶使用數據的速度比您從磁盤上檢索數據的速度快,那麼您將遇到瓶頸。唯一的解決辦法就是完成Robert Davis在之前的評論中提出的建議:將其分散到多臺服務器上。 – echo 2010-04-17 16:25:18