Description
One of the endemic features of Dolphin I find indispensable is folder size display based on its contents, currently up to N levels, and that is because the recursive check is performed every time the folder is accessed, which is not only wasteful, but also slows down Dolphin's operation on fuller disks if N is large enough.
I propose an optional persistent store of tree or similar structure of folder sizes, which would not need to be rebuilt every time, but on rarer occasions, such as discrepancy upon folder access or optional file watch system, to track changes in real time, as needed.
This would also enable Filelight to be the manual rebuilder or process disks much faster by utilizing this cache to skip folders on size matches.
I believe that this connects to "control over digital life" part of the vision by allowing more immediate info on fillup of data storage from the point of view of the currently accessed folder, and that someone might find fruits of this task useful enough to mandate a more complex metadata storage system in the future for the same reason of reducing redundant reads over large amount of files/folders.
What it will take
PoC of this improvement would need at least a mechanism to build this cache, load part of it in Dolphin from the point of current directory, and compare it's current information against 1 or 2 levels deep check upon folder access, which might be able to re-use currently-used check system in Dolphin, although that would be up to someone experienced in Dolphin's development to assess.
How we know we succeeded
This can be benchmarked on large archival storage system (that is, with minimum amount of changes per day) that has high-latency (HDDs) or low bandwidth (USB 2.0 flash storage, SD cards), working PoC should have accurate or almost accurate result within time it takes to at least read the information from cache, and then correct it as needed, both insuperably faster than current implementation set to check size 20 levels deep.
Relevant links
TODO as needed
Champions
As of writing this I have no champions on my own and I am currently bound by my current obligations until Q4, limiting my current usefulness to just testing, but as stated above this needs someone well-versed in Dolphin's current development, preferably also someone knowing Filelight's internals to optimize for performance.
I am willing to put work into this
- Marcin Dąbrowski (testing/benchmarking)
I am interested
- Marcin Dąbrowski