All,

I have been trying to dig in to the CC and OT concept in wave, so I can start 
to work on that section of the code.  It seems like we have been focusing on 
the UI and I want to make sure we have coverage in the CC stack.  I have read 
all of the OT literature, so I am fairly well versed in OT in general, but some 
of the specifics of the WaiB implementation are a little fuzzy.

Right now I am working on understanding composition and how we infer the 
servers path.  I have a few questions.

1) In order to compose operations I assume they don't have to have the same 
document width (how could they for successive inserts for example), but I 
assume they would need to span the same line?  Is that right?  In other words 
you wouldn't compose operations from one paragraph with operations from 
another?  Is the desire to compose one of the driving reasons for the retain 
operation?


2) When we send out "first" operation over to the server and we are in a 
holding pattern buffering client operations, are these operations always 
composed together and then sent over as a single operation when we get the ACK 
from the server.  It seems like we can only send one operation to the server at 
a time, however the on line material implies that when we get and ACK we send 
over ALL buffered operations.  This seems to be contradictory.  If we have 
buffered 4 operations, it seems like we can send all of them as four individual 
operations.


3) Is there a run down of how the CurrencyControl class does point #2 anywhere. 
 I see the unacknowledged, the inferredServerPath, and the 
clientOperationsQueue objects and get a lose impression of how these are 
managed  but any help with regard to incoming server operations while we have 
an operation in flight would be appreciated.  Specifically what transformations 
are performed on which object structures when we get a new operation form there 
server, and where / when is composition happening.


4) How exactly are the hashed versions designed?  There seems to be a monotonic 
scalar version number and a hash?  I want to make sure I understand how both 
are generated and how both are used.


If any of this is well documented, please let me know where I could find it.  
If it is not, I would volunteer to document this as I work through it.  Thanks 
in advance.

Michael

Reply via email to