Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-12 Thread Jules Gosnell
 these ideas with anyone else yet, particularly 
with regards to the relevant JSR, but I guess they need to be thrown 
out into the ring and discussed.


Does everyone think that now is a good time to summarise the various 
discussions that have occurred about clustering into some sort of 
unified structure ? This can then be further discussed and hopefully 
used to carve up work and produce a roadmap ? This is probably over 
ambitious for a 1.0.1 release (it may just be a bug-fix release ?), 
but something that we need to be getting on with.



Jules

 
Regards,
 
Rajith Attapattu.


 
On 1/5/06, *Rajith Attapattu* [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote:




-Original Message-
From: Jules Gosnell [mailto: [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]]
Sent: Monday, December 19, 2005 9:55 AM
To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
Cc: wadi-dev@incubator.apache.org
mailto:wadi-dev@incubator.apache.org; dev@geronimo.apache.org
mailto:dev@geronimo.apache.org
Subject: Re: [wadi-dev] Re: [Geronimo] Clustering

James Strachan wrote:


 On 19 Dec 2005, at 14:14, Jules Gosnell wrote:

 James Strachan wrote:

 On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

 , whether there is other suitable Geronimo or ASF-licensed 
code

 available, or whether we will need to write our own WADI-
 autodiscovery classes. The important thing is to impose as 
few

 dependencies on the client as possible. The client side code
 should  literally be a few lines. Clients using clusters 
should

 not  suddenly find themselves sucking down e.g. the whole of
 activemq,  just to do a once off autodiscovery. Early
versions of
 WADI had its  own autodiscovery code. If we need them, 
they could

 be resuscitated.



 There's no reason why you can't do a simple implementation of
 ActiveCluster which doesn't use ActiveMQ - its just a 
simple API.



 Sure - but I'm talking about the EJB-client side - where we 
just

 want to throw across as thin a line as possible, in order to
haul a
 decent strength cable back. An EJB client would not need the
 ActiveCluster API (I'm not thinking in terms of making EJB 
clients
 fully fledged cluster members), but simply a way of locating 
the

 cluster and requesting a membership snapshot of it.


 Thats exactly what the ActiveCluster API is for :). Though by 
all
 means come up with another API if you can think of a better 
way of

 doing it.

 This could be done by just broadcasting a query packet at a 
well

 known multicast address and waiting for the first well-formed
response.


 Sure - an *implementation* of ActiveCluster API could do exactly
that.

???

well, maybe I'm thinking of the wrong piece of activecluster 
then ?


any piece of code could broadcast a packet... which piece of
activecluster's API are you suggesting here ?

we really are talking about just a remoting proxy which needs to
find,
but not 'join' a cluster.

can you be more specific ?

Jules


 James
 ---
 http://radio.weblogs.com/0112098/



-- Open Source is a self-assembling organism. You dangle a 
piece of
string into a super-saturated solution and a whole 
operating-system

crystallises out around it.

/**
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
*www.coredevelopers.net http://www.coredevelopers.net
*
* Open Source Training  Support.
**/











--
Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it.

/**
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
*www.coredevelopers.net
*
* Open Source Training  Support.
**/



Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-12 Thread Ryan Thomas
 should be distributed to it and maintained by it for the lifetime of the node, just as a jndi entry might be by a distributed JNDI service.
 I haven't gone over these ideas with anyone else yet, particularly with regards to the relevant JSR, but I guess they need to be thrown out into the ring and discussed.
 Does everyone think that now is a good time to summarise the various discussions that have occurred about clustering into some sort of unified structure ? This can then be further discussed and hopefully
 used to carve up work and produce a roadmap ? This is probably over ambitious for a 1.0.1 release (it may just be a bug-fix release ?), but something that we need to be getting on with.
 Jules Regards, Rajith Attapattu.
 On 1/5/06, *Rajith Attapattu* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 wrote: -Original Message- From: Jules Gosnell [mailto: 
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]] Sent: Monday, December 19, 2005 9:55 AM To: 
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] Cc: wadi-dev@incubator.apache.org
 mailto:wadi-dev@incubator.apache.org; dev@geronimo.apache.org mailto:
dev@geronimo.apache.org Subject: Re: [wadi-dev] Re: [Geronimo] Clustering James Strachan wrote:
   On 19 Dec 2005, at 14:14, Jules Gosnell wrote:   James Strachan wrote: 
  On 19 Dec 2005, at 11:53, Jules Gosnell wrote:   , whether there is other suitable Geronimo or ASF-licensed
 code  available, or whether we will need to write our own WADI-  autodiscovery classes. The important thing is to impose as
 few  dependencies on the client as possible. The client side code  shouldliterally be a few lines. Clients using clusters
 should  notsuddenly find themselves sucking down e.g. the whole of  activemq,just to do a once off autodiscovery. Early
 versions of  WADI had itsown autodiscovery code. If we need them, they could  be resuscitated.
 There's no reason why you can't do a simple implementation of  ActiveCluster which doesn't use ActiveMQ - its just a
 simple API.Sure - but I'm talking about the EJB-client side - where we just  want to throw across as thin a line as possible, in order to
 haul a  decent strength cable back. An EJB client would not need the  ActiveCluster API (I'm not thinking in terms of making EJB
 clients  fully fledged cluster members), but simply a way of locating the  cluster and requesting a membership snapshot of it.
Thats exactly what the ActiveCluster API is for :). Though by all  means come up with another API if you can think of a better
 way of  doing it.   This could be done by just broadcasting a query packet at a well  known multicast address and waiting for the first well-formed
 response.Sure - an *implementation* of ActiveCluster API could do exactly that. 
 ??? well, maybe I'm thinking of the wrong piece of activecluster then ? any piece of code could broadcast a packet... which piece of
 activecluster's API are you suggesting here ? we really are talking about just a remoting proxy which needs to find, but not 'join' a cluster.
 can you be more specific ? Jules  James  ---
  http://radio.weblogs.com/0112098/ -- Open Source is a self-assembling organism. You dangle a
 piece of string into a super-saturated solution and a whole operating-system crystallises out around it.
 /** * Jules Gosnell * Partner * Core Developers Network (Europe) * *
www.coredevelopers.net http://www.coredevelopers.net * * Open Source Training  Support.
 **/--Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-systemcrystallises out around it./** * Jules Gosnell * Partner * Core Developers Network (Europe)
 * *www.coredevelopers.net * * Open Source Training  Support. **/
