2009-09-21 105 views
7

我正在用C++編寫分佈式應用程序框架。其中一個要求是提供分佈式共享內存。我認爲自己不會從頭開始編寫自己的程序(並可能重新發明方向盤),而是會看看是否有任何預先存在的開源庫 - 快速谷歌搜索沒有提供任何有用的東西。C++的分佈式共享內存庫?

上沒有人在這裏有很好的C++庫DSM,他們可以推薦的經驗嗎?

理想的情況下,圖書館將支持MRMW(多讀者/多作家),但我可以湊合着用MRSW(多讀者,單作家),如果需要的話。我正在開發Linux。

回答

3

你有沒有考慮memcached

它是網絡分佈式,它可以非常快。

它有很多的語言綁定,就可以從不同的操作系統進行訪問,並支持多種作家多讀者。

+1

這可能已經解決了OP的實際需要,但它沒有回答這個問題。 Memcached是一個分佈式鍵值緩存,而不是DSM(https://en.wikipedia.org/wiki/Distributed_shared_memory)。這是一個古老的想法[1,2],現在應該有成熟的圖書館。 1. https://www.usenix.org/publications/library/proceedings/usenix-nt97/presentations/itzkovitz.ppt 2. https://www.usenix.org/legacy/events/osdi99/full_papers/itzkovitz/itzkovitz .pdf – ahcox 2016-03-03 01:54:35

0

嘗試ACE library,它有很多的,你一定會喜歡的好東西。他們在那裏有Shared_memory班,但我不確定它是否是DSM - 如果不是,他們有很多其他網絡/分佈式的東西,您可能會感興趣。

+0

「此基類將System V共享內存和」BSD「mmap調整爲通用API」,因此它是單個節點上的IPC機制,而不是DSM實現(ala,millipede http://static.usenix .org/publications/library/proceedings/usenix-nt97/presentations/itzkovitz.ppt,millipage http://static.usenix.org/events/osdi99/full_papers/itzkovitz/itzkovitz_html/node12.html等http:// dl.acm.org/citation.cfm?id=296806.296830#references) – ahcox 2012-04-24 11:24:45

6

Ace共享內存用於在1個平臺上共享。

分佈式共享存儲是非常不平凡的,因爲有關於事務性來解決問題。爲了有效地使用分佈式共享內存(即使是副本),您會發現需要(除其他外)分佈式同步算法和協議,這些算法和協議在出現故障時需要彈性。 (Shshooot!AINT總是這樣!)

重要的研究論文已被寫入有關這些問題(見一些Taubenfield的書的章節書目)

這的確是「滾你自己」會警告本身就是一個重要的項目。