Github user mtaylor commented on the issue:

    https://github.com/apache/activemq-artemis/pull/1747
  
    I think it's a good idea to understand what we failures we can recover from 
and which ones we can not in the context of consistency and availability.  
Note, I'm not including network issues here.
    
    Availability: This PR doesn't really concern availability but for context: 
A single live/backup pair setup can recover from a *single* machine failure.  
In the event of a live failure, the backup takes over, (it may have some data 
in memory at this point).  In the event of a backup failure, availability is 
preserved.
    
    Consistency: Consistency is preserved even if both machines fail.  The ack 
isn't sent back to the client unless it's persisted on the live.  Should live 
fail, the backup is still consistent, (though there is a small window where 
data is in memory).  Should the backup fail before it syncs to disk, it will 
not have consistency, however, the live still has the copy of it's journal 
which is up to date.  
    
    There is a known issue here in that the broker with the most recent journal 
must be started first after a live and backup failure (this goes beyond this 
case) and required manual intervention to deal with.  We will be addressing 
this soon.
    
    There is however still a use case for this patch.  In that it does allow 
recovery from a disk failure should both live and backup fail.  The probability 
is likely very small, but I can see a case for ensuring data is persisted in 
two places, but not at the expense of performance for other use cases.
    
    This could be a configuration option.  However, for this use case I would 
recommend using a shared store solution as dedicated shared storage solutions 
can already address these issues.
    
    



---

Reply via email to