+28
Under review

Write to multiple targets

areef rakhangi 1 year ago • updated by Peteris 1 month ago 5

I want to know if there can be a product which will replicate a set of chosen files across multiple usb or location at one click. Projects engineering, video and data contained on a usb need to be sent out to multiple people. Copying them over and over is slow. Also if copying starts at one time the file neednot be read again and again from the source location and can be picked from memory. Multiwrite can a good name

+1

just like synctoy of microsoft. but slower in copying of multiple files. it is faster to manually copy it with teracopy one by one.

Finally i realised that copying the same data onto two computers and then copying onto disks is better than anything else. I had issues with filling 32 gb usb which took 1.5 hours just to copy data of 32  gb to it. No point in breaking the head. share the data copy one usb first

then put in two to three usb and start bulk copying. insert theusb into some other computer and start the process

Ok, I have a variant of this:

The original idea was to copy the same set of files to multiple destinations, like USB-drives and the objection was that is faster to copy one by one.

My idea, and solution is as follows:

Computer: PC, I5-6600K, 16Gb memory (any variant will work, this is to have a setup to explain my reasoning with).

Set of files: 48000 files of variant sizes

Number of drives, 1 master, 4 slaves.

Preconceived notions:

Reading, or writing to any disk takes the same amount of time, and overhead.

Any disk connected to the same controller/bus shares bandwidth, any disk connected to it's own bus does not.

In case of usb, have several drives connected to separate usb-hubs would increase speed.


Copy process:

Setup allow for allocation ram for buffers, in my case, I would allocate 6Gb of memory for this.

So Set1 takes 2Gb of buffer, Set2 2Gb and Set3 2Gb.


I select the files/folders I wish to copy as normal and chose multitarget copy - new option.

Ii then select number of targets and where this targets are.

For my own use, this could be E:\ F:\ G:\ H:\ as targets with selected folders from D:\ as source.

This could be have ini-settings for setting it up as procedure if this process is to be repeated many times.


Set1 buffer is being filled and copying is started from the buffer immediately/with a little delay to all drives concurrently.

Reading into the buffer would normally take more time than emptying it. Once Set1 is filled, Set2 is starting to be filled and so on in a roundbuffer way. Each copyprocess should the read the files from RAM and be able to sustain concurrent write speeds for each drive. If the buffers are filled, the read process is suspended until one of the buffer sets are freed up.


Copying to similar types of drives (HDDs) would be smart, copying to one SSD and one HDD would be rather impractical.

Optimizations might be reducing priority to faster drives, and increasing them on slower.

The setup is like copying all the files to a ram-drive and copy from the drive, making multiple simultanous operations independent of the sources read and access speeds.

Each copy out process could be allocated it's own CPU-resources meaning they would work concurrenly instead of serialized.

Vegard

yes, read once write to multiple destinations all at once and then verify them all them = would be perfect