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

  1. Path: sparky!uunet!decwrl!infopiz!lupine!motcsd!udc!mcdphx!ennews!anasaz!qip!briand
  2. Newsgroups: comp.databases
  3. Subject: Re: Hot Standby DBMS's
  4. Message-ID: <1992Aug21.073707.6235@anasaz>
  5. From: briand@anasaz (Brian Douglass)
  6. Date: 21 Aug 92 07:37:07 GMT
  7. References: <Bt6IsC.F00@world.std.com> <1992Aug19.052516.24063@anasaz> <BtA7DE.JrG@world.std.com>
  8. Organization: Anasazi, Inc.  Phoenix, Az
  9. Lines: 92
  10.  
  11. In article <BtA7DE.JrG@world.std.com> edwards@world.std.com (Jonathan Edwards) writes:
  12. >In article <1992Aug19.052516.24063@anasaz> briand@anasaz (Brian Douglass) writes:
  13. >>Another approach to this through the use of Transaction Managers (Tuxedo,
  14. >>Encina, Top-End under Unix).  These products, and their grandpappy, CICS,
  15. >>have the ability to distribute transactions among processors or machines be
  16. >>they 10 feet apart or 100 miles.  
  17. >>
  18. >>The general approach to your problem would be to have machine 1 (M1) receiving 
  19. >>and processing transactions.  A 100 miles away, you put machine 2 (M2).  A 
  20. >>wire runs between them.  Whenever a transaction comes into M1 for processing, 
  21. >>the same transaction is forwarded on to M2 for identical processing.  If M1
  22. >>goes down for some reason (Hurricane), M2 takes over processing.  Whether
  23. >>transactions arrive at it from M1, or straight from the source units across
  24. >>the net, they all look the same to it.  
  25. >
  26. >I infer that you are using 'transaction processing' in the older usage, of
  27. >a unit of work to be processed, canonically a 3270 screen. 
  28.  
  29. No.  A transaction is any set of actions upon the database requiring a
  30. change from a consistent to an inconsistent state, and return to a
  31. consistent state through a commitment of the actions or roll back.  For
  32. example, TPC-A or B benchmarks.
  33.  
  34. >Nowadays a
  35. >'transaction manager' usually means a system to support logical database
  36. >transactions with journaling and recovery, and does not refer to application
  37. >data flow. The ENCINA product is only the former, as far as I know.
  38.  
  39. Journaling and recovery are typically handled at the Resource Manager
  40. (DBMS) level, but are coordinated by a TM, especially if a system is
  41. distributed across machines.  However, the TM handles the routing of
  42. transactions amongst machines until they reach their final destination for
  43. processing.  Tuxedo even supports data-dependant routing.  That is, a
  44. DEPOSIT transaction for account 103xxxx would get routed to machine 103,
  45. while a DEPOSIT for account 457xxxx would go to machine 457, even though
  46. both machines are running the exact same software.
  47.  
  48. >
  49. >Given a CICS-like environment, you propose splitting all input transactions
  50. >(3270 screens) across two systems (i infer). 
  51.  
  52. 3270 screens aren't the right analogy.  A collection of DBMS activities
  53. are better:
  54.     Update cust_bal set bal = bal + deposit where acct = cust_num;
  55.     Update tell_bal set bal = bal + deposit where tell = tell_num;
  56.     Update brnc_bal set bal = bal + deposit where branch = brnc_num;
  57.     Insert into his_log values(cust_num, deposit, tell_num, brnc_num, time);
  58.     COMMIT WORK;
  59.  
  60. >One of these system is 'muted' so that its outputs are
  61. >supressed. This is not quite perfect, though, due to the possibility of
  62. >timing differences on the two systems. Any transaction mix that leads to
  63. >lock races could have different outcomes on the two systems due to random
  64. >timing differences.
  65.  
  66. The two systems are not in lock step.  The above transaction would arrive
  67. at machine 1 as a DEPOSIT transaction and would be processed by the
  68. DEPOSIT process.  The very same transaction would be routed to machine 2
  69. for the same processing.  There is no need the individual DEPOSIT processes
  70. to even know about each other.  The coordination that does have to take
  71. place is that machine 2 completes the transaction successfully.  If it
  72. doesn't, then this transaction remains open in a log on machine 1.  It does
  73. NOT affect the consistency of the data on machine 1.  Machine 1 is just
  74. storing up transactions that are uncompleted on machine 2.  At this point
  75. it should be programatic to insure that when machine 2 does ressurect, it
  76. does catchup with machine 1, and all transactions are processed singularly
  77. by machine 2.
  78.  
  79. Great in theory, but I haven't seen it work, under Unix.  I have seen it on 
  80. IBMs and PC's.  In a previous life a fella I worked with did exactly this 
  81. under DOS using Token Ring.  And by golly it worked.  We couldn't break it, 
  82. and the databases were always consistent after the dead machine was brought 
  83. back up.  If it can be done on DOS, surely it can be added in Tuxedo or Encina, 
  84. or Top-End.
  85.  
  86. >It seems to me that you have to base hot standby either on a copy of the
  87. >disk-write stream, or a copy of the journal stream, which is more efficient
  88. >and can more easily support catchup. I am basically trying to
  89. >find out if any commercial databases do replication based on the journal
  90. >stream.
  91.  
  92. It would be nice if a commercial DBMS did support data replication, and not
  93. simply data distribution (table 1 on machine 1, table 2 on machine 2).
  94. Such a product would make micro based, high availability OLTP engines a
  95. reality, without needing special hardware gyrations.  In the meantime, TMs
  96. should be able to handle this through programming.
  97.  
  98.  
  99. -- 
  100. "... For I have sworn upon the alter of god, eternal hostility against
  101. every form of tyranny over the mind of man."  Thomas Jefferson
  102. Brian Douglass        briand@anasazi.com     602-870-3330 X657
  103.