• Jim Fulton's avatar
    Reimplemented the ZEO Blob protocol: · e4f4f6b6
    Jim Fulton authored
    - Avoid more than one round-trip call when loading blobs via copy from
      the server.
    
    - Avoid loading large amounts of blob data into memory.  The old
      storeBlob implementation was likely to queue blob adta faster than
      it could be sent, leading to a large memory foot print for the
      queue. Now, iterators are used to read data from files only when the
      network layer is ready to send it.
    
    - Fixed storeBlob to move the input file to the blob cache (when not
      sharing the blob directiry with the server).
    
    - Extended the loadBlob locking model to work with multiple processes
      by using file locks rather than threading locks.  A common
      configuration is to use a client process per core, so that a machine
      is likely to have many client processes and it should be possible
      for the client processes to share a common blob cache.
    e4f4f6b6
testZEO.py 27 KB