Version 1.2.0 * libmark6sg: added automatic caching of scatter-gather block list metadata (/tmp/mark6_fuse_autocache_) at the first access to a scan its cache is built and it is re-used during any later accesses * Version for DiFX-2.5, May 16, 2017 Version 1.1.9 * fuseMk6, mk6copy, m6sg_gather: use MARK6_ROOT env var if available Version 1.1.8 * libmark6sg: simplified the prefetch method, average throughput now slightly better and a lot more consistent * fuseMk6: refresh the scanlist when recordings change Version 1.1.7 * fuseMk6 (now v1.11): fixed FUSE open() return value, error code instead of file descriptor, now multiple files can be opened at the same time * fuseMk6: added initial estimate of scan size in bytes using file fragment sizes minus guessed headers * fuseMk6: file user and group ID now match account that started fuseMk6 * libmark6sg: handle fragments where last block is only partially written out * libmark6sg: protect file open/close internals via mutex * libmark6sg: tidied up slightly the prefetch code Version 1.1.6 * mark6sg/*.h: allow inclusion from C++ files Version 1.1.5 * libmark6sg: new mark6_sg_set_rootpattern() API function * fuseMk6 (v1.10): new command line option '-r ', * for example -r /mnt/disks/[1-4]/[0-7]/data/ * support out-of-tree builds (TODO: use static linking to libjsmn) Version 1.1.0 * libmark6sg: new mark6_sg_stripesize() API function * libmark6sg: blocklist extraction with one thread per file for major speedup * libmark6sg: read functionality reimplemented via mmap() * libmark6sg: added background threads that touch upcoming mmap()'ed pages, causing kernel to prefetch the pages in parallel from all files and giving factor ~10 higher throughput (now ~1 GB/s) * fuseMk6: new command line option -v * mk6copy: simple copying utility like 'm6sg_gather' but with timing reports Version 1.0.0 * Support the Mark6 Scatter-Gather formats v1 and v2