IPC and SRP...

Göran Hultgren gohu at rocketmail.com
Mon Aug 28 09:34:05 UTC 2000


Hi!
--- Rob Withers <withers at vnet.net> wrote:
> "Göran Hultgren" wrote:
> > 
> > Hi!
> 
> > Well, I am trying to design/prototype a rather complex server where I need IPC and multiple
> VMs
> > running (similar to GemStone but simpler) and they need to talk to each other in some sort of
> nice
> > way. :-)
> 
> Göran,  I want that too.  I have some AI stuff to do.  We could approach
> a GemStone architecture by using headless minimal images and have a
> resource manager in yet another image.

Yup. I am working towards something like this - but it is quite specific to our prototype I think.
But I think I will try to generalize the concept.

Right now we have an embryo with a "Broker" listening on two ports - one for "Clients" and one for
"Hosts" (where "Hosts" are newly woken up VMs ready to serve clients). "Hosts" just register
themselves as available and listening on a port of their own, and Clients get redirected to such a
"Host" based on loadbalancing etc.

One reason for this multi-VM architecture is the ability to scale better on multiple
processors/machines as Squeak Processes are "soft".
 
[SNIP]
> > beast" that I thought them to be (I had gotten the impression that they where "High
> Performance"
> > compared to "normal" SmartRefStream, but that was obviously a misconception from my side).
> 
> So, I should have stated that I really had no idea what or how Segments
> work.  I briefly looked into the Root computation stuff and didn't have
> the full picture.  I learned that they don't use SmartRefStreams and
> that there is VM support for them, so they are extremely fast.  It
> certainly is a serialization mechanism.  Sorry.

Ah, yes. Got a clarification from Ted K too - I thought there where some cool magic there!
I will try them out and compare a little I think.
 
[SNIP]> > That is pretty cool actually. It would be interesting to hear more from Paul about SRP
> compared to
> > IIOP (CORBA), which I would guess to be the number one competitor in the "open standards"
> space -
> > any thoughts?
> 
> IIOP is only the session protocol for Corba; I guess they have separate
> serialization standard, don't they?.  We could probably form the rules
> of Corba serialization in SRP.

Ah yes... When I think about it more carefully I believe CORBA has no serialization. Or is that
coming in CORBA 3 perhaps? :-) I do not know - I am not overly impressed by CORBA yet, too
complicated...

[SNIP]
> > Eh, lost me there. xdialect?
> 
> Sorry, I was trying to abbreviate cross-dialect.

Eh, garf. Obviously. :-) (BTW - will attend OOPSLA :-)
 
[LARGE SNIP]
> > > > 1. Fly-By-Wire and similar stuff. Anyone using it?
> > >
> > > Is this the ORB?  I haven't tried it yet; any info would be most
> > > welcome.
> > 
> > It was built by Tim Jones and Peter Smet if I read correctly at:
> > http://minnow.cc.gatech.edu/squeak/684
> > 
> > Unfortunately the linki does not work anymore - does anybody know more about it?
> > Is that overlapping your stuff? Perhaps you should look at it... ;-)
> 
> This was my experience.

Got a response from Peter with an attachment which I haven't checked out yet - he has changed job
and is now "forced" to use Java. :-) I think I will update his Swiki page about Fly-By-Wire.

> > There are some other links on that page too for stuff by Lex Spoon and Stefan Matthias.
> 
> I've been all through their code and I wonder if there is advantage to
> making a more complicated solution, at times. 

Eh, did not follow you - do you think they have too complicated stuff or reverse? :-)
Personally I like SIMPLICITY and then let people build from there...
  
> > > > 2. Serialization. Anyone using it for communication? Has anybody tried comparing the
> > > marshaling
> > > > techniques available to Squeak (SmartRefStream, SRP by Paul Baumann, Segments)?
> > >
> > > I don't know the performance measures of either SRP or SmartRefStream.
> > > Segments use SmartRefStreams and are really a file-based module delivery
> > > mechanism.
> 
> DOH!  My nose grew!

He, happens sometimes... ;-)

[SNIP]
> > Well... So in short, a very nice IPC could be created by melting together:
> > 
> > 1. Flow
> > 2. SRP
> > 3. Fly-By-Wire and your similar Proxy stuff (perhaps these two parts should be merged into one
> -
> > no sense in duplicating efforts)
> 
> There probably is a lot of sense in duplicating efforts in the
> exploratory stages.  The is more fitness space covered, for instance,
> the AOP stuff, Capabilities, all of the other networking choices, are
> all somewhat related, I think.   Perhaps there is an intersection of
> these semantic dimensions.

Well, ok. Just as long as we keep the list informed about our progress! :-)

I think I will start by comparing SRP, Segments and ReferenceStreams. Then after choosing one of
those - I will look into the different client/Server frameworks and either choose one or go for a
personal more simplistic variant.

But, even if I go for using Segments between processes, SRP is very interesting for our
client/server communication as that would be more open for other client implementations.

> > And BTW - Unix domain Sockets - do we have any support for those? I have concluded that these
> are
> > FAST compared to "normal" Sockets. On the Linux platform it seems that Linus himself has
> > "optimized the crap out of them" as someone so eloquently put it on /.
> 
> You can probably get at them with the UnixOSProcess stuff.  

Yes, I suspected that that might be one choice. One report I saw noted 3-4 times better
performance when it comes to pushing bytes between two local processes on UNIX.
 
regards, Göran

=====
Göran Hultgren, goran.hultgren at bluefish.se
icq#:6136722, GSM: +46 709 472152, http://www.bluefish.se
"First they ignore you. Then they laugh at you.
Then they fight you. Then you win." -- Gandhi

__________________________________________________
Do You Yahoo!?
Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/





More information about the Squeak-dev mailing list