Bug 525 - Large directories are slow over local drive redirection
Summary: Large directories are slow over local drive redirection
Status: NEW
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Local drive redirection (show other bugs)
Version: trunk
Hardware: PC Linux
: P2 Enhancement
Target Milestone: MediumPrio
Assignee: Peter Åstrand
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-04-26 09:34 CEST by Peter Åstrand
Modified: 2024-01-23 14:06 CET (History)
0 users

See Also:
Acceptance Criteria:


Attachments
Hacky patch (4.88 KB, patch)
2007-09-21 09:19 CEST, Peter Åstrand
Details | Diff

Description Peter Åstrand cendio 2004-04-26 09:34:35 CEST
With the current implementation, doing "ls -l" on a large directory over a slow
link takes a long time. To be precise, it takes about 4*numfiles*RTT seconds,
because for every file, a LOOKUP and a GETATTR has to be done. This could be
eliminated by having unfsd support the READDIRPLUS operation. I've found a
comment in the unfsd source code that says this is not possible, though, due to
some atomicity requirement. 

This needs some investigation.
Comment 1 Peter Åstrand cendio 2004-04-26 13:44:25 CEST
Pascal says that the comment is outdated, and that it actually would be possible
to implement READDIRPLUS. 
Comment 2 Peter Åstrand cendio 2004-06-01 13:03:39 CEST
Not a bug; retargeting. 
Comment 3 Peter Åstrand cendio 2007-09-21 09:19:38 CEST
Created attachment 253 [details]
Hacky patch

The attached patch is a start of support of READDIRPLUS in unfs3. I worked on this during the summer; the patch is by no means ready, but I'm attaching it here to make sure it's not lost.
Comment 4 Peter Åstrand cendio 2011-04-14 16:12:31 CEST
Another idea of improving performance: it seems like Windows is trying to open a lot of "strange files", I believe resource forks. Perhaps we should consider filtering out these...

open_weak:/tmp/.webmin:{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:DocumentSummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_DocumentSummaryInformation:$DATA|
open_weak:/tmp/.webmin:DocumentSummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_DocumentSummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SummaryInformation:$DATA|
open_weak:/tmp/.webmin:Docf_SummaryInformation:$DATA|
open_weak:/tmp/.webmin:SebiesnrMkudrfcoIaamtykdDa:$DATA|
open_weak:/tmp/.webmin:Docf_SebiesnrMkudrfcoIaamtykdDa:$DATA|
open_weak:/tmp/.webmin:SebiesnrMkudrfcoIaamtykdDa:$DATA|
open_weak:/tmp/.webmin:Docf_SebiesnrMkudrfcoIaamtykdDa:$DATA|
open_weak:/tmp/.webmin:OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:Docf_OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:Docf_OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:Docf_OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:Docf_OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:Docf_OzngklrtOwudrp0bAayojd1qWh:$DATA|
open_weak:/tmp/.webmin:OzngklrtOwudrp0bAayojd1qWh:$DATA|
Comment 5 Pierre Ossman cendio 2024-01-23 14:05:33 CET
As a real-world example, doing "ls" in a directory with 10k files, with the client and server on the same network, takes two and a half minutes.

Note You need to log in before you can comment on or make changes to this bug.