]> git.ipfire.org Git - thirdparty/squid.git/commit - src/fs_io.cc
Stewart Forster Jumbo Patch
authorwessels <>
Tue, 3 Feb 1998 04:14:49 +0000 (04:14 +0000)
committerwessels <>
Tue, 3 Feb 1998 04:14:49 +0000 (04:14 +0000)
commit6cf028abeec045f1f05709a060b2c1b42cc22b88
tree880ed6e929984aa78c00eeac4c04011a702f65e5
parentdbfed404c6bd107bed1066c27d8cfe18f0910ac3
Stewart Forster Jumbo Patch

        - Completely rewritten aiops.c that creates and manages a pool of
          threads so thread creation overhead is eliminated
        - Lots of extra debugging
        - Lots of mods to store.c to detect and cancel outstanding ASYNC ops.
          Code is not proven exhaustive and there are definately still cases
          to be found where outstanding disk ops aren't cancelled properly.
        - Changes to call interface to a few routines to support disk op
          `tagging', so operations can be cleanly cancelled on store_abort()s.
        - Implementation of swap.state files as transaction logs.  Removed
          objects are now noted with a negative object size.  This allows
          reliatively clean rebuilds from non-clean shutdowns.
        - Now that the swap.state files are transaction logs, there's now no
          need to validate by stat()ing.  All the validation procedure does
          is now just set the valid bit AFTER all the swap.state files have
          been read, because by that time, only valid objects can be left.
          Object still need to be marked invalid when reading the swap.state
          file because there's no guarantee the file has been retaken or
          deleted.
        - An fstat() call is now added after every storeSwapInFileOpened() so
          object sizes can be checked.   Added code to storeRelease() the
          object if the sizes don't match.
        - #defining USE_ASYNC_IO now uses the async unlink() rather than
          unlinkd()
        - #defining MONOTONIC_STORE will support the creation of disk objects
          clustered into directories.  This GREATLY improves disk performance
          (factor of 3) over old `write-over-old-object' method.  If using the
          MONOTONIC_STORE, the {get/put}_unusedFileno stack stuff is disabled.
          This is actually a good thing and greatly reduces the risk of serving
          up bad objects.
        - Fixed unlink() in storeWriteCleanLogs to be real unlink() rather
          than ASYNC/unlinkd unlinks.  swap.state.new files were being removed
          just after they were created due to delayed unlinks.
        - Disabled various assertions and made these into debug warning
          messages to make the code more stable until the bugs can be tracked
          down.
        - Added most of Michael O'Reilly's patches which included many bug
          fixes.  Ask him for full details.
        - Moved aio_check_callbacks in comm_{poll|select}().  It was called
          after the fdset had been built which was wrong because the callbacks
          were changing the state of the read/write handlers prior to the
          poll/select() calls.
21 files changed:
ChangeLog
src/access_log.cc
src/asn.cc
src/client_side.cc
src/comm.cc
src/disk.cc
src/errorpage.cc
src/fd.cc
src/filemap.cc
src/main.cc
src/mime.cc
src/protos.h
src/send-announce.cc
src/stmem.cc
src/store.cc
src/store_dir.cc
src/structs.h
src/tools.cc
src/typedefs.h
src/unlinkd.cc
src/useragent.cc