我正在努力在Go中本地創建一個Pastry版本。從design [PDF]:確定請求延遲
假設應用 提供了一種功能,允許每個糕點節點,以確定與給定的IP地址給其自身的一個節點 的「距離」。具有較低距離值的節點假定爲更合乎需要的 。預計應用程序將根據其接近度量指標的選擇,使用網絡服務(如跟蹤路由或Internet子網地圖)和適當的緩存和近似技術來最小化開銷來實現此功能。
我想弄清楚什麼是最好的方式來確定兩個EC2實例之間的「鄰近」(即網絡延遲)編程從Go。不幸的是,我對低級網絡不夠熟悉,無法區分我可以使用的不同類型的請求。谷歌搜索沒有提出任何關於測量Go延遲的建議,而一般的延遲技術似乎總是Linux二進制文件,我希望以更少的依賴性爲名避免。任何幫助?
另外,I note表示兩個EC2實例之間的延遲應該在1ms的範圍內。雖然我計劃在EC2上使用這個實現,但它可以假設在任何地方都可以使用。延遲通常非常糟糕,我應該花費精力確保兩個節點的網絡接近度?請記住,大多數Pastry請求可以以羣集中服務器數量的16位爲單位(對於10,000臺服務器,平均需要大約3次請求才能找到要搜索的密鑰)。例如,從EC2的亞太地區到EC2的美國東部地區的延遲是否足以證明增加節點時增加的複雜性和延遲檢查帶來的開銷?
如果不知道自己的目標,就不可能回答這些問題是否有必要/值得。你有特定的延遲目標嗎?您是否想盡量減少EC2區域之間的通信帶寬成本? – 2012-04-19 02:55:10
我試圖在通信延遲和帶寬使用之間做出智能權衡。沒有超出「合理」範圍的延遲目標。這很複雜,因爲我想將其作爲通用包發佈,因此它不能是EC2特定的。 – Paddy 2012-04-22 20:31:37