How does this replication behaviour work in a RDBMS? Consider a 3 node (N1, N2, N3) system 
N1 is master (used for writes) and N2, N3 (used for reads) are slaves
Write request comes to update R to R1, N1 writes to disk and crashed without replication
Will system continue to work and Oracle select the another master automatically?
Write request comes to update R to R2 on N2
N1 is back again


Which value will be kept - R1 or R2?

I am using Oracle as RDBMS.
It depends on exactly how the "replication" is set up.

Real Application Cluster

N1,N2,N3 are the three nodes of a RAC cluster.

In a RAC system, all nodes are "masters".  You just choose to do READ-ONLY session on the other two.


DML operation on Node 1 tries to set R to R1
Node 1 crashes
Transparent Application Failover fails the connection from Node 1 to
Node 2 (or Node 3).
The DML is "rolled back and tried again" on Node 2.
DML on Node 2 attempts to change R to R2 (but value is now R1).


Logical Standby


DML operation on Node 1 tries to set R to R1
Node 1 crashes
DML on Node 2 attempts to change R to R2.


DML on Node 2 fails since Logical Standbys can only be opened as READ ONLY
Starting with 18c, You can only do DML on Temp Table.

At some point in time, DBAs set the Logical Standby as the primary.


If the change log was successful in writing, this change might be applied 
to the standby database.



Golden Gate


DML operation on Node 1 tries to set R to R1
Node 1 crashes before it completes the COMMIT process.
DML on Node 2 attempts to change R to R2.


Since Node 2 is a separate Database, this DML succeeds.