Hacker News new | ask | show | jobs
by benj111 2688 days ago
What kind of redundancy are we talking about here?

You can't really roll back say 10 minutes of transactions, so are you maintaining 2 parallel systems? How do you keep them perfectly in sync?

This isn't my area of expertise by a long shot, but it occurs to me this is probably hard, especially when your codebase started in the 60s, and has been accreting ever since.

2 comments

You have a primary and a backup with a synchronous commit protocol. When a commit request is made on the primary, the primary writes to its transaction log and the backup’s log. If the backup does not acknowledge, the commit fails.

The backup doesn’t need to be in the same exact state as the primary (it’s not meant to service requests), it just needs to have a persistent log of what changes were applied so that it can roll forward when needed.

Most relational DBs do something like this for their DR product offering. Oracle has Active Data Guard. DB2 has HADR.

Yes it’s hard but there are mature solutions. See Google Spanner for example.
Spanner is slow as hell