The search for an easy method to delete files across TIR mirror sets.
TIR data is stored in a master data set on a central server and a local mirror data set on each client platform. Operations (create, modify, delete) on files in the dataset should be supported on the central server and all clients, and operation results propagated to the master and all mirror data sets.
Assume single user who operates on only one mirror set or the master set at one time.
The cavenet synchronization script (based on rsync) provides adequate support for file creation and modification. (Weaknesses include lack of support for simultaneous modifications to the same file on different mirror sets.) However, deletions must be performed and repeated manually on the server and all clients to be effective.
Basic function of rsync is to compare source and target data sets and copy from source to target files that are older or non-existent in the target data set. The --delete option causes rsync to delete files from the target data set that do not exist in the source.
The difficulty arises in that when a file exits in one mirror set and not in another the cases of a file having been deleted from the set where it doesn't exist and of a file having been newly created in the set where exists are indistiguishable, but call for very different synchronization processing. (Deletion of obsolete file in the former case and copying of the new file in the latter.)
Alternatives:
User rsync --delete in both directions. Usage similar to existing cavenet (though cavenet doesn't support deletion). User tracking would consist of:
NOTE: Creating a file in a client data set then executing sync get before a sync put will result in the loss of the new file.
—> Will implement this solution as it is simplest and requires little modification of the existing cavenet script.
Could use single sync procedure that executes get and put in sequence. Files non-existent on either client or server would be deleted since files created on the client during the change session would already exist on server by end of session due to rregistration.