Re: [xsl] Isolation levels (long and technical)

Subject: Re: [xsl] Isolation levels (long and technical)
From: Colin Paul Adams <colin@xxxxxxxxxxxxxxxxxx>
Date: 30 Dec 2005 14:59:20 +0000
>>>>> "Michael" == Michael Kay <mike@xxxxxxxxxxxx> writes:

    >> >Also, the duration of a transaction can be less than the
    >> entire transformation.
    >> Can it be specified at the template level?

    Michael> It makes more sense to me to have

    Michael> <xsl:transaction isolation-level="X|Y|Z"> <instructions>
    Michael> </xsl:transaction>

    Michael> But I don't have anything like a complete design. This
    Michael> obviously needs to tie in with try/catch semantics as
    Michael> well, so it's a significant design challenge to design it
    Michael> well. And that's after deciding what the requirements
    Michael> really are...

One aspect that I've thought about is that if commit/rollback logic is
supposed to be part of the design (presumably implemented by always
commit unless an error occurs (and is not recovered)), then it would
seem necessary to buffer all output until a commit-or-rollback
decision is made.

This would be unfortunate if writing to a large file - as this whole
discussion arose from a need to reduce memory consumption.

Actually, in Gestalt, I already DO buffer output for mailto, http and
ftp destinations. This came about because I implemented mailto first,
where it seems like the proper strategy, and then added http and ftp
just for the hell of it, using the same architectures. It's not clear
to me this is the right decision, especially for ftp where large files
might be expected.

Anyway, I've decided to duck the issue of transactions for the time
being, and just implement a single isolation level for the entire
transformation, applying to all URIs equally.
Colin Adams
Preston Lancashire

Current Thread