light0.1beta0.16 -------- * Critical bugfix: "marsadm primary --force" was assumed to be given by sysadmins only in case of emergency, when the network is down. When given in non-emergency cases where the old primary continues to run (/dev/mars/* being actively used and written), the old primary could suddendly do a "logrotate" to the new split-brain logfile produced by the new (second) primary. Now two primaries should be able to run concurrently in split-brain mode without mutually trashing their logfiles. * primary --force now only works in disconnected mode, in order to hinder unintended forceful creation of split brain during normal operation. * Stop fetching of logfiles behind split brain points (save space at the target hosts - usually the data will be discarded later). * Fixed split brain detection in userspace. * leave-resource now waits for local actions to take place (remote actions stay asynchronously). * invalidate / join-resource now work only if a designated primary exists (otherwise they would not know uniquely from whom to start initial sync). * Update docs, clarify scenarios intended <-> emergengy switching. * Fixed mutual overwrite of deletion symlinks in case of racing log-deletes spawned in parallel by cron jobs (resilience). * Fixed races between deletion and re-erection (e.g. fresh join-resource after leave-resource during network partitions). * Fixed duration of network timeouts in case the network is down (replaced non-working TCP_KEEPALIVE by explicit timeouts). * New option --dry-run which does not really create symlinks. * New command "delete-resource" (VERY DANGEROUS) for forcefully destroying a resource, even when it is in use. Intended only for _emergency_ cases when sysadmins are desperate. Use only by hand, first run with --dry-run in order to check what will happen! * New command "log-purge-all" (potentially DANGEROUS) for resolving split brain in desperate situations (cleanup of leftovers). Only use by hand, first run with --dry-run! * Lots of smaller imprevements / usability / readability etc. * Update test suite. light0.1beta0.15 -------- * Introduce write throttling of bulk writers. * Update test suite. light0.1beta0.14 -------- * Fix logfile transfer in case of "holes" created by emergency mode. * Fix "marsadm invalidate" after emergency mode had been entered. * Fix "marsadm resize" capacity propagation from underlying LVM. * Update test suite. light0.1beta0.13 -------- * Fix shutdown during operation (flying requests). * Fix unnecessary Lamport clock propagation storms. * Improve unnecessary page cache utilisation (mapfree). * Update test suite. light0.1beta0.12 and earlier -------- There was no dedicated ChangeLog. For details, look at the commit history. Release Policy / Software Lifecycle ----------------------------------- New source releases are simply announced by appearance of git tags. Conventions ----------- The git tags have the following meaning: full* for future use. light1.0 The first number indicates the main symlink tree revision, the second number indicates the sub revision. The main symlink tree revision is only updated upon (potentially) incompatible changes. Upgrades of main revisions will always be possible, but downgrades are not automatically supported. The sub revision will indicate new releases, and they may also indicate symlink tree extersions which are both forwards and backwards compatible. It may just happen that new features are not available with elder releases :) Example: 1.0 ff will indicate the future main production revision. Extensions: suffixes like pre1 indicate pre-releases. Other suffixes like testing2 are reserved for future use. Hint: you may automatically convert the MARS git tags into Debian release tags by a regex inserting a ~ after any transition from a digit to an alpha character. We just omitted the ~ because git treats it as an invalid character. The corresponding Debian tags _should_ result in the correct ordering according to the Debian guidelines. Please report a bug if not :) light0.1beta* Internal 1&1 releases during the pilot phase. May be used by the public, but you should know that the 1.0 symlink tree revision will appear soon. light0.0alpha* Very old prototypes; never use them. Vital feature were missing. Only for historic inspection.