-- Ryan Thomas[EMAIL PROTECTED]


Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-12 Thread Jules Gosnell
 will need to talk to EJBs via OpenEJB's
 proprietary protocol and Trifork's IIOP impl (I'm not on my home
 ground here, so I might be off-base - but that is what the
thread is
 for). HA-JNDI needs a clustering substrate - ActiveSpace best fits
 the bill (JNDI will be small amounts of data that are
write-seldom
 and read-often).

 One other issue that meshes with all of this is deployment. I've
 given some thought to clustered deployment recently and come
to the
 conclusion that a deployment/app/?service? is simply a piece of
 write(/[un]deploy)-seldom, read(/invoke)-often data. A deployment
 may result in a number of entries being merged into HA-JNDI, an
 undeployment may result in a number being removed. If a new node
 joins a cluster (or subset of) that is responsible for
providing an
 HA-service/app, then that node should deploy an instance of
that app
 as it comes up and remove it as it goes down - i.e. a copy of that
 app should be distributed to it and maintained by it for the
 lifetime of the node, just as a jndi entry might be by a
distributed
 JNDI service.

 I haven't gone over these ideas with anyone else yet, particularly
 with regards to the relevant JSR, but I guess they need to be
thrown
 out into the ring and discussed.

 Does everyone think that now is a good time to summarise the
various
 discussions that have occurred about clustering into some sort of
 unified structure ? This can then be further discussed and
hopefully
 used to carve up work and produce a roadmap ? This is probably
over
 ambitious for a 1.0.1 release (it may just be a bug-fix
release ?),
 but something that we need to be getting on with.


 Jules


 Regards,

 Rajith Attapattu.


 On 1/5/06, *Rajith Attapattu* [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED] wrote:



 -Original Message-
 From: Jules Gosnell [mailto: [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]]
 Sent: Monday, December 19, 2005 9:55 AM
 To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 Cc: wadi-dev@incubator.apache.org
mailto:wadi-dev@incubator.apache.org
 mailto:wadi-dev@incubator.apache.org
mailto:wadi-dev@incubator.apache.org; dev@geronimo.apache.org
mailto:dev@geronimo.apache.org
 mailto: dev@geronimo.apache.org
mailto:dev@geronimo.apache.org
 Subject: Re: [wadi-dev] Re: [Geronimo] Clustering

 James Strachan wrote:

 
  On 19 Dec 2005, at 14:14, Jules Gosnell wrote:
 
  James Strachan wrote:
 
  On 19 Dec 2005, at 11:53, Jules Gosnell wrote:
 
  , whether there is other suitable Geronimo or
ASF-licensed
 code
  available, or whether we will need to write our own
WADI-
  autodiscovery classes. The important thing is to
impose as
 few
  dependencies on the client as possible. The client
side code
  should  literally be a few lines. Clients using
clusters
 should
  not  suddenly find themselves sucking down e.g. the
whole of
  activemq,  just to do a once off autodiscovery. Early
 versions of
  WADI had its  own autodiscovery code. If we need them,
 they could
  be resuscitated.
 
 
 
  There's no reason why you can't do a simple
implementation of
  ActiveCluster which doesn't use ActiveMQ - its just a
 simple API.
 
 
  Sure - but I'm talking about the EJB-client side -
where we
 just
  want to throw across as thin a line as possible, in
order to
 haul a
  decent strength cable back. An EJB client would not
need the
  ActiveCluster API (I'm not thinking in terms of making EJB
 clients
  fully fledged cluster members), but simply a way of
locating
 the
  cluster and requesting a membership snapshot of it.
 
 
  Thats exactly what the ActiveCluster API is for :).
Though by
 all
  means come up with another API if you can think of a
better
 way of
  doing it.
 
  This could be done by just broadcasting a query packet
at a
 well
  known multicast address and waiting for the first
well-formed
 response.
 
 
  Sure - an *implementation* of ActiveCluster API could
do exactly
 that.
 
 ???

 well, maybe I'm thinking of the wrong piece of activecluster
 then ?

 any piece of code

Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-12 Thread Ryan Thomas
 - but that is what the
 thread is  for). HA-JNDI needs a clustering substrate - ActiveSpace best fits  the bill (JNDI will be small amounts of data that are write-seldom
  and read-often).   One other issue that meshes with all of this is deployment. I've  given some thought to clustered deployment recently and come
 to the  conclusion that a deployment/app/?service? is simply a piece of  write(/[un]deploy)-seldom, read(/invoke)-often data. A deployment  may result in a number of entries being merged into HA-JNDI, an
  undeployment may result in a number being removed. If a new node  joins a cluster (or subset of) that is responsible for providing an  HA-service/app, then that node should deploy an instance of
 that app  as it comes up and remove it as it goes down - i.e. a copy of that  app should be distributed to it and maintained by it for the  lifetime of the node, just as a jndi entry might be by a
 distributed  JNDI service.   I haven't gone over these ideas with anyone else yet, particularly  with regards to the relevant JSR, but I guess they need to be
 thrown  out into the ring and discussed.   Does everyone think that now is a good time to summarise the various  discussions that have occurred about clustering into some sort of
  unified structure ? This can then be further discussed and hopefully  used to carve up work and produce a roadmap ? This is probably over  ambitious for a 
