Re: Rsync between OpenVMS OpenVMS

2012-08-17 Thread Brian Cuttler
On Thu, Aug 16, 2012 at 09:24:56PM +, Horn, James wrote:
 I'm looking at need to duplicate some drives data from one OpenVMS site to 
 another OpenVMS site. Clustering is not an option, so was wondering if Rsync 
 could be used between two OpenVMS sites and if there would be any issues with 
 the files.

I've never installed rsync on VMS, but don't forget that you
can use $ backup. It will work fine and will reproduce the
tree structure, but will only allow a single thread across the
network. That is, $ backup on the local system and output a
save_set on the remote end, you can then unpack the save_set on
the remote system.


 James Horn
 SHSU 2449
 Computer Services
 Sam Houston State University
 Huntsville TX 77340
 Phone: (936) 294-1042

 -- 
 Please use reply-all for most replies to avoid omitting the mailing list.
 To unsubscribe or change options: 
 https://lists.samba.org/mailman/listinfo/rsync
 Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html
---
   Brian R Cuttler brian.cutt...@wadsworth.org
   Computer Systems Support(v) 518 486-1697
   Wadsworth Center(f) 518 473-6384
   NYS Department of HealthHelp Desk 518 473-0773



IMPORTANT NOTICE: This e-mail and any attachments may contain
confidential or sensitive information which is, or may be, legally
privileged or otherwise protected by law from further disclosure.  It
is intended only for the addressee.  If you received this in error or
from someone who was not authorized to send it to you, please do not
distribute, copy or use it or any attachments.  Please notify the
sender immediately by reply e-mail and delete this from your
system. Thank you for your cooperation.


-- 
Please use reply-all for most replies to avoid omitting the mailing list.
To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-22 Thread John E. Malmberg
jw schultz wrote:
On Tue, Oct 21, 2003 at 11:28:11PM -0400, John E. Malmberg wrote:

There are approximately 235 global and static variables in rsync, and
of those 105 are obviously never modified after the fork() takes place. 
That may be the case for several of the others, like the 10 in batch.c

As the use of the remaining ones are identified, that issue is easily 
fixed.  What I need to do is map the routines called by the receive 
process/thread to see what static/global variables that they modify.

If you put the ones that get modified post-fork into a
thread-local structure there is a reasonable chance of that
getting into mainline.
Now what would be more acceptable:

Adding a context parameter to all the routines that reference the 
global/static variables that are currently shared?

or

Having each routine that uses those type of variables to go through the 
work of determining which thread that they are in?

It seems to me that adding the context parameter would make it easier to 
maintain, and have a lower overhead.  It also saves having thread lookup 
calls added to the routines.

In some other cases, it looks like the sharing should not hurt, but 
their should be some synchronization.

Since there are only two processes or threads that need to be tracked, 
while the parameter could be a pointer to global structure, it can be 
disruptive to put all the local thread specific static values in that 
structure.  Mainly because a lot of them have the same symbol names, 
just different scope.

So there could be a global variable that is  void * recv_context, and a 
void * send_context for the sender for completeness.

A routine that needs separate local static variables would check the 
context parameter passed to it against one of those pointers, and then 
use the appropriate set of local variables.

With this, the static variables would become an array, and the context 
parameter would determine if index 0 or 1 was used.

-John
[EMAIL PROTECTED]
Personal Opinion Only
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-22 Thread jw schultz
On Wed, Oct 22, 2003 at 11:59:48PM -0400, John E. Malmberg wrote:
 jw schultz wrote:
 On Tue, Oct 21, 2003 at 11:28:11PM -0400, John E. Malmberg wrote:
 
 
 There are approximately 235 global and static variables in rsync, and
 of those 105 are obviously never modified after the fork() takes place. 
 That may be the case for several of the others, like the 10 in batch.c
 
 As the use of the remaining ones are identified, that issue is easily 
 fixed.  What I need to do is map the routines called by the receive 
 process/thread to see what static/global variables that they modify.
 
 
 If you put the ones that get modified post-fork into a
 thread-local structure there is a reasonable chance of that
 getting into mainline.
 
 Now what would be more acceptable:
 
 Adding a context parameter to all the routines that reference the 
 global/static variables that are currently shared?
 
 or
 
 Having each routine that uses those type of variables to go through the 
 work of determining which thread that they are in?
 
 
 It seems to me that adding the context parameter would make it easier to 
 maintain, and have a lower overhead.  It also saves having thread lookup 
 calls added to the routines.
 
 In some other cases, it looks like the sharing should not hurt, but 
 their should be some synchronization.

Long term thread support would be to use a pointer in thread
local storage or to pass it to any functions that use it.

For now just define the structure and treat it as global in
mainline.

 Since there are only two processes or threads that need to be tracked, 
 while the parameter could be a pointer to global structure, it can be 
 disruptive to put all the local thread specific static values in that 
 structure.  Mainly because a lot of them have the same symbol names, 
 just different scope.
 
 So there could be a global variable that is  void * recv_context, and a 
 void * send_context for the sender for completeness.

