Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  rpl_view_multi.result   Sprache: Lisp

 

include/master-slave.inc
[connection master]
#
# Bug #25144 "replication / binlog with view breaks".
# Statements that used views didn't ensure that view were not modified
# during their execution. Indeed this led to incorrect binary log with
# statement based logging and as result to broken replication.
#
drop tables if exists t1, t2;
drop view if exists v1;
# Syncing slave with master
connection slave;
connect  master2,127.0.0.1,root,,test,$MASTER_MYPORT,;
connection master;
create table t1 (i int);
create table t2 (i int);
create view v1 as select * from t1;
# First we try to concurrently execute statement that uses view
# and statement that drops it. We use "user" locks as means to
# suspend execution of first statement once it opens our view.
select get_lock("lock_bg25144", 1);
get_lock("lock_bg25144", 1)
1
connection master1;
insert into v1 values (get_lock("lock_bg25144", 100));
connection master2;
drop view v1;
connection master;
select release_lock("lock_bg25144");
release_lock("lock_bg25144")
1
connection master1;
select release_lock("lock_bg25144");
release_lock("lock_bg25144")
1
connection master2;
connection master;
# Check that insertion through view did happen.
select * from t1;
i
1
# Syncing slave with master
connection slave;
# Check that slave was able to replicate this sequence
# which means that we got correct binlog order.
select * from t1;
i
1
connection master;
# Now we will repeat the test by trying concurrently execute
# statement that uses a view and statement that alters it.
create view v1 as select * from t1;
select get_lock("lock_bg25144", 1);
get_lock("lock_bg25144", 1)
1
connection master1;
insert into v1 values (get_lock("lock_bg25144", 100));
connection master2;
alter view v1 as select * from t2;
connection master;
select release_lock("lock_bg25144");
release_lock("lock_bg25144")
1
connection master1;
select release_lock("lock_bg25144");
release_lock("lock_bg25144")
1
connection master2;
connection master;
# Second insertion should go to t1 as well.
select * from t1;
i
1
1
select * from t2;
i
# Syncing slave with master
connection slave;
# Now let us check that statements were logged in proper order
# So we have same result on slave.
select * from t1;
i
1
1
select * from t2;
i
connection master;
drop table t1, t2;
drop view v1;
# Syncing slave with master
connection slave;
include/rpl_end.inc

Messung V0.5 in Prozent
C=51 H=100 G=79

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1897691