How Insert / Updates work in vertica in detail
I need some clarity on how any insert / update gets written to WOS and propagated to copies ? 1. Is WOS is single per cluster or per node. ( I assume it is per node as per shared nothing architecture ) 2. If I insert row with id 1 on node 1, it gets written to WOS on node 1. Do i get commit acknowledgement right away ? How and when its replicated to other nodes. By the time it gets replicated ( but committed to node1 ), do queries on those replica return obsolete data ? 3. What if my row with id 1 on node 1 committed successfully on WOS but yet not moved to ROS and not yet replicated to other replicas. Meanwhile what if node 1 goes down ?
0
Comments
I have a question along the same lines. If I have 3 tables A B and C
1. I do a big insert on A(without direct hint ) and commit it. Lets assume its a big dml so the move-out process is taking a while
2. Meanwhile , I insert into table B some rows that I select from table A(assuming table A rows are now available for querying since I committed it, even though they might not all be in ROS yet)
I use a DIRECT hint this time and the commit it.
3. I create a third table C, and just insert some unrelated rows in it using DIRECT hint. commit it.
All this while DML for A is still running.
My questions:
IF I lose all my nodes now, when I bring my DB back up:
1. What will be the state of A,B and C.
2. Will C have all data that I inserted into it.
3. Will B have all the data that I inserted, including the ones that were committed for A, but the move-out didnt move it to ROS.
4. where will be the last good epoch.
Thanks for the explanation!
Dgh