Re: jk/cluster - intelligent systems load

2010-02-19 Thread Henri Gomez
 If we goes back to the original thread and using Hyperic stuff in a
 servlet filter or whatever Tomcat extension ?


 Absolutely - a filter would be perfect and will work with any servlet
 engine.

Jetty users will thanks Tomcat community :)

 There are some problems with making sure this doesn't leak out - i.e.
 an X-header inserted by mod_proxy and make sure it filters X-headers
 from the response.

mod_proxy guru around ?

 Could it be usefull for jk, mod_proxy, mod_cluster ?

 Or a specific servlet should/could be provided for such collect
 purpose and it Will be called by remote at it's own rate ?


 That would work too, even better - a status servlet, which may provide
 additional data, like number of sessions, java memory, etc. Don't we have
 one already - dumping all jmx data ? Probably need to output data
 in an easier to parse format, and I guess mod_proxy configuration would
 be a bit tricky if you want to use multiple variables, but doable.

a status servlet could be better, since it could also report
informations about Tomcat engine, like number of ajp/http threads.
A basic format for simple decoding of course :)

BTW, since there is VMWare/SpringSourcer around, could the Hyperic
stuff turned into ASL or BSD licence ?

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread Bill Stoddard

On 2/19/10 8:24 AM, Henri Gomez wrote:

If we goes back to the original thread and using Hyperic stuff in a
servlet filter or whatever Tomcat extension ?


   

Absolutely - a filter would be perfect and will work with any servlet
engine.
 

Jetty users will thanks Tomcat community :)

   

There are some problems with making sure this doesn't leak out - i.e.
an X-header inserted by mod_proxy and make sure it filters X-headers
from the response.
 

mod_proxy guru around ?

   
Not a mod_proxy guru, but filtering X-header from responses should be 
near trivial based on past experience with the proxy code.


Nice discussion btw.  This is a topic I've long been interested in.

Bill

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread Henri Gomez
 Not a mod_proxy guru, but filtering X-header from responses should be near
 trivial based on past experience with the proxy code.

 Nice discussion btw.  This is a topic I've long been interested in.

You're not alone ;)

Two options (not incompatible) to provide servlet engine information
to back end (cluster system).

- a filter add this information in a X-header, each Y requests, or Z seconds.

- a servlet called explicitly by the back-end.

There is the GPL licence 'problem' of the Hyperic lib which should be
'solved' isn't ?

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread Mladen Turk

On 02/19/2010 05:06 PM, Henri Gomez wrote:

Not a mod_proxy guru, but filtering X-header from responses should be near
trivial based on past experience with the proxy code.



There is the GPL licence 'problem' of the Hyperic lib which should be
'solved' isn't ?



Tomcat Native already has some capabilities that
can provide system not JVM options like CPU and Memory
load on the box itself. For loadbalancing stuff
this is all that is needed thought.
Some of those are even displayed on status page
when it's loaded in inside the Tomcat.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread jean-frederic clere
On 02/19/2010 05:19 PM, Mladen Turk wrote:
 On 02/19/2010 05:06 PM, Henri Gomez wrote:
 Not a mod_proxy guru, but filtering X-header from responses should be
 near
 trivial based on past experience with the proxy code.


 There is the GPL licence 'problem' of the Hyperic lib which should be
 'solved' isn't ?

 
 Tomcat Native already has some capabilities that
 can provide system not JVM options like CPU and Memory
 load on the box itself. For loadbalancing stuff
 this is all that is needed thought.
 Some of those are even displayed on status page
 when it's loaded in inside the Tomcat.

Additionally JAVA6 provide stats information on the JVM.

Cheers

Jean-Frederic

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread Costin Manolache
On Fri, Feb 19, 2010 at 8:51 AM, jean-frederic clere jfcl...@gmail.comwrote:

 On 02/19/2010 05:19 PM, Mladen Turk wrote:
  On 02/19/2010 05:06 PM, Henri Gomez wrote:
  Not a mod_proxy guru, but filtering X-header from responses should be
  near
  trivial based on past experience with the proxy code.
 
 
  There is the GPL licence 'problem' of the Hyperic lib which should be
  'solved' isn't ?
 
 
  Tomcat Native already has some capabilities that
  can provide system not JVM options like CPU and Memory
  load on the box itself. For loadbalancing stuff
  this is all that is needed thought.
  Some of those are even displayed on status page
  when it's loaded in inside the Tomcat.

 Additionally JAVA6 provide stats information on the JVM.



