home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / benchmar / 1694 < prev    next >
Encoding:
Internet Message Format  |  1992-11-21  |  4.2 KB

  1. Xref: sparky comp.benchmarks:1694 comp.arch.storage:774
  2. Path: sparky!uunet!news.centerline.com!noc.near.net!news.bbn.com!usc!zaphod.mps.ohio-state.edu!cs.utexas.edu!sun-barr!news2me.EBay.Sun.COM!exodus.Eng.Sun.COM!sun!amdcad!BitBlocks.com!bvs
  3. From: bvs@BitBlocks.com (Bakul Shah)
  4. Newsgroups: comp.benchmarks,comp.arch.storage
  5. Subject: Re: Disk performance issues, was IDE vs SCSI-2 using iozone
  6. Message-ID: <Bxs0CD.642@BitBlocks.com>
  7. Date: 15 Nov 92 21:14:36 GMT
  8. References: <1992Nov11.064154.17204@fasttech.com> <1992Nov11.210749.3953@igor.tamri.com> <36995@cbmvax.commodore.com> <1992Nov12.193308.20297@igor.tamri.com>
  9. Organization: Bit Blocks, Inc.
  10. Lines: 72
  11.  
  12. jbass@igor.tamri.com (John Bass) writes:
  13.  
  14. >                                          When it was demanded by the powers
  15. >that be at Fortune Systems ... we put it in ... only to take it when Field
  16. >Service grew tried of the bad block tables overflowing and taking a big loss
  17. >on good drives being returned due to "excessive bad blocks" as the result
  18. >of normal (or abnormal) soft error rates due to other factors.
  19.  
  20. Uh, John, that was because we *screwed up* the bad block algorithm
  21. the first time around.  The block forwarding was done on *read*
  22. errors, which was quite the wrong thing to do and rather than fix
  23. that we *marked* the entire spare table as unusable and as a result
  24. even a single block going bad in field could not be handled.  A
  25. disk driver that handled bad blocks correctly was never released....
  26.  
  27. But I agree with you (& Peter da Silva) that the filesystem code
  28. should know how to deal with bad blocks.  Note that regardless of
  29. where you handle bad blocks, the issues remain the same:
  30.  
  31. 1. A read error should *never* be hidden from the layer above.
  32.    Ultimately the user (or an applicatio on his behalf) should
  33.    know if a block in a file is bad as only he (or that
  34.    application) may have enough context to know what to do with
  35.    such an error.
  36.  
  37. 2. If a block could be read on a retry, *tell* the layer above
  38.    that a soft error was seen.  This allows the upper layer code
  39.    to either avoid this block by forwarding the data somewhere or
  40.    try to somehow remove the error by reformatting or whatever.
  41.  
  42. 3. The best policy is to avoid using a permanently bad block and
  43.    an upper layer *ought* to be able to do so intelligently.  For
  44.    example, a FS can put a bad block on a list of known bad
  45.    blocks so it is never reused.  In case the block is in the
  46.    inode area, there ought to be a list of *bad* inodes so that
  47.    they are never reallocated, etc.  A user can remove a file
  48.    with a bad block rather than try to rewrite it (and the FS
  49.    should avoid putting a known bad block on the free list when a
  50.    file is removed).  A database application should be smart enough
  51.    to shuffle things around so that a bad index block can be safely
  52.    removed or avoided.
  53.  
  54. 4. If 3. is not possible and the upper layer insists on rewriting
  55.    a known bad block, *that* is when block forwarding needs be
  56.    done.  So I am *not* against lower layers (e.g. the disk
  57.    driver, disk controller and the disk) doing block forwarding;
  58.    it is just that a) this facility should be a last resort and
  59.    b) I should not be forced to use it when I may have better
  60.    means of avoiding it.
  61.  
  62. Ultimately no single layer is capable of handling errors properly
  63. under most conditions and no single layer should be depended upon
  64. for handling recovery from such errors.
  65.  
  66. >Write buffering requires automatic remapping ... A good filesystem design
  67. >should not see any benefits from write buffering, and doesn't need/want
  68. >remapping. Nor do customers want random/unpredictable performance/response
  69. >times.
  70.  
  71. It is not hard to avoid driver/controller level remapping even in
  72. presence of write buffering (see the 4 points above) though I
  73. don't think any Unix FS currently does so (but that is not the
  74. only problem with Unix FS designs as we all know).  I do not
  75. agree that a good filesystem would not see any benefits from
  76. write buffering.  Write-back or delayed write caching does
  77. improve performance.  Error reporting/recovery and caching are
  78. two of many concepts that are relevant at every level/layer.
  79. Some customers will accept good but somewhat unpredicable
  80. performance if it is at a low cost.  Some won't.  No one design
  81. will satisfy them all.
  82.  
  83. Bakul Shah <bvs@BitBlocks.com>
  84.