1

I asked this question on SO and it was suggested I ask it here, which makes sense.

I'm curious about techniques used to build a system where ensuring that no data is lost is of the utmost priority. For a simplistic example, what does a financial institution do to make sure that when money is transferred between accounts, once it is withdrawn from one account it is without a doubt put in the other account. I'm not so much looking for particular techniques like database transactions, but larger, more architecty concepts, like how the data is saved if a server goes down, or a queue runs out of space, or whatever.

If someone could point me to books or articles on I'd be much obliged.

pondermatic
  • 227
  • 2
  • 6

1 Answers1

3

A lot of planning is done, and redundancy is put in and every step to ensure that data is never lots. Redundant storage arrays are used so that if one array fails the other still has the data. Redundant servers are used for the databases so that if the server fails or is rebooted the database is available within seconds.

Beyond the local redundancy the entire data center will then be duplicated to another data center so that if the entire data center is lost all the data is still available so that the company and its customers can keep functioning.

For things like money transfers that is all handled through database transactions, and distributed transactions in the event that multiple servers are involved.

As for disk space and the like, alarms are put in place so that long before a queue was to ever fill up the alarm would go off so that people could figure out why it was filling up, then either add more space if the filling up is legit, or fix what ever stopped processing data.

mrdenny
  • 27,174
  • 4
  • 41
  • 69