This file lists noteworthy changes in LizardFS. * Lizardfs (3.13.0-rc1) (2018-06-28) - (all) uRaft HA - (all) fixes to EC handling - (all) nfs-ganesha plugin changed to use only C code - (mount) reduced number of secondary groups retrievals (better performance) - (mount) add fuse3 client (better performance, writeback cache) - (all) many fixes * Lizardfs (3.12.0-rc1) (2017-11-22) - (all) C API - (all) nfs-ganesha plugin - (all) RichACL support (which includes NFSv4) - (all) OSX ACL support - (master, mount) file lock fixes - (mount) client readahead enabled by default - (mount) AVX2 extensions support for erasure code goals - (chunkserver) more flexible options - (all) many fixes * Lizardfs (3.11.3) (2017-07-13) - (master) fix issues with reporting defective files - (mount) fix request size in read cache for empty results * Lizardfs (3.11.0) (2017-05-09) - (master) improve ACL implementation - (master) add option to avoid same-ip chunkserver replication - (master) add minimal goal configuration option - (master) reimplement directory entry cache for faster lookups - (master) add whole-path lookups - (master, chunkserver) add chunkserver load awareness - (mount) add readahead to improve sequential read perfromance - (mount) add secondary groups support - (tools) add correct-only flag to filerepair - (tools) add -s and -i options to snapshot command - (tools) add recursive remove operations (for removing large directories and snapshots) - (tools) add tool for stopping execution of tasks (snapshot, recursive remove, etc.) - (all) change to semantic versioning system - (all) many fixes * Lizardfs (3.10.4) (2016-10-07) - (master) task manager performance improvements - (master) trash fixes * Lizardfs (3.10.2) (2016-08-30) - (master) redesign in-memory representation of file system objects - at least 30% reduction in RAM usage - (master) name storage - a possibility to keep all file names in BerkeleyDB, thus saving even more RAM - (master) redesign of trash - increased performance, reduced RAM usage and CPU pressure - (master) huge boost of responsiveness - lengthy operations split into asynchronous bits - (master) OPERATIONS_DELAY* config entries, which allow postponing metadata operations on restart/disconnect - (master) fix improper handling of endangered chunks - (chunkserver) memory optimizations - at least 60% reduction in RAM usage - (chunkserver) introduce smart descriptor management - (tools) brand new `lizardfs` command, a unified replacement for mfs* tools with prompt and bash completion - (all) various fixes and community requests * Lizardfs (3.10.0-rc) (2016-03-14) - (all) Added erasure code goals - (all) Added per directory quotas - (all) Improved interaction with legacy version (chunkservers, mounts) - (all) Ports for OSX and FreeBSD - (all) Many fixes * Lizardfs (3.9.4) (2015-12-02) - (master) Removed master server overload on restarting chunkservers - (master) Improved global file locks engine - (chunkserver) Fixed leaking descriptors problem - (chunkserver) Improved mechanism of moving chunks to new directory layout - (chunkserver) Fixed issues related to scanning directories with new chunk format present - (mount) Removed hang in mount when chunkserver reported no valid copies of a file - (master) Changed handling of legacy (pre-3.9.2) chunkservers in new installations - (cgi) Added XOR replication to statistics - (all) Removed default linking to tcmalloc library due to performance drop * Lizardfs (3.9.2) (2015-10-23) - (all) Introduced XOR goal types - (all) Added file locks (flock & fcntl) - (all) Increased max number of files from 500 million to over 4 billion - (all) Introduced managing open file limits by PAM - (master) Improved consistency of applying changelogs by shadow masters - (master) Redesigned snapshot execution in master - (master) Redesigned chunk loop logic - (master) Removed hard coded connection limit - (master) Added option to limit chunk loop's CPU usage - (chunkserver) Added new network threads responsible for handling requests sent by chunkserver's clients - (chunkserver) Introduced new more efficient directory layout - (chunkserver) Added option to choose if fsync should be performed after each write for increased safety - (chunkserver) Removed hard coded connection limit - (chunkserver) Added replication network bandwidth limiting - (mount) Improved symlink cache and added configurable timeout value - (all) Minor bug fixes and improvements * Lizardfs (2.6.0) (2015-02-09) - (all) Added comments in all config files - (all) Improve messages printed by daemons when starting - (cgi) A new chunkserver's chart: number of chunk tests - (cgi) Fixed paths to static content - (cgi) New implementation of the CGI server; mfscgiserv is now deprecated. - (cgi) New table: 'Metadata Servers' in the 'Servers' tab - (chunkserver) Allowed starts with damaged disks - (chunkserver) A new option: HDD_ADVISE_NO_CACHE - (chunkserver) Improved handling of disk read errors - (chunkserver) Removed 'testing chunk: xxxxxx' log messages - (master) A new feature: disabling atime updates (globally) - (master) Added possibility to set priority on handling endangered chunks - (master) Fixed rotating changelogs and downloading files in shadow mode - (master) Fixed handling replication delay on chunkserver disconnection - (probe) New commands - (probe) Renamed to lizardfs-admin - (all) Minor bug fixes and improvements * Lizardfs (2.5.4) (2014-11-07) - (all) Boost is no longer required to build the source code of LizardFS or use the binary version - (all) Added tiering (aka 'custom goal') feature, which allows users to label chunkservers and to request chunks to be stored on specific groups of servers - (cgi) "Exports" tabs renamed to "Config", now it also shows goal definitions - (cgi) Added new tab "Chunks" - (probe) New command "chunks-health" makes it possible to get number of missing or endangered chunks - (master) Fixed reporting memory usage in CGI - (mount) Fixed caching contents of open directories - (mount) Add a .lizardfs_tweaks file - (all) Other minor fixes and improvements * Lizardfs (2.5.2) (2014-09-15) - (master, shadow) Metadata checksum mechanism, allowing to find and fix possible metadata inconsistencies between master and shadow - (mount, master) ACL cache in mount, reducing the load of the master server - (packaging) Support packaging for RedHat based systems - (master) Improved chunkserver deregistration mechanism in order to avoid temporary master unresponsiveness - (polonaise) Add filesystem API for developers allowing to use the filesystem without FUSE (and thus working also on Windows) - (all) Minor fixes and improvements * LizardFS 2.5.0 (2014-07-15) - (master) High availability provided by shadow master servers - (mount, chunkserver) CRC algorithm replaced with a 3 times faster implementation - (mount, master) Support for quotas (for users and groups) - (mount, master) Support for posix access contol lists (requires additional OS support) - (mount, master) Support for global I/O limiting (bandwidth limiting) - (mount) Support for per-mountpoint I/O limiting (bandwidth limiting) - (adm) New package lizardfs-adm with a lizardfs-probe command-line tool which can be used to query the installation for variuos parameteres - (master) New mechanism of storing metadata backup files which improves performance of the hourly metadata dumps - (all) A comprehensive test suite added - (all) Multiple bugfixes * LizardFS 1.6.28 (2013-10-16) - (all) compile with g++ by default - (deb) fix init scripts for debian packages - (all) fix build on Mac OS X - (cgi) introducing LizardFS logo * MooseFS 1.6.27 (2012-08-09) - (mfsrestore) fixed bug - freeing filenames memory too early - (all) added initial support for extra attributes (xattr), which will be introduced in upcoming version 1.7 - (master+metalogger) better change log synchronization (storage in master memory and sending expected version in metalogger - inspired by Davies Liu) - (master) acceptable difference of percent of hdd usage added to configuration (up to this version this parameter was constantly set to 0.01% - patch contributed by Davies Liu) - (master) added emergency store metadata to some other places on errors during standard hourly store (inspired by Davies Liu) - (cs) default space to be left (256MB) moved to config file (inspired by Davies Liu) - (cs) added extra limits in mfshdd.cfg (minimum space to be left, maximum space to be used) - (cs) fixed charts overflow issue (overflow in net transfer on about 575Mbps and hdd transfer on about 77MBps) - (metalogger) fixed issue: file variable was not clear after close (on rare occasions might cause segfault after disconnecting from master) - (all) cfg files moved form PREFIX/etc/ to PREFIX/etc/mfs/ - (cgiserv) improved CGI handle (added support for custom http responses, such as "302 Found") - (master+cgi) showing disconnected chunkservers in "Servers" tab. - (deb+rpm) mfscgiserv moved from mfscgi to separate package, changes in init scripts - (mount) added option 'mfsdelayedinit' - for being run from fstab/init scripts - (master) optimized goal management in chunks - (master) fixed rare race-condition on clear/preserve cache during open in mount - (mount) fixed compiling problems on Mac OS X - (all) changed code to be more compatible with new gcc 4.7 (gcc 4.7 has too strong optimizations - it can generate unpredictable code) - (master) sustain session time could be defined in mfsmaster.cfg * MooseFS 1.6.26 (2012-02-01) - (all) fixed signal handling in multithreaded modules - (master) added goal and trashtime limits to mfsexports.cfg - (metalogger) added simple check for downloaded metadata file (inspired by Davies Liu) - (master) better handle disk full (inspired by Davies Liu) - (master+metalogger) added keeping previous copies of metadata (inspired by Davies Liu) - (all) reload all settings on "reload" (SIGHUP) - (cs) disk scanning in background - (cs) fixed long termination issue (found by Davies Liu) - (master) fixed modify/open cache race * MooseFS 1.6.25 (2011-12-30) - (metadump) fixed dumping big files (>2TiB) - (metarestore) fixed bug: nonexisting changelog file caused segv - (master+mount) added 'sugidclearmode' and 'mkdircopysgid' compatibility options - (master) improved chunk deletion algorithm (soft/hard limits per server) - (all) ready for new metadata file format, which will be introduced in upcomoing version 1.7 - (all) ready for quota handling, which will be introduced in upcoming version 1.7 * MooseFS 1.6.24 (2011-12-06) - (master+mount) proxy in mount for mfstools (fixes problems with frequent connect to master) * MooseFS 1.6.23 (2011-11-08) - (master+mount) removed directory cache (didn't increase performance as expected and caused many troubles) - (metarestore) added option (-i) - ignore some structure inconsistencies - (metarestore) added option (-b) - in case of errors save the best metadata file - (mount) more dynamic write cache management (changed condition ib