ср, 25 июл. 2018 г. в 10:38, liviuslivius <liviusliv...@poczta.onet.pl>:
> but from below scenario you can bring the idea
>
> usage case:
> 1.
>   TR1 insert and update data on TableX and is still active
>
> 2.
>   Application do
>   TR2 start and we get recentCN and remember it as interestingCN
>   and we do
>   SELECT * FROM TABLEX
>   and cache above data in some memory dataset
>   TR2 commit

Note: this SELECT may have greater CN then you have stored and it
means on the next step you may receive records already selected here.
You merge algorithm should take it into account.

> 3.
>   TR1 commit and some other transactions commited.
>
> 4.
>   e.g. TR55 start and we get recentCN and remember it
>   and we got only "delta"
>   SELECT * FROM TABLEX WHERE CN>interestingCN
>   and we merge (which is really simple) this dataset with previously cached 
> dataset
>   now we remember current CN as interesting
>   interestingCN:=recentCN
>   TR55 commit


-- 
Roman Simakov

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to