Files

Top  Previous  Next

Projects

Understanding the MirrorMaster File transfer:

 

When a MirrorMaster needs to send or receive a file, it first takes a snapshot of the existing file and names the snapshot the same as the existing file and in the same directory, except that it will have a ~ extension, for ex. "file.txt" becomes "file.~txt".  This file is then used until the compete transfer is done and then renamed to the existing file.

 

Understanding MirrorMaster File comparisons:

 

A MirrorMaster client first gets a list of flow files from the master MirrorMaster which it then uses to compare against it's flow's local filelist.  Each file is compared in:

File Name, i.e. does the file exist or not?
File Size, i.e. does the remote and local file sizes differ?
File Stamp, i.e. does the remote and local file modified date-times differ?
File CRC, i.e. does the actual file contents differ?

 

If any one of these criteria is true, then the file will be transferred.  After a file is completely transferred and renamed to the correct file, the newly transferred file is re-timestamped to the exact same modified date-time of the remote MirrorMaster such that the two files will no longer differ with the next replication (unless, of course, someone again updated the file)

 

Understanding MirrorMaster RAM requirements:

 

In order for your MirrorMaster to send or receive a file, the file will be loaded into memory during the transfer process.  Therefore, if 10 MirrorMaster clients connect to you at the same time and each is transferring a 50MB file, then you will temporarily need 500MB of RAM.  For this reason each MirrorMaster has defined a Buffer property which can be set as low as 1 byte (default is 32768 bytes).  If a file is larger than this limit, it will be transferred in chunks no larger than this value and therefore you will need only 32768x10=300KB of RAM for our previous example.