1.0.1 release (it may just be a bug-fix release ?),  but something that we need to be getting on with.Jules
Regards,   Rajith Attapattu.  
  On 1/5/06, *Rajith Attapattu* [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
  mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 wrote: -Original Message-  From: Jules Gosnell [mailto: 
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]  mailto:
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]]  Sent: Monday, December 19, 2005 9:55 AM  To: 
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 mailto:[EMAIL PROTECTED]  Cc: wadi-dev@incubator.apache.org mailto:
wadi-dev@incubator.apache.org  mailto:wadi-dev@incubator.apache.org mailto:
wadi-dev@incubator.apache.org; dev@geronimo.apache.org mailto:
dev@geronimo.apache.org  mailto: dev@geronimo.apache.org mailto:dev@geronimo.apache.org
  Subject: Re: [wadi-dev] Re: [Geronimo] Clustering   James Strachan wrote:   
   On 19 Dec 2005, at 14:14, Jules Gosnell wrote: James Strachan wrote:  
   On 19 Dec 2005, at 11:53, Jules Gosnell wrote: , whether there is other suitable Geronimo or
 ASF-licensed  code   available, or whether we will need to write our own WADI-   autodiscovery classes. The important thing is to
 impose as  few   dependencies on the client as possible. The client side code   shouldliterally be a few lines. Clients using
 clusters  should   notsuddenly find themselves sucking down e.g. the whole of   activemq,just to do a once off autodiscovery. Early
  versions of   WADI had itsown autodiscovery code. If we need them,  they could   be resuscitated.
 There's no reason why you can't do a simple
 implementation of   ActiveCluster which doesn't use ActiveMQ - its just a  simple API.
   Sure - but I'm talking about the EJB-client side - where we  just   want to throw across as thin a line as possible, in
 order to  haul a   decent strength cable back. An EJB client would not need the   ActiveCluster API (I'm not thinking in terms of making EJB
  clients   fully fledged cluster members), but simply a way of locating  the   cluster and requesting a membership snapshot of it.
   Thats exactly what the ActiveCluster API is for :). Though by  all
   means come up with another API if you can think of a better  way of   doing it.  
   This could be done by just broadcasting a query packet at a  well   known multicast address and waiting for the first
 well-formed  response.   Sure - an *implementation* of ActiveCluster API could
 do exactly  that.???   well, maybe I'm thinking of the wrong piece of activecluster
  then ?   any piece of code could broadcast a packet... which piece of  activecluster's API are you suggesting here ?
   we really are talking about just a remoting proxy which needs to  find,  but not 'join' a cluster.
   can you be more specific ?   Jules James
   ---   http://radio.weblogs.com/0112098/  
   -- Open Source is a self-assembling organism. You dangle a  piece of  string into a super-saturated solution and a whole
  operating-system  crystallises out around it.   /**  * Jules Gosnell
  * Partner  * Core Developers Network (Europe)  *  * 
www.coredevelopers.net http://www.coredevelopers.net http://www.coredevelopers.net  *
  * Open Source Training  Support.  **/   
