OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ws-rx message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [ws-rx] NEW ISSUE: Remove LastMessage


Doug,

I don't know how big of an issue this is either and therefore wanted to 
tease out what sort of capabilities/optimization we would be removing 
with the removal of LM.

Here is one scenario/usecase:

WSRM is used to reliably deliver single invocations of WSDL operations 
(such as updateAccount). I.e., the Sequence consists only of one 
message. There are several such invocations possible from multiple 
clients (with certain expected peak loads). In this case, the size of 
the empty queue would be > the single message that the queue would hold.

-Anish
--

Doug Davis wrote:
> 
> Anish,
>  ok - I think I finally get it.  Don't know how big of an issue this is. 
>  Right now the RMD can experience
> this same problem when it creates sequences that are never used - which 
> the inactivityTimeout
> was supposed to help.  I guess this situation would be bad for the RMD 
> if two things were true:
> 1) the queue was kept separate from the other metadata about the 
> sequence and could be deleted
> w/o impacting the ability of the RMD to return the ACKs, and
> 2) the size of an empty queue was a concern for the RMD
> Dunno...
> thanks
> -Doug
> 
> 
> Anish Karmarkar <Anish.Karmarkar@oracle.com> wrote on 11/30/2005 
> 09:50:20 PM:
> 
>  > Doug Davis wrote:
>  >
>  > <snipped for readability/>
>  >
>  > >  > 3) What I'm saying is the following -
>  > >  > When:
>  > >  > a) an LM marker is present in the last message, and
>  > >  > b) the RMD receives all the messages upto and including the 
> message with
>  > >  > the LM marker. I.e. all the messages in the range [1, 
> Seqno(LM-message)]
>  > >  > then:
>  > >  > at that point the RMD knows that it has received all the 
> messages in the
>  > >  > sequence. In certain implementations it can make the 
> determination that
>  > >  > it no longer needs the message store (it still needs to be 
> around to ack
>  > >  > messages) -- assuming that the messages have been successfully 
> delivered
>  > >  > to the AD. i.e., it can give up its message store resource at 
> this point
>  > >  > but *not* terminate the Sequence.
>  > >
>  > > Why would it need to keep them around w/o the LM marker?  Once a 
> message
>  > > has been delivered to the AD why would the RMD need to keep it 
> around at
>  > > all - regardless of the LM marker?
>  > >
>  >
>  > I'm talking about the message store being kept around, not the messages.
>  > Without the LM marker, the RMD does not know that it doesn't need the
>  > queue/store anymore.
>  >
>  > >  > Without the LM marker, it will never know if it has received all the
>  > >  > messages in the Sequence until it receives the TerminateSequence 
> message
>  > >  > (which is unreliable).
>  > >
>  > > Under what situations would the RMD not deliver a message to the AD 
> when it
>  > > has all of the messages from 1 to X and then NOT clear up its store 
> for
>  > > those
>  > > messages?  Once it has 1 it can deliver it and erase it, once it 
> did that
>  > > it can do it for 2, then 3.... marking X as the LM doesn't change that.
>  > >
>  >
>  > This is a tangential issue and not relevant to the LM marker issue.
>  > But it is possible that the AD is intermittently disconnected, in which
>  > case the RMD may have all the messages but may not be able to deliver
>  > the messages till AD is connected again.
>  >
>  > I'm not talking about message clean up, but about giving up the
>  > store/connection/session/whatever.
>  >
>  >
>  > >  > To take the previous example, there are 3 messages in the sequence -
>  > >  >
>  > >  > scenario A: LM marker present in message # 3, RMD has received 
> all the
>  > >  > messages (1, 2, 3) but not the TerminateSequence. RMD knows that 
> there
>  > >  > will never ever be message number 4 (and beyond) and therefore 
> does not
>  > >  > need the message store (but still needs to hang around to ack).
>  > >
>  > > Doesn't need it for 1,2 and 3 at all anyway since there's nothing 
> stopping
>  > > it from deliverying all 3 to the AD and erasing it from its store.
>  > >
>  >
>  > Yes, but it cannot give up the store itself.
>  >
>  > >  > scenario B: LM marker is not present in message # 3, RMD has 
> received
>  > >  > all the messages (1, 2, 3) but not the TerminateSequence. RMD 
> does not
>  > >  > know that there won't be a message number 4 (and beyond) and 
> therefore
>  > >  > may indeed need the message store (say if 5 were to arrive 
> before 4 and
>  > >  > the DA was inOrder, it will have to store 5 till it receives 4 
> and then
>  > >  > delivery both).
>  > >
>  > > But it can still deliver and erase 1, 2 and 3 - same as above.  LM 
> doesn't
>  > > change that.
>  > >
>  >
>  > Correct for the messages themselves, but not for the store related
>  > resources.
>  >
>  > >  > So I think that the LM marker does allow the RMD to free up certain
>  > >  > (though not all) resources when it has received all the messages 
> in the
>  > >  > sequence and before the TerminateSequence message is received 
> (this of
>  > >  > course would depend on the implementation, YMMV).
>  > >  >
>  > >  > Hope that makes sense.
>  > >  >
>  > >  > Thx.
>  > >  >
>  >
>  > <snipped for readability/>
>  >


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]