1. 28 Jul, 2016 4 commits
    • Jim Fulton's avatar
      Added the ability to pass credentials when creating client storages. · dbb066d2
      Jim Fulton authored
      This is experimental in that passing credentials will cause
      connections to an ordinary ZEO server to fail, but it facilitates
      experimentation with custom ZEO servers. Doing this with custom ZEO
      clients would have been awkward due to the many levels of
      composition involved.
      
      In the future, we expect to support server security plugins that
      consume credentials for authentication (typically over SSL).
      
      Note that credentials are opaque to ZEO. They can be any object with
      a true value.  The client mearly passes them to the server, which
      will someday pass them to a plugin.
      dbb066d2
    • Jim Fulton's avatar
      Storage-server cleanups · 02943acd
      Jim Fulton authored
      Especially splitting the method used to send invalidations and info,
      since we no-longer send both in the same call.
      02943acd
    • Jim Fulton's avatar
      Send invalidations even when empty · c8f1c523
      Jim Fulton authored
      If a transaction only adds objects (like the transaction that ZODB.DB
      uses to create the root objects, we still need to send invalidations so clients see the new tid, because MVCC.
      c8f1c523
    • Jim Fulton's avatar
  2. 21 Jul, 2016 9 commits
  3. 20 Jul, 2016 2 commits
  4. 19 Jul, 2016 7 commits
  5. 18 Jul, 2016 7 commits
  6. 17 Jul, 2016 2 commits
  7. 16 Jul, 2016 6 commits
  8. 14 Jul, 2016 2 commits
  9. 09 Jul, 2016 1 commit
    • Jim Fulton's avatar
      Internal refactoring of the commit lock manager · f4bcea77
      Jim Fulton authored
      In working on the next iteration of the lock manager to provide
      object-level locking, I realized:
      
      - It was saner let all waiting try to get locks when locks are
        released, at least in the more complicated logic to follow.
      
      - We really do almost certianly want a multi-threaded server, even if
        it doesn't run faster (still an open question), because otherwise,
        big commits will completely block loads.
      
      - We don't really want to hold the lock-manager lock while calling the
        callback.  Again, this really only matters if we have a
        multi-threaded server, but it also feels like a matter of hygiene :)
      
      I decided to rework this branch:
      
      - Don't hold lock-manager internal lock when calling the callnack.
      
      - When releasing the lock, use call_soon_threadsafe to let all waiting
        have a chance to get the lock.
      
      - A little bit of factoring to DRY. (This factoring will be much more
        useful in the follow-on branch.
      
      This rework restores the workability of the thread-per-client model.
      f4bcea77