cancel
Showing results for 
Search instead for 
Did you mean: 

Read only scale out synchronization data unexpected behavior

2,148

We have read only scale out with one root node and two children. I'me inserting rows with following statement into table customer.

BEGIN
DECLARE i INTEGER;
SET i = 1;
WHILE 1=1 LOOP
   SET i = i + 1;
  INSERT INTO customer VALUES 
(i,'zzzr','N','xxx','2016-10-19 05:57:16.152','fsafsdg',
'2001-10-31',NULL,1,'mm-dd-yyyy','mm-dd-yyyy',6,2,NULL,'N',NULL,'12.1',i+2000);
END LOOP;
END

and I discovered unexpected behavior. If I'm inserting rows in existing table customer they are not available before commit at child ROSO node(from other transaction). So I'm getting behavior like snapshot read-only isolation level. After commit data are persisted and visible.

I created copy of customer table named customer1 and If I'm inserting rows in table customer1 they are available before commit at child ROSO node(from other transaction). So I'm getting behavior like dirty read isolation level.

Maybe I'm missing something. What could cause this behavior ?

Accepted Solutions (0)

Answers (2)

Answers (2)

I got it ! 🙂

That DB is migrated to SA16 from SA11 before there has been replications and existing table is in publications. If table IS in publication, rows are not sent to children and I'm getting like 'snapshot read-only isolation level'. If table IS NOT in publication rows are sent and visible(dirty reads as expected). For now I considered it as bug. I don't see reasons why there should be relation between publication and read only scale out.

Should I tried to open bug ticket for it ?

MCMartin
Participant

If you feel it is a bug you should open a ticket.

Vlad
Product and Topic Expert
Product and Topic Expert
0 Kudos

... and later please tell us about the outcome.

Did you check the UncommitOp connection property of your insert session to verify that the changes really were pending?

What's the isolation level of your ROSO session?