Greg Stein <gstein@lyra.org> writes:
> I just realized that the whole XML marshalling of the deltas/skeltas is kind
> of a moot issue. That isn't the form that will be used between the client
> and the server (a delta/skelta will be broken down into a linear sequence of
> DAV operations).
Right.
By the way, skeltas may be extinct. Jim pointed out that they violate
the rule that one user's net connection being flaky should never make
other users wait. But if someone's skelta gets approved into the
pending pool, and then their connection flakes out before their whole
delta is transmitted, this can affect other people's commits. The
problem can be alleviated somewhat with a timeout, but it's still a
pretty good principle to avoid violating. Further persuasion is that
it's a _lot_ simpler to implement Subversion with single-transmission
commits first, and then add the skelta-then-delta method iff it's
clearly needed, the latter functionality being just a superset of the
former.
> I'm not exactly sure what kind of impact that has, but it seems rather
> large.
>
> Ideally, what will happen:
>
> *) the client constructs a delta/skelta data structure
> *) that structure is passed to the client network library
Remember that it is constructed and passed streamily, not all at once,
too.
> *) the network library marshals it across the network in whatever form makes
> the most sense
> *) the server constructs a delta/skelta data structure from the marshalled
> form
Again, it has to construct it and pass it down on the fly -- no
marshalling (unless you're using that term to means something else).
> *) the data structure is passed to the SVN server library
>
> The XML marshal format is only useful in a non-DAV context. By hard-wiring
> the XML format/concept into the code, it seems that we are also making a
> number of decisions about how the network layers will work.
Hmmm.
There is the decision that no one will ever have to hold an entire
delta in memory at once, which implies a streamable representation.
That seems like it should be true no matter what.
And there is the decision that Subversion's internal streamable
representation of a delta reflects the hierarchy of the tree
structure(s) that the delta is changing.
It's the latter that's causing a problem for DAV, right?
I think we're encountering the technical realities of an essentially
political decision. :-)
On that note, it's high time for me to get some sleep, yikes.
If by "heads down" you meant "encountering big obstacles", maybe try
describing the problems to the list?
Received on Sat Oct 21 14:36:06 2006