That sounds like it might be OK to me but will require much
more thought and discussion.

 A routine that needs separate local static variables would check the 
 context parameter passed to it against one of those pointers, and then 
 use the appropriate set of local variables.

That sort of indirection just complicates things.  If you
are going to pass a context parameter just pass the pointer
to the structure itself.

 With this, the static variables would become an array, and the context 
 parameter would determine if index 0 or 1 was used.

There are up to three processes.

Local has sender, generator and receiver.
Daemon has the daemon and either the sender, or the generator
and receiver.
Client has either sender or generator and receiver.

Getting it threadable will have to be done by inches.

The structure is a single step that should help to reduce
the size of your patches while enhancing the documentation
of some of the globals.


-- 

J.W. SchultzPegasystems Technologies
email address:  [EMAIL PROTECTED]

Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-21 Thread John E. Malmberg
jw schultz wrote:
Sounds promising.

The pitfall you with rsync in threads is that rsync forks
with a COW expectation using a great deal of data set prior
to the fork.  Some of that data is altered.  In particular a
slew of global variables that must become thread unique when
modified or things will break in subtle ways.
Yes, I can see a few cases of this.

There are approximately 235 global and static variables in rsync, and
of those 105 are obviously never modified after the fork() takes place. 
 That may be the case for several of the others, like the 10 in batch.c

As the use of the remaining ones are identified, that issue is easily 
fixed.  What I need to do is map the routines called by the receive 
process/thread to see what static/global variables that they modify.

All the more reason to get more people working on this that want it to 
work on the OpenVMS operating system.  Several people have contacted me 
that they are willing to assist.

-John
[EMAIL PROTECTED]
Personal Opinion Only
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-21 Thread jw schultz
On Tue, Oct 21, 2003 at 11:28:11PM -0400, John E. Malmberg wrote:
 jw schultz wrote:
 
 Sounds promising.
 
 The pitfall you with rsync in threads is that rsync forks
 with a COW expectation using a great deal of data set prior
 to the fork.  Some of that data is altered.  In particular a
 slew of global variables that must become thread unique when
 modified or things will break in subtle ways.
 
 Yes, I can see a few cases of this.
 
 There are approximately 235 global and static variables in rsync, and
 of those 105 are obviously never modified after the fork() takes place. 
  That may be the case for several of the others, like the 10 in batch.c
 
 As the use of the remaining ones are identified, that issue is easily 
 fixed.  What I need to do is map the routines called by the receive 
 process/thread to see what static/global variables that they modify.
 
 All the more reason to get more people working on this that want it to 
 work on the OpenVMS operating system.  Several people have contacted me 
 that they are willing to assist.

If you put the ones that get modified post-fork into a
thread-local structure there is a reasonable chance of that
getting into mainline.

-- 

J.W. SchultzPegasystems Technologies
email address:  [EMAIL PROTECTED]

Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-19 Thread John E. Malmberg
jw schultz wrote:
On Sun, Oct 12, 2003 at 12:38:40AM -0400, John E. Malmberg wrote:

I am trying to restart getting rsync to run on OpenVMS, and find a way 
around the fork() issue, posibly using POSIX threads.
It occurs to me that i may have been overly encouraging in
my last followup.
Getting rsync to work using threads, whether pthreads or a
superior form, will require enormous intrusive changes to
the code.
While my testing is far from complete, and I have a few OpenVMS specific 
things to work out, it appears that the changes to make the client use 
pthreads were minor, and as of yesterday a client on OpenVMS is able to 
properly replicate a sample directory of plain text files from a local 
server running rsync on Windows 2000.

-John
[EMAIL PROTECTED]
Personal Opinion Only
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-19 Thread jw schultz
On Mon, Oct 20, 2003 at 12:20:27AM -0400, John E. Malmberg wrote:
 John E. Malmberg wrote:
 
 While my testing is far from complete, and I have a few OpenVMS specific 
 things to work out, it appears that the changes to make the client use 
 pthreads were minor, and as of yesterday a client on OpenVMS is able to 
 properly replicate a sample directory of plain text files from a local 
 server running rsync on Windows 2000.
 
 I just successfully used rsync running on OpenVMS to download the 
 current rsync development tree.  I deleted a few files, and reran rsync 
 which repopulated just the missing files.
 
 It looks like I have a working client. :-)
 
 My next step is to make sure that I can build the current CVS build and 
 post a beta kit for ftp download with build instructions for the other 
 OpenVMS developers that have expressed an interest in working on this.

Sounds promising.

The pitfall you with rsync in threads is that rsync forks
with a COW expectation using a great deal of data set prior
to the fork.  Some of that data is altered.  In particular a
slew of global variables that must become thread unique when
modified or things will break in subtle ways.

-- 

J.W. SchultzPegasystems Technologies
email address:  [EMAIL PROTECTED]

Remember Cernan and Schmitt
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Pysync 2.24 release, was Re: rsync on OpenVMS

