I have learned about two type of database architectures.

  • master-master

  • master-slave

Is not the actual-master more appropriate for present day web cause it's like Git, every unit has got the whole group of data and when one goes lower, it does not quite matter.

Master-slave jogs my memory of SVN (that we can't stand) in which you have one central unit that handles factor.

Questions:

  1. Do you know the benefits and drawbacks of every?

  2. If you wish to possess a local database inside your cell phone like apple iphone, which is much more appropriate?

  3. Is the option of one of these simple a vital step to consider completely?

We are buying and selling off avaiability, consistency and complexity. To deal with the final question first: Performs this matter? Yes greatly! The options concerning the way your data will be handled is completely fundamental, and there is no "Best Practice" dodging the choices. You must know your unique needs.

There is a fundamental tension:

One copy: consistency is simple, but when it is lower everyone has run out of water, and when individuals are remote then may pay horrid communication costs. Bring portable products, which might need to operate disconenected, in to the picture and something copy will not work.

Master Slave: consistency is fairly simple because each bit of information has exactly one possessing master. However where do you turn if you cannot observe that master, some type of postponed jobs are needed.

Master-Master: well if you're able to have great results it appears to provide everything, not one reason for failure, everybody can function constantly. The issue here is it very difficult to preserve absolute consistency. Begin to see the wikipedia article for additional.

Wikipedia appears to possess a nice review of the pros and cons

Advantages

  • If a person master fails, other masters continues to update the database.

  • Masters could be situated in a number of physical sites i.e. distributed over the network.

Disadvantages

  • Most multi-master replication systems are just loosely consistent, i.e. lazy and asynchronous, breaking Acidity qualities.

  • Eager replication systems are complex and introduce some communication latency.

  • Issues for example conflict resolution may become intractable as the amount of nodes involved increases and also the needed latency decreases.