All Versions
8
Latest Version
Avg Release Cycle
24 days
Latest Release
348 days ago

Changelog History

  • v0.6.0

    March 22, 2020

    Breaking Changes

    • ๐Ÿšš ICacheContext has been removed (#19 & #21)
    • ๐Ÿ‘ TContext for CacheStack<TContext> is now provided by a factory method (with support via Dependency Injection) (#20 & #21)

    Noteworthy Changes

    • ๐Ÿ‘Œ Support for new context-less CacheStack with GetOrSetAsync method (#21)
  • v0.5.0

    November 12, 2019

    Noteworthy Changes

    • Waiting tasks are given the refreshed value (492158c)
    • Avoid waiting on refresh and back populating cache in GetOrSetAsync (bb9031f)
    • More accurate connection available checking for Redis (1c28388)
    • MemoryCacheLayer now uses ConcurrentDictionary again (3beacac)
    • 0๏ธโƒฃ CacheSettings constructor logic has changed - when no StaleAfter is given, the default value is zero rather than being the same value as TimeToLive. (6dd6b15)

    ๐ŸŽ Performance Improvements

    • CacheStack, when multiple threads are waiting on a refreshed result, performs about 5% faster
    • ๐ŸŽ CacheStack, in the caching alternative memory benchmarks, performs significantly better with memory allocations as well as a 6% performance improvement.

    Notes
    ๐ŸŽ There are some minor memory allocation increases, primarily around going back to using ConcurrentDictionary for MemoryCacheLayer. However, these changes are somewhat offset from the overall performance increase under heavy load that wasn't possible with the custom locking solution.

    With the CacheStack improvements in the caching alternative memory benchmarks, the allocation bonuses primarily come from not using Task.Run (bb9031f). Even though those were not called in the benchmark, their presence must have introduced more work in either the state machine or the final IL that made it perform slower.

  • v0.4.0

    November 03, 2019

    Major Changes

    • CacheStack to require generic type for ICacheContext (#16)

    ๐Ÿ‘€ While this might seem to make certain ways of using CacheStack more difficult in terms of DI now always needing to specify the context type, it makes using the context inside the value getter far easier as it no longer needs to be cast.

    With this in mind, this completely breaks any previous usage.

    ๐ŸŽ There didn't seem to be any measurable difference in performance from this change.

  • v0.3.0

    October 28, 2019

    Major Changes

    • Switched to ValueTask for CacheStack and extensions (15726f1)
    • Partial custom JSON serialization for JsonFileCacheLayer (5374264)
    • โฌ‡๏ธ Dropped Request ID field from CacheStack and extensions (ccc67d1)
    • โฌ‡๏ธ Dropped CachedAt and TimeToLive on CacheEntry for a single Expiry field (#13)
    • โž• Added Dependency Injection helper (#8)

    ๐ŸŽ Performance Changes

    • CacheStack allocates ~29% less
    • MemoryCacheLayer allocates ~2% less
    • RedisCacheLayer is ~2% faster while allocating ~2% less
    • JsonFileCacheLayer allocates ~2% less
    • MongoDbCacheLayer allocates ~9% less
  • v0.2.0

    October 24, 2019

    ๐Ÿš€ There are a lot of releases in a short amount of time because I'm writing a lot of code at once - this will settle down soon

    Major Changes

    • ๐Ÿ”„ Changed ICacheLayer to be split to IAsyncCacheLayer and ISyncCacheLayer, both usable through CacheStack
    • FileCacheLayerBase no longer does async serialization. It will, however, still asynchronously read the file to memory from disk.

    ๐ŸŽ Performance Changes

    • CacheStack is 15% - 40% faster while allocating 25% - 50% less
    • MemoryCacheLayer is ~7% faster while allocating ~13% less
    • ๐Ÿฑ JsonFileCacheLayer is ~3% faster while allocating ~99% less ๐ŸŽ‰
    • ProtobufFileCacheLayer is ~3% faster
  • v0.1.2

    October 20, 2019

    โšก๏ธ Updated MongoFramework (be0b65c)
    ๐Ÿ‘Œ Improved MemoryCacheLayer performance & allocations (6accd62)

  • v0.1.1

    October 17, 2019

    ๐Ÿš€ First generally usable and somewhat stable pre-release.

    ๐Ÿ”‹ Features:

    • In-Memory Caching Provider
    • JSON and Protobuf File System Caching Providers
    • Redis Caching Provider
    • MongoDB Caching Provider
    • Redis Locking Extension
    • Redis Remote Eviction Extension
  • v0.0.1

    October 09, 2019

    ๐ŸŽ‰ Initial build