2007-04-24: Release version 2.10

        * bug from earlier refactoring:  changing some 'next' to 'return'
          in MogileFS::Device's create_directory method.  (thanks to
          Justin Huff <jjhuff@mspin.net>)

        * make sure mogdbsetup doesn't upgrade an existing table (with
          potentially lot of data) from MyISAM to InnoDB.  just warn.
          only new tables should become InnoDB on creation.  also,
          detect InnoDB even on old MySQL 4.0.x, not just 4.1/5.0.

        * make fsck faster by reducing number of db queries (both
          reads and writes), though more unrelated fastness remains to
          be done.

        * make fsck_status faster (keep summary stats of evcode counts,
          rather than doing a full GROUP BY query all the time)

2007-04-20: Release version 2.09

        * filesystem checker (Fsck worker).  off by default, unless
          it's enabled via protocol.  Control/monitor it with mogadm
          in MogileFS-Utils 2.08, which needs MogileFS::Client 1.06.

        * replication speed-up on configurations with only 1 host.
          (replication would randomly have no suggestions before, when
           there was only 1 target host, so replication would be rescheduled
           until the future, when random returned a different device on
           that host)

2007-04-17: Release version 2.08

        * (no runtime-visible changes from 2.07)

        * mogilefsd: remove incomplete "Checker" worker, replace with
          incomplete "Fsck" worker.

        * test cleanup/robustness improvements.  properly skips testing when
          testin deps not found.  but searches harder for them now, too.
          tests run under "make disttest".

        * packaging cleanups, released using ShipIt.


2007-03/04:

        * mogilefsd: Split Plugin::MetaData and Plugin::FilePaths into their own distributions.

        * mogilefsd: Fix mogdbsetup to not ask empty questions.

        * mogilefsd: command line/config file support for listening on specific IPs, also
           support for listening on multiple IPs/ports

2007-03-19:
        * mogstored: use XS HTTPHeaders by default, unless disabled with environment variable

        * mogilefsd: memcache support for get_paths (see doc/memcache-support.txt)

2007-03-16:
        * mogstored: make child processes be exec'ed (as as their own scripts, not inhertting
          Perlbal, Linux::AIO/IO::AIO, etc baggage).  so they don't own listening
          sockets, pipes to child workers, signal handlers, etc.  just a lot
          cleaner now, and SIGTERM, SIGINT properly shut everything down now,
          both in foreground and as daemon

2007-03-15:
        * mogstored: this changelog is totally neglected.  :/  see svn log.

        * mogstored: make perlbal's "shutdown graceful" work, by not doing
          sidechannel accepting ourselves (which never hung up),
          but subclass Perlbal's TCPListener class, which does it
          all correctly.

2006-12/2007-01:  (2.00_05)
        * mogilefsd: everything converted to OO API internally.  old internal APIs removed.

        * mogilefsd: be database-agnostic.  Currently only works with MySQL (and
           SQLite as a joke/demo), but Pg/Oracle coming in the future.

        * mogilefsd: built-in I/O activity monitoring between mogstored/mogilefsd Monitor
           now.

        * mogilefsd: much improved internal communication between worker processes

        * mogilefsd: start of better docs

2006-12-28
        * mogilefsd: pidfile support (Radu Greab <radu@yx.ro>)

2006-12-28
2006-12-27
        * mogilefsd: remove all old internal APIs, update everything to use new OO APIs,
           expanding OO APIs where necessary (lots of places).  so much more
           beautifully hackable now.

        * mogstored: kill child processes (diskusage and iostat) when being killed.

2006-11-05:
        * mogstored: set aio threads after daemonizing.  needed by Linux::AIO/IO::AIO, it seems?

2006-09-29
        * mogilefsd: remove non-HTTP mode ("NFS mode") from the server

2006-09-23:
        * mogstored: refuse to start up with missing Linux::AIO/IO::AIO or broken Linux::AIO

2006-09-04:
        * mogstored: set aio_threads as a function of number of disks

2006-07 -> 2006-09
        * mogilefsd: major refactoring/cleanup/new features ("MogileFS 2.0")

2006-03-01 (Brad)
        * mogilefsd: fix dataloss bug when the 'tempfile' table is Innodb and the
           server is restarted while the tempfile table is empty.

2006-02-28 (Jr)
        * mogilefsd: allow create_open to take optional fid parameter which enables you to
        dictate which fid to use internally and to not rely on MySQL's auto_increment

2006-01-10 (Brad)
        * mogilefsd: make Mgd::get_device_summary() always return all devices, regardless
        of status.

        * mogilefsd: update all callers of get_device_summary to filter on the device
        status, if they need to. (provided more clarity into what
        callers' intentions were...)

        * mogilefsd: add a new device state 'readonly' which means: it can be read from
        from clients, it can be replicated from, but no new files can go
        on it or be replicated onto it. and it also reaps, meaning the
        device is fucked. the filesystem probably ate itself.

2005-08-10:
        * mogstored: write out usage files for devices, even if they're not on their own mount point.
          also explicitly include the '-k' flag to df, so we know they're KiB.

2005-08-07:
        * mogstored: new config syntax and command line options
