Greetings,

The following webrev contains changes for the following issues:

  15762 client support for filesystem-based repository access
  10244 caching dictionaries as a class variable prevents multi-image
        and repo search
  14802 ability to have separate read / write download caches
  15763 test suite should not start depot server unless necessary
  15764 file_manager insert needs to stat() less and return more

webrev:
http://cr.opensolaris.org/~swalker/pkg-file/

======================================================================
Summary of Changes
======================================================================
 * pkg.client.api now supports the 'file' scheme for repository access
   (origins and mirrors); see the pkg.1 man page for a few examples.

 * pkg.client.transport now supports filesystem-based repository
   access (and stats tracking)

 * search is now possible when using multiple image interface objects
   for different images; previously, this would not have worked as
   expected or performance would have been severely degraded.

 * transport API now supports a shared, global read/write cache, and
   a single read/write cache per publisher, and an unlimited number
   of global or publisher-specific read caches

 * test suite now primarily uses file-based repository access so doesn't
   start a depot server unless explicitly requested

 * unit tests simplified by moving common code for getting API objects
   into unittest class

 * file_manager cache management performance improved

 * client cache usage performance improved

 * transport speeds now more accurate for pipelined http(s) requests

======================================================================
Additional Notes
======================================================================
 * file-based repositories are used as a local, publisher-specific,
   read-only cache by default; this means package file content is not
   copied to the client's /var/pkg/download directory as a performance
   optimisation.  This could be controlled by image policy if so desired
   as a future RFE.

 * Repositories without a cfg_cache file in their root, or repositories
   with a split structure (data does not share a central location) are
   not currently supported.  (Out of scope; large set of changes
   required; further evaluation needed.)

 * A slim_install using a system with fast I/O can be done in < 2
   minutes using filesystem-based repository access.  The majority of
   overhead during the operation is in content verification which is
   almost completely I/O bound.

 * Search operations against a filesystem-based origin will use
   significantly more memory than the same search performed against
   a network-based source relative to the size of the search
   indices.  This is expected since the client is acting as both the
   server and client in this scenario.

 * If a publisher has origins using both 'file' and 'http(s)'
   configured, the 'http(s)' origins will be tried first when
   performing search operations to avoid incurring the overhead
   noted above.

Cheers,
-Shawn
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to