-- Open Source is a self-assembling organism. You dangle a piece of string into a super-saturated solution and a whole operating-system
 crystallises out around it. /** * Jules Gosnell * Partner

Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-06 Thread Jules Gosnell

Rajith Attapattu wrote:


Hmm,  again we have stopped the discussion :). Lets get it started again.


OK - I will pick it up. I've been a bit preoccupied with WADI for a 
while, so apologies for letting this one go cold.


 
So can we all come to some agreement (with more discussion) on which 
direction we might be taking !!
 
Like merging ActiveCluster and WADI or getting best of both worlds ?


hmmm...

not sure I follow you here...

are you suggesting merging them because you view them as (a) competing 
or (b) complimentary technologies ?


If (a), then I need to put you straight. WADI is a technology that 
builds on top of ActiveCluster (AC). AC provides basic clustering 
fn-ality (most importantly, a membership abstraction along with 
notifications of membership change).


If (b), then, whilst WADI and AC could be merged, the current separation 
is along clear and modular lines and I see no advantage to collapsing 
the two projects into one.


I think that there is far more reason to consider a merger between 
ActiveSpace (AS). AS is a project that also builds upon ActiveCluster to 
provide distributed caching fn-ality. The fundamental difference (and I 
stand open to correction from James here - I'm not very knowledgeable 
about AS) is that AS provides a host of optimistic caching strategies, 
whilst WADI (currently) provides a single, pessimistic strategy 
specifically designed for the management of state in web and ejb tiers, 
where the sum of the state in the tier is too great to be held by any 
single node. Because WADI and AC fulfil similar roles, I think that 
there is more to be gained by unifying their APIs and code-sharing 
between them. James, if you are reading, what do you think ?


 
And also if we can define expectations/requirments for what we like 
for the next possible release (1.01 or whatever) in terms of 
clustering would give folks like me more direction as to where we 
should concentrate on?


Well, I think that there has been plenty of discussion, but you are 
correct in pointing out that there is no grand unified architecture 
document out there. I did start on my suggestions towards one quietly a 
while ago, but canned them. Perhaps enough discussion has now occurred 
to put up a straw man ? Is this what you are looking for ?


 
If we decide on a direction maybe a few of us can start on a few 
prototypes and see what works best for Geronimo.


Rajith, judging from our conversations on this list, your interest seems 
to lie in JNDI clustering ? I think that we need to get you, Gianny 
Damour (working on OpenEJB/WADI integration), James Strachan 
(ActiveSpace) and Kresten Krab (Trifork guy involved in IIOP stuff, 
which needs to be worked into equation) into a thread.


OpenEJB will need cluster aware client-side proxies, delivered from 
HA-JNDI. These proxies will need to talk to EJBs via OpenEJB's 
proprietary protocol and Trifork's IIOP impl (I'm not on my home ground 
here, so I might be off-base - but that is what the thread is for). 
HA-JNDI needs a clustering substrate - ActiveSpace best fits the bill 
(JNDI will be small amounts of data that are write-seldom and read-often).


One other issue that meshes with all of this is deployment. I've given 
some thought to clustered deployment recently and come to the conclusion 
that a deployment/app/?service? is simply a piece of 
write(/[un]deploy)-seldom, read(/invoke)-often data. A deployment may 
result in a number of entries being merged into HA-JNDI, an undeployment 
may result in a number being removed. If a new node joins a cluster (or 
subset of) that is responsible for providing an HA-service/app, then 
that node should deploy an instance of that app as it comes up and 
remove it as it goes down - i.e. a copy of that app should be 
distributed to it and maintained by it for the lifetime of the node, 
just as a jndi entry might be by a distributed JNDI service.


I haven't gone over these ideas with anyone else yet, particularly with 
regards to the relevant JSR, but I guess they need to be thrown out into 
the ring and discussed.


Does everyone think that now is a good time to summarise the various 
discussions that have occurred about clustering into some sort of 
unified structure ? This can then be further discussed and hopefully 
used to carve up work and produce a roadmap ? This is probably over 
ambitious for a 1.0.1 release (it may just be a bug-fix release ?), but 
something that we need to be getting on with.



Jules

 
Regards,
 
Rajith Attapattu.


 
On 1/5/06, *Rajith Attapattu* [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote:




-Original Message-
From: Jules Gosnell [mailto: [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]]
Sent: Monday, December 19, 2005 9:55 AM
To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
Cc: wadi-dev@incubator.apache.org
mailto:wadi-dev@incubator.apache.org; dev@geronimo.apache.org
mailto:dev@geronimo.apache.org
Subject: Re: [wadi-dev

Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-06 Thread Jules Gosnell
 and discussed.


Does everyone think that now is a good time to summarise the various 
discussions that have occurred about clustering into some sort of 
unified structure ? This can then be further discussed and hopefully 
used to carve up work and produce a roadmap ? This is probably over 
ambitious for a 1.0.1 release (it may just be a bug-fix release ?), 
but something that we need to be getting on with.



Jules

 
Regards,
 
Rajith Attapattu.


 
On 1/5/06, *Rajith Attapattu* [EMAIL PROTECTED] 
mailto:[EMAIL PROTECTED] wrote:




-Original Message-
From: Jules Gosnell [mailto: [EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]]
Sent: Monday, December 19, 2005 9:55 AM
To: [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
Cc: wadi-dev@incubator.apache.org
mailto:wadi-dev@incubator.apache.org; dev@geronimo.apache.org
mailto:dev@geronimo.apache.org
Subject: Re: [wadi-dev] Re: [Geronimo] Clustering

James Strachan wrote:


 On 19 Dec 2005, at 14:14, Jules Gosnell wrote:

 James Strachan wrote:

 On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

 , whether there is other suitable Geronimo or ASF-licensed 
code

 available, or whether we will need to write our own WADI-
 autodiscovery classes. The important thing is to impose as few
 dependencies on the client as possible. The client side code
 should  literally be a few lines. Clients using clusters 
should

 not  suddenly find themselves sucking down e.g. the whole of
 activemq,  just to do a once off autodiscovery. Early
versions of
 WADI had its  own autodiscovery code. If we need them, they 
could

 be resuscitated.



 There's no reason why you can't do a simple implementation of
 ActiveCluster which doesn't use ActiveMQ - its just a simple 
API.



 Sure - but I'm talking about the EJB-client side - where we just
 want to throw across as thin a line as possible, in order to
haul a
 decent strength cable back. An EJB client would not need the
 ActiveCluster API (I'm not thinking in terms of making EJB 
clients

 fully fledged cluster members), but simply a way of locating the
 cluster and requesting a membership snapshot of it.


 Thats exactly what the ActiveCluster API is for :). Though by all
 means come up with another API if you can think of a better 
way of

 doing it.

 This could be done by just broadcasting a query packet at a well
 known multicast address and waiting for the first well-formed
response.


 Sure - an *implementation* of ActiveCluster API could do exactly
that.

???

well, maybe I'm thinking of the wrong piece of activecluster then ?

any piece of code could broadcast a packet... which piece of
activecluster's API are you suggesting here ?

we really are talking about just a remoting proxy which needs to
find,
but not 'join' a cluster.

can you be more specific ?

Jules


 James
 ---
 http://radio.weblogs.com/0112098/



-- Open Source is a self-assembling organism. You dangle a 
piece of

string into a super-saturated solution and a whole operating-system
crystallises out around it.

/**
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
*www.coredevelopers.net http://www.coredevelopers.net
*
* Open Source Training  Support.
**/








--
Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it.

/**
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
*www.coredevelopers.net
*
* Open Source Training  Support.
**/



Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-06 Thread Rajith Attapattu
) into a thread. OpenEJB will need cluster aware client-side proxies, delivered from
 HA-JNDI. These proxies will need to talk to EJBs via OpenEJB's proprietary protocol and Trifork's IIOP impl (I'm not on my home ground here, so I might be off-base - but that is what the thread is
 for). HA-JNDI needs a clustering substrate - ActiveSpace best fits the bill (JNDI will be small amounts of data that are write-seldom and read-often). One other issue that meshes with all of this is deployment. I've
 given some thought to clustered deployment recently and come to the conclusion that a deployment/app/?service? is simply a piece of write(/[un]deploy)-seldom, read(/invoke)-often data. A deployment may
 result in a number of entries being merged into HA-JNDI, an undeployment may result in a number being removed. If a new node joins a cluster (or subset of) that is responsible for providing an
 HA-service/app, then that node should deploy an instance of that app as it comes up and remove it as it goes down - i.e. a copy of that app should be distributed to it and maintained by it for the lifetime
 of the node, just as a jndi entry might be by a distributed JNDI service. I haven't gone over these ideas with anyone else yet, particularly with regards to the relevant JSR, but I guess they need to be thrown
 out into the ring and discussed. Does everyone think that now is a good time to summarise the various discussions that have occurred about clustering into some sort of unified structure ? This can then be further discussed and hopefully
 used to carve up work and produce a roadmap ? This is probably over ambitious for a 1.0.1 release (it may just be a bug-fix release ?), but something that we need to be getting on with.
 Jules Regards, Rajith Attapattu. On 1/5/06, *Rajith Attapattu* 
[EMAIL PROTECTED] mailto:[EMAIL PROTECTED] wrote:
 -Original Message- From: Jules Gosnell [mailto: [EMAIL PROTECTED] mailto:
[EMAIL PROTECTED]] Sent: Monday, December 19, 2005 9:55 AM To: [EMAIL PROTECTED] mailto:
[EMAIL PROTECTED] Cc: wadi-dev@incubator.apache.org mailto:wadi-dev@incubator.apache.org
; dev@geronimo.apache.org mailto:dev@geronimo.apache.org Subject: Re: [wadi-dev] Re: [Geronimo] Clustering
 James Strachan wrote:   On 19 Dec 2005, at 14:14, Jules Gosnell wrote:   James Strachan wrote:
   On 19 Dec 2005, at 11:53, Jules Gosnell wrote:   , whether there is other suitable Geronimo or ASF-licensed
 code  available, or whether we will need to write our own WADI-  autodiscovery classes. The important thing is to impose as few  dependencies on the client as possible. The client side code
  shouldliterally be a few lines. Clients using clusters should  notsuddenly find themselves sucking down e.g. the whole of  activemq,just to do a once off autodiscovery. Early
 versions of  WADI had itsown autodiscovery code. If we need them, they could  be resuscitated. 
There's no reason why you can't do a simple implementation of  ActiveCluster which doesn't use ActiveMQ - its just a simple
 API.Sure - but I'm talking about the EJB-client side - where we just  want to throw across as thin a line as possible, in order to
 haul a  decent strength cable back. An EJB client would not need the  ActiveCluster API (I'm not thinking in terms of making EJB clients
  fully fledged cluster members), but simply a way of locating the  cluster and requesting a membership snapshot of it.  
  Thats exactly what the ActiveCluster API is for :). Though by all  means come up with another API if you can think of a better way of  doing it.
   This could be done by just broadcasting a query packet at a well  known multicast address and waiting for the first well-formed response.
Sure - an *implementation* of ActiveCluster API could do exactly that.  ???
 well, maybe I'm thinking of the wrong piece of activecluster then ? any piece of code could broadcast a packet... which piece of activecluster's API are you suggesting here ?
 we really are talking about just a remoting proxy which needs to find, but not 'join' a cluster. can you be more specific ?
 Jules  James  ---  http://radio.weblogs.com/0112098/
 -- Open Source is a self-assembling organism. You dangle a piece of string into a super-saturated solution and a whole operating-system
 crystallises out around it. /** * Jules Gosnell * Partner * Core Developers Network (Europe)
 * *www.coredevelopers.net http://www.coredevelopers.net *
 * Open Source Training  Support. **/--Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-systemcrystallises out around it./*** Jules Gosnell* Partner* Core Developers Network (Europe)
**www.coredevelopers.net** Open Source Training  Support.**/


Re: [wadi-dev] Re: [Geronimo] Clustering

2006-01-05 Thread Rajith Attapattu
Hmm, again we have stopped the discussion :). Lets get it started again.

So can we all come to some agreement (with more discussion)on which direction we might be taking !!

Like merging ActiveCluster and WADI or getting best of both worlds ?

And also if we can define expectations/requirments for what we like for the next possible release (1.01 or whatever)in terms of clustering would give folks like me more direction as to where we should concentrate on?


If we decide on a direction maybe a few of us can start on a few prototypes and see what works best for Geronimo.

Regards,

Rajith Attapattu.
On 1/5/06, Rajith Attapattu [EMAIL PROTECTED] wrote:
-Original Message-From: Jules Gosnell [mailto:
[EMAIL PROTECTED]]Sent: Monday, December 19, 2005 9:55 AMTo: [EMAIL PROTECTED]Cc: wadi-dev@incubator.apache.org
; dev@geronimo.apache.orgSubject: Re: [wadi-dev] Re: [Geronimo] ClusteringJames Strachan wrote: On 19 Dec 2005, at 14:14, Jules Gosnell wrote:
 James Strachan wrote: On 19 Dec 2005, at 11:53, Jules Gosnell wrote: , whether there is other suitable Geronimo or ASF-licensed code
 available, or whether we will need to write our own WADI- autodiscovery classes. The important thing is to impose as few dependencies on the client as possible. The client side code
 shouldliterally be a few lines. Clients using clusters should notsuddenly find themselves sucking down e.g. the whole of activemq,just to do a once off autodiscovery. Early versions of
 WADI had itsown autodiscovery code. If we need them, they could be resuscitated. There's no reason why you can't do a simple implementation of
 ActiveCluster which doesn't use ActiveMQ - its just a simple API. Sure - but I'm talking about the EJB-client side - where we just want to throw across as thin a line as possible, in order to haul a
 decent strength cable back. An EJB client would not need the ActiveCluster API (I'm not thinking in terms of making EJB clients fully fledged cluster members), but simply a way of locating the
 cluster and requesting a membership snapshot of it. Thats exactly what the ActiveCluster API is for :). Though by all means come up with another API if you can think of a better way of
 doing it. This could be done by just broadcasting a query packet at a well known multicast address and waiting for the first well-formedresponse. Sure - an *implementation* of ActiveCluster API could do exactly that.
???well, maybe I'm thinking of the wrong piece of activecluster then ?any piece of code could broadcast a packet... which piece ofactivecluster's API are you suggesting here ?we really are talking about just a remoting proxy which needs to find,
but not 'join' a cluster.can you be more specific ?Jules James --- http://radio.weblogs.com/0112098/--
Open Source is a self-assembling organism. You dangle a piece ofstring into a super-saturated solution and a whole operating-systemcrystallises out around it./**
* Jules Gosnell* Partner* Core Developers Network (Europe)**www.coredevelopers.net** Open Source Training  Support.**/



Re: [wadi-dev] Re: [Geronimo] Clustering

2005-12-19 Thread Jules Gosnell

James Strachan wrote:



On 19 Dec 2005, at 14:14, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

, whether there is other suitable Geronimo or ASF-licensed code   
available, or whether we will need to write our own WADI-  
autodiscovery classes. The important thing is to impose as few   
dependencies on the client as possible. The client side code  
should  literally be a few lines. Clients using clusters should  
not  suddenly find themselves sucking down e.g. the whole of  
activemq,  just to do a once off autodiscovery. Early versions of  
WADI had its  own autodiscovery code. If we need them, they could  
be resuscitated.




There's no reason why you can't do a simple implementation of   
ActiveCluster which doesn't use ActiveMQ - its just a simple API.



Sure - but I'm talking about the EJB-client side - where we just  
want to throw across as thin a line as possible, in order to haul a  
decent strength cable back. An EJB client would not need the  
ActiveCluster API (I'm not thinking in terms of making EJB clients  
fully fledged cluster members), but simply a way of locating the  
cluster and requesting a membership snapshot of it.



Thats exactly what the ActiveCluster API is for :). Though by all  
means come up with another API if you can think of a better way of  
doing it.


This could be done by just broadcasting a query packet at a well  
known multicast address and waiting for the first well-formed  response.



Sure - an *implementation* of ActiveCluster API could do exactly that.


???

well, maybe I'm thinking of the wrong piece of activecluster then ?

any piece of code could broadcast a packet... which piece of 
activecluster's API are you suggesting here ?


we really are talking about just a remoting proxy which needs to find, 
but not 'join' a cluster.


can you be more specific ?

Jules



James
---
http://radio.weblogs.com/0112098/




--
Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it.

/**
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
*www.coredevelopers.net
*
* Open Source Training  Support.
**/



Re: [wadi-dev] Re: [Geronimo] Clustering

2005-12-19 Thread James Strachan

On 19 Dec 2005, at 14:54, Jules Gosnell wrote:

James Strachan wrote:

On 19 Dec 2005, at 14:14, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

, whether there is other suitable Geronimo or ASF-licensed  
code   available, or whether we will need to write our own  
WADI-  autodiscovery classes. The important thing is to impose  
as few   dependencies on the client as possible. The client  
side code  should  literally be a few lines. Clients using  
clusters should  not  suddenly find themselves sucking down  
e.g. the whole of  activemq,  just to do a once off  
autodiscovery. Early versions of  WADI had its  own  
autodiscovery code. If we need them, they could  be resuscitated.




There's no reason why you can't do a simple implementation of
ActiveCluster which doesn't use ActiveMQ - its just a simple API.



Sure - but I'm talking about the EJB-client side - where we just   
want to throw across as thin a line as possible, in order to haul  
a  decent strength cable back. An EJB client would not need the   
ActiveCluster API (I'm not thinking in terms of making EJB  
clients  fully fledged cluster members), but simply a way of  
locating the  cluster and requesting a membership snapshot of it.



Thats exactly what the ActiveCluster API is for :). Though by all   
means come up with another API if you can think of a better way  
of  doing it.


This could be done by just broadcasting a query packet at a well   
known multicast address and waiting for the first well-formed   
response.



Sure - an *implementation* of ActiveCluster API could do exactly  
that.



???

well, maybe I'm thinking of the wrong piece of activecluster then ?

any piece of code could broadcast a packet... which piece of  
activecluster's API are you suggesting here ?



You said...


but simply a way of locating the  cluster and requesting a  
membership snapshot of it.


The entire purpose of the ActiveCluster APi is to locate members in  
clusters  be informed when they go down. There's a zillion ways of  
implementing this - AC just tries to be a common, simple API we can  
share.



we really are talking about just a remoting proxy which needs to  
find, but not 'join' a cluster.


AC can be used purely to discover nodes and choose which one to use  
as a server. The local in-JVM node does not actually have to actually  
advertise itself to members of the cluster if it doesn't wish to -  
thats an implementation detail. (e.g. if you only want servers to be  
discoverable but keep clients invisible).


Using the EJB client and server side example - you may want to know  
which clients are connected to what servers so that you can load  
balance; so even though you may not consider clients as 'members of  
the server cluster' being able to know who is connected to who is  
quite useful. EJB clients could expose statistics that can be used to  
help choose the right server a new node should join.


But whatever - if you don't wanna use the AC API its no big deal; use  
whatever abstraction you see fit - I just wanted to explain the point  
of AC; for discovering nodes in a cluster and being able to choose  
which one to communicate with; it can be implemented any way you like  
(simple multicast stuff, using HTTP, LDAP stuff etc).


Maybe it'd help if we separated AC into the 'messaging' part and the  
'discovery' part?


James
---
http://radio.weblogs.com/0112098/



Re: [wadi-dev] Re: [Geronimo] Clustering

2005-12-19 Thread Jules Gosnell

James Strachan wrote:


On 19 Dec 2005, at 14:54, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 14:14, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

, whether there is other suitable Geronimo or ASF-licensed  
code   available, or whether we will need to write our own  
WADI-  autodiscovery classes. The important thing is to impose  
as few   dependencies on the client as possible. The client  side 
code  should  literally be a few lines. Clients using  clusters 
should  not  suddenly find themselves sucking down  e.g. the 
whole of  activemq,  just to do a once off  autodiscovery. Early 
versions of  WADI had its  own  autodiscovery code. If we need 
them, they could  be resuscitated.





There's no reason why you can't do a simple implementation of
ActiveCluster which doesn't use ActiveMQ - its just a simple API.




