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]
