RE: FTPServer handling of multiple concurrent connections.

2010-04-23 Thread Peter van der Velde
L.S.

Is there an ETA for this change? 

Greetings,

Peter van der Velde

-Original Message-
From: David Latorre [mailto:dvl...@gmail.com] 
Sent: donderdag 1 april 2010 12:57
To: dev@mina.apache.org
Subject: Re: FTPServer handling of multiple concurrent connections.

2010/3/31 Niklas Gustavsson nik...@protocol7.com:
 On Wed, Mar 31, 2010 at 6:32 PM, Sai Pullabhotla 
 sai.pullabho...@jmethods.com wrote:
 Since I did not hear back anything on this, I will ask again :).

 Are you guys okay with the proposed short term solution?

 +1 to option 1 and to defaulting to max users.

Sounds good :-)

 /niklas



Re: FTPServer handling of multiple concurrent connections.

2010-04-23 Thread Sai Pullabhotla
I'm pretty sure it is checked into the trunk.

Regards,
Sai Pullabhotla




On Fri, Apr 23, 2010 at 7:35 AM, Peter van der Velde 
peter.vanderve...@anachron.com wrote:

 L.S.

 Is there an ETA for this change?

 Greetings,

 Peter van der Velde

 -Original Message-
 From: David Latorre [mailto:dvl...@gmail.com]
 Sent: donderdag 1 april 2010 12:57
 To: dev@mina.apache.org
 Subject: Re: FTPServer handling of multiple concurrent connections.

 2010/3/31 Niklas Gustavsson nik...@protocol7.com:
  On Wed, Mar 31, 2010 at 6:32 PM, Sai Pullabhotla
  sai.pullabho...@jmethods.com wrote:
  Since I did not hear back anything on this, I will ask again :).
 
  Are you guys okay with the proposed short term solution?
 
  +1 to option 1 and to defaulting to max users.

 Sounds good :-)

  /niklas
 



RE: FTPServer handling of multiple concurrent connections.

2010-04-23 Thread Peter van der Velde
Great, I will fetch the trunk then.

Thanks!

Greetings,

Peter.

-Original Message-
From: Sai Pullabhotla [mailto:sai.pullabho...@jmethods.com] 
Sent: vrijdag 23 april 2010 15:24
To: dev@mina.apache.org
Subject: Re: FTPServer handling of multiple concurrent connections.

I'm pretty sure it is checked into the trunk.

Regards,
Sai Pullabhotla




On Fri, Apr 23, 2010 at 7:35 AM, Peter van der Velde 
peter.vanderve...@anachron.com wrote:

 L.S.

 Is there an ETA for this change?

 Greetings,

 Peter van der Velde

 -Original Message-
 From: David Latorre [mailto:dvl...@gmail.com]
 Sent: donderdag 1 april 2010 12:57
 To: dev@mina.apache.org
 Subject: Re: FTPServer handling of multiple concurrent connections.

 2010/3/31 Niklas Gustavsson nik...@protocol7.com:
  On Wed, Mar 31, 2010 at 6:32 PM, Sai Pullabhotla 
  sai.pullabho...@jmethods.com wrote:
  Since I did not hear back anything on this, I will ask again :).
 
  Are you guys okay with the proposed short term solution?
 
  +1 to option 1 and to defaulting to max users.

 Sounds good :-)

  /niklas
 



Re: FTPServer handling of multiple concurrent connections.

2010-04-01 Thread David Latorre
2010/3/31 Niklas Gustavsson nik...@protocol7.com:
 On Wed, Mar 31, 2010 at 6:32 PM, Sai Pullabhotla
 sai.pullabho...@jmethods.com wrote:
 Since I did not hear back anything on this, I will ask again :).

 Are you guys okay with the proposed short term solution?

 +1 to option 1 and to defaulting to max users.

Sounds good :-)

 /niklas



Re: FTPServer handling of multiple concurrent connections.

2010-03-31 Thread Sai Pullabhotla
Since I did not hear back anything on this, I will ask again :).

Are you guys okay with the proposed short term solution?

Regards,
Sai Pullabhotla