My preference would be to use the servlet - maybe enhance the
JMXProxyServlet, which dumps all
JMX information. The current format is relatively easy to parse - but can be
made simpler, and you
could add some parameter to select a subset of the mbeans.
On Linux you can also grab a lot of stuff from /proc, and wrap it in a mbean
or the servlet.

Costin


Re: jk/cluster - intelligent systems load

2010-02-19 Thread Henri Gomez
 Tomcat Native already has some capabilities that
 can provide system not JVM options like CPU and Memory
 load on the box itself. For loadbalancing stuff
 this is all that is needed thought.
 Some of those are even displayed on status page
 when it's loaded in inside the Tomcat.

 Additionally JAVA6 provide stats information on the JVM.

It should but the IBM Java 6 didn't report it correctly for example ;(

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread Henri Gomez
 My preference would be to use the servlet - maybe enhance the
 JMXProxyServlet, which dumps all
 JMX information. The current format is relatively easy to parse - but can be
 made simpler, and you
 could add some parameter to select a subset of the mbeans.

JMXProxyServlet, I'll look at it.

 On Linux you can also grab a lot of stuff from /proc, and wrap it in a mbean
 or the servlet.

Linux yes, but there is many others OS to support :(

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-19 Thread Henri Gomez
 Tomcat Native already has some capabilities that
 can provide system not JVM options like CPU and Memory
 load on the box itself. For loadbalancing stuff
 this is all that is needed thought.
 Some of those are even displayed on status page
 when it's loaded in inside the Tomcat.

Well it's a good candidate :)

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-18 Thread jean-frederic clere
On 02/17/2010 10:46 PM, Costin Manolache wrote:
 On Wed, Feb 17, 2010 at 11:58 AM, Mladen Turk mt...@apache.org wrote:
 
 On 02/17/2010 07:37 PM, Costin Manolache wrote:

 On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turkmt...@apache.org  wrote:


 The reasons I suggest using SPDY as a replacement for AJP - and supporting
 SPDY


 I have nothing against SPDY and it really looks cool,
 but IMHO it's doesn't look and feel like the rest of RFC
 protocol specifications.
 If you can push those guys to create a well known RFC-like
 doc, I'm sure that overall internet community will benefit
 from it.

 
 SPDY is still in development - there is an open mailing list and
 quite a few proposals/changes/discussions. I would guess
 the end result will end up as a RFC-like. Feel free to join the
 mailing list and push or volunteer for anything :-)
 
 The implementations - chrome, mod_spdy are also open source
 and with ASF-like license.
 
 
 

 OTOH we are discussing this 'protocol thing' for years instead like
 you noticed we concentrate on the tasks we wish to do.
 Think if we start from the protocol side we will stay there (nowhere)
 for few more years (although SPDY might be even more then we need).
 
 
 I think what matters is having a working SPDY implementation in tomcat,
 inter-operable
 with chrome/mod_spdy/google. If we start with this we'll probably make
 more progress than by discussing protocols :-)

Yep, I have noted that people are preparing an implementation for httpd
so at some point it will just porting that code to TC.

Cheers

