Hi,

during my wave-server-hacking-quest I started to wonder what the real
purpose of commit-notice is. My Wireshark experiments showed that I can get
a wavelet-update in one XMPP stanza and the commit-notice in the next one
(without any reconnects in between). Thus, the wavelet-update I received is
uncommitted for some short time?
Here is an excerpt of the XMPP data:

<message type="normal" from="wave.wave1.vs.uni-due.de" id="5571-2" to="
wave.wave2.vs.uni-due.de">
   <request xmlns="urn:xmpp:receipts"/>
      <event xmlns="http://jabber.org/protocol/pubsub#event";>
         <items>
           <item><wavelet-update xmlns="
http://waveprotocol.org/protocol/0.2/waveserver"; wavelet-name="wave://
wave1.vs.uni-due.de/w+286932502/conv+root
"><applied-delta><![CDATA[CvkBCk0KGAgIEhQnq6X...tPLk5yQ=]]></applied-delta></wavelet-update>
          </item>
         </items>
       </event>
</message>
<message type="normal" from="wave.wave1.vs.uni-due.de" id="9727-3" to="
wave.wave2.vs.uni-due.de">
 <request xmlns="urn:xmpp:receipts"/>
  <event xmlns="http://jabber.org/protocol/pubsub#event";>
    <items><item><wavelet-update xmlns="
http://waveprotocol.org/protocol/0.2/waveserver"; wavelet-name="wave://
wave1.vs.uni-due.de/w+286932502/conv+root">
       <commit-notice version="9"
history-hash="D40bHaCz3fmoyKumEnWorK8vQVA="/></wavelet-update>
     </item>
  </items>
 </event>
</message>

1) If the wavelet update is really uncommitted for some time:

Handing out data that is not yet committed seems like asking for trouble.
The only reason for doing so is IMHO to gain speed (i.e. no need to
synchronize with disk IO) and hope that it does not come back to bite us.

What is a remote wave server expected to do with uncommitted data?
a) It is holding data back until it is committed, then sends data to its
clients -> most of the speed gain is gone -> the performance gain is perhaps
not worth the effort
b) It is sending uncommitted data to the client. What happens if no commit
notice appears? How long should the server wait? If no commit notice
arrives, what to do? The clients have already consumed uncommitted data ->
the wave blows up in front of the users

2) If my reading is wrong and the update is committed before the update is
sent:

Then commit notice is only kind of a reminder that some wavelet has reached
a certain version number. In this case the spec should state that all
wavelet updates sent are committed. Furthermore, the above commit notice
could be omitted.

What is the intended purpose of commit-notice?

Cheers
Torben

-- 
You received this message because you are subscribed to the Google Groups "Wave 
Protocol" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/wave-protocol?hl=en.

Reply via email to