Skip to content
This repository

Jul 27, 2010

  1. Neeraj Singh

    making comments meaningful by correcting, adding and pruning

Jun 11, 2010

  1. Evgeniy Dolzhenko

    Fix a bunch of minor spelling mistakes

    authored June 11, 2010

Apr 27, 2010

  1. ActiveSupport::Cache refactoring

    All Caches
    * Add default options to initializer that will be sent to all read, write, fetch, exist?, increment, and decrement
    * Add support for the :expires_in option to fetch and write for all caches. Cache entries are stored with the create timestamp and a ttl so that expiration can be handled independently of the implementation.
    * Add support for a :namespace option. This can be used to set a global prefix for cache entries.
    * Deprecate expand_cache_key on ActiveSupport::Cache and move it to ActionController::Caching and ActionDispatch::Http::Cache since the logic in the method used some Rails specific environment variables and was only used by ActionPack classes. Not very DRY but there didn't seem to be a good shared spot and ActiveSupport really shouldn't be Rails specific.
    * Add support for :race_condition_ttl to fetch. This setting can prevent race conditions on fetch calls where several processes try to regenerate a recently expired entry at once.
    * Add support for :compress option to fetch and write which will compress any data over a configurable threshold.
    * Nil values can now be stored in the cache and are distinct from cache misses for fetch.
    * Easier API to create new implementations. Just need to implement the methods read_entry, write_entry, and delete_entry instead of overwriting existing methods.
    * Since all cache implementations support storing objects, update the docs to state that ActiveCache::Cache::Store implementations should store objects. Keys, however, must be strings since some implementations require that.
    * Increase test coverage.
    * Document methods which are provided as convenience but which may not be universally available.
    * MemoryStore can now safely be used as the cache for single server sites.
    * Make thread safe so that the default cache implementation used by Rails is thread safe. The overhead is minimal and it is still the fastest store available.
    * Provide :size initialization option indicating the maximum size of the cache in memory (defaults to 32Mb).
    * Add prune logic that removes the least recently used cache entries to keep the cache size from exceeding the max.
    * Deprecated SynchronizedMemoryStore since it isn't needed anymore.
    * Escape key values so they will work as file names on all file systems, be consistent, and case sensitive
    * Use a hash algorithm to segment the cache into sub directories so that a large cache doesn't exceed file system limits.
    * FileStore can be slow so implement the LocalCache strategy to cache reads for the duration of a request.
    * Add cleanup method to keep the disk from filling up with expired entries.
    * Fix increment and decrement to use file system locks so they are consistent between processes.
    * Support all keys. Previously keys with spaces in them would fail
    * Deprecate CompressedMemCacheStore since it isn't needed anymore (use :compress => true)
    [#4452 state:committed]
    Signed-off-by: Jeremy Kemper <>
    authored April 21, 2010 jeremy committed April 27, 2010

Apr 19, 2010

  1. Jeremy Kemper

    MemoryStore#read_multi(*keys) for dev-mode compatibility with memcach…

    …e store
    authored April 18, 2010

Oct 09, 2009

  1. Pratik

    Mute log info coming from the local_cache strategy

    authored October 09, 2009

Sep 20, 2009

  1. José Valim

    Instrumenting cache stores.

    authored September 20, 2009

Jul 01, 2009

  1. Original cache objects should not be immutable [#2860 state:resolved]

    Signed-off-by: Yehuda Katz + Carl Lerche <>
    authored July 01, 2009

Nov 01, 2008

  1. Pratik

    Merge with docrails

    authored November 02, 2008

Sep 10, 2008

  1. Joshua Peek

    Removed monitor from MemoryStore and created a seperate threadsafe st…

    …ore called SynchronizedMemoryStore
    authored September 10, 2008

Aug 20, 2008

  1. Joshua Peek

    Ensure objects cached with MemoryStore are immutable

    authored August 19, 2008

Aug 19, 2008

  1. Joshua Peek

    Replace MemoryStore mutex with a monitor to avoid issues with nested …

    authored August 18, 2008

Aug 06, 2008

  1. Joshua Peek

    Treat single C operations in MemoryStore as atomic

    authored August 06, 2008
  2. Joshua Peek

    MemoryStore is the only "unsafe" store. Make it threadsafe by default.

    authored August 06, 2008

May 19, 2008

  1. José Valim

    Add fragment_exist? and exist? methods to cache stores. [#203 state:r…

    Signed-off-by: Pratik Naik <>
    authored May 16, 2008 lifo committed May 19, 2008

Apr 29, 2008

  1. Tobias Lütke

    Add missing clear method to memory_store

    authored April 29, 2008

Jan 03, 2008

  1. David Heinemeier Hansson

    Moved the caching stores from ActionController::Caching::Fragments::*…

    … to ActiveSupport::Cache::*. If you're explicitly referring to a store, like ActionController::Caching::Fragments::MemoryStore, you need to update that reference with ActiveSupport::Cache::MemoryStore [DHH] Deprecated ActionController::Base.fragment_cache_store for ActionController::Base.cache_store [DHH] All fragment cache keys are now by default prefixed with the 'views/' namespace [DHH] Added ActiveRecord::Base.cache_key to make it easier to cache Active Records in combination with the new ActiveSupport::Cache::* libraries [DHH] Added ActiveSupport::Gzip.decompress/compress(source) as an easy wrapper for Zlib [Tobias Luetke] Included MemCache-Client to make the improved ActiveSupport::Cache::MemCacheStore work out of the box [Bob Cottrell, Eric Hodel] Added config.cache_store to environment options to control the default cache store (default is FileStore if tmp/cache is present, otherwise MemoryStore is used) [DHH]
    git-svn-id: 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
    authored January 03, 2008
Something went wrong with that request. Please try again.