Jean-Frederic

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-18 Thread Costin Manolache
On Thu, Feb 18, 2010 at 12:00 AM, jean-frederic clere jfcl...@gmail.comwrote:

 On 02/17/2010 10:46 PM, Costin Manolache wrote:
  On Wed, Feb 17, 2010 at 11:58 AM, Mladen Turk mt...@apache.org wrote:
 
  On 02/17/2010 07:37 PM, Costin Manolache wrote:
 
  On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turkmt...@apache.org
  wrote:
 
 
  The reasons I suggest using SPDY as a replacement for AJP - and
 supporting
  SPDY
 
 
  I have nothing against SPDY and it really looks cool,
  but IMHO it's doesn't look and feel like the rest of RFC
  protocol specifications.
  If you can push those guys to create a well known RFC-like
  doc, I'm sure that overall internet community will benefit
  from it.
 
 
  SPDY is still in development - there is an open mailing list and
  quite a few proposals/changes/discussions. I would guess
  the end result will end up as a RFC-like. Feel free to join the
  mailing list and push or volunteer for anything :-)
 
  The implementations - chrome, mod_spdy are also open source
  and with ASF-like license.
 
 
 
 
  OTOH we are discussing this 'protocol thing' for years instead like
  you noticed we concentrate on the tasks we wish to do.
  Think if we start from the protocol side we will stay there (nowhere)
  for few more years (although SPDY might be even more then we need).
 
 
  I think what matters is having a working SPDY implementation in tomcat,
  inter-operable
  with chrome/mod_spdy/google. If we start with this we'll probably make
  more progress than by discussing protocols :-)

 Yep, I have noted that people are preparing an implementation for httpd
 so at some point it will just porting that code to TC.


http://code.google.com/p/mod-spdy/

Costin



 Cheers

 Jean-Frederic

 -
 To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: dev-h...@tomcat.apache.org




Re: jk/cluster - intelligent systems load

2010-02-18 Thread Henri Gomez
If we goes back to the original thread and using Hyperic stuff in a
servlet filter or whatever Tomcat extension ?

Could it be usefull for jk, mod_proxy, mod_cluster ?

Or a specific servlet should/could be provided for such collect
purpose and it Will be called by remote at it's own rate ?

2010/2/18, Costin Manolache cos...@gmail.com:
 On Thu, Feb 18, 2010 at 12:00 AM, jean-frederic clere
 jfcl...@gmail.comwrote:

 On 02/17/2010 10:46 PM, Costin Manolache wrote:
  On Wed, Feb 17, 2010 at 11:58 AM, Mladen Turk mt...@apache.org wrote:
 
  On 02/17/2010 07:37 PM, Costin Manolache wrote:
 
  On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turkmt...@apache.org
  wrote:
 
 
  The reasons I suggest using SPDY as a replacement for AJP - and
 supporting
  SPDY
 
 
  I have nothing against SPDY and it really looks cool,
  but IMHO it's doesn't look and feel like the rest of RFC
  protocol specifications.
  If you can push those guys to create a well known RFC-like
  doc, I'm sure that overall internet community will benefit
  from it.
 
 
  SPDY is still in development - there is an open mailing list and
  quite a few proposals/changes/discussions. I would guess
  the end result will end up as a RFC-like. Feel free to join the
  mailing list and push or volunteer for anything :-)
 
  The implementations - chrome, mod_spdy are also open source
  and with ASF-like license.
 
 
 
 
  OTOH we are discussing this 'protocol thing' for years instead like
  you noticed we concentrate on the tasks we wish to do.
  Think if we start from the protocol side we will stay there (nowhere)
  for few more years (although SPDY might be even more then we need).
 
 
  I think what matters is having a working SPDY implementation in tomcat,
  inter-operable
  with chrome/mod_spdy/google. If we start with this we'll probably make
  more progress than by discussing protocols :-)

 Yep, I have noted that people are preparing an implementation for httpd
 so at some point it will just porting that code to TC.


 http://code.google.com/p/mod-spdy/

 Costin



 Cheers

 Jean-Frederic

 -
 To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: dev-h...@tomcat.apache.org




-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-18 Thread Costin Manolache
On Thu, Feb 18, 2010 at 10:57 AM, Henri Gomez henri.go...@gmail.com wrote:

 If we goes back to the original thread and using Hyperic stuff in a
 servlet filter or whatever Tomcat extension ?


Absolutely - a filter would be perfect and will work with any servlet
engine.
There are some problems with making sure this doesn't leak out - i.e.
an X-header inserted by mod_proxy and make sure it filters X-headers
from the response.



 Could it be usefull for jk, mod_proxy, mod_cluster ?

 Or a specific servlet should/could be provided for such collect
 purpose and it Will be called by remote at it's own rate ?


That would work too, even better - a status servlet, which may provide
additional data, like number of sessions, java memory, etc. Don't we have
one already - dumping all jmx data ? Probably need to output data
in an easier to parse format, and I guess mod_proxy configuration would
be a bit tricky if you want to use multiple variables, but doable.