On Tue, Mar 30, 2010 at 10:10 AM, Sai Pullabhotla
sai.pullabho...@jmethods.com wrote:
 Since changing everything over to MINA could be quite a bit of work,
 and the issue we have is somewhat serious, we should come up with a
 short term solution first and release a patch. Perhaps this patch
 would do the following:

 Option 1: Have Max Threads as a configurable option at the server
 level. Each listener would share the same thread pool.

 Option 2: Have Max Threads as a configurable option at the listener
 (acceptor) level.

 I prefer option 1 as most people would look at the server level rather
 than listener level. In other words, my server should be able to
 handle 200 concurrent users. If Max Threads is not specified, may be
 we should default it to maxUsers/connections that we have. Not sure
 what the current keep-alive time for the threads is, but perhaps
 having a shorter keep-alive time may help in some cases, or make it as
 a configurable option.

 What do you think?

 Regards,
 Sai Pullabhotla





 On Tue, Mar 30, 2010 at 8:33 AM, Niklas Gustavsson nik...@protocol7.com 
 wrote:
 On Tue, Mar 30, 2010 at 2:22 PM, David Latorre dvl...@gmail.com wrote:
 I would rather go for a solution that make it impossible to block
 FTPServer rather than making it 'more difficult'.
 For this, we might limit the total number of data connections which
 wouldn't be perfect but might help... or maybe we can enforce a rule
 that MaxUsers  MaxThreads.

 Depending on your user profiles, I think there might be different
 configurations that suites you best. So, I think we should supply both
 the max concurrent users option (that we do today) and a max threads
 option. Then, we need to provide reasonable defaults and documentation
 on how to best use them.

 - We could have a filter that limited bandwidth usage, although I
 don't think there is anything like that in FTPServer.

 We already do bandwidth limitation in our blocking data connections.

 /niklas




Re: FTPServer handling of multiple concurrent connections.

2010-03-31 Thread Niklas Gustavsson
On Wed, Mar 31, 2010 at 6:32 PM, Sai Pullabhotla
sai.pullabho...@jmethods.com wrote:
 Since I did not hear back anything on this, I will ask again :).

 Are you guys okay with the proposed short term solution?

+1 to option 1 and to defaulting to max users.

/niklas


FTPServer handling of multiple concurrent connections.

2010-03-30 Thread David Latorre
Hello,

When inspecting http://issues.apache.org/jira/browse/FTPSERVER-359 I
noticed that we might have an issue with threading in Ftpserver.

I think we  are using a 'fixed size thread pool' with max-threads=16
for the Executor threadpool in which commands are executed. This would
mean that if we had 16 data transfers currently running , FTPServer
would be blocked until some of these data transfers ended- Is my
understanding correct?

Is this behaviour desirable for us? I don't think that 16 data
transfers are that many, and some users might need to send huge files.


Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread Sai Pullabhotla
I don't think that was intended. If this is in fact an issue, we
should probably consider adding a configuration option such as
maxThreads as the default max we choose may not be the best in all
cases.

Regards,
Sai Pullabhotla





On Tue, Mar 30, 2010 at 3:29 AM, David Latorre dvl...@gmail.com wrote:
 Hello,

 When inspecting http://issues.apache.org/jira/browse/FTPSERVER-359 I
 noticed that we might have an issue with threading in Ftpserver.

 I think we  are using a 'fixed size thread pool' with max-threads=16
 for the Executor threadpool in which commands are executed. This would
 mean that if we had 16 data transfers currently running , FTPServer
 would be blocked until some of these data transfers ended- Is my
 understanding correct?

 Is this behaviour desirable for us? I don't think that 16 data
 transfers are that many, and some users might need to send huge files.



Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread Niklas Gustavsson
On Tue, Mar 30, 2010 at 10:33 AM, Sai Pullabhotla
sai.pullabho...@jmethods.com wrote:
 I don't think that was intended. If this is in fact an issue, we
 should probably consider adding a configuration option such as
 maxThreads as the default max we choose may not be the best in all
 cases.

I think David is correct, and I agree with your proposed solution
(defaulting the value higher than 16 thou). We should also look into
moving the data connection over to using MINA, if someone got the
time.

/niklas


Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread Sai Pullabhotla
What would be the benefit of using MINA compared to the traditional
sockets, especially for passive connections?

Regards,
Sai Pullabhotla





On Tue, Mar 30, 2010 at 7:33 AM, Niklas Gustavsson nik...@protocol7.com wrote:
 On Tue, Mar 30, 2010 at 10:33 AM, Sai Pullabhotla
 sai.pullabho...@jmethods.com wrote:
 I don't think that was intended. If this is in fact an issue, we
 should probably consider adding a configuration option such as
 maxThreads as the default max we choose may not be the best in all
 cases.

 I think David is correct, and I agree with your proposed solution
 (defaulting the value higher than 16 thou). We should also look into
 moving the data connection over to using MINA, if someone got the
 time.

 /niklas



Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread Niklas Gustavsson
On Tue, Mar 30, 2010 at 1:39 PM, Sai Pullabhotla
sai.pullabho...@jmethods.com wrote:
 What would be the benefit of using MINA compared to the traditional
 sockets, especially for passive connections?

