www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Shared Memory

reply sesteel <steel kryas.com> writes:
I just wanted to float an idea out there.  I have been using technologies such
as Terracotta and Memcache at work.  Terracotta, has left me wondering about
the applicability of integrating shared objects (memory) directly into a
programming language.  Is this anything anybody else here has thought of? 
Additionally, I was thinking about the concept of services vs libraries, and
how shared objects might be a way to provide fast IPC while getting rid of the
library concept.  Thus, each service would have it's own memory space to manage
and GC.  One hinderence would be the versioning of the shared object, but if
that object could be viewed through an interface...   

Just brainstorming.         
Apr 16 2009
parent "Robert Jacques" <sandford jhu.edu> writes:
On Thu, 16 Apr 2009 17:20:47 -0400, sesteel <steel kryas.com> wrote:

 I just wanted to float an idea out there.  I have been using  
 technologies such as Terracotta and Memcache at work.  Terracotta, has  
 left me wondering about the applicability of integrating shared objects  
 (memory) directly into a programming language.  Is this anything anybody  
 else here has thought of?

Yes. D2 has introduced the shared storage type (though it doesn't do anything yet) and there's also Bartosz's blog (http://bartoszmilewski.wordpress.com/feed/).
 Additionally, I was thinking about the concept of services vs libraries,  
 and how shared objects might be a way to provide fast IPC while getting  
 rid of the library concept.  Thus, each service would have it's own  
 memory space to manage and GC.  One hinderence would be the versioning  
 of the shared object, but if that object could be viewed through an  
 interface...

 Just brainstorming.

This sounds like you're proposing the actor model, (at a coarser level than objects) and possibly also thread-local heaps. Also, for those who don't know (I didn't) Terracotta is an open-source Java clustering package, which essentially transparently converts a multi-threaded application into a cluster application. Neat.
Apr 16 2009