Costin




 2010/2/18, Costin Manolache cos...@gmail.com:
  On Thu, Feb 18, 2010 at 12:00 AM, jean-frederic clere
  jfcl...@gmail.comwrote:
 
  On 02/17/2010 10:46 PM, Costin Manolache wrote:
   On Wed, Feb 17, 2010 at 11:58 AM, Mladen Turk mt...@apache.org
 wrote:
  
   On 02/17/2010 07:37 PM, Costin Manolache wrote:
  
   On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turkmt...@apache.org
   wrote:
  
  
   The reasons I suggest using SPDY as a replacement for AJP - and
  supporting
   SPDY
  
  
   I have nothing against SPDY and it really looks cool,
   but IMHO it's doesn't look and feel like the rest of RFC
   protocol specifications.
   If you can push those guys to create a well known RFC-like
   doc, I'm sure that overall internet community will benefit
   from it.
  
  
   SPDY is still in development - there is an open mailing list and
   quite a few proposals/changes/discussions. I would guess
   the end result will end up as a RFC-like. Feel free to join the
   mailing list and push or volunteer for anything :-)
  
   The implementations - chrome, mod_spdy are also open source
   and with ASF-like license.
  
  
  
  
   OTOH we are discussing this 'protocol thing' for years instead like
   you noticed we concentrate on the tasks we wish to do.
   Think if we start from the protocol side we will stay there (nowhere)
   for few more years (although SPDY might be even more then we need).
  
  
   I think what matters is having a working SPDY implementation in
 tomcat,
   inter-operable
   with chrome/mod_spdy/google. If we start with this we'll probably make
   more progress than by discussing protocols :-)
 
  Yep, I have noted that people are preparing an implementation for httpd
  so at some point it will just porting that code to TC.
 
 
  http://code.google.com/p/mod-spdy/
 
  Costin
 
 
 
  Cheers
 
  Jean-Frederic
 
  -
  To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
  For additional commands, e-mail: dev-h...@tomcat.apache.org
 
 
 

 -
 To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: dev-h...@tomcat.apache.org




Re: jk/cluster - intelligent systems load

2010-02-17 Thread Mladen Turk

On 02/16/2010 06:57 PM, Costin Manolache wrote:


I think the main driver for replacing ajp is the 2-directional protocols -
and if we
replace it, why invent a new protocol and not just adopt SPDY, which has all
we need.



