If you find something in the implementation that needs to be changed, let me know if you could.
Thanks.

Kenneth Vanvik Hansen wrote:
I think i actually found something now. Need to rewrite some stuff to make
it work with the views again. Thanks for your help anyway :-)

Kenneth

-----Original Message-----
From: Brett Bergquist [mailto:[email protected]] Sent: 3. mai 2010 12:50
To: [email protected]
Subject: Re: LIST from database

Actually right now, no.  Maybe throw some debug statements around or profile
it to see where it is spending the time.  Maybe that will give  clue as to
where it needs to be optimized.

Brett

On May 3, 2010, at 6:37 AM, Kenneth Vanvik Hansen wrote:

Hi, i've implemented your new code. I still have some trouble with it being very slow. Listing 12 directories takes about 100 seconds. This is from a bit complicated view, which might be some of the reason. Still shouldn't take that long? Any ideas how to make it even faster?

Kenneth

-----Original Message-----
From: Kenneth Vanvik Hansen [mailto:[email protected]]
Sent: 27. april 2010 23:30
To: [email protected]
Subject: Re: LIST from database

Niice :-) I'll take a look at it tomorrow. I wrote a db view that creates a folder structure form existing blobs. And there are several thousand blobs, which is how i found the list command being slow. Thank
you.
Kenneth

On Apr 27, 2010, at 11:13 PM, Brett M. Bergquist wrote:

I just did a quick modification of my code to not do a select on each
file. Basically when the "list" is done, I gather all of the information and cache it in the DbFile object. This greatly increased performance so that at directory with a couple of hundred files takes less than a second to return a directory listing.
I have created a Jira issue and attached a Netbeans project which is a
running sample against a Derby database.  This has this changed code in
it.
So you might want to download the code and make the same changes in your version.
This is Jira Issue: FTPSERVER-372 </jira/browse/FTPSERVER-372>

https://issues.apache.org/jira/browse/FTPSERVER-372


Brett M. Bergquist wrote:
Sorry, I just saw this among the hundreds of emails that I get ;)

I don't have a quick answer. It is doing 1 select to get the list of
files and then for each other check on each file (isDirectory, isReadable, etc.) it is doing another select. It is a very naive implementation in that it is caching nothing and always refreshing its knowledge from the
database.
And your right, with many files in a directory it is slow and resource intensive.
Kenneth Vanvik Hansen wrote:
No, i don't have a need to do a select for every file. It just seems it does a lot of queries when it receives a LIST command. Only change I have done to the original code is I have changed from Derby to ODBC. It works great for folders with up to 10 or so files in it, after that it starts to get really slow.

-----Original Message-----
From: David Latorre [mailto:[email protected]] Sent: 27. april 2010
14:10
To: ftpserver-users
Subject: Re: LIST from database

If I inderstood you correctly, it is your code that is doing a SELECT for every file, isn't it?

Since I haven't seen your code, I cannot give you advice on this, why do you need to do a select for every file?

Maybe Brett's solution can help you... did you get the time to work on this, Brett?




2010/4/27 Kenneth Vanvik Hansen <[email protected]>:

Hi, I've been working on this a bit now but I'm having some trouble when there are many files/folders in a folder. Seems like LIST does a select for every file in a folder. Any good ideas on how to solve this? In my db(which is a bit slow) it can take several minutes to list

40+ files/folders.

Kenneth

-----Original Message-----
From: Brett M. Bergquist [mailto:[email protected]]
Sent: 23. mars 2010 17:40
To: [email protected]
Subject: Re: LIST from database

Okay.  That will work.  Thanks.

Niklas Gustavsson wrote:

On Tue, Mar 23, 2010 at 4:08 PM, Brett M. Bergquist
<[email protected]> wrote:
I actually have a working Netbeans project that works against a Derby database. I am going to do a little more cleanup and see if I cannot factor out the database specifics like the db user manager does and then I would like to provide the whole thing, probably to go into the examples. So should I send this to you Niklas when I am

ready?

If you would like to contribute the code to the project, the best way
is to create a JIRA issue and attach the code there (making sure you check the donate to ASF checkbox).
/niklas





Kenneth Vanvik Hansen
[email protected]







Reply via email to