Skip to content

v1.0

Compare
Choose a tag to compare
@CamStan CamStan released this 26 Aug 00:33
· 272 commits to dev since this release
6bbb03b

Release Notes

  • Add client API for I/O middleware libraries (#622, #651, #662, #665, #667, #719)
  • Update Mochi-Margo usage (new required version - v0.9.6) (#703)
  • Build separate libraries for MPI auto-mount (#640)
  • Improve file staging (#614, #631, #717)
  • Install unifyfs-stage in bin (#710)
  • Ensure logio data is persisted to storage on user fsync() (#655)
    • Configure with new UNIFYFS_CLIENT_FSYNC_PERSIST option
  • Add server.local_extents mode (#695)
  • Add client unlink callbacks (#661)
  • Add heartbeat RPC to detect failed clients (#653)
  • Enable servers to use PMI to get rank and count (#626)
  • Release logio storage for extents on file unlink (#656)
  • Offload server-server request processing to service manager threads (#627)
  • Cray compiler wrapper support for lx_find_mpi.m4
  • Update example programs
  • Migrate from Travis CI to GitHub Actions
  • Unit tests
    • Client API tests
    • Add lipsum generator/checks
    • Update unifyfs-stage tests
    • Print failed tests at end of run
  • Continuous Integration tests
    • Run sub-sets of tests in independent jobs
    • Laminated and non-laminated file tests
    • New stage/transfer tests
    • Test on additional compilers
  • Documentation updates
    • API for I/O Middleware
    • Known limitations of UnifyFS
    • Determining UnifyFS compatibility with VerifyIO
    • General reorganization and updates

Config Option Changes

  • New UNIFYFS_CLIENT_FSYNC_PERSIST to persist data to storage on calls to fsync()
  • New UNIFYFS_MARGO_CLIENT_TIMEOUT to adjust rpc timeouts between client and server
  • New UNIFYFS_MARGO_SERVER_TIMEOUT to adjust rpc timeouts between servers
  • New UNIFYFS_MARGO_LAZY_CONNECT to speed up bootstrap
  • New UNIFYFS_SERVER_LOCAL_EXTENTS to use server extents to service local reads without consulting file owner
  • Set UNIFYFS_DAEMONIZE default to off
  • Remove unused UNIFYFS_CONSISTENCY config

Bug Fixes

  • avoid request signal if RM thread exiting (#721)
  • disallow unifyfs_create() of existing file (#720)
  • PMIx initialization bug (#712)
  • fix for serial transfer from non-zero rank client
  • fix to use flexible arrays (#696)
  • define _STAT_VER if it's not already defined
  • fix various memory leaks
  • initialize unifyfs_io_request result and state in dispatch (#683)
  • fix for failed reads when client.local_extents=1 (#680)
  • fix attempt to sync unlinked file (#679)
  • allow remote clients to read non-shared files once they are laminated
  • fix undefined refs for inline logio functions
  • avoid concurrent logio updates by the client and server
  • defer ABT_init to Margo (#659)
  • fix bug in unifyfs_fskv_init() (#654)
  • remove unused app_id parameter to unifyfs_mount()
  • unlink global file not found locally (#638)
  • avoid laminate broadcast for private files
  • allocate extent_tree when inode is allocated
  • disable unnecessary dispatcher signaling
  • use max bulk size in client-server transfers
  • only broadcast truncate when new size is smaller
  • avoid metaget storm on file open by using server cached attributes
  • build fix for --enable-pmix
  • remove racy client read pthread condition signal/wait
  • fix unifyfs start/terminate on SLURM
  • allow variable logio header size (#635)
  • fix build failure from undefined reference to major, minor (#629)
  • fix for missing req completion notice for hole extent
  • fix for write after laminate
  • eliminate shadow copy of file attributes in client metadata
  • fix to clean up logio shmem regions on server exit

Potentially Impactful Issues

  • Server may hang at shutdown on multi-node jobs with large number of clients