Totally agree.
Both JK and AJP originate from days when the single server behind
web server was the common topology and when there was no async processing.
Beside SPDY, which some ASF folks that made a significant contribution
to the original HTTP specs consider as unperfect, there is BWTP proposal
(http://bwtp.wikidot.com/)

Extending exiting protocols or just doing a 'quick hacks' like I
see with many projects trying to address those issues will not
work in the long run. At the end you will be faced with the
clean drawing board.



Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-17 Thread Costin Manolache
On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turk mt...@apache.org wrote:

 On 02/16/2010 06:57 PM, Costin Manolache wrote:


 I think the main driver for replacing ajp is the 2-directional protocols -
 and if we
 replace it, why invent a new protocol and not just adopt SPDY, which has
 all
 we need.


 Totally agree.
 Both JK and AJP originate from days when the single server behind
 web server was the common topology and when there was no async processing.
 Beside SPDY, which some ASF folks that made a significant contribution
 to the original HTTP specs consider as unperfect, there is BWTP proposal
 (http://bwtp.wikidot.com/)


SPDY has quite a few problems - but it's still an improvement over AJP and
adds
2-directional and mulitplexing to HTTP - which is what we need. The main
problem with a protocol is getting enough critical mass to overcome it's
problems -
HTTP is not perfect either.

The reasons I suggest using SPDY as a replacement for AJP - and supporting
SPDY
out-of-box in tomcat:
- it does what we need
- there is one browser supporting it - and likely to take advantage of it
- probably there will be at least one large domain using it :-)
- There is also a mod_spdy for apache, and I'm sure there will be more.

Regarding problems, my list is not very big:

- requirements for compression and SSL - we don't need this for
apache-tomcat communication.
But it's easy to extend or configure the protocol to skip it / negotiate.

- right now they only want to do it over 443 ( i.e. use CONNECT method ) to
make sure proxies won't
get in the way. Apparently UPDATE doesn't work in some places. That's also
something we can
extend - and seems to be due more to the desire to get something deployed.

- of course - the current next-protocol SSL extension is out of question for
java - which has problems
even with the SSL session ticket. We might be able to support it with
APR/openssl.

- some cosmetic issues - I would prefer protobufs or thrift instead of
yet-another binary format,
sending the url as a header seems strange, binary header could be smaller,
the server push is also
a bit more complex than it should be. I don't think any matters, working
around http is much worse.

- I'm waiting for the flow control to be finalized - but seems reasonable.




 Extending exiting protocols or just doing a 'quick hacks' like I
 see with many projects trying to address those issues will not
 work in the long run. At the end you will be faced with the
 clean drawing board.


There is never a 'clean drawing board', or a perfect protocol. Any new
protocol needs
to be adopted and needs to deal with existing infrastructure - proxies,
blocked ports,
timeouts in NATs, etc.

BWTP doesn't seem so much better - mostly cosmetics. It's also more focused
as a
websocket - not as a browser-proxy-server protocol. And the list of
implementations and
potential adoption matters a lot for protocols.


( BTW: I write this wearing my own hat, my work on tomcat-lite and spdy is
on my own time, etc )

Costin






 Regards
 --
 ^TM

 -
 To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: dev-h...@tomcat.apache.org




Re: jk/cluster - intelligent systems load

2010-02-17 Thread Mladen Turk

On 02/17/2010 07:37 PM, Costin Manolache wrote:

On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turkmt...@apache.org  wrote:


The reasons I suggest using SPDY as a replacement for AJP - and supporting
SPDY


I have nothing against SPDY and it really looks cool,
but IMHO it's doesn't look and feel like the rest of RFC
protocol specifications.
If you can push those guys to create a well known RFC-like
doc, I'm sure that overall internet community will benefit
from it.

OTOH we are discussing this 'protocol thing' for years instead like
you noticed we concentrate on the tasks we wish to do.
Think if we start from the protocol side we will stay there (nowhere)
for few more years (although SPDY might be even more then we need).


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-17 Thread Costin Manolache
On Wed, Feb 17, 2010 at 11:58 AM, Mladen Turk mt...@apache.org wrote:

 On 02/17/2010 07:37 PM, Costin Manolache wrote:

 On Wed, Feb 17, 2010 at 12:38 AM, Mladen Turkmt...@apache.org  wrote:


 The reasons I suggest using SPDY as a replacement for AJP - and supporting
 SPDY


 I have nothing against SPDY and it really looks cool,
 but IMHO it's doesn't look and feel like the rest of RFC
 protocol specifications.
 If you can push those guys to create a well known RFC-like
 doc, I'm sure that overall internet community will benefit
 from it.


SPDY is still in development - there is an open mailing list and
quite a few proposals/changes/discussions. I would guess
the end result will end up as a RFC-like. Feel free to join the
mailing list and push or volunteer for anything :-)

The implementations - chrome, mod_spdy are also open source
and with ASF-like license.




 OTOH we are discussing this 'protocol thing' for years instead like
 you noticed we concentrate on the tasks we wish to do.
 Think if we start from the protocol side we will stay there (nowhere)
 for few more years (although SPDY might be even more then we need).


I think what matters is having a working SPDY implementation in tomcat,
inter-operable
with chrome/mod_spdy/google. If we start with this we'll probably make
more progress than by discussing protocols :-)


Costin




 Regards
 --
 ^TM

 -
 To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: dev-h...@tomcat.apache.org




Re: jk/cluster - intelligent systems load

2010-02-16 Thread Mark Thomas
On 16/02/2010 07:01, Mladen Turk wrote:
 On 02/16/2010 12:24 AM, Mark Thomas wrote:
 On 15/02/2010 21:52, Filip Hanik - Dev Lists wrote:

 why not just a servlet filter?

 +1. I was going to suggest the same thing.

 
 Why not reusing the clustering code for that.
 It would allow to pre-redirect the requests
 without doing the actual ping for undeployed
 applications or for the instances going down.
 Just having filter would be enough to get the
 info about the single node, but the highest
 latency in mod_jk comes from detecting the failed
 node not the busiest one.

