1. 19 Nov, 2002 5 commits
    • Barry Warsaw's avatar
      b8274435
    • Barry Warsaw's avatar
      _setupDBs(): Use the new extended _setupDB() arguments for the · 0dc859e1
      Barry Warsaw authored
      DB_QUEUE tables.
      
      close(): We can really simplify this and make it more robust for when
      we add new tables, by relying on the fact that the base class
      maintains its own list of opened tables, and the base class close()
      method closes them in turn.
      
      autopack(): Default the gc argument to False.
      
      _collect_objs(), _mark(), _sweep(): Add an escape hatch for the pack
      operation inside the inner loops of each of these methods.  That way,
      we don't have to wait until the loops are finished to exit the pack
      operation, if stop() has been requested by the main thread.
      
      _Autopack: Use the _WorkThread base class.
      0dc859e1
    • Barry Warsaw's avatar
      _setupDBs(): The oidqueue table used to do double-duty, both during · 71f1008d
      Barry Warsaw authored
      the mark phase and during the sweep phase.  But this doesn't play
      nicely with the escape hatch for pack, since if we raise a PackStop,
      it's fine if we truncate the mark queue but not if we truncate the
      sweep queue.  So the latter is now separated into the delqueue table.
      
      Also, use the new extended _setupDB() arguments for the DB_QUEUE
      tables.
      
      close(): We can really simplify this and make it more robust for when
      we add new tables, by relying on the fact that the base class
      maintains its own list of opened tables, and the base class close()
      method closes them in turn.
      
      autopack(): Default the gc argument to False.
      
      _collect_revs(), _collect_objs(), _mark(), _sweep(): Add an escape
      hatch for the pack operation inside the inner loops of each of these
      methods.  That way, we don't have to wait until the loops are finished
      to exit the pack operation, if stop() has been requested by the main
      thread.
      
      AUTOPACK_CHECK_SLEEP removed.
      
      _Autopack: Use the _WorkThread base class.
      71f1008d
    • Barry Warsaw's avatar
      Normalize whitespace · b4488779
      Barry Warsaw authored
      b4488779
    • Barry Warsaw's avatar
      Based on suggestions by Toby, we're now throwing checkpointing into a · 3e91643e
      Barry Warsaw authored
      thread, instead of doing it every nth ZODB transaction.  We can
      actually provide a base class for both the checkpointing and
      autopacking threads here.  Changes here include:
      
      SLEEP_TIME: how often (in seconds) a background thread should wake up
      to see if there's work to do.
      
      True, False: Add these for older Pythons.
      
      PackStop: New class that acts as an escape hatch for pack operations.
      
      BerkeleyConfig:
          - change interval from 100 to 0.  Now that this controls the
            checkpointing thread, the current default is to not spawn the
            thread.  I'm probably going to change this once I figure out
            what a good value is.
      
      BerkeleyBase:
          - __init__(): Start the checkpointing thread if interval > 0
      
          - _setupDB(): Add some additional keyword args so that the QUEUE
            style tables can use this convenience method too.
      
          - close(): Be sure to stop and join the checkpointing thread
      
          - _docheckpoint(): Removed
      
          - _withtxn(): Catch PackStop escape hatch exceptions.  This one
            aborts the current Berkeley transaction but eats the exception.
            Also, don't call _docheckpoint() here.
      
           - docheckpoint(): New method which the checkpointing threads can
             call.
      
      env_from_string(): use DB_RECOVER_FATAL for autorecovery on open.
      
      _WorkThread: New base class for the checkpointing and autopacking
      threads.
      
      _CheckPoint: The common checkpointing thread class.
      3e91643e
  2. 18 Nov, 2002 1 commit
  3. 15 Nov, 2002 3 commits
  4. 14 Nov, 2002 4 commits
    • Guido van Rossum's avatar
      Require Python 2.2.2 or later. · 57375f03
      Guido van Rossum authored
      57375f03
    • Fred Drake's avatar
      Normalize whitespace. · 1f56608d
      Fred Drake authored
      Update information about the version of Python required -- Python
      2.2.2 fixed a bug that seriously affected some Zope installations that
      used 2.2.1.
      1f56608d
    • Fred Drake's avatar
      Normalize whitespace. · 6f9b7b3f
      Fred Drake authored
      Update information about the version of Python required -- the trunk
      is now in the new world (by Papal edict; don't shoot the messenger!).
      6f9b7b3f
    • Barry Warsaw's avatar
      _collect_revs(): It's possible that the metadata and txnoids entries · 16bb52cf
      Barry Warsaw authored
      for an object revision in objrevs got collected away when the entire
      object was refcounted to zero.  Be more defensive about find and
      deleting these records.
      
      Also, truncate the packtime table before writing the new record, to
      maintain the database invariant that there is only allowed one entry
      in this table at a time.
      16bb52cf
  5. 13 Nov, 2002 8 commits
  6. 12 Nov, 2002 10 commits
  7. 11 Nov, 2002 8 commits
  8. 09 Nov, 2002 1 commit