2009-12-12 150 views
1

例如,我有一大堆組織在樹(分類樹)中的公告。包括所有類別。因此,如果我觀看類別A中的項目,我還會看到此類別的子類別中的所有項目。如果我正在觀看根目錄,我會看到所有的公告。分佈樹結構

我想在這裏實現橫向可伸縮性,因爲大集合的大小。

我知道的唯一方法就是所謂的分散聚集。分散 - 聚集意味着我在所有節點(或所有節點的子集,如果知道數據的準確位置)發送查詢,並在收集數據節點的響應後收集結果。這種方法的問題是我無法在數據節點上進行分頁。這導致網絡上的大流量,因爲排序和分頁必須在協調節點(發起分散 - 聚集的節點)上完成。

是否有任何其他可能的方式來分配樹結構在一組服務器上實現水平可伸縮性?

回答

1

您可能會考慮使用某種B樹,其中相鄰的值將傾向於位於同一個塊中,因此位於同一個服務器上。

1

你可能想看看建模爲嵌套Distributed Hash Tables的樹?只是一個想法。

+0

是的,我看到了。 DHT在解決節點故障方面非常有前途。但就網絡帶寬而言,它與分散 - 收集類似。 順便說一下,在兵馬俑頂部有沒有DHT的實現? ;) – 2009-12-12 05:47:05

+0

我不知道有關兵馬俑上的DHT,但您可能會發現開源Terrastore項目很有趣:http://code.google.com/p/terrastore/ – 2009-12-13 02:44:10