I don't see why the current set of valid cluster nodes could not be
passed back via a header.

That raises the interesting question of if a node goes down, which
component will notice first? The proxy or the cluster? With long
timeouts in the proxy, there is a good chance the cluster will notice
quite some time earlier so there is a definite advantage to this.

The other thing it potentially allows is the cluster to tell the proxy
about which nodes are in the cluster, allowing a more dynamic
configuration. Not sure I'd want to use that in production, but in dev
that could be useful.

All of this / some of this could make a great GSOC project.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-16 Thread Mladen Turk

On 02/16/2010 09:56 AM, Mark Thomas wrote:


I don't see why the current set of valid cluster nodes could not be
passed back via a header.



Exactly.


That raises the interesting question of if a node goes down, which
component will notice first? The proxy or the cluster? With long
timeouts in the proxy, there is a good chance the cluster will notice
quite some time earlier so there is a definite advantage to this.



Both mod_jk and isapi_redirect have now watchdog logic that can
ping backends on regular intervals without user intervetion so
the latency will be around 60 seconds which is IMO acceptable for
node maintenance.
Httpd 2.3+ has mod_hartbeat and mod_watchdog so this can easily
be ported to mod_proxy_ajp/http


The other thing it potentially allows is the cluster to tell the proxy
about which nodes are in the cluster, allowing a more dynamic
configuration. Not sure I'd want to use that in production, but in dev
that could be useful.



Hmm, the zero conf is actually more desired in production then in
dev environments since it allows single point of admin and no need
for webserver reconfig.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-16 Thread Mark Thomas
On 16/02/2010 09:08, Mladen Turk wrote:
 On 02/16/2010 09:56 AM, Mark Thomas wrote:
 The other thing it potentially allows is the cluster to tell the proxy
 about which nodes are in the cluster, allowing a more dynamic
 configuration. Not sure I'd want to use that in production, but in dev
 that could be useful.

 
 Hmm, the zero conf is actually more desired in production then in
 dev environments since it allows single point of admin and no need
 for webserver reconfig.

Its just a personal opinion. I don't like any form of auto-configuration
in production because I always feel I never quite know what it is doing
or, more importantly, what it might do. If folks want to use it in
production then there would obviously be nothing stopping them.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-16 Thread Mladen Turk

On 02/16/2010 10:21 AM, Mark Thomas wrote:

On 16/02/2010 09:08, Mladen Turk wrote:

On 02/16/2010 09:56 AM, Mark Thomas wrote:

The other thing it potentially allows is the cluster to tell the proxy
about which nodes are in the cluster, allowing a more dynamic
configuration. Not sure I'd want to use that in production, but in dev
that could be useful.



Hmm, the zero conf is actually more desired in production then in
dev environments since it allows single point of admin and no need
for webserver reconfig.


Its just a personal opinion. I don't like any form of auto-configuration
in production because I always feel I never quite know what it is doing
or, more importantly, what it might do.


Well it's zero conf inside web server only, so its conf is passed from
Tomcat, and that is certainly something strictly defined inside .xml or
via some manager app.

There was attempt for creating AJP14 protocol, since the current one
lacks some IPC capabilities with the limited packed size being the major
problem. However I'd rather see mod_jk/isapi with http protocol then creating
some AJP extensions or even completely new protocol. Network and processing
speed changed a lot since 90's so now there's almost no performance difference
between AJP and HTTP implementations. With some new HTTP proposals for
connection reusing even that factor could be eliminated in the future.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-16 Thread Costin Manolache
On Tue, Feb 16, 2010 at 1:38 AM, Mladen Turk mt...@apache.org wrote:

 On 02/16/2010 10:21 AM, Mark Thomas wrote:

 On 16/02/2010 09:08, Mladen Turk wrote:

 On 02/16/2010 09:56 AM, Mark Thomas wrote:

 The other thing it potentially allows is the cluster to tell the proxy
 about which nodes are in the cluster, allowing a more dynamic
 configuration. Not sure I'd want to use that in production, but in dev
 that could be useful.


 Hmm, the zero conf is actually more desired in production then in
 dev environments since it allows single point of admin and no need
 for webserver reconfig.


 Its just a personal opinion. I don't like any form of auto-configuration
 in production because I always feel I never quite know what it is doing
 or, more importantly, what it might do.


 Well it's zero conf inside web server only, so its conf is passed from
 Tomcat, and that is certainly something strictly defined inside .xml or
 via some manager app.

 There was attempt for creating AJP14 protocol, since the current one
 lacks some IPC capabilities with the limited packed size being the major
 problem. However I'd rather see mod_jk/isapi with http protocol then
 creating
 some AJP extensions or even completely new protocol. Network and processing
 speed changed a lot since 90's so now there's almost no performance
 difference
 between AJP and HTTP implementations. With some new HTTP proposals for
 connection reusing even that factor could be eliminated in the future.