Sure - but I'm talking about the EJB-client side - where we just   
want to throw across as thin a line as possible, in order to haul  
a  decent strength cable back. An EJB client would not need the   
ActiveCluster API (I'm not thinking in terms of making EJB  
clients  fully fledged cluster members), but simply a way of  
locating the  cluster and requesting a membership snapshot of it.




Thats exactly what the ActiveCluster API is for :). Though by all   
means come up with another API if you can think of a better way  of  
doing it.


This could be done by just broadcasting a query packet at a well   
known multicast address and waiting for the first well-formed   
response.




Sure - an *implementation* of ActiveCluster API could do exactly  that.


???

well, maybe I'm thinking of the wrong piece of activecluster then ?

any piece of code could broadcast a packet... which piece of  
activecluster's API are you suggesting here ?




You said...


but simply a way of locating the  cluster and requesting a  
membership snapshot of it.




The entire purpose of the ActiveCluster APi is to locate members in  
clusters  be informed when they go down. There's a zillion ways of  
implementing this - AC just tries to be a common, simple API we can  
share.


Sure




we really are talking about just a remoting proxy which needs to  
find, but not 'join' a cluster.



AC can be used purely to discover nodes and choose which one to use  
as a server. The local in-JVM node does not actually have to actually  
advertise itself to members of the cluster if it doesn't wish to -  
thats an implementation detail. (e.g. if you only want servers to be  
discoverable but keep clients invisible).


OK - I see - but I'm not sure that I am drawn to this approach :-)



Using the EJB client and server side example - you may want to know  
which clients are connected to what servers so that you can load  
balance; so even though you may not consider clients as 'members of  
the server cluster' being able to know who is connected to who is  
quite useful. EJB clients could expose statistics that can be used to  
help choose the right server a new node should join.


understood.



But whatever - if you don't wanna use the AC API its no big deal; use  
whatever abstraction you see fit - I just wanted to explain the point  
of AC; for discovering nodes in a cluster and being able to choose  
which one to communicate with; it can be implemented any way you like  
(simple multicast stuff, using HTTP, LDAP stuff etc).


Its not that I don't want to use AC client side - its that I don't see 
clients as being members of the cluster in any way - passive or active.


but, I guess this opens up an interesting topic...

I'm thinking in terms of relatively large numbers of clients to servers.

I wasn't thinking in terms of clients receiving any notifications about 
changes in cluster membership or state location.


This is probably because WADI comes from a background in which the 
client is completely dumb, but also because a server may support many 
thousands of clients. I see the overhead of trying to pessimistically 
keep these clients in sync with developments within the cluster as 
outweighing the benefit. The architecture that I have in mind is more 
optimistic. It waits for something exceptional to happen - e.g. some 
state migrating as its node shuts down followed by a client for that 
state trying to make a call to it - then pays a small but exceptional 
cost in terms of a fail-over (which may become an autodiscovery in the 
even more exceptional case that all nodes in the cluster have been 
cycled between successive calls from the client).


Thus, in the usecase that I expect, I think that the optimistic approach 
will be more efficient than the more pessimistic. However you should 
expect the unexpected - right :-)


I guess that this way of thinking has prevented me from seeing clients 
as cluster members when perhaps they might be seen that way ?


Perhaps we could look at how AC impls auto discover cluster members, 
then 

Re: [wadi-dev] Re: [Geronimo] Clustering

2005-12-19 Thread James Strachan

On 19 Dec 2005, at 17:25, Jules Gosnell wrote:

James Strachan wrote:

On 19 Dec 2005, at 14:54, Jules Gosnell wrote:

James Strachan wrote:

On 19 Dec 2005, at 14:14, Jules Gosnell wrote:

James Strachan wrote:

On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

, whether there is other suitable Geronimo or ASF-licensed   
code   available, or whether we will need to write our own   
WADI-  autodiscovery classes. The important thing is to  
impose  as few   dependencies on the client as possible. The  
client  side code  should  literally be a few lines. Clients  
using  clusters should  not  suddenly find themselves sucking  
down  e.g. the whole of  activemq,  just to do a once off   
autodiscovery. Early versions of  WADI had its  own   
autodiscovery code. If we need them, they could  be  
resuscitated.





There's no reason why you can't do a simple implementation  
ofActiveCluster which doesn't use ActiveMQ - its just a  
simple API.




Sure - but I'm talking about the EJB-client side - where we  
just   want to throw across as thin a line as possible, in  
order to haul  a  decent strength cable back. An EJB client  
would not need the   ActiveCluster API (I'm not thinking in  
terms of making EJB  clients  fully fledged cluster members),  
but simply a way of  locating the  cluster and requesting a  
membership snapshot of it.




Thats exactly what the ActiveCluster API is for :). Though by  
all   means come up with another API if you can think of a  
better way  of  doing it.


This could be done by just broadcasting a query packet at a  
well   known multicast address and waiting for the first well- 
formed   response.




Sure - an *implementation* of ActiveCluster API could do  
exactly  that.



???

well, maybe I'm thinking of the wrong piece of activecluster then ?

any piece of code could broadcast a packet... which piece of   
activecluster's API are you suggesting here ?




You said...


but simply a way of locating the  cluster and requesting a   
membership snapshot of it.




The entire purpose of the ActiveCluster APi is to locate members  
in  clusters  be informed when they go down. There's a zillion  
ways of  implementing this - AC just tries to be a common, simple  
API we can  share.


Sure




we really are talking about just a remoting proxy which needs to   
find, but not 'join' a cluster.



AC can be used purely to discover nodes and choose which one to  
use  as a server. The local in-JVM node does not actually have to  
actually  advertise itself to members of the cluster if it doesn't  
wish to -  thats an implementation detail. (e.g. if you only want  
servers to be  discoverable but keep clients invisible).


OK - I see - but I'm not sure that I am drawn to this approach :-)


Why?


