Skip to content

v0.4.1-pre8

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 03 Jan 15:48
· 28 commits to main since this release
  • NEW API Longtail_ChangeVersion2 added

    Implements a new strategy for decompressing/writing version assets which is significantly faster for files that spans multiple blocks while retaining the same speed for assets smaller than a block. It removes redundant decompression of blocks (so the LRU block store is no longer needed) at the expense of doing random access when writing files.

    It uses significantly less memory and less CPU while avoiding redundant reads from source data so it is an overall win*.
    If your main target devices are SSD drives I highly recommend switching to Longtail_ChangeVersion2.

    Version Files Raw Size Compressed Size Unpack Time Peak Memory
    0.4.0 1024 736 GB 178 GB 2h47m39s 9.5 GB
    0.4.1 1024 736 GB 178 GB 0h12m02s 3.5 GB
    0.4.0 239 340 60 GB 17 GB 0h03m34s 1.3 GB
    0.4.1 239 340 60 GB 17 GB 0h01m37s 0.4 GB

    *This strategy is well suited for storage mediums with fast random access time (such as SDD drives) but will suffer when seek times are higher (such as mechanical drives).
    Longtail_ChangeVersion is still available if you need to cater for mediums with slower seek times.

  • NEW API Longtail_ConcurrentChunkWriteAPI added

  • NEW API Longtail_CreateConcurrentChunkWriteAPI added

  • NEW API Added Longtail_MemTracer_GetAllocationCount to check the number of current memory allocations

  • NEW API Added platform api for Read/Write mutex

    • Longtail_GetRWLockSize
    • Longtail_CreateRWLock
    • Longtail_DeleteRWLock
    • Longtail_LockRWLockRead
    • Longtail_LockRWLockWrite
    • Longtail_UnlockRWLockRead
    • Longtail_UnlockRWLockWrite
  • ADDED SAFE_DISPOSE_STORED_BLOCK macro for easy dispose of stored blocks

  • ADDED Check at test run exit that no memory allocations are left

  • FIXED Updated premake5.lua to set the correct defines for debug vs release builds

  • FIXED Use non-binary units for mem tracer counts

  • FIXED Added workaround for calling hmgeti_ts on an empty hash map as that is not thread safe

  • FIXED Use fixed v3 of actions/upload-artifact/actions/download-artifact

  • FIXED Propagate error from FSStorageAPI_Write to caller

  • FIXED Make sure EnsureParentPathExists can create a folder structure and not just parent path

  • FIXED Fixed potential uint32 arithmetic overflow issues

  • CHANGED Command tool uses Longtail_ChangeVersion2 instead of Longtail_ChangeVersion2

  • CHANGED Command tool no longer uses LRU block store layer (obsolete with Longtail_ChangeVersion2)