IMHO bi-directional communication is quite important - there are all kind of
new
protocols ( web socket, SPDY ) that requires it. You can have apache as a
frontend
for those protocols - but than you need AJP or mod_proxy to support it as
well.

I think the main driver for replacing ajp is the 2-directional protocols -
and if we
replace it, why invent a new protocol and not just adopt SPDY, which has all
we need.

There are some issues with SPDY - like the requirement to compress and do
SSL,
but we can easily tweak it.

Regarding auto-conf , smarter load balancing and the other features enabled
by 2-directional
communication - in a large enough cluster they become quite important.

Costin


Re: jk/cluster - intelligent systems load

2010-02-15 Thread Henri Gomez
2010/2/12 Mark Thomas ma...@apache.org:
 On 12/02/2010 15:20, Henri Gomez wrote:
 Hi to all,

 Some times ago, we discuss about mod_jk/cluster and more intelligent
 strategy to be use for the dispatching system.

 One point was to get system load informations about the various Tomcat
 instances involved in a cluster, to send request to the lowest loaded
 Tomcat.

 Hyperic Sigar, http://www.hyperic.com/products/sigar.html, seems to
 provide such informations for various OS.

 Could it be interesting to add such 'extension' to Tomcat, so it could
 be able to send back to jk/cluster so they could get the best
 decisions ?

 New commands could be added to AJP13, as done previously with
 cping/cpong, http://tomcat.apache.org/connectors-doc/ajp/ajpv13ext.html.

 What do you think about ?

 I like the general idea.

Thanks

 My personal favourite in terms of implementation is to pass the
 information via response headers as it allows interoperability with the
 widest possible range of front-end load balancers. The info can be
 passed back with every request or only for requests to a particular URL.

Why not in response headers if it's discarded by the jk side.
These informations shouldn't be send back to the browser (security concerns).

 Then you get into how you measure load. I don't think that there will be
 a one size fits all solution. I imagine that it would need to be fairly
 easy for folks to implement their own load measurements. Using response
 headers makes that simple to do providing we get the definition of that
 header format right.

In response header it will allow both mod_jk (ajp), or mod_proxy
(http) to get such decision.

Question, how to add such informations in Tomcat ?
Extension ?

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-15 Thread Filip Hanik - Dev Lists

On 02/15/2010 04:38 AM, Henri Gomez wrote:

2010/2/12 Mark Thomasma...@apache.org:
   

On 12/02/2010 15:20, Henri Gomez wrote:
 

Hi to all,

Some times ago, we discuss about mod_jk/cluster and more intelligent
strategy to be use for the dispatching system.

One point was to get system load informations about the various Tomcat
instances involved in a cluster, to send request to the lowest loaded
Tomcat.

Hyperic Sigar, http://www.hyperic.com/products/sigar.html, seems to
provide such informations for various OS.

Could it be interesting to add such 'extension' to Tomcat, so it could
be able to send back to jk/cluster so they could get the best
decisions ?

New commands could be added to AJP13, as done previously with
cping/cpong, http://tomcat.apache.org/connectors-doc/ajp/ajpv13ext.html.

What do you think about ?
   

I like the general idea.
 

Thanks

   

My personal favourite in terms of implementation is to pass the
information via response headers as it allows interoperability with the
widest possible range of front-end load balancers. The info can be
passed back with every request or only for requests to a particular URL.
 

