All Versions
Latest Version
Avg Release Cycle
165 days
Latest Release
1659 days ago

Changelog History
Page 2

  • v0.8.0 Changes

    💥 Breaking changes

    • Removed following ConCache functions: size/1, memory/1, memory_bytes/1, get_all/1, with_existing/3
    • ⚡️ Changed ConCache update functions: update/3, dirty_update/3, update_existing/3 and dirty_update_existing/3. The provided lambda now must return either {:ok, new_value} or {:error, reason}.
    • 🔄 Changed ConCache.try_isolated/4 - the function returns {:ok, result} or {:error, reason}
    • ⬆️ Upgraded to the most recent ExActor

    🛠 Fixes

    • 🛠 Fixed possible race-conditions on client process crash
    • 🛠 Fixed mutual exclusion of independent caches
  • v0.6.0 Changes

    • Elixir v1.0.0
  • v0.5.1 Changes

    • 🛠 bugfix: balanced lock wasn't working properly
  • v0.5.0 Changes

    • ⬆️ upgrade to Elixir v1.0.0-rc1
  • v0.4.0 Changes

    • ⬆️ upgrade to Elixir v0.15.0
  • v0.3.0 Changes

    With this version, ConCache is turned into a proper application that obeys OTP principles. This required some changes to the way ConCache is used.

    First, ConCache is now an OTP application. Consequently, you should add it as an application dependency in your mix.exs:

      def application do
        [applications: [:con_cache, ...], ...]

    This will make sure that before your app is started, ConCache required processes are started as well.

    To create a cache, you can use ConCache.start_link/0,1,2 or ConCache.start/0,1,2. These functions now return result in the form of {:ok, pid} where pid identifies the owner process of the underlying ETS table. You can use that pid as the first argument to exported functions from ConCache module.

    0️⃣ The first argument to both functions must contain ConCache options (unchanged), while the second argument contains GenServer start options. Both are by default empty lists.

    The cache owner process is not inserted into the supervision tree of the ConCache OTP application. It is your responsibility to place it in your own tree at the desired place.

    Of course, when using supervision, you can't use the ETS owner process pid to interface the cache, since this process can be restarted. Instead, you must rely on some registration facility. For example, this is how you can locally register the owner process, and use the alias to interface with the cache: