Rajith Attapattu wrote:

>>However if we use 100% session affinity then the chance
Sorry it should be asume not use. :)
Don't think of it as a battle, it's a disscussion for me (and perhaps for you) to understand both sides of the coin. Unless u think my questions are stupid :)

Good - I'm glad that we see eye to eye on this one. It is indeed an interesting technical debate. I'm just a little paranoid about upsetting people at the moment, because I seem to be doing a lot of it :-)

>>Sorry to put you down again - I don't want to, but when I think it all through, I just can't see a good reason to go this route..... >>I am planning to refactor this area in WADI to be pluggable, so you wil have the option of writing something like this if you really want it

Well u haven't put me down, u have agreed to refactor this area in WADI to be pluggable (Thats what I wanted). All I am saying is we don't have to go ahead and implement the scenario, but we shouldn't close the door either !!! So what your doing will allow a somebody the provision to use it they really want :)

OK - so, we understand each others position much more clearly and have what we want. Cool. I have found this thread particularly beneficial because you have forced me to crystallise what I felt into hard reason, which is a very useful thing to be forced to do. As a result, I now understand my position much better and have have noticed a couple of further optimisations that I can make :-)

Ok, so finnaly I have achived what I wanted, that is to open up the API :) and thanks for that. State-Balancing
----------------------------
Ok thats what I was looking for. My concern was that if we use session affinity can a server get overloaded. Sorry if never asked about this directly and all credit to you for identifying what my real concern was wrt session affinity. It's cool if we have a mechanism if the ClusterManager is aware of no of sessions in each node and make sure new requests are redirected to another node if the current server has already reached the threshold.

I was already intending for each node to publish a rough indication of the number of session that it carries, because I figured that it would come in useful - we now have a good usecase for it.

Does WADI provide a management API for this kind of thing??

Not yet - look at the LoadBalancer strategy stuff - it will be extended to hang off here somewhere.

also doe it have some sort of mechanism to get info about a particular node, no of nodes, no of nodes in a session at given time...etc ????

ActiveCluster allows each node to maintain a small amount of published data about itself. It can write this data. All other nodes can read it. I use it, currently, to advertise human-readable-node-name, http-port, shutting-down?, etc... - I figure that if if e.g. the number of sessions that you are carrying fluctuates by more than 10% since the last published figure, you publish the new number etc. We want to throttle publishing a little because each publishing causes a 1->all message...

I assume u still expose the listerners in ActiveCluster for interested parties to get events like node joined, left ...etc

This area of the code is still undergoing a lot of change, but it should be possible to get the ActiveCluster Cluster object from it and attach a ClusterListener.

Jules

Regards, Rajith. On 1/19/06, *Jules Gosnell* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Rajith Attapattu wrote:

    >
    > Ok, I am not fixed on multiple-active-sessions.
    > But my concern is high availability with single-active-session
    model
    > under high load conditions.
    >
    > As u pointed out,
    > >In the web world, clients commonly throw multiple concurrent
    requests at
    > >clusters, however, if we could assure total affinity, these
    would always
    > >arrive at the same copy, avoiding the chance of a collision
    >
    > However if we use 100% session affinity then the chance of one
    server
    > getting too many hits is possible (due to that being the primary
    and
    > the LB indiscrimantely maintaining session affinity without due
    > consideration for load).
    > Thus a compromise of service quality is inevitable. The service will
    > have to drop requests or degrade the service (provide only some
    of the
    > services which are not expensive).
    >
    > So sometimes the cost of maintaining multiple-active-sessions may be
    > less compared to the exceptional cost that has to be paid with a
    > server crash thus increasing the load within the remaining nodes of
    > the cluster.

    I haven't heard this argument before - lets take a look at it...

    I'm not aware of loadbalancers that allow you to ask for e.g. 50%
    affinity - do they exist ? So, lets look at the extremes (100% and
    0%),
    this is often the best way of seeing how something will actually work.

    100%
    - all requests are routed to the correct node, regardless of
    cluster size
    - no replicants ever need to be deserialised because they are
    never hit
    - if a node collects too many sessions, it may get overloaded

    0%
    - the amount of extra deserialisation that you will have to
    perform will
    increase in line with the number of nodes in your cluster as the
    chance
    of hitting the one deserialised copy decreases.
    - this extra deserialisation cost will mean that total work done
    for the
    same load will be higher and may overload nodes.

    So, I guess we want to choose the solution that leads to the least
    work
    being done in the cluster - 100% affinity - and figure out how to
    avoid
    so many clients getting stuck to one node that they overload it -
    solution - state-balancing.

    Each node needs to be aware of roughly how many sessions the other
    nodes
    are carrying. If it feels that it has more than everyone else, it
    could
    (load-balancer  integration permitting) offload sessions to its peers
    and relocate subsequent requests for them to their new location, or
    simply relocate requests that look like they might create a new
    session
    to peers that are carrying fewer sessions - or use both of these
    algorithms to keep state equally balanced across the cluster.

    how does that sound ? It shouldn't be too hard in WADI, because
    most of
    the stuff to do this sort of thing is already there...

    >
    > The cost in terms of money value of loosing revenue due to service
    > un-availability could be higher than providing more memory,
    high-speed
    > network infra which could handle the cost of
    > serialization/desirialization of replicas and the overhead of a
    > distributed locking mechanism without compromising performance.
    >
    > Thats why I said that we should provide both stratergies and the
    > end-user can make an informed decesion based on there business
    > requirments and load conditions within there cluster.
    >
    > We should avoid making those decesions before hand.
    >

    > Also allowing the idea of configurable active replicas will
    allow the
    > end-user the flexibility of trying out both multiple-active-session
    > and single-active-session models and see what works best for them.
    >
    > I would strongly advocate the idea of a Replication mgt abstraction
    > API especially with some of the ideas Gianny provided on the thread.
    >
    > What do u think about that?? Have I made a case??

    Hmmm...

    I don't want to make a battle out of this, but I really cannot see
    any
    advantage to multiple live copies. All you will do is increase the
    work
    that your cluster is having to perform. If you choose 1->few
    replication, you will also miss your session and its copies with
    increasing frequency as you add nodes, creating even more work. If
    you
    choose 1->all replication you will suffer from increasing workload and
    memory requirements on all nodes as you add new ones, and you will
    quite
    quickly hit a ceiling in terms of scale... Affinity is the silver
    bullet
    as far as clustering sessions in concerned. I can't understand why
    anyone would want to run without affinity turned up as high as it
    will go.

    I am planning to refactor this area in WADI to be pluggable, so
    you will
    have the option of writing something like this if you really want
    it...but I am not convinced that I should provide it...

    Sorry to put you down again - I don't want to, but when I think it all
    through, I just can't see a good reason to go this route.....

    Jules

    >
    > Regards,
    >
    > Rajith.
    >
    >
    > On 1/18/06, *Jules Gosnell* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
    >
    >     Jules Gosnell wrote:
    >
    >     > Oh Rajith - you've got me thinking :-(
    >     >
    >     > I'm not happy with the last answer - lets try again....
    >     >
    >     > lets agree some points :
    >     >
    >     > 1) since changes made to sessions are made in app-space, apps
    >     are not
    >     > written with the expectation that a change collision may
    occur
    >     and the
    >     > container would not be able to avoid such a collision, it must
    >     never
    >     > happen.
    >     >
    >     > 2) in order for a change-collision to occur multiple
    concurrent
    >     > requests/invocations must hit multiple copies of the session
    >     >
    >     > In the web world, clients commonly throw multiple concurrent
    >     requests
    >     > at clusters, however, if we could assure total affinity,
    these would
    >     > always arrive at the same copy, avoiding the chance of a
    collision.
    >     > There are various situations within the web tier that may
    cause the
    >     > breakdown of affinity. Different loadbalancers handle these
    >     situations
    >     > with varying degrees of correctness. I have decided that
    it is safer
    >     > to assume that, whilst affinity is a substantial
    optimisation, it
    >     > cannot be relied on 100%.
    >     >
    >     > So, in the web tier, it is possible for concurrent
    requests for the
    >     > same session to arrive at different session copies. So we
    need a
    >     > pessimistic distributed locking strategy to ensure that
    >     collisions do
    >     > not occur.
    >     >
    >     > In the EJB world, we have more control over the load-balancer,
    >     because
    >     > it is effectively built into the proxy  that we supplied,
    and we
    >     could
    >     > enforce the serial nature of invocations at this point. So it
    >     might be
    >     > possible to move forward on the assumption that we don't need
    >     > pessimistic locking (provided that no-one ever passes a
    session
    >     handle
    >     > to another client).
    >     >
    >     > I'm going to give this a little more thought...
    >     >
    >     > I think the outcome will be that I can avoid some locking
    in the EJB
    >     > world, but need to send the same messages anyway... but
    we'll see.
    >     >
    >     > Thanks for getting me to revisit this,
    >     >
    >     BTW - if we do assume that we can rely on affinity 100% in
    the EJB
    >     tier
    >     then I am still not sure that I see any real advantage in
    holding
    >     multiple active copies of a session. I guess you will have to
    >     explain to
    >     me exactly why you would want to do this.
    >
    >     Finally, the locking system that WADI currently uses will
    only incur
    >     extra work, taking distributed locks, if affinity breaks
    down, so the
    >     cost of applying it to the SFSBs where, we hope for 100%
    affinity,
    >     should be 0.
    >
    >     Jules
    >
    >     >
    >     > Jules
    >     >
    >     >
    >     >
    >     > Jules Gosnell wrote:
    >     >
    >     >> Rajith Attapattu wrote:
    >     >>
    >     >>> More question if you don't mind.
    >     >>>
    >     >>> > 2.) Assuming sombody wants to do session replication (All
    >     >>> > Active) instead of (one Active and "n" backups) is there
    >     provision
    >     >>> > within the WADI api to plug in this stratergy?
    >     >>>
    >     >>> >I'm giving this some thought in terms of SFSB support,
    I'm not
    >     >>> aware of
    >     >>> >similar constraints in the EJB world...
    >     >>>
    >     >>> >I guess we could relax this constraint in the web
    world, but
    >     I am not
    >     >>> >sure that I think that this is a good idea. Can you see
    a way
    >     to do
    >     >>> this
    >     >>> >and maintain spec compliance and performance ?
    >     >>> Is WADI designed primarily for Web?? (bcos u talked
    about being
    >     >>> servlet spec compliant) and u also mention about SFSB
    support.
    >     >>
    >     >>
    >     >>
    >     >> WADI was initially designed for the web - because I saw
    the issues
    >     >> surrounding HttpSession distribution, particularly the
    requirement
    >     >> for a single 'active' session as unresolved in any open
    source
    >     >> offering and I thought it was about time that there was a
    truly
    >     >> compliant solution.
    >     >>
    >     >> It soon became clear that many of the problems faced by
    >     sessions in
    >     >> the web-tier were also faced by sessions in the EJB-tier...
    >     >>
    >     >>> Can we abstract the Replication problem to a more higher
    level and
    >     >>> have the two (or more if there is) stratergies as impls
    of the
    >     >>> replication API that installs as a pluggin by the user.
    >     >>
    >     >>
    >     >>
    >     >> Well, we could, but you would have to convince me that
    SFSBs would
    >     >> benefit from a 'multiple-active-sessions' approach... I
    haven't
    >     given
    >     >> it much thought, but I don't see any advantage - bear
    with me :
    >     >>
    >     >> - in the EJB world, we own the client side proxy. We can
    impose
    >     >> strict affinity. An invocation arriving at a node that is not
    >     >> carrying the primary session copy will be an exceptional
    occurance.
    >     >>
    >     >> - If you go with the 'single-active-session' model, and an
    >     invocation
    >     >> does land on a secondary, you then pay an exceptional cost -
    >     >> deserialisation and promotion (messaging) from secondary to
    >     primary.
    >     >> This is OK, since you are in an exceptional situation.
    >     >>
    >     >> - If you go with the 'multiple-active-sessions' approach you
    >     have two
    >     >> choices regarding deserialisation of replication messages.
    >     >>
    >     >> 1) you can deserialise them as they arrive - bad idea,
    because
    >     >> deserialisation is extremely expensive and most of the
    time these
    >     >> copies will never be used.
    >     >> 2) you can deserialise them lazily - only bother to do
    the work,
    >     >> if/when an invocation arises.
    >     >>
    >     >> Regardless of which you choose (and I hope you would
    choose 2),
    >     you
    >     >> are now in a situation where two copies of a session may
    >     diverge from
    >     >> each other. Lets say you make a change to one, then you
    make a
    >     change
    >     >> to the other, but the replication message from the first
    session
    >     >> arrives at the second session after your second change
    and wipes it
    >     >> out, and the replication message from your second change
    then
    >     >> overwrites the first session with what is now a different
    value
    >     than
    >     >> that carried by the second.... you can detect these issues by
    >     >> versioning, but the best way to protect against them
    occuring (see
    >     >> reasons for needing a pessimistic algorithm below) is by
    having
    >     some
    >     >> form of distributed locking. In effect, the guy with the lock
    >     is the
    >     >> primary and the guy without it the secondary.
    >     >>
    >     >> OK, so now we have a working 'multiple-active-sessions'
    model -
    >     but
    >     >> hold on, it is doing lazy deserialisation and distributed
    locking -
    >     >> it looks very like the 'single-active-session' model....
    >     >>
    >     >> Does that help ?
    >     >>
    >     >>>
    >     >>> We can abstract things like a ReplicationManager that
    >     >>> handles/controls no of replicas etc.. and a
    ReplicatedSession
    >     which
    >     >>> decides wether it's active or passive (backup) based on the
    >     >>> parameters passed to the ReplicatedSessionFactory at
    create time
    >     >>> from the ReplicationManager.
    >     >>
    >     >>
    >     >>
    >     >> sure - and all of these things are already pluggable in WADI.
    >     >>
    >     >>>
    >     >>> The ReplicationManager impl could be the stratergy that
    decides
    >     >>> wether it maintains n of active replicas or 1 active and
    n backups
    >     >>> or any other stratergy.
    >     >>
    >     >>
    >     >>
    >     >> Yes it could - but I think that this is still being
    driven by your
    >     >> attachment to the multiple-active-sessions model and I do
    not see
    >     >> that as viable.
    >     >>
    >     >>>
    >     >>> Also the ReplicatedSession could impl stratergies like in
    >     >>> MemoryReplication or PassiveReplication (based on active or
    >     passive)
    >     >>> or anything else. And PassiveReplication can be extended
    to file
    >     >>> based, database backed (not recomended) or anything else.
    >     >>>
    >     >>
    >     >>
    >     >>
    >     >> WADI's replication strategy is already pluggable. We have a
    >     basic DB
    >     >> replication scheme and are working on the in-vm scheme.
    Other
    >     schemes
    >     >> could easily be added.
    >     >>
    >     >>> If we open up the API and let the user choose the
    stratergy they
    >     >>> want then we are delaying our concerns to the user level
    and allow
    >     >>> them to make the decesion.
    >     >>> I am sure we cannot address every situation, and the
    user is the
    >     >>> best to judge about there env.
    >     >>>
    >     >>> But we can always provide some sensible stratergies and
    >     >>> recomendations and use cases around them to make an informed
    >     decesion.
    >     >>>
    >     >>> Then We can leave the decesion to the user about
    >     >>> spec-complient/performance.
    >     >>>
    >     >>> What do u think??
    >     >>
    >     >>
    >     >>
    >     >> Unless you can demonstrate a clear win for a strategy
    that is
    >     >> non-compliant, I would be very hesitant to ship one.
    >     >>
    >     >> WADI is designed so that pretty much everything that you
    might want
    >     >> to plug is pluggable. But the larger the piece that you
    want to
    >     plug
    >     >> in, the more work you would have to do writing it and
    making sure
    >     >> that it did not collide with any other fn-ality.
    >     >>
    >     >>>
    >     >>> >If a request arrives at a secondary, primary and secondary
    >     swap roles
    >     >>> >and processing happens locally.
    >     >>> >If a request arrives on a node with no copy of the
    relevant
    >     >>> session, it
    >     >>> >may be relocated to the primary, or the primary to it.
    >     >>>
    >     >>> 1. Do u plan to have an abstraction around the above
    concerns
    >     as well??
    >     >>>     So we can have impls of different stratergies, So
    people can
    >     >>> decide wether they want to relocate the primary or the
    request.
    >     >>
    >     >>
    >     >>
    >     >> yes - this decision is pluggable.
    >     >>
    >     >>>
    >     >>>     In case of a relocation of either request or session I
    >     assume u
    >     >>> have hidden the impls behind an interface/API sort of
    thing so
    >     ppl
    >     >>> can do different impls of the same stratergies or impl
    their own
    >     >>> stratergy.
    >     >>
    >     >>
    >     >>
    >     >> yes
    >     >>
    >     >>>
    >     >>> 2. In the event of a primary and secondary swapping roles or
    >     having
    >     >>> n of active replicas don't we need some sort of distributed
    >     locking
    >     >>> mechanism.
    >     >>> I heard that in memory locking should be optimistic and
    storage
    >     >>> backed replicas should be pessimistic locking.
    >     >>
    >     >>
    >     >>
    >     >> session locking has to be pessimistic, because changes
    are made by
    >     >> app, not container code. So a collision of changes could
    not be
    >     >> resolved by the container, so it cannot be allowed to happen.
    >     >>
    >     >> WADI contains a distributed locking mechanism within its
    >     Partitioning
    >     >> system. When a copy is promoted, a message will pass from it
    >     >> (containing its version number), to its partition (where it
    >     will take
    >     >> a lock and find the location of the primary), on to the
    primary
    >     >> (where it will compare version numbers), back to the
    secondary
    >     (with
    >     >> a possible update, if its version is out of date) and finally
    >     back to
    >     >> the partition (where the primary's new location will be
    stored and
    >     >> the lock released). local locking will also occur around both
    >     >> secondary and primary whilst they are involved in this
    >     interaction.
    >     >>
    >     >>>
    >     >>> I hope I haven't got the too mixed up :)
    >     >>
    >     >>
    >     >>
    >     >> No, I don' think so, but I do think that you need to take
    a careful
    >     >> look at exactly how you think a mutiple-active-sessions model
    >     might
    >     >> work and whether this would, in fact, be any different
    from the
    >     model
    >     >> that I am proposing.
    >     >>
    >     >>>
    >     >>> Can u please touch on this problem as my knoweldge is
    limited on
    >     >>> this area.
    >     >>
    >     >>
    >     >>
    >     >> is this enough detail ? :-)
    >     >>
    >     >>
    >     >> Jules
    >     >>
    >     >>>
    >     >>> Regards,
    >     >>>
    >     >>> Rajith.
    >     >>>
    >     >>>
    >     >>> On 1/17/06, *Jules Gosnell* <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     >>> <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>>> wrote:
    >     >>>
    >     >>>     Rajith Attapattu wrote:
    >     >>>
    >     >>>     >
    >     >>>     >  Hi,
    >     >>>     >
    >     >>>     > Some of these questions came up after reading the
    thread on
    >     >>> totem.
    >     >>>     > However I started the new thread so that searching is
    >     easy and
    >     >>> also
    >     >>>     > want distract the intense discussions on totem with
    >     out-of-topic
    >     >>>     > questions.
    >     >>>     >
    >     >>>     > Jules Gosnel wrote
    >     >>>     >
    >     >>>     > >This is not something that is really considered a
    >     significant
    >     >>>     saving in
    >     >>>     > >WADI (see my last posting's explanation of why
    you only
    >     want one
    >     >>>     > >'active' copy of a session). WADI will keep
    session backups
    >     >>>     serialised,
    >     >>>     > >to save resources being constantly expended
    deserialising
    >     >>> session
    >     >>>     > >backups that may never be accessed. I guess
    actually,
    >     you could
    >     >>>     consider
    >     >>>     > >that WADI will do a lazy deserialisation in the case
    >     that you
    >     >>> have
    >     >>>     > >outlined, as primary and secondary copies will
    actually
    >     swap
    >     >>>     roles with
    >     >>>     > >attendant serialisation/passivation and
    >     >>> deserialisation/activation
    >     >>>     > >coordinated by messages.
    >     >>>     >
    >     >>>     > >If you are running a reasonable sized cluster (
    e.g. 30
    >     nodes -
    >     >>>     it's all
    >     >>>     > >relative) with a small number of backups
    configured (
    >     e.g. 1),
    >     >>>     then, in
    >     >>>     > >the case of a session affinity brekdown (due to the
    >     leaving of a
    >     >>>     > >primary's node), you have a 1/30 chance that the
    >     request will
    >     >>>     hit the
    >     >>>     > >primary, a 1/30 that you will hit the secondary
    and a 28/30
    >     >>>     that you
    >     >>>     > >will miss :-) So, you are right :-)
    >     >>>     >
    >     >>>     > So just to figure out if I understand this correctly.
    >     >>>     >
    >     >>>     > 1.) WADI only has one active and one-two backups
    at most (I
    >     >>>     assume the
    >     >>>     > no of backups is configurable)
    >     >>>
    >     >>>     replication is under implementation at the moment. Any
    >     number of
    >     >>>     backups
    >     >>>     should be configurable, but the more you have the less
    >     >>> performant you
    >     >>>     are. You trade off safety for speed.
    >     >>>
    >     >>>     >
    >     >>>     > 2.) WADI is built up on the assumption of session
    >     affinity. So
    >     >>> the
    >     >>>     > probability of missing the primary and the secondary
    >     >>> backup(s)  goes
    >     >>>     > up as the cluster grows according to your example
    >     >>>
    >     >>>     WADI will work without session affinity, however, as
    you would
    >     >>> expect,
    >     >>>     this will not perform as well as it might. If you
    switch on
    >     >>> affinity,
    >     >>>     you will drastically cut down the amount of
    request/session
    >     >>> relocation
    >     >>>     and most interactions should become local.
    >     >>>
    >     >>>     Switch off affinity, and of course, your chances of
    hitting a
    >     >>> copy of
    >     >>>     the session will go down. There are a fixed number of
    >     sessions and
    >     >>>     you
    >     >>>     are increasing the number of nodes... If you are
    intending
    >     to use
    >     >>>     an lb
    >     >>>     without affinity, then you should really reconsider. The
    >     costs are
    >     >>>     tiny
    >     >>>     and the gains enormous. Affinity is a standard
    feature on any
    >     >>> serious
    >     >>>     HTTP LB.
    >     >>>
    >     >>>     >
    >     >>>     > 3.) How does WADI handle a situation where there is no
    >     session
    >     >>>     affinity??
    >     >>>
    >     >>>     If a request lands on the primary, processing occurs
    locally.
    >     >>>     If a request arrives at a secondary, primary and
    secondary
    >     swap
    >     >>> roles
    >     >>>     and processing happens locally.
    >     >>>     If a request arrives on a node with no copy of the
    relevant
    >     >>>     session, it
    >     >>>     may be relocated to the primary, or the primary to it.
    >     >>>
    >     >>>     >
    >     >>>     > 4.) Have you compared the overhead of maintaining
    session
    >     >>>     affinity vs
    >     >>>     > having R replicas (all-Active) to service the client.
    >     >>>
    >     >>>     I have worked on impls using both approaches and am
    satisfied
    >     >>> that my
    >     >>>     most recent approach will be the most performant.
    >     >>>
    >     >>>     >
    >     >>>     > >If, however,  you did your deserialisation of
    replicants up
    >     >>>     front and
    >     >>>     > thus avoided further messages when a secondary was
    hit, by
    >     >>>     maintaining
    >     >>>     > >all copies 'active' (I think you would not be spec
    >     compliant
    >     >>> if you
    >     >>>     > did this),
    >     >>>     >
    >     >>>     > 1.) What do u mean by spec here ?? Are u talking
    about
    >     the WADI
    >     >>>     spec?
    >     >>>
    >     >>>     There is no WADI spec :-) - I'm talking about the
    servlet
    >     spec -
    >     >>>     specifically :
    >     >>>
    >     >>>     SRV 7.7.2 - "Within an application marked as
    >     distributable, all
    >     >>>     requests
    >     >>>     that are part of a session must be handled by one
    Java Virtual
    >     >>>     Machine1
    >     >>>     ( JVM ) at a time." and "Containers must notify any
    session
    >     >>> attributes
    >     >>>     implementing the HttpSessionActivationListener during
    >     migration
    >     >>> of a
    >     >>>     session. They must notify listeners of passivation
    prior to
    >     >>>     serialization of a session, and of activation after
    >     >>>     deserialization of a
    >     >>>     session."
    >     >>>
    >     >>>     These two constraints make it, IMHO, much more difficult
    >     to try
    >     >>>     implementing any system that maintains multiple
    'active', or
    >     >>>     'primary'
    >     >>>     copies of a session. The system needs to be
    absolutely clear
    >     >>> where the
    >     >>>     single 'active' copy is at any one time, in order to
    remain
    >     >>> compliant.
    >     >>>     To ensure that activation/passivation semantics work
    OK,
    >     only this
    >     >>>     session may be activated, whilst the other 'secondary'
    >     copies are
    >     >>>     passivated. By leaving the secondaries in serialised
    form,
    >     you save
    >     >>>     further cycles and arrive at WADI's current design.
    >     >>>
    >     >>>     >
    >     >>>     > 2.) Assuming sombody wants to do session
    replication (All
    >     >>>     > Active) instead of (one Active and "n" backups) is
    there
    >     >>> provision
    >     >>>     > within the WADI api to plug in this stratergy?
    >     >>>
    >     >>>     I'm giving this some thought in terms of SFSB
    support, I'm not
    >     >>>     aware of
    >     >>>     similar constraints in the EJB world...
    >     >>>
    >     >>>     I guess we could relax this constraint in the web
    world, but I
    >     >>> am not
    >     >>>     sure that I think that this is a good idea. Can you
    see a
    >     way to
    >     >>>     do this
    >     >>>     and maintain spec compliance and performance ?
    >     >>>
    >     >>>     >
    >     >>>     > If u remeber we talked about extention points
    within WADI.
    >     >>>     >
    >     >>>     > 1.) Is there a doc that describes WADI architecture
    >     >>>
    >     >>>     Not as yet, just a website with various resources
    hanging
    >     of it.
    >     >>>     WADI is
    >     >>>     still relatively young. The best source of architecture
    >     info is the
    >     >>>     conversations that we have been having.
    >     >>>
    >     >>>     >
    >     >>>     > 2.) Is there a doc that describes these extention
    points
    >     and how
    >     >>>     to do
    >     >>>     > it?? (Looking for a little more info than the API
    doc)
    >     >>>
    >     >>>     WADI is put together using Spring. You just check
    out the
    >     >>> javadoc and
    >     >>>     plug the pojos together. A lot of what we have been
    talking
    >     >>> about is
    >     >>>     architectural design and not implemented (although the
    >     >>>     primary/secondary
    >     >>>     stuff is all in and working).
    >     >>>
    >     >>>     regards,
    >     >>>
    >     >>>
    >     >>>     Jules
    >     >>>
    >     >>>     >
    >     >>>     > Thanks,
    >     >>>     >
    >     >>>     > Rajith.
    >     >>>     >
    >     >>>
    >     >>>
    >     >>>
    >     >>>     --
    >     >>>     "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> <
    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 <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
    * 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.
**********************************/

Reply via email to