That we don't get one thread for each one socket. Perhaps this is not
such a big issue, at least not as far as your not planning for
thousands of concurrent data connections.

/niklas


Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread David Latorre
2010/3/30 Niklas Gustavsson nik...@protocol7.com:
 On Tue, Mar 30, 2010 at 10:33 AM, Sai Pullabhotla
 sai.pullabho...@jmethods.com wrote:
 I don't think that was intended. If this is in fact an issue, we
 should probably consider adding a configuration option such as
 maxThreads as the default max we choose may not be the best in all
 cases.

 I think David is correct, and I agree with your proposed solution
 (defaulting the value higher than 16 thou). We should also look into
 moving the data connection over to using MINA, if someone got the
 time.


I would rather go for a solution that make it impossible to block
FTPServer rather than making it 'more difficult'.
For this, we might limit the total number of data connections which
wouldn't be perfect but might help... or maybe we can enforce a rule
that MaxUsers  MaxThreads.

Regarding the move of the data connection to MINA, I understand Sai's
position that is using blocking-IO here is probably lighter ( It would
be nice if we could have the same 'MINA pipeline' accepting on several
ports...). Still I see an advantage  if we used MINA -  filters:

- We could have different filters for ASCII mode, binary mode, 'Z'
mode or other modes of encoding we or the users might think of
(Although it is easy to have custom streams that do this for us with
the current implementation).

- We can include a fine grained monitoring of current transfers, a
filter might inform via JMX  or other means of e.g., the amount of
data transferred

- A filter could limit the quota for a user, for a session, for a
week/month for this user  in 'real time'. There are other ways to do
this as well...

- We could have a filter that limited bandwidth usage, although I
don't think there is anything like that in FTPServer.


Still, several of the possibilities we can think of seem not that
useful since we should have multiple 'chains' for data connections.









 /niklas



Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread Niklas Gustavsson
On Tue, Mar 30, 2010 at 2:22 PM, David Latorre dvl...@gmail.com wrote:
 I would rather go for a solution that make it impossible to block
 FTPServer rather than making it 'more difficult'.
 For this, we might limit the total number of data connections which
 wouldn't be perfect but might help... or maybe we can enforce a rule
 that MaxUsers  MaxThreads.

Depending on your user profiles, I think there might be different
configurations that suites you best. So, I think we should supply both
the max concurrent users option (that we do today) and a max threads
option. Then, we need to provide reasonable defaults and documentation
on how to best use them.

 - We could have a filter that limited bandwidth usage, although I
 don't think there is anything like that in FTPServer.

We already do bandwidth limitation in our blocking data connections.

/niklas


Re: FTPServer handling of multiple concurrent connections.

2010-03-30 Thread Sai Pullabhotla
Since changing everything over to MINA could be quite a bit of work,
and the issue we have is somewhat serious, we should come up with a
short term solution first and release a patch. Perhaps this patch
would do the following:

Option 1: Have Max Threads as a configurable option at the server
level. Each listener would share the same thread pool.

Option 2: Have Max Threads as a configurable option at the listener
(acceptor) level.

I prefer option 1 as most people would look at the server level rather
than listener level. In other words, my server should be able to
handle 200 concurrent users. If Max Threads is not specified, may be
we should default it to maxUsers/connections that we have. Not sure
what the current keep-alive time for the threads is, but perhaps
having a shorter keep-alive time may help in some cases, or make it as
a configurable option.

What do you think?

Regards,
Sai Pullabhotla





On Tue, Mar 30, 2010 at 8:33 AM, Niklas Gustavsson nik...@protocol7.com wrote:
 On Tue, Mar 30, 2010 at 2:22 PM, David Latorre dvl...@gmail.com wrote:
 I would rather go for a solution that make it impossible to block
 FTPServer rather than making it 'more difficult'.
 For this, we might limit the total number of data connections which
 wouldn't be perfect but might help... or maybe we can enforce a rule
 that MaxUsers  MaxThreads.

 Depending on your user profiles, I think there might be different
 configurations that suites you best. So, I think we should supply both
 the max concurrent users option (that we do today) and a max threads
 option. Then, we need to provide reasonable defaults and documentation
 on how to best use them.

 - We could have a filter that limited bandwidth usage, although I
 don't think there is anything like that in FTPServer.

 We already do bandwidth limitation in our blocking data connections.

 /niklas