mogile database: * add UUID to device table mogilefsd: * when storing files, also store 00003443.meta with info about file - this is so we can restore the database if it totally crashes - can also store checksumming info in the .meta file? * other jobs (replicator & delete, etc) can connect to frontend and do spud-like variable setting * fix request pipelining problem (make it an option, though?) * host dead cache: - when any jobs notices a mogstored state change, send to parent - parent rebroadcasts to kids, so they share info * UDP between peers for jobs to cross-communicate - in conf file, "peers: 10.x.y.z:6001, 10.a.b.c:6001" * running fs verifier that makes sure UUIDs from mogstored matches database - if a host fails verification, mark it as down - configurable "verify time" (default 300 seconds) - over 300 seconds, verify another device every N seconds (300/X = N, X = number of devices) * rebalancer job (future) - moves files around to devices with less files * free space weighting - every N seconds, using usage file, update database free space columns - jobs update their in memory space cache every 60 seconds or so - new files go to devices depending on free space (weighted algorithm) - new job to update mb_* columns - new column, mb_asof for date last updated - email alerts when mb_asof is old * checksum files (future) * FUSE interface (future) * require InnoDB backend mogstored: * support configuration files * allow OPTIONS request - include "Date: " header * run usage file creator in different thread * smartd dump just like usage file * fsinfo dump - include UUID of fs - run in new thread (with usage?) - mount -P to get fs types mogadm: * example commands: - check - add disk - down disk - kill disk - down - up moginit * create new mogilefs database * perform database upgrades