home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / database / 6159 < prev    next >
Encoding:
Internet Message Format  |  1992-08-17  |  3.3 KB

  1. Path: sparky!uunet!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!cis.ohio-state.edu!ucbvax!HPLWK.HPL.HP.COM!albert
  2. From: albert@HPLWK.HPL.HP.COM (Joseph Albert)
  3. Newsgroups: comp.databases
  4. Subject: Re: Hot Standby DBMS's
  5. Message-ID: <9208172103.AA04378@hplwk.hpl.hp.com>
  6. Date: 17 Aug 92 21:03:36 GMT
  7. Sender: daemon@ucbvax.BERKELEY.EDU
  8. Lines: 56
  9.  
  10.  
  11. Jonathan Edwards writes:
  12.  
  13. >In the transaction-processing world, there is the concept of a 'hot standby'
  14. >system, which is a geographically separated system containing a copy of the
  15. >database, and capable of coming online very quickly. The replicated data must
  16. >be close to current, and guaranteeing complete synchronization is required
  17. >by some applications. A further feature is the ability to 'catchup'
  18. >incrementally to missed changes after an outage, without a complete database
  19. >copy. Our database (homebrew non-relational) does this.
  20. >Are there any other databases that can do this?
  21.  
  22. A more reliable fault-tolerance would be obtained from redundancy at a
  23. level which is lowered than the level of abstraction of the database.
  24. Disks can be made redundant by having 2 or 3 physical disks, with
  25. drivers that make them look like a single device. if one disk fails,
  26. the driver can automatically look at the 2nd disk. with 3 disks acting
  27. as a single logical disk, failure can be detected at the disk page level--
  28. a read can look at the 3 pages, and if 2 of them are the same, return
  29. that value, or with 2 disks, a chekcsum can be stored with each page,
  30. to determine the valid page from among hte two if a single one fails.
  31.  
  32. CPU/OS/DBMS failure can be handled by redundant CPUs. for example, a
  33. VAXCluster can be configured so that, say, 2 CPUs share a pool of
  34. disks as if each disk was `their own'. a dbms can be run on each CPU.
  35. the first thing each dbms will try to do at initialization is request
  36. a lock on the database. the dbms granted the lock will run, the other
  37. will be blocked, waiting on the lock. when a copy of a dbms runs, the
  38. first thing it does is execute the recovery code, scanning the log for
  39. any incomplete work. 
  40.  
  41. if the first CPU/OS/DBMS fails, the lock on the database is released,
  42. and the 2nd dbms copy will then run. the 2nd dbms will begin, executing
  43. the recovery code, which will examine the log left by the first dbms
  44. and recover from that log, accessing the same database copy. (again, 
  45. there are no redundant databases, but a single database implemented
  46. on a pool of logical disks (where each logical disk may be implemented
  47. as 2 or more redundant physical disks).
  48.  
  49. thus, any uncommited transactions on the first CPU that crashed will
  50. be aborted, but any transactions whose commit records made it to the
  51. log before the first cpu crashed will be recovered by the 2nd copy of
  52. the dbms. this scheme can tolerate a single failure to any logical
  53. disk page, a single cpu failure, a single system software failure.
  54. the only glitch at a failure is that uncommited active transactions
  55. are aborted.
  56.  
  57. the scheme described at hte beginning of this article, where there is 
  58. a redundant logical database, with some form of update between
  59. the real and standby databases to keep the standby one current is
  60. less fault-tolerant than what was just described. effectively, the
  61. two databases become one large distributed dbms, with its own newly
  62. introduced points of failure.
  63.  
  64. Joseph Albert
  65. albert@hplabs.hp.com
  66.