about summary refs log tree commit homepage
tag namev0.2.0 (76e40313ee66d1cc70a5dea7d41e85f734b85014)
tag date2012-03-17 23:36:54 +0000
tagged byEric Wong <normalperson@yhbt.net>
tagged objectcommit 59f429bdd3...
downloadcmogstored-0.2.0.tar.gz
cmogstored 0.2.0 - continual improvements
* Graceful shutdown support (via SIGQUIT).  This prevents process
  termination from breaking outstanding requests but will drop
  idle, persistent HTTP connections.  cmogstored stops accepting
  new connections ASAP, so it's possible to start a new cmogstored
  process (or switch back to regular Perl mogstored) almost
  immediately after sending SIGQUIT.

* PUT creates missing directories (except for the toplevel, like
  mogstored).  MKCOL is now disabled, as forcing PUT to create
  missing directories speeds up "create_close" in MogileFS as the
  tracker no longer has to ensure directories exist.

* Active clients have thread affinity, this prevents per-client data
  structures from ping-ponging between cores and caches.
  Idle clients that become active still retain the ability
  to migrate to _any_ idle thread and stay on it as long as it's
  active and there are free threads for other clients.

* MD5 + fsck scheduling improvements for checksums testers.
  This limits fsck MD5 requests to one per-device.  A similar
  patch is also included with the proposed checksum extensions
  to MogileFS.  On Linux systems using the CFQ I/O scheduler,
  we drop the IO priority temporarily in an effort to prevent
  fsck traffic from impacting normal traffic.

* Removed hard-to-test/support ENOSYS fallback support.  Building
  cmogstored is easy, so fully-supporting ENOSYS fallbacks is too
  much maintenance/testing overhead.

* PUT uses a temporary file so incomplete files are not left on
  the filesystem.  Likewise, Content-MD5 rejections won't leave
  files on the filesystem, either.

There are also some experimental features (not in Perl mogstored)
documented only in git commit messages.  These features which may
be removed, changed, or renamed in the future.  See "git log" for
full details and rely on them at your own risk.