1 2012-01-31: Release version 2.57
3 * Silence a warning about undefined value introduced by the slave database ordering work (hachi@kuiki.net)
5 * Need a hook to be able to check the slave list during startup (hachi@kuiki.net)
7 2012-01-27: Release version 2.56
9 * Add database connect timeouts (dormando <dormando@rydia.net>)
11 * fix potential hang in JobMaster added in 2.55 (dormando <dormando@rydia.net>)
13 * fix "set_weight" command (Eric Wong <normalperson@yhbt.net>)
15 * sqlite: consider SQLITE_BUSY and SQLITE_LOCKED deadlocks (Eric Wong <normalperson@yhbt.net>)
17 * kill a little more dead fsck/Checker code (dormando <dormando@rydia.net>)
19 * Destroy mogdeps (dormando <dormando@rydia.net>)
21 * improve slave handling code (dormando <dormando@rydia.net>)
23 * don't spew errors if the master goes down (dormando <dormando@rydia.net>)
25 * provide an async server setting cache via monitor worker (dormando <dormando@rydia.net>)
27 * fix return value of commands that clear_cache (Eric Wong <normalperson@yhbt.net>)
29 * make reaper wait less time in test mode (dormando <dormando@rydia.net>)
31 * queryworker: reimplement "clear_caches" command (Eric Wong <normalperson@yhbt.net>)
33 * worker: use timeout with read_from_parent() instead of sleep (Eric Wong <normalperson@yhbt.net>)
35 * Fixed issue where too many devices being active could cause the monitor job
36 to be timed out by the watchdog. (Tomas Doran)
38 2011-11-14: Release version 2.55
40 * fixed sources in replication are now a suggestion (dormando <dormando@rydia.net>)
42 * More stats to help troubleshoot rebalance (dormando <dormando@rydia.net>)
44 * return 1 from condthrow if all is well (dormando <dormando@rydia.net>)
46 * schedule fsck replications for the future. (dormando <dormando@rydia.net>)
48 * stop enforcing a source id on new file upload (dormando <dormando@rydia.net>)
50 * restore new file upload replication priority (dormando <dormando@rydia.net>)
52 * Prevent queue related MySQL query hangs (dormando <dormando@rydia.net>)
54 2011-10-29: Release version 2.54
56 * Issue 36: Further insulate from mysql restarts resetting the fid counter (dormando <dormando@rydia.net>)
58 * Allow default class to be overridden again. (dormando <dormando@rydia.net>)
60 * Fix crash in old delete worker code (Daniel Frett <daniel.frett@ccci.org>)
62 * Fix mb_free() counting empty device as missing (git.user <git.user@gmail.com>)
64 * sqlite: fix mogdbsetup failure on new setups (Eric Wong <normalperson@yhbt.net>)
66 * fid size workaround for lighttpd 1.4.x (dormando <dormando@rydia.net>)
68 * Fix various issues in the new mogilefs server query worker. (Tomas Doran <bobtfish@bobtfish.net>)
70 * Allow chunked PUT's of unlimited size (dormando <dormando@rydia.net>)
73 * Fix fsck fixing a file from logging a message which appears to be
74 two commands (due to spurious \n). Also fix debug function to
75 not be able to log messages like this.
77 2011-08-12: Release version 2.53
79 * Fix host status not updating for trackers (important)
81 2011-07-30: Release version 2.52
83 * Plugins (such as FilePaths) might want to be run in info/debug commands (Michael Baehr <mbaehr@plos.org>)
85 * schema version 14; support devices > 16TB (dormando <dormando@rydia.net>)
87 * Make FSCK worker handle dead devices (dormando <dormando@rydia.net>)
89 * Throw out old HTTPFile->size code and use LWP (dormando <dormando@rydia.net>)
91 * Remove forced loading of DBD::mysql (dormando <dormando@rydia.net>)
93 * Don't test write on readonly devices (Akzhan Abdulin <akzhan.abdulin@gmail.com>)
95 2011-06-27: Release version 2.51
97 * Add minor backcompat for ZoneLocal and friends (dormando <dormando@rydia.net>)
99 * Only monitor a device if we should monitor it. (dormando <dormando@rydia.net>)
101 2011-06-15: Release version 2.50
103 * Completely rewire meta object caches. Device/Host/Class/Domain caches are
104 now asynchronously loaded via the Monitor worker. This should drastically
105 reduce the number of small queries issued against the master database.
106 (dormando <dormando@rydia.net>)
108 * Don't run workers until Monitor runs once (dormando <dormando@rydia.net>)
110 * s/TYPE/ENGINE/ for innodb initialization (dormando <dormando@rydia.net>)
112 * Create mogile database explicitly with UTF-8 encoding. (Robin H. Johnson <robbat2@gentoo.org>)
114 * Actually use the MOGTEST_* variables for Postgres testing... (Robin H. Johnson <robbat2@gentoo.org>)
116 * Add support for config file includes for Mogstored under lighttpd (Jason Mills <jmmills@cpan.org>)
118 * Make postgres use new delete worker code (Robin H. Johnson <robbat2@gentoo.org>)
120 * New test env variables: MOGTEST_DBROOT{USER,PASS} for easier test usage. (Robin H. Johnson <robbat2@gentoo.org>)
122 * Document test variables. (Robin H. Johnson <robbat2@gentoo.org>)
124 * Support inclusion of custom lighttpd config. (Jason Mills <jmmills@cpan.org>)
126 2011-01-13: Release version 2.46
128 * Fix job_master crash under postgres (Robin H. Johnson <robbat2@gentoo.org>)
130 * Revert "only dbh->ping if not used in over a minute" (dormando <dormando@rydia.net>)
131 *IMPORTANT FIX* if you're using 2.45, you should upgrade to this.
133 * Example application. (dormando <dormando@rydia.net>)
135 * missing $fidid for source_down error message (dormando <dormando@rydia.net>)
137 2011-01-08: Release version 2.45
139 * file_debug command (dormando <dormando@rydia.net>)
141 * add "file_info" command for fetching metadata. (dormando <dormando@rydia.net>)
143 * don't allow clients to upload to the wrong dev (dormando <dormando@rydia.net>)
145 * validate database handles in the right places (dormando <dormando@rydia.net>)
147 * only dbh->ping if not used in over a minute (dormando <dormando@rydia.net>)
149 * make list_fids work with gaps (dormando <dormando@rydia.net>)
151 * Postgres enqueue_fids_* cleanup (Robin H. Johnson <robbat2@gentoo.org>)
153 * Fixes MogileFS::Store::retry_on_deadlock to honor non-deadlock exceptions (Jason Mills <jmmills@cpan.org>)
155 * Implements tests for MogileFS::Store::retry_on_deadlock (Jason Mills <jmmills@cpan.org>)
157 * Implements tests for MogileFS::Store::ignore_replace (Jason Mills <jmmills@cpan.org>)
159 * job_master was never revalidating its dbh handle. (dormando <dormando@rydia.net>)
161 * add a couple useful stats (dormando <dormando@rydia.net>)
163 * Correct iostat command on darwin (Tomas Doran <bobtfish@bobtfish.net>)
165 * Fix test db creation with SQLite (Tomas Doran <bobtfish@bobtfish.net>)
167 * Fix SQLite so tracker at least starts (Tomas Doran <bobtfish@bobtfish.net>)
169 * additional debian packaging fixes (kad <kad@blegh.net>)
171 * debian packaging updates. (Andre Bohr <andrepascha@googlemail.com>)
173 * Documentation updates. (Pyry Hakulinen <pyh@iki.fi>)
175 * HTTPFile returns -1 if the file is missing from the device. Content-Length: 0 is valid and it should return BLEN not MISS. (Pyry Hakulinen <pyh@iki.fi>)
177 * some further editing of the info file. (dormando <dormando@rydia.net>)
179 * Changed repository metadata (Tomas Doran <bobtfish@bobtfish.net>)
181 2010-11-25: Release version 2.44
183 * Fix issue with rebalance not filtering source devs from the
186 * Make global rebalance limits work (Martijn Lina)
188 2010-10-10: Release version 2.43
190 * Make over-replication fixable again. (sigh)
192 * Fix old bug in MultipleHosts() which would not let you drop from
193 mindev > 1 down to 1.
195 2010-10-08: Release version 2.42
197 * Make FSCK run again (Andre Pascha)
199 * Fix Postgres schema upgrade issue (hopefully)
201 2010-10-06: Release version 2.41
203 * One line change that to fix uprading to 2.40
205 2010-09-28: Release version 2.40
207 * Optimize worker sleep patterns and worker/parent communications.
209 * New rebalance/drain code. See the docs/wiki for how to use.
210 ***NOTE*** Old drain/rebalance code is disabled. Setting a device
211 into drain mode no longer does what you think it would.
212 http://code.google.com/p/mogilefs/wiki/Rebalance
214 2010-08-13: Release version 2.37
216 * Make HTTP DELETE's work reliably
218 * Fix obscure crashes related to "unknown devices"
220 * make it slightly harder to crash trackers with bad slave DB settings
223 * make tracker -> storage node connection timeout configurable.
224 was hardcoded to 2 seconds. (Tomas Doran)
226 * update_class command (Tomas Doran)
228 2010-04-16: Release version 2.36
230 * Bump required version of perlbal for mogstored.
232 * Critical bug fix for creating files.
233 If you have many dead devices, poor filter ordering could cause
234 MogileFS to not consider any alive devices for new files.
236 * Actually default to BIGINT under MySQL...
237 Bug would always initialize new setups to INT.
239 2010-04-02: Release version 2.35
241 * Nuke ancient mogilefs 1.1 replication code.
242 no_unreachable_tracking and old_repl_compat variables are gone.
245 * Support modifying class replpolicy strings (requires new
246 mogadm/MogileFS::Client) (dormando)
248 * Print fidid and devid on errors when fsck fails to fix something
251 * Allow list_keys to work with a prefix of '0' (dormando)
253 * Print timestamp when logging to STDOUT (t0m)
255 * Sort by free space and weight fewer devices to avoid CPU churn
258 * Fix deadlock-related crash bugs in db queue fetch routines.
260 * Fix dependencies in MogileFS::Server (t0m)
262 * Fix bug in list_keys command that prevented searches with a
263 '0' prefix. (Ask Bjørn Hansen)
265 2009-12-05: Release version 2.34
267 * Fix bug in new copycount reduction code. If it was more than off by
268 one it wouldn't reduce the count properly.
270 * Improve accept loop. A reasonably busy tracker could start dropping
271 new client connections too easily.
273 2009-11-24: Release version 2.33
275 * 'mogadm fsck status' will now be more accurate.
277 * Support non-GNU df (paul armstrong)
279 * Remove old !replication command. It's in `mogadm stats` and tends
280 to kill the parent process.
282 * Force refreshing internal monitoring status every 5 minutes. Help
283 work around a potential bug where state changes are missed.
285 * Use new delete queue for tempfile culling
287 * Calculate free space from available space, not total space
290 * FSCK code has new tunables to control how aggressive it runs:
291 queue_size_for_fsck (how many fids to keep in file_to_queue table)
292 queue_rate_for_fsck (how many fids to put into the table per second)
293 the generic internal queue is now tunable:
294 internal_queue_limit (how many fids to pull out of a queue table at
295 once. old default was 500).
296 All are tunable by 'mogadm settings set'
299 * Replication will now attempt to handle over replication situations.
300 FSCK will catch over replication as a policy violation, and
301 replicate will attempt to fix it. (dormando)
302 (rarely it might need multiple fscks)
304 * Since FIDSizes is no longer used, remove it and remove gearman
305 dependency. (dormando)
307 * FSCK no longer rabidly fills the queue table. (dormando)
309 * Make storage code resilient to rare deadlocks (dormando)
311 * Add 'max_handles' config option to restart a DB connection if there
312 are too many handles to it (victori).
314 2009-10-18: Release version 2.32
316 * No changes... MFS is hard to release due to mogdeps :/
318 2009-10-18: Release version 2.31
320 * Fix create_close race condition. (pipegeek)
322 * Fix bug in reporting of available disk space.
324 * Many minor bug/documentation fixes.
326 * MySQL and Postgres installs now use BIGINT's for fid/length by
327 default. (dormando, robbat2)
329 * Accept 405 responses to MKCOL from the WebDAV server since it often
330 just means that the directory already exists. (Ask Bjørn Hansen)
332 * Fix showing domain and class in mogadm output when there's only the
333 default class in the domain (Mark Imbriaco)
335 * mogstored: pidfile support
337 * New FSCK work and error for BCNT for bad devcount values (they would
338 not otherwise be caught unless the triggered another fix).
340 2009-01-12: Release version 2.30
342 * fsck will now fix broken 'devcount' cols.
344 * schema version bump to 12, and new delete worker code to use the new
345 queue system. delete should be faster and more scalable.
347 * add server setting queue_rate_for_fsck to allow rate limiting how
348 fast the new distributed fsck creates jobs. the original default of
349 10k could utterly defeat wimpy databases.
351 * Support 0 byte files.
353 * Fix a bug where rebalance would accidentally delete copies of a fid.
355 * Create new internal queue management system, with new job
356 'JobMaster'. This greatly reduces database load and increases
357 throughput for workers using the new system.
359 * Add 'no_unreachable_tracking' config. Disables more of the old
360 replication code. Use this if you have no 1.x trackers.
362 * Add hook for alternate replication sources. Obscure, but can be
365 * Add replicate_order_final_choices hook, so multidc replication may
366 pull from the local network if one copy already exists.
368 * Fix subtle bugs in process management.
370 * Allow overriding of default classes.
372 2008-08-18: Release version 2.20
374 * One more time, and hopefully never again. No changes. META.yml
377 2008-08-18: Release version 2.19
379 * No changes except for META.yml fixes.
380 _should_ be able to upload releases without owning half of CPAN.
382 2008-08-16: Release version 2.18
384 * Add repl_use_get_port option (Brian Lynch)
386 * Remove tempfile data and rows on create_close (Chaos Wang)
388 * Don't delete files accidentally during tempfile table cleanup
390 * Specify username to run the mogstored daemon (Jonathan Share)
392 * Many spelling errors corrected.
394 * PostGres locking routines did not include the hostname for the lock
397 * RFC 2518 says we "should" use a trailing slash when calling
398 MKCOL. Some servers (nginx) appears to require it. (Spotted by
401 * Add server option 'rebalance_ignore_missing' in mogilefsd config
402 that allows the rebalance to ignore files that are already missing
403 when it tries to delete them.
405 * Fix MultipleHosts replication policy to no longer return desperate
406 devices after no longer being desperate, instead returning a state
407 which will queue for retries in the future till it can be truly
408 happy. This prevents files from being replicated to all writable
409 devs when there are two few writable hosts to satisfy the policy.
411 * Add --chmod-mountpoints option to mogautomount, in an attempt to
412 prevent mogstored machines from accidentally writing to their under-
415 * New optional argument 'startpos' to fsck_reset.
417 * Use correct per-Store port, defaulting to UNIX sockets on localhost.
419 * add --dbport option to mogdbsetup (Ask Bjoern Hansen)
421 * Fix state_change() bug that could make file_to_delete_later
422 grow unnecessarily (Radu Greab)
424 * Add Mogstored::HTTPServer::None to allow using mogstored
425 with unmanaged backend DAV servers.
427 * Add experimental cmd_edit_file. Client requires DAV MOVE and
428 partial PUT on the store to use it.
430 * make mogstored and mogilefsd use the now-bundled dependency
431 Perl modules as a last resort, unless MOGILE_NO_BUILTIN_DEPS
432 environment variable is true. this makes it easier for people
433 to use mogilefs, without dependency hell. distros/packagers
434 are expected to ignore (or scoff at) this "feature". but
435 easier for people working from tarball/svn releases. bundled
436 dependencies will be updated over time, as needed.
438 * Bring the SQLite store up to date
440 * Increase the timeouts in the test suite
442 * In the test suite, also search for mogadm in /usr/local/bin/ and
443 /usr/local/sbin (spotted by Dean Wilson)
445 * SCHEMA VERSION 10: 'replpolicy' column on 'class' table.
446 it's safe to --ignore-schema-version and run this mogilefsd
447 against an older schema. new column enables per-class
448 pluggable replication policies. it was always
449 abstract, but not easy to plugin your own alternatives.
450 see doc/pluggable-replication-policies.txt
452 * add start of a MogileFS::ReplicationPolicy::Union implementation
454 * fix crash in queryworker's create_open command, when a device
455 has its directory made on a mogile storage node (the host of
456 which is being monitored by the 'monitor' process), but the
457 device isn't registered in the devices table yet.
459 2007-07-03: Release version 2.17
461 * get_paths command now takes a pathcount option, defaulting to
462 2, instead of having a hardcoded constant of 2. This allows
463 requesting more than 2 paths to a file.
465 * make fsck log over-replicated files as policy violations. it
466 won't delete over-replicated files, though, just log
468 * Document how to test MogileFS under doc/testing.txt. You really
469 should read this if you want to use MogileFS to store your data.
471 * Add a safety check to ensure that Postgresql-8.2 or newer is used.
473 * Update mogdbsetup usage, and ensure it chooses the correct admin
474 username automatically.
476 * Document the --type option to mogdbsetup.
478 * Introduce the PostGres Store implementation. The locking system might
479 still have issues, beware of stale locks! Initial prototype by Radu
480 Greab <rg@yx.ro>, and developed heavily by Robin H. Johnson
481 <robbat2@gentoo.org>.
483 * start of support to make mogstored wrap Apache + web_dav
485 * Remove duplicated [fsck] in log output of Fsck worker.
487 * Handle HiRes gettimeofday correctly to get useful results. Arrays are
488 important. This gives us correct timing output.
490 * Handle input to log() correctly. Based on the implementation of
491 Sys::Syslog::syslog(), produces no ugly warnings, and makes sure that
492 printf stuff works nicely.
494 * The unix_timestamp function belongs to the Store, not other classes.
495 Need to add test cases for process_deletes and stats.
497 * Using NULL during an INSERT for the AUTO_INCREMENT column does not
498 work very well outside of MySQL. Pass the correct number of arguments
499 to the INSERT instead.
501 * Clean up all raw usages of UNIX_TIMESTAMP() function, in preparation
502 for database independence. If you need the unix timestamp, include the output
503 of $self->unix_timestamp directly into your query.
505 * Alter $0 so that the scripts show up as '$SCRIPTNAME' in the process
506 listing instead of '/usr/bin/perl $SCRIPTNAME'. This makes init.d
507 scripts easier to manage.
509 * make mogstored's lighttpd config use mod_status for "/", so
510 mogadm doesn't think it's dead when it previously saw a 404
511 (Justin Huff <jjhuff@mspin.net>)
513 * remove Linux::AIO support, now that Perlbal has removed it as well,
514 and because Linux::AIO support (when Perlbal then chooses
515 IO::AIO) was hanging mogstored on shutdown. so also add a
516 mogstored shutdown test (after a full daemonization of it)
518 * make Mgd::validate_dbh() re-check/ping slave dbhs as well.
519 (problem mentioned by Steven Shou <steven.shou@verizon.net>)
521 * support drive identifiers above sdz (Arjan <info@bouncetek.com>)
523 * make mogstored's iostat child process properly shutdown,
524 even when iostat binary isn't installed. (previously
525 it was stuck in a loop every 10 seconds, hoping for
526 iostat to be installed, but never respecting parent
529 * Change delete worker to use new DeviceStates interface.
531 * Fix get_paths to honor new device state of 'drain' via new
532 DeviceStates interface.
534 * use significantly less CPU when re-broadcasting around
535 iostat device utilization% to child processes. (future:
536 don't rebroadcast at all and use shared memory)
538 * slightly faster fsck (do less syscalls)
540 * efficiency: don't broadcast dup state information to children
541 (track in parent what children know already)
543 * if using Gearman::Server >= 1.09, respawn the fidsizes
546 2007-05-09: Release version 2.16
548 * BUG FIX from 2.15: partially written but never closed
549 tempfiles weren't being cleaned up properly.
551 * start to work better when compiled as a stand-alone
552 PAR all-in-one script/archive
554 2007-05-07: Release version 2.15 ("fsck/drain/rebalance")
556 * minor bug fixes and enhancements for MultipleHosts replication
557 policy. bunch of corner cases now checked with new tests.
558 now easy to write more replication policy tests in future.
560 * replication policies can now return "desperate" requests,
561 signalling that a replication reassessment should be
562 enqueued for the future, to see if things could be improved.
563 (that part's not currently implemented, but the real feature
564 and motivation is that the rebalancer now won't delete a
565 DevFID if it results in a desperate move, only an ideal move. )
567 * replication policies now can optionally return a new return
568 value of the (new) type MogileFS::ReplicationRequest, which
569 has pretty accessor names, can suggest multiple places,
570 can indicate non-ideal emergency replication decisions.
571 old plugins' return values will be transparently upgraded
572 to the equivalent new return value objects.
574 * adding new device state: "drain". it's a hybrid of "dead"
575 (in that files are migrated off it) and "readonly", it that
576 it still serves traffic... it just doesn't get new files.
577 this also introduces the new object-oriented DeviceState class,
578 and device_state($name) utility function to get the DeviceState
581 * internal code cleanup. notably, kill the old & nasty legacy
582 'find_deviceid' function which was ridiculously long and hairy.
583 the two callers are now more readable with sorts/greps/etc.
585 * make mogstored's devN/usage writing process (DiskUsage) be less
586 racy with the mogilefsd monitoring code... don't open file for
587 write... open read/write, then in one write system call, write
588 the entire file, with newline padding at end to cover old data,
589 then truncate it if necessary. should remove harmless (but scary)
590 error messages previously reported by the mogilefsd monitor
591 about zero-length usage files.
593 * new protocol commands to list/set (certain) server settings,
594 with value sanity checking (see MogileFS::Config for which
595 are settable, and with what values). needed for "enable_rebalance".
596 was partially enabled before for slave settings. also needed
597 for memcached support before, which was never possible to
598 set with mogadm, only with db tweaking.
600 * make mogilefsd fsck use new mogstored fid_sizes command, to
601 do bulk stats. speeds up fscks a ton.
603 * be robust against system clocks that go backwards between
605 http://lists.danga.com/pipermail/mogilefs/2007-April/000897.html
607 * Put gearman server in mogstored process, add worker
608 'mogstored-fidsizes' which runs as subprocess of mogstored. Add
609 side-channel command 'fid_sizes' which allows us to quickly enumerate
610 and get sizes for files across entire devices on a storage node.
612 * remove all code like $state eq "readonly", $state=~ /^dead|down$/
613 and instead convert it into specific questions on policy/traits
614 of given state, like $dev->should_put_new_files_on, or
615 $dev->should_drain_files_off. see MogileFS::DeviceState,
616 objects of which are accessed via $dev->dstate, or new
617 MogileFS::Util device_state($name) wrapper.
619 * start of rebalance support. (where replication workers, in their
620 idle time, can rearrange files to even out disk space and/or IO
621 activity on storage nodes... policy isn't hard-coded, and is
622 in fact currently random)
624 * lighttpd support in both mogilefsd and mogstored. passes test
625 suite with environment MOGSTORED_SERVER_TYPE=lighttpd set now.
627 * abstract out the HTTP server support in mogstored, so
628 mogstored isn't just a perlbal wrapper, but an anything
629 wrapper. (in particular, lighttpd and apache) mogstored still
630 exists for all its other misc admin/monitoring functions,
631 but can then manage/configure apache/lighttpd child process(es).
632 so far they're just stubbed out.
634 * split mogstored into separate files per class, rather than one
637 2007-04-24: Release version 2.10
639 * bug from earlier refactoring: changing some 'next' to 'return'
640 in MogileFS::Device's create_directory method. (thanks to
641 Justin Huff <jjhuff@mspin.net>)
643 * make sure mogdbsetup doesn't upgrade an existing table (with
644 potentially lot of data) from MyISAM to InnoDB. just warn.
645 only new tables should become InnoDB on creation. also,
646 detect InnoDB even on old MySQL 4.0.x, not just 4.1/5.0.
648 * make fsck faster by reducing number of db queries (both
649 reads and writes), though more unrelated fastness remains to
652 * make fsck_status faster (keep summary stats of evcode counts,
653 rather than doing a full GROUP BY query all the time)
655 2007-04-20: Release version 2.09
657 * filesystem checker (Fsck worker). off by default, unless
658 it's enabled via protocol. Control/monitor it with mogadm
659 in MogileFS-Utils 2.08, which needs MogileFS::Client 1.06.
661 * replication speed-up on configurations with only 1 host.
662 (replication would randomly have no suggestions before, when
663 there was only 1 target host, so replication would be rescheduled
664 until the future, when random returned a different device on
667 2007-04-17: Release version 2.08
669 * (no runtime-visible changes from 2.07)
671 * mogilefsd: remove incomplete "Checker" worker, replace with
672 incomplete "Fsck" worker.
674 * test cleanup/robustness improvements. properly skips testing when
675 testing deps not found. but searches harder for them now, too.
676 tests run under "make disttest".
678 * packaging cleanups, released using ShipIt.
683 * mogilefsd: Split Plugin::MetaData and Plugin::FilePaths into their own distributions.
685 * mogilefsd: Fix mogdbsetup to not ask empty questions.
687 * mogilefsd: command line/config file support for listening on specific IPs, also
688 support for listening on multiple IPs/ports
691 * mogstored: use XS HTTPHeaders by default, unless disabled with environment variable
693 * mogilefsd: memcache support for get_paths (see doc/memcache-support.txt)
696 * mogstored: make child processes be exec'ed (as as their own scripts, not inheriting
697 Perlbal, Linux::AIO/IO::AIO, etc baggage). so they don't own listening
698 sockets, pipes to child workers, signal handlers, etc. just a lot
699 cleaner now, and SIGTERM, SIGINT properly shut everything down now,
700 both in foreground and as daemon
703 * mogstored: this changelog is totally neglected. :/ see svn log.
705 * mogstored: make perlbal's "shutdown graceful" work, by not doing
706 sidechannel accepting ourselves (which never hung up),
707 but subclass Perlbal's TCPListener class, which does it
710 2006-12/2007-01: (2.00_05)
711 * mogilefsd: everything converted to OO API internally. old internal APIs removed.
713 * mogilefsd: be database-agnostic. Currently only works with MySQL (and
714 SQLite as a joke/demo), but Pg/Oracle coming in the future.
716 * mogilefsd: built-in I/O activity monitoring between mogstored/mogilefsd Monitor
719 * mogilefsd: much improved internal communication between worker processes
721 * mogilefsd: start of better docs
724 * mogilefsd: pidfile support (Radu Greab <radu@yx.ro>)
728 * mogilefsd: remove all old internal APIs, update everything to use new OO APIs,
729 expanding OO APIs where necessary (lots of places). so much more
730 beautifully hackable now.
732 * mogstored: kill child processes (diskusage and iostat) when being killed.
735 * mogstored: set aio threads after daemonizing. needed by Linux::AIO/IO::AIO, it seems?
738 * mogilefsd: remove non-HTTP mode ("NFS mode") from the server
741 * mogstored: refuse to start up with missing Linux::AIO/IO::AIO or broken Linux::AIO
744 * mogstored: set aio_threads as a function of number of disks
747 * mogilefsd: major refactoring/cleanup/new features ("MogileFS 2.0")
750 * mogilefsd: fix dataloss bug when the 'tempfile' table is InnoDB and the
751 server is restarted while the tempfile table is empty.
754 * mogilefsd: allow create_open to take optional fid parameter which enables you to
755 dictate which fid to use internally and to not rely on MySQL's auto_increment
758 * mogilefsd: make Mgd::get_device_summary() always return all devices, regardless
761 * mogilefsd: update all callers of get_device_summary to filter on the device
762 status, if they need to. (provided more clarity into what
763 callers' intentions were...)
765 * mogilefsd: add a new device state 'readonly' which means: it can be read from
766 from clients, it can be replicated from, but no new files can go
767 on it or be replicated onto it. and it also reaps, meaning the
768 device is fucked. the filesystem probably ate itself.
771 * mogstored: write out usage files for devices, even if they're not on their own mount point.
772 also explicitly include the '-k' flag to df, so we know they're KiB.
775 * mogstored: new config syntax and command line options