On 3/1/19 4:50 PM, Dmitry Yemanov wrote:
01.03.2019 16:40, Adriano dos Santos Fernandes wrote:
BTW it would be good to known if this pull request (with
fb_info_tra_snapshot_number, SET TRANSACTION
SNAPSHOT [ AT NUMBER ] and isc_tpb_at_snapshot_number) will go to
master/v4.
No problems from
01.03.2019 16:40, Adriano dos Santos Fernandes wrote:
BTW it would be good to known if this pull request (with
fb_info_tra_snapshot_number, SET TRANSACTION
SNAPSHOT [ AT NUMBER ] and isc_tpb_at_snapshot_number) will go to
master/v4.
No problems from me.
Dmitry
Firebird-Devel mailing
01.03.2019 15:40, Adriano dos Santos Fernandes wrote:
On 01/03/2019 10:28, Vlad Khorsun wrote:
...
BTW, what branch go you mean ?
https://github.com/FirebirdSQL/firebird/pull/193
I'll change SNAPSHOT_CN name in different commit as it's already present
in master.
Understand now
BTW
On 01/03/2019 10:28, Vlad Khorsun wrote:
> 01.03.2019 13:16, Adriano dos Santos Fernandes wrote:
>
>> I am assuming nobody objects and will implement the changes in the
>> branch.
>
> No objection, just not forget to change syntax\constant names as was
> agreed recently:
>
> ---
> Which then I
On 25/02/2019 13:21, Adriano dos Santos Fernandes wrote:
> Vlad is proposing the new info code to be named
> fb_info_tra_snapshot_number. I have no problem with it, provided that
> SNAPSHOT_CN is also renamed (with he seems to be open), but for what?
> SNAPSHOT_NUMBER too? (I have no problem with
Hi!
As part of READ COMMITTED READ CONSISTENCY, it was added context
variables (under RDB$GET_CONTEXT's SYSTEM namespace) GLOBAL_CN and
SNAPSHOT_CN.
GLOBAL_CN: Most current value of global Commit Number counter
SNAPSHOT_CN: Value of Commit Number of currently database snapshot:
either
On 24/02/2019 08:23, Vlad Khorsun wrote:
> TPB: isc_tpb_snapshot_commit_number,
isc_tpb_snapshot_number
Regards,
Vlad
PS we also must add isc_info_tra_snapshot_number and, probably,
context variable.
Don't we already have context SNAPSHOT_CN? It
24.02.2019 12:37, Dimitry Sibiryakov wrote:
24.02.2019 3:23, Adriano dos Santos Fernandes wrote:
maybe:
SET TRANSACTION SNAPSHOT [USING SNAPSHOT ]
or
SET TRANSACTION SNAPSHOT [USING SNAPSHOT NUMBER ]
What I dislike here is double SNAPSHOT words.
You can
24.02.2019 4:23, Adriano dos Santos Fernandes wrote:
On Sat, Feb 23, 2019, 21:30 Vlad Khorsun wrote:
23.02.2019 21:14, Adriano dos Santos Fernandes wrote:
> Hi!
>
> After changes to use commit number instead of base transaction number, I
> offer to make that interfaces
24.02.2019 3:23, Adriano dos Santos Fernandes wrote:
maybe:
SET TRANSACTION SNAPSHOT [USING SNAPSHOT ]
or
SET TRANSACTION SNAPSHOT [USING SNAPSHOT NUMBER ]
What I dislike here is double SNAPSHOT words.
You can make it optional.
--
WBR, SD.
On Sat, Feb 23, 2019, 21:30 Vlad Khorsun wrote:
> 23.02.2019 21:14, Adriano dos Santos Fernandes wrote:
> > Hi!
> >
> > After changes to use commit number instead of base transaction number, I
> > offer to make that interfaces for the feature:
>
>I offer to not introduce additional confusing
23.02.2019 21:14, Adriano dos Santos Fernandes wrote:
Hi!
After changes to use commit number instead of base transaction number, I
offer to make that interfaces for the feature:
I offer to not introduce additional confusing with different usages of commit
numbers.
Commit Number (CN)
Hi!
After changes to use commit number instead of base transaction number, I
offer to make that interfaces for the feature:
SQL command: SET TRANSACTION SNAPSHOT COMMIT NUMBER
(some variant as SNAPSHOT FROM COMMIT NUMBER or SNAPSHOT BASE COMMIT
NUMBER may be acceptable)
TPB:
On 19/02/2019 13:56, Vlad Khorsun wrote:
>
> As i understand you - it doen't break anything. For me, it is safe to
> assign
> to the new snapshot (CONCURRENCY) transaction number of already existing
> and
> still alive snapshot. It is very important to ensure existence of that
> snapshot
>
19.02.2019 18:24, Adriano dos Santos Fernandes wrote:
Hi Vlad,
I restarted work on this feature now using commit numbers.
Good to know. Could you publish user interface before it is too late ? ;)
Initial prototype seems to work easily.
It should be not too hard, agree
So now with
Hi Vlad,
I restarted work on this feature now using commit numbers.
Initial prototype seems to work easily.
So now with current master code, is it ok to have transaction numbers
TN1 < TN2 < TN3 with their correspondents tra_snapshot_number not being
TSN1 <= TSN2 <= TSN3 ?
That is, when TN3
> The trick words is how to shortly tell this "the snapshot used to start
> transaction ".
>
> And it's even more trick when we think about commit retaining.
>
> My understand is that if transaction had a commit retaining, subsequent
> new derived transactions will use the snapshot after the
On 10/05/2017 16:01, Leyne, Sean wrote:
>> "Starting from"?
> That would be misleading, the connection would not be able to see commits
> from later transactions, which is certainly not the case.
>
>
The trick words is how to shortly tell this "the snapshot used to start
transaction ".
And it's
> "Starting from"?
That would be misleading, the connection would not be able to see commits from
later transactions, which is certainly not the case.
Sean
--
Check out the vibrant tech community on one of the
Maybe
"Starting from"?
regards,
Karol Bieniaszewski
-Oryginalna wiadomość-
From: Leyne, Sean
Sent: Tuesday, May 9, 2017 9:20 PM
To: For discussion among Firebird Developers
Subject: Re: [Firebird-devel] Start transaction from base transaction
> >>> + |
> >>> + | SNAPSHOT SHARING FROM
> >> SNAPSHOT BASED ON
> >> ?
> >>
> > Do you think with this words it's clear that the new transaction uses
> > the same snapshot used in , instead of incorrectly saying that it
> > will use as the snapshot for the new transaction?
> >
> > Thinking in these
Em 06/05/2017 09:15, livius escreveu:
>
>> Yes, but we should avoid to write whole novels at SQL statements ;)
>
> Agree - but to fast chice is also not good
>
>> It have no sence (if i understand you :) )
> Maybe, but it should be prohibited in code or designed to do not create
> wrong
inalna wiadomość-
From: Vlad Khorsun
Sent: Saturday, May 6, 2017 11:55 AM
To: firebird-devel@lists.sourceforge.net
Subject: Re: [Firebird-devel] Start transaction from base transaction
06.05.2017 11:47, livius wrote:
> Hi,
>
> for me name is confusing - beacause here can be two cases
06.05.2017 11:47, livius wrote:
> Hi,
>
> for me name is confusing - beacause here can be two cases:
> 1. Snapshot transaction is shared
Looks like wrong\incomplete definition, as
> 2. only view of database from its start point is shared and any modification
> caused by base snapshot and any
@lists.sourceforge.net
Subject: Re: [Firebird-devel] Start transaction from base transaction
05.05.2017 21:10, Adriano dos Santos Fernandes wrote:
> On 05/05/2017 14:43, Dmitry Yemanov wrote:
>> 05.05.2017 20:01, Vlad Khorsun wrote:
>>> %type snap_shot
>>> snap_shot
&g
06.05.2017 0:17, Adriano dos Santos Fernandes wrote:
> Em 05/05/2017 18:01, Vlad Khorsun escreveu:
>
>>
>> Also, i offer to add additional rule for transaction which should export
>> its snapshot data (it allows to avoid export by all transactions), something
>> like:
>>
>> SET
Em 05/05/2017 18:01, Vlad Khorsun escreveu:
>
>Also, i offer to add additional rule for transaction which should export
> its snapshot data (it allows to avoid export by all transactions), something
> like:
>
>SET TRANSACTION ISOLATION LEVEL SNAPSHOT WITH SHARED SNAPSHOT
>
As we talk
05.05.2017 21:10, Adriano dos Santos Fernandes wrote:
> On 05/05/2017 14:43, Dmitry Yemanov wrote:
>> 05.05.2017 20:01, Vlad Khorsun wrote:
>>> %type snap_shot
>>> snap_shot
>>> : SNAPSHOT
>>> | SNAPSHOT TABLE
>>> | SNAPSHOT TABLE STABILITY
>>> + | SNAPSHOT SHARING FROM
>>
05.05.2017 20:36, Adriano dos Santos Fernandes wrote:
> On 05/05/2017 14:01, Vlad Khorsun :
...
>> I don't understand for what purpose tra_oldest_snapshot was added.
> In my understand, it's a property that new transaction should copy from
> the base transaction. Isn't it?
No.
On 05/05/2017 14:43, Dmitry Yemanov wrote:
> 05.05.2017 20:01, Vlad Khorsun wrote:
>> %type snap_shot
>> snap_shot
>> : SNAPSHOT
>> | SNAPSHOT TABLE
>> | SNAPSHOT TABLE STABILITY
>> +| SNAPSHOT SHARING FROM
> SNAPSHOT BASED ON
> ?
>
Do you think with this words it's
05.05.2017 20:01, Vlad Khorsun wrote:
>
> %typesnap_shot
> snap_shot
> : SNAPSHOT
> | SNAPSHOT TABLE
> | SNAPSHOT TABLE STABILITY
> + | SNAPSHOT SHARING FROM
SNAPSHOT BASED ON
?
Dmitry
On 05/05/2017 14:01, Vlad Khorsun wrote:
>
>It doesn't forces (nor expresses) new transaction isolation level to be
> SNAPSHOT.
Yes, I forgot to inform it in comment for now.
> Probably, it would be more natural to extend "snap_shot" rule in parser:
>
> iso_mode
> : snap_shot
>
05.05.2017 18:59, Adriano dos Santos Fernandes write:
> Vlad and others,
>
> Can you look at this?
>
> https://github.com/asfernandes/firebird/tree/work/sharing-snapshot
I took a quick look, so don't get me too serious. Also, my opinion could be
incomplete and be changed later :)
> It uses
Vlad and others,
Can you look at this?
https://github.com/asfernandes/firebird/tree/work/sharing-snapshot
It uses the simplest possible (and bad) IPC mechanism to manually test
the idea of get the snapshot from others processes.
It uses syntax: SET TRANSACTION SHARING SNAPSHOT FROM
It is
> Being able to start next transaction,
> basically, from the point where the previous left would be so convenient and
> remove a lot of hacks we have in place right now.
To be clear, in my example/use case the "master transaction" would still be
active and the related connection would be
>Did you consider export of the data to local files and then sending of
>these files?
We did. And discarded it because of the hassle of managing these files.
> File transfer over Internet is much faster.
I'm not uploading over FIrebird's protocol. It's pushed over custom
HTTPs
20.04.2017 8:36, Jiří Činčura wrote:
> Sure. There's a part of our system that reads data and sends these over
> the internet. Given the deployments on the customer side the internet is
> often very very slow (<100kBps sometimes), so we decided to not keep
> transaction open, but do it repeatedly
19.04.2017 23:27, Leyne, Sean wrote:
> I never said anything about a single application!
>
> I mentioned in one of my posts that the Master connection would request a
> "Transaction Clone" which would be a GUID that could be sent to another
> *process* to allow that process' connection to link
+1 for this feature. I would be very happy for this. Also it would be
awesmone if this consistent view were accessible later in time (this
woudl mean garbage collection blocking).
On 2017.04.18. 20:56, Leyne, Sean wrote:
>
>> If you need simultaneous queries - make them possible,
>> what the
>Could you explain, please ?
Sure. There's a part of our system that reads data and sends these over
the internet. Given the deployments on the customer side the internet is
often very very slow (<100kBps sometimes), so we decided to not keep
transaction open, but do it repeatedly in bacches
> > Really, how do you propose to coordinate the transactions account the
> separate processes (potentially different hosts)?
>
>What? So far you talked about transactions from one multi-threaded
> application. Where "different hosts" came from all of sudden?
I never said anything about a
19.04.2017 22:10, Leyne, Sean wrote:
> Again, you are thinking far too narrowly -- trying to define a problem to
> convenience frame of reference.
Ok, let me think wider: tell me why you need to move whole tables to other
server so
often and so quickly? May be you'd better use continuous
19.04.2017 20:43, Jiří Činčura wrote:
>> once. If they all are started without any commit between them (which can
>> be ensured by a
>> number of different ways), they will give you completely the same view of
>> data.
>
> I'm listening. That would make my life lot easier in certain scenarios,
19.04.2017 17:12, Dimitry Sibiryakov wrote:
> 19.04.2017 15:56, Vlad Khorsun wrote:
>> And it does it already for a many years when fetching records in a batch
>> (default mode)
>
> Really? I see in sources that it send op_fetch only when in REM_fetch()
> it run out of
> data in buffer,
> > 2- that the cost of any approach to ensure such "alignment" will not be so
> significant that it compromises system performance.
>
>The simplest method: ON COMMIT trigger waiting for some flag to be
> unset. You set flag, start your transactions and then reset the flag.
> Performance
19.04.2017 18:54, Leyne, Sean wrote:
> I have client with over 500 connection to a database, I am pretty sure that:
>
> 1- there is no way to ensure that all the read-only processes can start a
> transaction without the possibility that another read/write transaction
> started in between them,
19.04.2017 19:01, Leyne, Sean wrote:
> If the solution was simple, we wouldn't be having this discussion right now.
BTW, did you considered moving of these tables into separate database that
it can be
transferred between servers as whole using nbackup?
--
WBR, SD.
19.04.2017 18:54, Leyne, Sean wrote:
> I have client with over 500 connection to a database, I am pretty sure that:
>
> 1- there is no way to ensure that all the read-only processes can start a
> transaction without the possibility that another read/write transaction
> started in between them,
> once. If they all are started without any commit between them (which can
> be ensured by a
> number of different ways), they will give you completely the same view of
> data.
I'm listening. That would make my life lot easier in certain scenarios,
--
Mgr. Jiří Činčura
> 2- that the cost of any approach to ensure such "alignment" will not be so
> significant that it compromises system performance.
Ooppps!
That should have read:
2- that the cost of any approach to ensure such "alignment" *will be* so
significant that it compromises system performance.
>It can. Nothing prevent you from starting several read-only snapshot
> transactions at once. If they all are started without any commit between
> them (which can be ensured by a number of different ways)
Really, how?
I have client with over 500 connection to a database, I am pretty sure
19.04.2017 16:51, Leyne, Sean wrote:
> The functionality being discussed in this thread; cannot be overcome by a
> developer
It can. Nothing prevent you from starting several read-only snapshot
transactions at
once. If they all are started without any commit between them (which can be
> 19.04.2017 14:07, Adriano dos Santos Fernandes wrote:
> > Transaction consistency and multiple connections are a sufficient and
> > easier to use feature.
>
>CORE-5483 is also sufficient and easy to use, but still you called it "a
> hack"
> with rage.
Because it is a "hack".
You
19.04.2017 15:56, Vlad Khorsun wrote:
>And it does it already for a many years when fetching records in a batch
> (default mode)
Really? I see in sources that it send op_fetch only when in REM_fetch() it
run out of
data in buffer, not right after receiving batch.
>We speak about
19.04.2017 14:12, Vlad Khorsun wrote:
>It give nothig to readers
Not quite so. When array binding used with select, client can send request
for new
packet before it start tossing record values into user buffers and this way
work in
parallel with server and network, reducing total wait
19.04.2017 14:07, Adriano dos Santos Fernandes wrote:
> Transaction consistency and multiple connections are a sufficient and
> easier to use feature.
CORE-5483 is also sufficient and easy to use, but still you called it "a
hack" with rage.
--
WBR, SD.
19.04.2017 14:56, Dimitry Sibiryakov wrote:
> 19.04.2017 13:29, Vlad Khorsun wrote:
>> I can't evaluate something not defined. Specify "array DML +
>> asynchronous queries" and,
>> probably, we will have the subject to speak about.
>
> Array DML is a way to put/get many records using one
On 19/04/2017 08:56, Dimitry Sibiryakov wrote:
> Currently no SQL server allow to send two queries in single connection
> in parallel, so Firebird can be the first.
There must be a good reason for this, it's not only about hard
implementation.
You'd then need to offer concurrency control for
19.04.2017 13:29, Vlad Khorsun wrote:
>I can't evaluate something not defined. Specify "array DML + asynchronous
> queries" and,
> probably, we will have the subject to speak about.
Array DML is a way to put/get many records using one API call. In ODBC it is
On 19/04/2017 08:29, Vlad Khorsun wrote:
> PS If i understand Sean correctly, he going to read data by few connectins in
> parallel.
> I think, it could work. Also, i guess, it shoudl be possible to use same
> "array DML +
> asynchronous queries" from parallel connections too
>
>
Would make
19.04.2017 14:03, Dimitry Sibiryakov wrote:
> 19.04.2017 12:57, Vlad Khorsun wrote:
>> Sean speak about *read* consistency within few transactions\connections
>> to the same
>> database. No more, no less.
>
> Ok. What advantages can have derived transactions over array DML +
>
19.04.2017 12:57, Vlad Khorsun wrote:
>Sean speak about *read* consistency within few transactions\connections to
> the same
> database. No more, no less.
Ok. What advantages can have derived transactions over array DML +
asynchronous queries
which are more versatile?
--
WBR, SD.
19.04.2017 13:34, Dimitry Sibiryakov wrote:
> 19.04.2017 12:23, Vlad Khorsun wrote:
>>> As in Sean's scenario: you pumped data into 5 tables via 5 connections
>>> using 5 derived
>>> transactions. Now you need atomically commit all these transactions in all
>>> connections.
>>> How would
19.04.2017 12:23, Vlad Khorsun wrote:
>> As in Sean's scenario: you pumped data into 5 tables via 5 connections
>> using 5 derived
>> transactions. Now you need atomically commit all these transactions in all
>> connections.
>> How would you do it?
>I don't. As there was no such
19.04.2017 11:51, Dimitry Sibiryakov пишет:
> 18.04.2017 18:43, Vlad Khorsun wrote:
>> Some time ago there was discussion about sharing snapshots. As for me, it
>> is useful feature. Not a "must have", but useful.
>
> As in Sean's scenario: you pumped data into 5 tables via 5 connections
18.04.2017 18:43, Vlad Khorsun wrote:
>Some time ago there was discussion about sharing snapshots. As for me, it
> is useful feature. Not a "must have", but useful.
As in Sean's scenario: you pumped data into 5 tables via 5 connections using
5 derived
transactions. Now you need
> On 18/04/2017 16:41, Dimitry Sibiryakov wrote:
> > 18.04.2017 21:30, Leyne, Sean wrote:
> >>>With current Firebird architecture - yes. It can be changed.
> >> Really, then why have we been living with that @#$@#$@# limitation for
> more than 10 years!
> >Hmmm... Probably, because it is
> With current Firebird architecture you won't get better performance from 5
> connections.
> Dmitry Kouzmenko some time ago made a video that busted this myth.
>
> Nope, video was about inserts in multiple connections into one table. This is
> -
> yes, useless. 1 connection inserts all this
Hello! 18.04.2017, 22:22, "Dimitry Sibiryakov" : I want to push data to another database as fast as possible, I want to have 5 connections walk the list of tables and read the rows and push them to the target DB. With current Firebird architecture you won't get better
18.04.2017 21:54, Adriano dos Santos Fernandes wrote:
> But they need multi-processing and consistency.
As a workaround for bad performance, no?
--
WBR, SD.
--
Check out the vibrant tech community on one of the
On 18/04/2017 16:41, Dimitry Sibiryakov wrote:
> 18.04.2017 21:30, Leyne, Sean wrote:
>>>With current Firebird architecture - yes. It can be changed.
>> Really, then why have we been living with that @#$@#$@# limitation for more
>> than 10 years!
>Hmmm... Probably, because it is not
18.04.2017 21:30, Leyne, Sean wrote:
>>With current Firebird architecture - yes. It can be changed.
> Really, then why have we been living with that @#$@#$@# limitation for more
> than 10 years!
Hmmm... Probably, because it is not limitation for real applications? Or
because four
18.04.2017 21:13, Leyne, Sean wrote:
> I want to push data to another database as fast as possible, I want to have 5
> connections walk the list of tables and read the rows and push them to the
> target DB.
BTW, for such purpose Oracle have detached tablespaces. You detach such
tablespace
18.04.2017 21:13, Leyne, Sean wrote:
> No -- with a single connection only 1 SQL can be executed at a time --
> regardless of the number of threads to your process.
With current Firebird architecture - yes. It can be changed.
> Scenario:
>
> I want to push data to another database as fast as
> > You want a single "view" of the database from multiple _connections_.
>
>I still see no point for _multiple_ connections. Isn't one enough?
No -- with a single connection only 1 SQL can be executed at a time --
regardless of the number of threads to your process.
Scenario:
I want to
18.04.2017 20:56, Leyne, Sean wrote:
> You want a single "view" of the database from multiple _connections_.
I still see no point for _multiple_ connections. Isn't one enough?
> There is nothing that provides this, today -- There is no way to ensure that
> all connections have that same
> If you need simultaneous queries - make them possible,
> what the point of transaction hacking?
You want a single "view" of the database from multiple _connections_.
There is nothing that provides this, today -- There is no way to ensure that
all connections have that same view.
Sean
18.04.2017 18:28, Adriano dos Santos Fernandes wrote:
> 2) A multi-threaded program (may be a future version of gbak) wants to
> dispatch simultaneous queries to Firebird, so need to use more than one
> attachment and transaction and then do not have transaction consistency.
I don't see
18.04.2017 21:21, Adriano dos Santos Fernandes wrote:
> On 18/04/2017 15:01, Vlad Khorsun wrote:
>> 18.04.2017 20:21, Adriano dos Santos Fernandes wrote:
>>> On 18/04/2017 13:43, Vlad Khorsun wrote:
Some time ago there was discussion about sharing snapshots. As for
me, it
is
On 18/04/2017 15:01, Vlad Khorsun wrote:
> 18.04.2017 20:21, Adriano dos Santos Fernandes wrote:
>> On 18/04/2017 13:43, Vlad Khorsun wrote:
>>> Some time ago there was discussion about sharing snapshots. As for me,
>>> it
>>> is useful feature. Not a "must have", but useful.
>>>
>>> With
On 18/04/2017 13:43, Vlad Khorsun wrote:
>Some time ago there was discussion about sharing snapshots. As for me, it
> is useful feature. Not a "must have", but useful.
>
>With current implementation of database snapshots (private copy of TIP)
> it is not enough just to specify "base"
Adriano,
> 1) A server (not database server) receives a request and dispatch it to others
> servers for extra processing and more than one server need to access the
> same database in a consistent way.
>
> 2) A multi-threaded program (may be a future version of gbak) wants to
> dispatch
18.04.2017 19:28, Adriano dos Santos Fernandes wrote:
> Hi!
>
> In distributed systems there is a problem to use Firebird and maintains
> read consistency.
>
> Imagine follow situations:
>
> 1) A server (not database server) receives a request and dispatch it to
> others servers for extra
83 matches
Mail list logo