[Bucardo-general] Swap replication latency
Alex Balashov
abalashov at evaristesys.com
Wed May 4 16:34:35 UTC 2011
Now here's a question, which in retrospect seems quite obvious, but I
didn't even think to ask it.
We have several scenarios in our database where raw data is inserted
into one type of table, and AFTER INSERT OR UPDATE triggers attached
to that table process the raw data and turn it into a row in another
table. This is mainly needed to process many call accounting events
associated with one transaction into a single call detail record.
It's ugly but is an adaptation layer needed to support the application.
The stored procedures and triggers are built on both copies of the
database.
How does Bucardo deal with this? I am realising just now that it may
not. Let's say I have table 'evariste_trans_events' on which a
trigger cascade operates to turn it into single 'evariste_trans' rows.
The normal way this happens on the source database is that the
application inserts rows into 'evariste_trans_events', and triggers
machine that data into the appropriate representation in
'evariste_trans' as needed. Most of the time, 'evariste_trans' will
be UPDATE'd based on subsequent 'evariste_trans_events', although the
initial event will cause an INSERT.
Because I do not know how the Postgres meta-level trigger / change
event listeners that Bucardo uses work, I have no idea if it is aware
of this scenario, or if it would simply mimic the row-level changes it
sees in both 'evariste_trans_events' and 'evariste_trans'. If so,
that probably explains all of our problems and failures, and the
proper thing to do would be to take all the final destination tables
out of replication so that they can be populated via the change
statements in the intermediate tables, via the existing trigger route.
(If this were master-slave, we could just unattach all triggers, but
it's swap.)
Any insights or clarifications appreciated.
--
Alex Balashov - Principal
Evariste Systems LLC
260 Peachtree Street NW
Suite 2200
Atlanta, GA 30303
Tel: +1-678-954-0670
Fax: +1-404-961-1892
Web: http://www.evaristesys.com/
More information about the Bucardo-general
mailing list