2011-04-23 47 views
3

我是developing分佈式系統,它必須維護一個分佈式對象圖,其中對象可以指向其他對象,其中一些對象可能在遠程計算機上。還必須能夠將對象從一臺計算機移動到另一臺計算機。如何跟蹤分佈式對象圖中的引用?

這引發了兩個相關的問題:

  • 我們怎麼知道什麼時候是安全的垃圾收集的對象?
  • 如果我們移動一個對象,我們該如何確保所有對它的引用都被更新?

最初的想法是維護所有入站引用的詳盡列表。

當然,這僅僅是垃圾收集不足,因爲它不會捕獲循環引用(與引用計數垃圾收集相同的問題)。

但是,這個列表可以用來確保任何遠程計算機引用的對象可以通知對象是否被移動。

另一個想法是,如果一個對象被移動,它會在其原始計算機上留下一個「麪包屑」。如果一臺計算機收到一個消息,意思是不再存在的對象,它可以被轉發到新的位置。

但是,無法將這種引用無限期地保留下來,我們如何知道何時可以刪除它們?

任何人都可以提供針對此問題的現有解決方案的指針,特別是那些處理複製和併發問題的指針?

回答