1. 01 Apr, 2004 2 commits
    • Tim Peters's avatar
      None of the tests ran, but this was shallow -- setup.py hadn't been · 3edc5d6e
      Tim Peters authored
      taught about the new "transaction" package.
      3edc5d6e
    • Jeremy Hylton's avatar
      Merge the jeremy-txn-branch to the head. · a54e7bb3
      Jeremy Hylton authored
      This branch introduces a new transaction API.  The key features are:
        - top-level functions in transaction -- get(), commit(), abort()
        - explicit transaction manager objects
        - Transaction objects are used for exactly one transaction
        - support for transaction synchronizers
      
      The changes here are still provisional, but we want to get them off an
      obscure branch and onto the head for further development.
      a54e7bb3
  2. 30 Mar, 2004 2 commits
    • Tim Peters's avatar
      FileStoragePacker: the change yesterday to speed packing by doing most · 0f8c1aa0
      Tim Peters authored
      of pack in buffered mode, then switching to unbuffered mode to copy the
      tail, actually broke pack completely on Windows:  we didn't close the
      buffered file handle before opening the unbuffered one, and self.gc held
      on to the still-open former handle.  This prevented the caller from
      renaming Data.fs to Data.fs.old (a handle on Data.fs was still open).
      The cure is simply to close a handle when we stop using it.
      0f8c1aa0
    • Jeremy Hylton's avatar
      Add presumed speed optimization for pack(). · 96659bd7
      Jeremy Hylton authored
      Only open the file for unbuffered I/O after finishing the first phase
      of pack.  The first phase gets its end-of-file position from the main
      thread, so there's no possibility of reading a 'c' record.
      
      Timings on Linux are inconclusive, but it seems like using buffered
      I/O for the initial phase should be faster.
      96659bd7
  3. 23 Mar, 2004 1 commit
    • Stephan Richter's avatar
      · 5507592c
      Stephan Richter authored
      Provide a way to shutdown the servers using an exit status.
      5507592c
  4. 21 Mar, 2004 3 commits
  5. 18 Mar, 2004 2 commits
    • Tim Peters's avatar
      FileStoragePacker: open the filestorage in unbuffered mode. Transactions · 3a7a90f6
      Tim Peters authored
      can still be in progress, and they're written to the same physical file via
      a different file object.  Using buffered I/O in the packer creates the
      possiblity for the packer to see stale data from its file object's stdio
      buffers.  This is now known to happen under Linux, Gentoo, OS X, Cygwin,
      and Debian.  It apparently doesn't happen under native Windows, which is
      why everyone except me has been seeing the new checkPackLotsWhileWriting
      test fail.
      
      This will probably need to be backported everywhere, but first I want to
      see in which new way checkPackLotsWhileWriting fails on 48 Linux boxes
      overnight <wink>.
      3a7a90f6
    • 's avatar
      updated / unified sha-bang as discussed on zope-dev · 4e803728
      authored
      (distutils mungs it anyway, so it's just relevant for developers)
      4e803728
  6. 17 Mar, 2004 2 commits
    • Tim Peters's avatar
      By popular demand, FileStorage.pack() no longer propagates a · 00f6abf3
      Tim Peters authored
          FileStorageError:  The database has already been packed to a
          later time or no changes have been made since the last pack
      
      exception.  Instead that message is logged (at INFO level), and
      the pack attempt simply returns then (no pack is performed).
      
      Incidentally, this should repair frequent reports of failure in the
      new checkPackLotsWhileWriting test.  On non-Windows systems, it
      seems that the worker thread often didn't get enough cycles to commit
      a change between the main thread's attempts to run pack() (and so
      the exception above got raised then).
      00f6abf3
    • Tim Peters's avatar
      checkPackLotsWhileWriting: remove excess generality. Only one client · e15aeeca
      Tim Peters authored
      thread is interesting here, so removed the hair catering to the possiblity
      of N > 1 threads.
      e15aeeca
  7. 16 Mar, 2004 11 commits
  8. 15 Mar, 2004 1 commit
  9. 13 Mar, 2004 3 commits
    • Jeremy Hylton's avatar
      Revise Connection. · 326ff391
      Jeremy Hylton authored
      Make _added_during_commit a regular instance variable.  Don't use
      try/finally to reset it; just clear it at the start of a transaction.
      XXX There was a test that needed to be removed, but it seemed to be
      just a shallow test that try/finally was used.  Can't see any feature
      that depends on specific of error handling: The txn is going to abort.
      
      Remove unused _opened instance variable.
      Split commit() into two smaller parts.
      Get rid of extra manipulation of _creating.
      Don't look for _p_serial of None; z64 is now required.
      Undo local variable aliases in subtransaction methods.
      
      Also, trivial change to pickle cache API -- get() works like dict get().
      326ff391
    • Jeremy Hylton's avatar
      Consistent formatting. · 982055e6
      Jeremy Hylton authored
      982055e6
    • Tim Peters's avatar
      New (but disabled for now) test checkPackLotsWhileWriting reliably dies · 4a6f51c1
      Tim Peters authored
      with
      
          CorruptedError:  ... transaction with checkpoint flag set
      
      on my box when doing the ZEO flavor of FileStorage.  This is like the
      other pack-while-writing tests, but uses only 1 client thread that does
      twice as much, and packs repeatedly for so long as that thread runs.  I
      usually see it fail before the fourth pack attempt.
      4a6f51c1
  10. 12 Mar, 2004 13 commits