Roon saves its scanning until I want to use the stereo

This made it all make sense to me. I know what’s happening.

Roon knows that it can’t trust NAS’s to report on filesystem events in all cases–and there’s no way for us to detect whether events are coming or not. NAS’s just silently report a subset of events, or none at all. So “real time watching” isn’t real time all the time.

We did some research and found that just about every piece of software that attempts to do “real time watching” on NAS’s eventually runs into this limitation, and supplements it with a periodic scan of the storage folder. Plex does it, JRiver does it, so do others, and so does Roon.

This is not new with 1.3, by the way–it was added somewhere between 1.1 and 1.2.

So in addition to the “real time watching” Roon kicks off a scan of your storage locations once every 4 hours. This is a simple recursive directory listing–we are not actually poking around inside the files.

In the vast majority of cases it does not take hours. For example, on a spinning disk on my 5 year old Windows machine, it lists 100,000 files in about 10 seconds. Over an SMB connection to the same disk, the scan takes about 30 seconds. The same files on my QNAP TS-453 take 50 seconds. You could extrapolate this to much larger libraries at these rates and never see something take more than 5-10 minutes.

Before I used the QNAP, or this Windows machine, I had a Drobo for about 5 years. It seemed great at first, but over time, as it filled up, it started ruining things for me. Everything worked slow/worse/not at all. Eventually, I got down to troubleshooting the thing and figured out that each filesystem operation took about 100ms, not matter what it was or how idle the Drobo was. Open a file? 100ms. Seek 1024 bytes into the file? 100ms. Read 4096 bytes from the file? 100ms. List a directory? 100ms per file to get the file size/modification time. Even simple operations on that thing were excruciatingly slow. The Drobo was so bad that it nearly caused me to give up on NAS’s entirely.

The reason why it is scanning constantly is because an operation that should take a few minutes is taking 12 hours, and by that point, it’s time for the next “once per 4 hours” scan.

I’ll say one good thing about Drobo: it went through a couple of drive failures without losing any data. But it did take me almost 2 weeks to extract the data from its clutches 100ms at a a time. Drobo. Never again.

Not sure about @koen’s situation. The interesting question there is whether or not the scan is taking 4+hrs or not, since that’s the threshold for “constant scanning”.

(@ben @mike fyi)

1 Like