On 4/2/2014 7:05 PM, Vlad Khorsun wrote:
>> On 4/2/2014 5:28 AM, Vlad Khorsun wrote:
>>>> C
>>>>       I think it will be not easy to implement from the Y-valve point of 
>>>> view - i see no simple way to pass handles from one
>>>> process
>>>> (coordinator) to another (worker). Especially, in the case of Classic 
>>>> Server.
>>>>
>>>>       Instead, i think, we could implement something like "clone 
>>>> transaction" which will:
>>>> - get "master" transaction number at input
>>>> - create new transaction with new number :
>>>>       - transaction parameters will be the same as of "master" transaction
>>>>       - transaction private markers (oldest active, oldest snapshot) will 
>>>> be the same as of "master" transaction
>>>>       - transaction private copy of TIP will be the same as of "master" 
>>>> transaction
>>>>
>>>>
>> Why not use the transaction info call to get a snapshot of the
>> transaction state vector (or whatever I called it) and other transaction
>> state, pass the stuff in the transaction parameter block, and create an
>> exact transaction clone on the other connections.
>      You offer to introduce no new API call's - it is good.
> But you also offer to pass private copy of TIP via user application - it is
> - not efficient in a network environment
> - not secure, as allows applications to create transactions with random 
> contents of a TIP
> Therefore i don't like this.

That's an easy problem to solve -- encrypt or obfuscate the transaction 
state vector.

I don't see why the network environment make any difference one way or 
the other.  A modest block of gook -- no problem.

I'm not talk about sending the tip, but only the snapshot of 
"interesting" transaction captured when the original
transaction started.
>
>      But idea to pass tx number with some special tag in TPB to make clone of 
> given transaction is
> good and allows us to not introduce new API call.
>
>> Two transaction
>> objects with the transaction id would be chaos it there were updates,
>      Exactly
>
>> but there aren't.  I don't quite know how commit would work, but...
>>
>> But I think it would be more fun to think of Sean's backup problem in
>> terms of a multi-threaded shared procedure executing off a single
>> transaction object.  Vulcan had a fine grained multi-threading
>> architecture that could handle that, but I don't really know anything
>> about the new version.
>      It can't work in classic mode. As for SS mode - yes, technically, 
> transaction object is
> almost read-only thing and it seems possible to safely share it between 
> attachments in
> the same process. And it could satisfy Sean requirements, at first look.

It works just fine in classic.  All a transaction needs is a snapshot of 
the interesting part of the TIP when the transaction started.

Commit is a tad dicey in classic, but if the other problems could be 
solved, I'm sure a solution for that could be found, too.


>
>      I consider limitations of this model too strong to make the feature 
> widely used.
> But this is just my opinion.
>
> Regards,
> Vlad
>
>
> ------------------------------------------------------------------------------
> Firebird-Devel mailing list, web interface at 
> https://lists.sourceforge.net/lists/listinfo/firebird-devel


------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to