superlifter design notes (OpenVMS perspective)

jw schultz jw at pegasys.ws
Sun Jul 21 23:46:06 EST 2002


On Mon, Jul 22, 2002 at 04:31:51PM +1000, Martin Pool wrote:
> On 21 Jul 2002, jw schultz <jw at pegasys.ws> wrote:
> 
> > That is the better approach.  Use I/O routines so most
> > processing can be "while (get_input()) { process(); send_output()}"
> > Then the I/O routines can be defined accorinding to platform.
> 
>   while 1:
>     examine fd
>     if input available:
>       read input packet
>       if a reply:	
>         dispatch to whoever was waiting for that reply
>       else if a request:
>         dispatch to whoever handles that request
>     if ready for output:
>       send next output packet from queue

I'm confusing subthreads here but the my psuedo snippit is
how a given component in the pipeline might work
and your little snippit is one way of connecting the
components.

> 
> You could do this with blocking IO, nonblocking, or even potentially
> threads, if you were on W32 (and drunk) and threads seemed like a
> really good idea.
> 
> > If a platform has some special type of file it would be
> > responsible for converting to/from a multi-segment
> > bytestream.
> 
> Yes.
> 
> > It would be possible to build a server that didn't depend on
> > local filesystem semantics and so could support an attribute
> > superset.  But that is out of scope for now.
> 
> One idea that both Samba and Subversion have is a virtual filesystem
> layer that mediates access to the local filesystem.  The default
> implementation maps straight down to regular IO, but you could plug in
> different implementations.  For example, you might want to store
> everything in one big database, so that the server can hold backup
> files with the clients semantics regardless of its native filesystem.

Get the protocol right and have clearly defined components
and we can do almost anything we want on the server.

-- 
________________________________________________________________
	J.W. Schultz            Pegasystems Technologies
	email address:		jw at pegasys.ws

		Remember Cernan and Schmitt




More information about the rsync mailing list