Smurf-IV / Liquesce

Definition: melt from solid to liquid; mix in Synonyms: fuse, liquefy, blend, pool.
29 stars 4 forks source link

Moving files on pooled drive is actually copying them and is slow #2

Open diamondavocado opened 7 years ago

diamondavocado commented 7 years ago

Hi there

I'm not sure if this is a bug or if it should be a feature request, but when I move files on my Liquesce pooled network drive, (e.g. from a parent folder to a subfolder) the files are actually being copied then deleted instead of moved instantly.

For example, let's say I have a folder "P:\Movies\" containing large movie files. Once I watch a movie, I want to move it to a subfolder "P:\Movies\Watched". Normally this would be instant, however when I move it on my Liquesce pooled network drive, it copies the file and therefore takes a very long time.

If I remote into the server I can open up the single (non-pooled/physical) drive which the movie is stored on, and move it instantly to the "Watched" subfolder there.

So my question is, why can't Liquesce simply tell the underlying OS to move files on the physical drive instantly like this too?

Thank you.

Smurf-IV commented 7 years ago

Thanks for the issue report. Please keep the requests and suggestions coming :-)

Yes, It would seem sensibly to perform an underlying move. But I tried to us a route that at least attempted some sort of transactional step of operations due to symbolic links, junctions and other strange magic that can occur with loading a drive as a directory.

With more research (Or removing the need to support older OS than win 8) then it should be possible to support the Move !.

diamondavocado commented 7 years ago

Thank you. I'm really glad you're still supporting Liquesce. It's really wonderful software and I believe it might be the only open source read/write drive pooling software available. It enabled me to use old hardware with a tiny amount of RAM with my existing collection of old hard drives, and without paying for expensive/closed-off/proprietary software (cough Unraid, Stablebit DrivePool) so I want to thank you very much.

I can definitely understand why you use a transactional operation. Unfortunately I still use Windows 7 (SP1) so I would hate to lose support for that, however if it's not possible to do on Windows 7 then so be it.

I guess it would get tricky to try to stick to the user's chosen pooling strategy (i.e. Folder / Balanced / Priority) when moving files. In the classic "Folder" mode it could be difficult to keep all files together on the same physical disk if a user wants to "move" a file from disk A: to a subfolder which already exists on disk B:.

Perhaps you could split the existing Folder mode into "Strict Folder" and "Relaxed Folder" modes. When the user executes a "file move" operation, the Strict Folder mode would try its hardest to keep files in the same folder on the same disk, even if that means slowly copying a file to another disk, instead of moving it. The Relaxed Folder mode just moves the file into the new target directory, while keeping it on the same physical disk.

I would obviously use the Relaxed mode in this case.

I assume it would be easier in Priority or Balanced modes, when you don't care about keeping folders together -- you would just directly move the file, keeping it on the same physical disk, even if that means creating a new directory tree on that disk.

I'm not a desktop programmer so the above might not make sense.

Smurf-IV commented 7 years ago

Thanks for the good feedback, and encouragement for me to keep support for windows 7.. I'll take these on board for the next full re-factoring.