Stefan,
Thanks for the explanation. I have some
more questions.
I am trying to evaluate the proposal with respect to the
problem it is intending to solve. Is it fair to say that the intent of the Cancel proposal is to
enable recovery without terminating (or more precisely needing to abort from
RMS perspective) a sequence when there are problems? In this regard, can you
clarify whether Filling the gaps is intended to be used specifically for
recovery? For example, after a cancellation of a set of messages occur, the RMD
notifies with the cancellation ack. If the RMS decides to fill the gap for those
messages that have already been cancelled, it seems that RMS is allowed to
resend those cancelled messages to fill the gaps and hence the allows
those messages that were cancelled to be retransmitted. Did I get this
right?
If my previous
assumption is correct, it is not clear to me what happens when
CancelAck and SequenceFill are out of sync. Could you clarify?
Again, if my assumptions/understanding is correct, is
it fair to say that you are trying not to close a sequence but patch the problem
with additional exchanges?
It helps me understand better if I understand the
higher level motivation for the design.
Thanks again,
--umit
From: Stefan Batres
[mailto:]
Sent: Tuesday, Sep 13, 2005 6:56
PM
To: Yalcinalp, Umit;
Subject:
RE: [ws-rx] New proposal for i019 and i1028
Umit,
Thanks for taking the
time to review this new proposal. First off I’ll give the two proposals names
in an effort to simplify the discussion. I’ll call Doug’s proposal the
“Close/FinalAck” proposal and I’ll call this new proposal the “Cancel”
proposal.
Close/FinalAck and
Cancel are not functionally equivalent. Cancel allows for the same semantics
as Close/FinalAck and provides a separate and more general mechanism for
resolving doubt.
As you mention, the
fundamental problem with the spec today is the lack of a mechanism for
resolving doubt. In the Close/FinalAck proposal it is necessary to end a
sequence in order to resolve doubt, even if there is only a single message
that can’t be transmitted. While that is adequate to address i019 and i028
as they are worded, it
conflates the acts of ending a sequence and resolving doubt. The Cancel
proposal allows for doubt resolution independent of whether a sequence is
ended or not. Cancel can be composed with the existing sequence termination
mechanism to achieve the same result as Close/FinalAck; ending a sequence with
a final and accurate ack set.
Also note that the
Cancel proposal maintains the spec as is in that there is one way to close a
sequence and it remains unchanged.
Thanks,
--Stefan
From:
Yalcinalp, Umit [mailto:]
Sent: Tuesday, September 13, 2005 6:01
PM
To: Stefan Batres;
Subject: RE: [ws-rx] New proposal for
i019 and i1028
Hi Stefan,
Maybe I am looking at
this in a simplistic way, but I can not follow the issue you have with the
current proposal and how the alternate proposal addresses the issue.
It seems to me the
fundemantal problem is for the RMS to determine the state of the RMD (thus
resolving doubt) Thus, if the RMD were to send the final acknowledgement along
with the ack ranges that indicate the messages that are received by the RMD,
RMS has enough information to reconcile its own status with the RMD (basically
it can diff the sequence numbers to obtain those messages which were in doubt
but confirmed to be received by the RMD per the final ack). I am not clear as
to why we need to do more here.
Perhaps you can
clarify for me why your proposal is a better proposal and what the problem
that Doug's proposal is not solving. It seems to me that in both cases the
protocol is changed, but the proposal you are making is more complicated but
functionally equivalent. I would like to understand the motivation for
the complexity.
Thanks!,
--umit
From:
Stefan Batres [mailto:]
Sent: Tuesday, Sep 13, 2005 12:50
PM
To:
Subject: [ws-rx] New proposal for i019
and i1028
All,
After much discussion Doug has
managed to make me understand his reasons for proposing his Close/FinalAck
mechanism for addressing i019 and i028. We now agree, an accurate
acknowledgement state can be helpful in order to resolve doubt and in
addition, for cases where a sequence must be ended, that acknowledgement
state must be final. These are preconditions for recovery and the protocol
can aid in establishing these preconditions.
However, we still have an issue
with the current proposal [1]. We think it conflates the notions of
resolving doubt and closing sequences. Attached is an alternate proposal
that we believe addresses this issue, allows for the exact semantics [1]
provides and has other advantages. Details are in the
document.
[1] http://www.oasis-open.org/apps/org/workgroup/ws-rx/email/archives/200509/msg00084.html
I look forward to the group’s
comments.
Thanks,
--Stefan