Why not in response headers if it's discarded by the jk side.
These informations shouldn't be send back to the browser (security concerns).

   

Then you get into how you measure load. I don't think that there will be
a one size fits all solution. I imagine that it would need to be fairly
easy for folks to implement their own load measurements. Using response
headers makes that simple to do providing we get the definition of that
header format right.
 

In response header it will allow both mod_jk (ajp), or mod_proxy
(http) to get such decision.

Question, how to add such informations in Tomcat ?
Extension ?
   

why not just a servlet filter?


-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org


   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-15 Thread Mark Thomas
On 15/02/2010 21:52, Filip Hanik - Dev Lists wrote:
 On 02/15/2010 04:38 AM, Henri Gomez wrote:
 2010/2/12 Mark Thomasma...@apache.org:
   
 On 12/02/2010 15:20, Henri Gomez wrote:
 
 Hi to all,

 Some times ago, we discuss about mod_jk/cluster and more intelligent
 strategy to be use for the dispatching system.

 One point was to get system load informations about the various Tomcat
 instances involved in a cluster, to send request to the lowest loaded
 Tomcat.

 Hyperic Sigar, http://www.hyperic.com/products/sigar.html, seems to
 provide such informations for various OS.

 Could it be interesting to add such 'extension' to Tomcat, so it could
 be able to send back to jk/cluster so they could get the best
 decisions ?

 New commands could be added to AJP13, as done previously with
 cping/cpong,
 http://tomcat.apache.org/connectors-doc/ajp/ajpv13ext.html.

 What do you think about ?

 I like the general idea.
  
 Thanks

   
 My personal favourite in terms of implementation is to pass the
 information via response headers as it allows interoperability with the
 widest possible range of front-end load balancers. The info can be
 passed back with every request or only for requests to a particular URL.
  
 Why not in response headers if it's discarded by the jk side.
 These informations shouldn't be send back to the browser (security
 concerns).

   
 Then you get into how you measure load. I don't think that there will be
 a one size fits all solution. I imagine that it would need to be fairly
 easy for folks to implement their own load measurements. Using response
 headers makes that simple to do providing we get the definition of that
 header format right.
  
 In response header it will allow both mod_jk (ajp), or mod_proxy
 (http) to get such decision.

 Question, how to add such informations in Tomcat ?
 Extension ?

 why not just a servlet filter?

+1. I was going to suggest the same thing.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-15 Thread Mladen Turk

On 02/16/2010 12:24 AM, Mark Thomas wrote:

On 15/02/2010 21:52, Filip Hanik - Dev Lists wrote:



why not just a servlet filter?


+1. I was going to suggest the same thing.



Why not reusing the clustering code for that.
It would allow to pre-redirect the requests
without doing the actual ping for undeployed
applications or for the instances going down.
Just having filter would be enough to get the
info about the single node, but the highest
latency in mod_jk comes from detecting the failed
node not the busiest one.


Regards
--
^TM

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: jk/cluster - intelligent systems load

2010-02-12 Thread Mark Thomas
On 12/02/2010 15:20, Henri Gomez wrote:
 Hi to all,
 
 Some times ago, we discuss about mod_jk/cluster and more intelligent
 strategy to be use for the dispatching system.
 
 One point was to get system load informations about the various Tomcat
 instances involved in a cluster, to send request to the lowest loaded
 Tomcat.
 
 Hyperic Sigar, http://www.hyperic.com/products/sigar.html, seems to
 provide such informations for various OS.
 
 Could it be interesting to add such 'extension' to Tomcat, so it could
 be able to send back to jk/cluster so they could get the best
 decisions ?
 
 New commands could be added to AJP13, as done previously with
 cping/cpong, http://tomcat.apache.org/connectors-doc/ajp/ajpv13ext.html.
 
 What do you think about ?

I like the general idea.

My personal favourite in terms of implementation is to pass the
information via response headers as it allows interoperability with the
widest possible range of front-end load balancers. The info can be
passed back with every request or only for requests to a particular URL.

Then you get into how you measure load. I don't think that there will be
a one size fits all solution. I imagine that it would need to be fairly
easy for folks to implement their own load measurements. Using response
headers makes that simple to do providing we get the definition of that
header format right.

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org