views:

344

answers:

3

I am writing a distributed application framework in C++. One of the requirements is the provision of distributed shared memory. Rather than write my own from scratch (and potentially re-invent the wheel), I thought I would see if there were any pre-existing Open source libraries - a quick google search did not yield anything to useful.

Does anyone on here have any experience of a good C++ DSM library that they can recommend?

Ideally, the library will support MRMW (Multiple readers/multiple writers), but I can make do with MRSW (Multiple readers, single writer) if need be. I am developing on Linux.

+2  A: 

Have you considered memcached ?

It is network distributed and it can be really fast.

It has bindings for lots of languages, you can access it from different OS and supports multiple writers multiple readers.

Arkaitz Jimenez
A: 

Try the ACE library, it has a lot of good stuff you'll like. They have a Shared_memory class in there but I'm not sure its a DSM - if not, they have plenty of other network/distributed stuff you might find interesting.

gbjbaanb
+2  A: 

Ace shared memory is for sharing on 1 platform.

Distributed Shared Memory is very much non-trivial as there are issues regarding transactionality to solve. To effectively use Distributed Shared Memory (even for a copy) you will find you need (among other things) distributed synchronization algorithms and protocols that need resiliency in the face of failure. (Shshooot! aint that always the way!)

Significant research papers have been written about these issues (see some of the chapter bibliographies of Taubenfield's book)

This is really a warning that "rolling your own" will be a significant project in and of itself.

pgast