2003-10-17 Thread Donovan Baarda
On Tue, 2003-10-14 at 11:01, Donovan Baarda wrote:
 On Mon, 2003-10-13 at 13:00, John E. Malmberg wrote:
  jw schultz wrote:
   On Sun, Oct 12, 2003 at 12:38:40AM -0400, John E. Malmberg wrote:
[...]
  I have not heard of unison.  I have heard that pysync was successful in 
  a limited test on OpenVMS.  As near as I can tell though the librsync it 
  is based on is a bit out of date.
[...]
 Something possibly worth trying on it is psyco... it compiles python to
 native code on the fly using a simple import psyco. Pure python is a
 bit slow compared to native C implementations, but psyco could help
 close the gap a bit.

Following up on this... I tried using psyco with python2.2 and it cut
the pysync tests on my machine from 21secs down to 14secs... that's a
33% speedup. In the past I'd tried using pyrex to speed things up with
no success. psyco not only gives a better boost, but is much easier to
use.

 I haven't touched pysync for a while, but it should still work with the
 latest librsync as the API hasn't changed. If there are any problems,
 please let me know. I believe rdiff-backup also has a python wrapper for
 librsync that might be more advanced than the one in pysync.
 
 I have plans for both pysync and librsync, but I haven't worked on them
 much lately. I find I am mostly motivated by feedback from others when
 funding is not available :-)

This little bit of interest motivated me to have a look at it again, and
I've just released version 2.24. From it's NEWS:

Updates between release 2.16 and 2.24
-
 
  * Added TODO and NEWS files.
 
  * Changed to use psyco if available, giving a 33% speedup.
   
  * Updated to use librsync 0.9.6.
   
  * Changed to using a faster md4sum implementation based on the
  librsync implementation, modified to use the RSA API.
   
  * Added rollin/rollout support to historical adler32.py.
   
  * Minor cleanups to rollsum code.
   
  * Minor tweaks to handling of block fragment matching.


-- 
Donovan Baarda [EMAIL PROTECTED]
http://minkirri.apana.org.au/~abo/

-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-13 Thread Donovan Baarda
On Mon, 2003-10-13 at 13:00, John E. Malmberg wrote:
 jw schultz wrote:
  On Sun, Oct 12, 2003 at 12:38:40AM -0400, John E. Malmberg wrote:
[...]
  I do not know but if OpenVMS support is a problem for rsync
  proper you might wish to look at pysync or unison which
  might meet your immediate needs.
 
 I have not heard of unison.  I have heard that pysync was successful in 
 a limited test on OpenVMS.  As near as I can tell though the librsync it 

cool... someone playing with pysync :-)

 is based on is a bit out of date.

pysync includes a pure-python implementation that will run on anything
that can run python, as well as a basic wrapper for librsync. It also
includes extension modules for md4sum and rollsum that speed it up a
fair bit.

Something possibly worth trying on it is psyco... it compiles python to
native code on the fly using a simple import psyco. Pure python is a
bit slow compared to native C implementations, but psyco could help
close the gap a bit.

librsync is still under active development by myself and others, and
recently had a new release. 

I haven't touched pysync for a while, but it should still work with the
latest librsync as the API hasn't changed. If there are any problems,
please let me know. I believe rdiff-backup also has a python wrapper for
librsync that might be more advanced than the one in pysync.

I have plans for both pysync and librsync, but I haven't worked on them
much lately. I find I am mostly motivated by feedback from others when
funding is not available :-)

-- 
Donovan Baarda [EMAIL PROTECTED]
http://minkirri.apana.org.au/~abo/

-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html


Re: rsync on OpenVMS

2003-10-12 Thread John E. Malmberg
jw schultz wrote:
On Sun, Oct 12, 2003 at 12:38:40AM -0400, John E. Malmberg wrote:

I am trying to restart getting rsync to run on OpenVMS, and find a way 
around the fork() issue, posibly using POSIX threads.
It occurs to me that i may have been overly encouraging in
my last followup.
Getting rsync to work using threads, whether pthreads or a
superior form, will require enormous intrusive changes to
the code.

I do not know but if OpenVMS support is a problem for rsync
proper you might wish to look at pysync or unison which
might meet your immediate needs.
I have not heard of unison.  I have heard that pysync was successful in 
a limited test on OpenVMS.  As near as I can tell though the librsync it 
is based on is a bit out of date.

For a native rsync, my options are, in order of performance are:

1. Use native asynchronous I/O.  This would likely require a complete 
change for a large section of the code, and would require that the 
protocol state machine be completely described.  The resulting code 
would probably be of most use to OpenVMS, but it could be adapted to 
threads.

2. Use pthreads.  As I have limited experience with pthreads, I do not 
yet know the size of this task.  The result though would be of benefit 
to all platforms if successful.

3. Use vfork() instead of fork().  An OpenVMS limitation is that the 
child process starts from the beginning and must initialize everything.

4. Use the OpenVMS LIB$SPAWN to start the receiving subprocess and link 
pipes to it.  Most of the same difficulties as above, except that it is 
easier to use asynchronous I/O between the processes.

All have challenges.

-John
[EMAIL PROTECTED]
Personal Opinion Only
--
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html