Using the EJB client and server side example - you may want to  
know  which clients are connected to what servers so that you can  
load  balance; so even though you may not consider clients as  
'members of  the server cluster' being able to know who is  
connected to who is  quite useful. EJB clients could expose  
statistics that can be used to  help choose the right server a new  
node should join.


understood.



But whatever - if you don't wanna use the AC API its no big deal;  
use  whatever abstraction you see fit - I just wanted to explain  
the point  of AC; for discovering nodes in a cluster and being  
able to choose  which one to communicate with; it can be  
implemented any way you like  (simple multicast stuff, using HTTP,  
LDAP stuff etc).


Its not that I don't want to use AC client side - its that I don't  
see clients as being members of the cluster in any way - passive or  
active.


but, I guess this opens up an interesting topic...

I'm thinking in terms of relatively large numbers of clients to  
servers.


I wasn't thinking in terms of clients receiving any notifications  
about changes in cluster membership or state location.


This is probably because WADI comes from a background in which the  
client is completely dumb, but also because a server may support  
many thousands of clients. I see the overhead of trying to  
pessimistically keep these clients in sync with developments within  
the cluster as outweighing the benefit.


Who said anything about state synchronization? We're talking  
discovery here.



The architecture that I have in mind is more optimistic. It waits  
for something exceptional to happen - e.g. some state migrating as  
its node shuts down followed by a client for that state trying to  
make a call to it - then pays a small but exceptional cost in terms  
of a fail-over (which may become an autodiscovery in the even more  
exceptional case that all nodes in the cluster have been cycled  
between successive calls from the client).


Thus, in the usecase that I expect, I think that the optimistic  
approach will be more efficient than the more pessimistic. However  
you should expect the unexpected - right :-)


I guess that this 

Re: [wadi-dev] Re: [Geronimo] Clustering

2005-12-19 Thread Jules Gosnell

James Strachan wrote:


On 19 Dec 2005, at 17:25, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 14:54, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 14:14, Jules Gosnell wrote:


James Strachan wrote:


On 19 Dec 2005, at 11:53, Jules Gosnell wrote:

, whether there is other suitable Geronimo or ASF-licensed   
code   available, or whether we will need to write our own   
WADI-  autodiscovery classes. The important thing is to  
impose  as few   dependencies on the client as possible. The  
client  side code  should  literally be a few lines. Clients  
using  clusters should  not  suddenly find themselves sucking  
down  e.g. the whole of  activemq,  just to do a once off   
autodiscovery. Early versions of  WADI had its  own   
autodiscovery code. If we need them, they could  be  resuscitated.






There's no reason why you can't do a simple implementation  
ofActiveCluster which doesn't use ActiveMQ - its just a  
simple API.





Sure - but I'm talking about the EJB-client side - where we  
just   want to throw across as thin a line as possible, in  order 
to haul  a  decent strength cable back. An EJB client  would not 
need the   ActiveCluster API (I'm not thinking in  terms of 
making EJB  clients  fully fledged cluster members),  but simply 
a way of  locating the  cluster and requesting a  membership 
snapshot of it.





Thats exactly what the ActiveCluster API is for :). Though by  
all   means come up with another API if you can think of a  better 
way  of  doing it.


This could be done by just broadcasting a query packet at a  
well   known multicast address and waiting for the first well- 
formed   response.





Sure - an *implementation* of ActiveCluster API could do  exactly  
that.



???

well, maybe I'm thinking of the wrong piece of activecluster then ?

any piece of code could broadcast a packet... which piece of   
activecluster's API are you suggesting here ?





You said...


but simply a way of locating the  cluster and requesting a   
membership snapshot of it.





The entire purpose of the ActiveCluster APi is to locate members  
in  clusters  be informed when they go down. There's a zillion  
ways of  implementing this - AC just tries to be a common, simple  
API we can  share.



Sure




we really are talking about just a remoting proxy which needs to   
find, but not 'join' a cluster.




AC can be used purely to discover nodes and choose which one to  
use  as a server. The local in-JVM node does not actually have to  
actually  advertise itself to members of the cluster if it doesn't  
wish to -  thats an implementation detail. (e.g. if you only want  
servers to be  discoverable but keep clients invisible).



OK - I see - but I'm not sure that I am drawn to this approach :-)



Why?


Using the EJB client and server side example - you may want to  
know  which clients are connected to what servers so that you can  
load  balance; so even though you may not consider clients as  
'members of  the server cluster' being able to know who is  
connected to who is  quite useful. EJB clients could expose  
statistics that can be used to  help choose the right server a new  
node should join.



understood.



But whatever - if you don't wanna use the AC API its no big deal;  
use  whatever abstraction you see fit - I just wanted to explain  
the point  of AC; for discovering nodes in a cluster and being  able 
to choose  which one to communicate with; it can be  implemented any 
way you like  (simple multicast stuff, using HTTP,  LDAP stuff etc).



Its not that I don't want to use AC client side - its that I don't  
see clients as being members of the cluster in any way - passive or  
active.


but, I guess this opens up an interesting topic...

I'm thinking in terms of relatively large numbers of clients to  
servers.


I wasn't thinking in terms of clients receiving any notifications  
about changes in cluster membership or state location.


This is probably because WADI comes from a background in which the  
client is completely dumb, but also because a server may support  
many thousands of clients. I see the overhead of trying to  
pessimistically keep these clients in sync with developments within  
the cluster as outweighing the benefit.



Who said anything about state synchronization? We're talking  
discovery here.



The architecture that I have in mind is more optimistic. It waits  
for something exceptional to happen - e.g. some state migrating as  
its node shuts down followed by a client for that state trying to  
make a call to it - then pays a small but exceptional cost in terms  
of a fail-over (which may become an autodiscovery in the even more  
exceptional case that all nodes in the cluster have been cycled  
between successive calls from the client).


Thus, in the usecase that I expect, I think that the optimistic  
approach will be more efficient than the more pessimistic. However  
you should expect the